Filosofia: Técnico para quem desenvolve │ Intuitivo para quem consome │ Previsível para quem mantém.
Regra: o nome deve revelar o papel do objeto antes de ser aberto.
1. Prefixos obrigatórios (camada física)
| Prefixo | Objeto | Exemplos |
|---|---|---|
Tab | Tabela | TabDimCliente, TabFatVenda |
Vw | View | VwFatVenda |
Pr | Procedure | PrAtualizarEstoque |
Fn | Function | FnCalcularMargem |
Cns | Consulta ETL | CnsClienteTratado |
2. Modelagem dimensional
| Papel | Padrão | Exemplos |
|---|---|---|
| Dimensão | TabDimObjeto | TabDimCliente, TabDimCalendario |
| Fato | TabFatEvento | TabFatVenda, TabFatPedido |
| Ponte N:N | TabPonAB | TabPonClienteProduto |
| Monolítica | TabFltObjeto | TabFltVendasCamisetas |
| Interface | TabIntObjeto | TabIntMedida, TabIntAtualizacao |
Tabela monolítica (TabFlt) é uma tabela "achatada" que concentra fato
e dimensões numa única estrutura (comum em datasets pequenos ou exports de
ferramentas de terceiros que não separam fato/dimensão). Use quando não
compensa normalizar em modelo estrela — mas prefira TabDim/TabFat
sempre que o volume ou a reutilização em múltiplas telas justificar a
separação.
Tabela de interface (TabInt) é uma tabela técnica que não é fato nem
dimensão: a tabela que só guarda medidas, tabelas de parâmetro e a tabela com a
data da última atualização. Fica fora do esquema estrela e, na camada semântica,
ganha nome de negócio (Medidas, Atualização).
Nomes genéricos proibidos: TabFatDados, TabFatBase.
3. Convenções gerais
- Singular obrigatório:
TabDimCliente│TabDimClientes - PascalCase obrigatório:
TabFatVendaMensal│tab_fat_venda - Sem caracteres especiais, sem espaços no início/fim, sem emojis.
4. Campos
| Camada | Padrão | Exemplos |
|---|---|---|
| Técnico (SQL físico) | PascalCase por extenso | CodigoCliente, ValorVenda |
| Semântico (Power BI) | Nome amigável com espaços | [Código do Cliente], [Valor da Venda] |
Abreviações proibidas: CodCli, DtFat, VlrTot.
Aliases em SQL: sempre AS [Nome Amigável] — reduz transformações no
Power Query e antecipa a camada semântica.
5. Camadas
SQL Físico → Views Semânticas → Power Query → Modelo Semântico → Relatórios
6. Fronteira física Não semântica (REGRA DE OURO expandida)
SQL é estrutura. Power BI é comunicação. O modelo serve aos dois mundos.
Aplicação prática da fronteira:
| Objeto | Camada física (SQL/ETL/PQ) | Camada semântica (visível ao usuário) |
|---|---|---|
| Tabela dimensão | TabDimCliente | Cliente (singular) |
| Tabela fato | TabFatVenda | Vendas (plural aceito para fatos) |
| Coluna | ValorVenda | Valor da Venda |
| Tabela de interface | TabIntMedida | Medidas |
| Medida | — | Total de Vendas, % vs Meta |
Motivação: além da leitura humana, o Copilot e agentes de IA leem nomes
literalmente — TabFatVenda degrada respostas em linguagem natural,
enquanto Vendas habilita a IA conversacional. Prefixos técnicos jamais
chegam a objetos visíveis do modelo; colunas técnicas remanescentes
(chaves, FKs) devem estar ocultas.
7. Medidas e variáveis DAX
- Medidas: nome amigável com espaços —
Total de Vendas,Ticket Médio. - Variações:
[Base] [Período] ([Unidade])— ex.:Total de Vendas (ytd),Margem Bruta (%). - Contagens: prefixo
#—# Pedidos,# Clientes. - Variáveis DAX: camelCase com prefixo
v—vTotalVendas,vMetaMes.
8. Convenção de comparativo temporal (AV/AA/Δ/Δ%/Δi)
Padrão oficial para qualquer medida que compare o período corrente com o mesmo período do ano anterior — usar os símbolos literais abaixo, não escrever por extenso, em nomes de medida e em documentação técnica.
| Sigla | Significado | Exemplo de medida |
|---|---|---|
AV | Ano Vigente — período corrente | Total de Vendas AV |
AA | Ano Anterior — mesmo período, ano anterior (via SAMEPERIODLASTYEAR) | Total de Vendas AA |
Δ | Variação absoluta (AV − AA) | Δ Total de Vendas |
Δ% | Variação percentual (DIVIDE(Δ, AA)) | Δ% Total de Vendas |
Δi | Indicador tipo farol sobre a variação ( positivo │ Atenção estável/atenção │ negativo) | Δi Total de Vendas |
Exemplo de implementação:
Total de Vendas AV = SUM ( TabFatVenda[ValorVenda] )
Total de Vendas AA =
CALCULATE ( [Total de Vendas AV], SAMEPERIODLASTYEAR ( TabDimCalendario[Data] ) )
Δ Total de Vendas = [Total de Vendas AV] - [Total de Vendas AA]
Δ% Total de Vendas = DIVIDE ( [Δ Total de Vendas], [Total de Vendas AA] )
Δi Total de Vendas =
VAR vVariacao = [Δ% Total de Vendas]
RETURN
SWITCH (
TRUE (),
vVariacao > 0, "✔️",
vVariacao = 0, "⚠️",
"❗"
)
Essa convenção é a base do padrão de "comparativo temporal" usado em todo o ecossistema (Dashboard Canvas, Background Builder, dicionário de medidas) — qualquer medida de variação ano contra ano deve seguir esses sufixos, sem variações de grafia.
9. Checklist rápido ao criar/renomear
- O prefixo revela o papel? (camada física)
- Está no singular e em PascalCase? (camada física)
- O objeto visível no modelo usa nome de negócio, sem prefixo técnico?
- Campos semânticos têm nome amigável via alias ou renomeação?
- Nenhuma abreviação críptica sobreviveu?
- Medidas de comparação temporal seguem AV/AA/Δ/Δ%/Δi?