A maioria dos problemas de performance e de medidas DAX com comportamento estranho no Power BI tem a mesma causa raiz: um modelo de dados mal estruturado. Entender a diferença entre tabela fato e tabela dimensão é o passo mais importante para construir relatórios rápidos e fórmulas previsíveis.

O que é uma tabela fato

A tabela fato contém os eventos mensuráveis do seu negócio: vendas, pedidos, entregas, cliques, transações. Cada linha representa um evento. As características típicas de uma tabela fato são:

O que é uma tabela dimensão

A tabela dimensão contém os descritores dos eventos: quem, o que, onde, quando. Exemplos: Clientes, Produtos, Calendário, Regiões, Vendedores. Características típicas:

O modelo estrela (star schema)

No modelo estrela, a tabela fato fica no centro e as dimensões ficam ao redor, cada uma conectada por um relacionamento 1-para-muitos (dimensão → fato). Visualmente lembra uma estrela.

Vantagens do modelo estrela sobre outras estruturas:

O que evitar: modelo flocos de neve

O modelo flocos de neve (snowflake) é quando as dimensões têm relações entre si (cadeias de tabelas). Por exemplo: Pedidos → Clientes → Cidade → Estado. No Power BI, isso cria um caminho mais longo de propagação de filtros e prejudica a performance. Sempre que possível, desnormalize as dimensões em uma única tabela flat.

A tabela calendário é obrigatória

Toda análise com datas no Power BI precisa de uma tabela calendário dedicada. Sem ela, as funções de inteligência de tempo do DAX (TOTALYTD, SAMEPERIODLASTYEAR, DATEADD) não funcionam corretamente. Crie uma via CALENDARAUTO() ou importe do Power Query.

Perguntas frequentes

Posso ter mais de uma tabela fato no mesmo modelo?

Sim. É um padrão chamado "galaxy schema" ou "fact constellation". As duas tabelas fato compartilham dimensões comuns (Clientes, Calendário). O importante é garantir que os relacionamentos estejam corretos e que as dimensões compartilhadas não sejam duplicadas.

O que fazer quando uma coluna está na fato mas deveria estar na dimensão?

Mova-a. No Power Query, remova a coluna da fato e adicione na dimensão correspondente. Nunca duplique colunas descritivas na tabela fato — isso quebra a normalização e infla o modelo sem necessidade.