Ir para conteúdo
  • 0

Relacionamento vs Merge de Consultas (desnormalização)


Vander Ortigara
Ir para solução Solucionado por Weverton Todeschini ,

Pergunta

  • Alunos

Olá,

uma questão que por vezes gera dúvidas é quando fazer o Merge de Consultas e quando manter o relacionamento entre duas tabelas.

Por exemplo:  temos uma tabela (dimensão) com código de cidade e UF e outra tabela (fato) com vendas, onde há o código da cidade, entre outros dados. No dashboard não preciso ver nome da cidade, apenas a UF.

Neste caso, é melhor manter o relacionamento entre as duas tabelas via código da cidade ou fazer o merge das consultas, levando a UF para a tabela fato e desabilitando a carga da tabela de cidades/UFs?

Existe algum critério para definir quando é melhor usar um critério ou outro?

Obrigado.

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Eu não faria o merge levando para a fato, imagine que tenha 10 milhões de linhas na fato, e repetindo um texto descritivo em todas as linhas, o ideal é manter apenas o código inteiro na fato, gera uma diferença de performance bem relevante, sem contar o tamanho do arquivo aumentaria consideravelmente. essa é uma das vantagens de usar o modelo com relacionamento. ter uma tabela pequena com os dados característicos, e uma chave que faça esse vinculo para otimizar a fato.  

1 - Modelagem Star Schema em Data Warehouse – Acervo Lima

2 - O Modelo Dimensional (Star Schema) ainda é a melhor opção para Cloud Data Warehouse? - IPsense


confere este breve artigo, observe o exemplo, apenas códigos e métricas na fato. e as descrições nas dimensões. 
image.png.09b7e5cb0252b0c29e2fe6c6588c525d.png

Editado por Weverton Todeschini
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 1
  • Alunos

Minha resposta para isso seria, depende. No curso avançado mesmo o Leo fala sobre isso. Ex:

Se você tem uma dClientes com os dados do cliente e uma coluna com a cidade e uma dContinente com os dados da cidade (Cidade, UF, País e Continente). Se você vai fazer um filtro para ver clientes por país e continente, eu faria um merge das duas na dClientes e desabilitaria a carga da dContinente. Se não vai usar a dContinente, não habilitaria a carga dela.

No caso de fazer o merge entre fato e dimensão, eu não faria. Se não com o tempo vira um tabelão de fato.

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...