Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Natural Key na tabela Fato

Marina,

Ainda sobre a tabela Fato, é normal no modelo do DW eu ter um campo sendo chave primária da tabela Fato, mas esse campo não referencia nenhuma dimensão?

Um outra dúvida que surgiu depois, em outro fórum que discutimos sobre isso, a PK da tabela fato são todos os campos FK das dimensões, mas tem um campo Natural Key, que é chave no meu sistema OLTP que tenho que levar para a tabela fato, ai está tudo certo, porém esse campo está na PK mas não referencia nenhuma dimensão, pode ficar assim?

4 respostas

Oi Emiliano! Como vai?

Não sei se existem outros modelos por ai, mas o mais comum é que todas as chaves primárias das tabelas fato sejam chaves primárias das dimensões.

Sobre sua segunda dúvida, se esse campo for uma dimensão, você precisa fazer uma tabela só para ele, com uma chave primária, colocar essa PK na fato e fazer uma FK entre as duas.

Se esse campo for um indicador, ele pode só ir na fato sem nenhuma chave, desde que na sua base de dados ele esteja agrupado por essas mesmas dimensões. (Lembrar que a fato agrupa ocorrências de indicadores por dimensões específicas).

Marina,

Onde você fala:

"Sobre sua segunda dúvida, se esse campo for uma dimensão, você precisa fazer uma tabela só para ele, com uma chave primária, colocar essa PK na fato e fazer uma FK entre as duas."

No caso esse campo não é uma dimensão, então posso deixar ele como chave primária na fato junto com os outros campos que referenciam as dimensões? Isso estaria correto? ou realmente teria que criar uma dimensão para esse campo?

solução!

Emiliano,

Se seu dado for quantitativo (um número como vendas por exemplo) coloque ele na fato como um indicador, sem nenhuma primary key, assim como fazemos com faturamento, imposto, etc. Se for esse o caso ele não precisa de uma tabela só para ele.

Se seu dado for qualitativo, ou seja, ele atribui características a seus números (cliente, fábrica, categoria, produto, marca, etc), ele precisa sim ser configurado como uma dimensão, ou seja, precisa criar uma tabela dimensão só para ele, e configura-lo como primary key. Quando for montar as fatos que essa dimensão for presente, coloque ele como PK na fato, mas faça referência com essa tabela dimensão através de uma FK.

Ok Marina, muito obrigado! :)