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

Chave primária das tabelas fato é obrigatório ser chave primária composta com as FK?

Durante o curso percebi que a chave primária das tabelas fato foram criadas compondo a chave primária mais as chaves estrangeiras desta tabela. Isto é obrigatório, pois tenho situações onde um chave estrangeira pode ser null, ou seja, chave primária não permite null no Power Architect.

3 respostas

Oi Thiago, tudo bem?

Dá uma olhada na resposta da Marina nesse tópico, veja se resolve a sua dúvida :)

Qualquer coisa, estou à disposição, bons estudos :)

Ei Maria, tudo ótimo! E com você?

O tópico mencionado ainda não sanou minha dúvida!

Vou ser bem específico na minha situação atual e ver se alguém pode me ajudar. Estou montando um DW em minha empresa e uma das minhas tabelas fato é a Fato_Aplicacao.

Esta tabela irá armazenar todos os custos ocorridos nas obras de minha empresa.

A Fato_Aplicacao tem vínculo com a Dim_Local, Dim_Servico e Dim_Material, ou seja, minha Fato_Aplicacao pode ter:

  • Obrigatoriamente um local, ou seja, meu Id_Local pode ser Primary Key e Foreign Key da minha tabela fato;
  • Obrigatoriamente um material, ou seja, meu Id_Material pode ser Primary Key e Foreign Ke na minha tabela fato;
  • Não obrigatoriamente um serviço, ou seja, meu Id_Servico poderá ser nulo em algumas situações, ou seja, esta Foreign Key não poderia ser também Primary Key.

E como no treinamento estou vendo que todas as FK's também são PK's na tabela fato fiquei com esta dúvida.

Nesta tabela fato eu tenho uma surrogate key que definirá todo lançamento existente como único.

Daí minha pergunta, é obrigatório toda FK da tabela fato ser também PK?

solução!

E aí Thiago, tudo jóia?

A Tabela Fato é a principal tabela no Data Warehouse e a partir dela será gerado as tabelas dimensões. Ao modelar as dimensões, terá que escolher entre o Modelo Snowflake e o Modelo Star (nesse tópico, eu abordei mais a fundo sobre os modelos).

Imgur

As Dimensões e Fatos são dependentes entre si. No modelo dimensional é obrigatório existir ambas tabelas. Sem uma dessas tabelas, a análise das informações ficam comprometidas no modelo dimensional, ou até mesmo inviabilizadas.

Não é obrigatório toda FK da fato ser também PK da Dimensão, porém seria o ideal porque garante a integridade dos dado e isso é uma coisa realmente muito importante em um DW.

Perdão pela resposta enorme. Espero ter sanado sua dúvida, mas qualquer coisa é só falar, tá bom? :D