Modelagem dimensional é simples de enunciar: eventos vão para tabelas fato, contextos vão para tabelas dimensão. A dificuldade está em aplicar isso quando a área te entrega uma planilha com 90 colunas misturando tudo.
| Característica | Tabela Fato | Tabela Dimensão |
|---|---|---|
| Conteúdo | Eventos que aconteceram | Descrição de entidades |
| Exemplos | Vendas, apontamentos, lançamentos, atendimentos | Produto, Cliente, Calendário, Funcionário, Loja |
| Volume | Milhões de linhas | Dezenas a milhares |
| Colunas típicas | Chaves + valores numéricos + datas | Chave + atributos descritivos |
| Uso no visual | Vira medida (soma, contagem) | Vira eixo, legenda, filtro |
| Crescimento | Cresce todo dia | Cresce devagar |
Granularidade: a pergunta mais importante
Granularidade é o que representa UMA linha da tabela fato. Uma linha por item do pedido? Por pedido? Por dia e produto? Você precisa saber responder em uma frase. Se não sabe, o modelo vai duplicar valores.
- fVendas: uma linha por item de pedido (nota + produto).
- fEstoque: uma linha por produto, depósito e dia (foto diária).
- fMetas: uma linha por vendedor, produto e mês.
- Nunca misture granularidades na mesma tabela fato. Se precisa de duas, faça duas fatos ligadas às mesmas dimensões.
Os tipos de tabela fato
| Tipo | O que guarda | Exemplo |
|---|---|---|
| Transacional | Um evento por linha | Cada venda, cada apontamento de produção |
| Snapshot periódico | Uma foto do estado em cada período | Saldo de estoque por dia, headcount por mês |
| Snapshot acumulado | Uma linha por processo, com várias datas | Pedido: data de criação, aprovação, faturamento, entrega |