Sobre como projetar o esquema em estrela: tenho três colunas de data em uma tabela de fatos fact_table (insert_date, trade_date, close_date ...)
. E não sei quantas dimensões de data devem ser criadas?
Caso 1: Dim A . Isso significa: uma linha @fact_table tem três FKs para A.
Caso 2: Dim A (para insert_date), Dim B (trade_date), Dim C (close_date). Isso significa: uma linha @fact_table tem um FK para A, um FK para B e um FK para C .
Pergunta : Quantas dimensões de data devem ser criadas?
O tipo de alias de tabela usa a dimensão mais de uma vez em uma instrução SQL atribuindo um alias para cada uso.
O tipo de visualização do banco de dados , você cria tantas visualizações quanto o número de funções que você precisa na dimensão do fato.
Você precisa de apenas uma dimensão de data, por exemplo: o 'tipo' de dimensão de data será mencionado na tabela de fatos como acima.
Modelando Dimensões de Data e Hora
Deve haver apenas uma dimensão de Data e uma dimensão de Tempo em todos os fatos e tabelas de dimensão. Nem todos os campos de data e hora precisavam ser mapeados para dimensões de data e hora. Mapeie um campo de data e hora para uma dimensão Data ou Hora somente quando precisar dos atributos extras da dimensão.
Normalmente, a granularidade mais baixa da dimensão Date é Day, e a granularidade mais baixa da dimensão Time é Second. Muitos warehouses não precisam de uma dimensão Time, mas uma dimensão Date é usada em praticamente todos os sistemas de data warehouse.
Em geral, crie dimensões separadas para Data e Hora.
Se for necessário extrair blocos de tempo contíguos que cruzam os limites do dia (por exemplo
11/24/2000 10 p.m. to 11/25/2000 6 a.m.
), será mais fácil se a hora e o dia estiverem na mesma dimensão. Caso contrário, dimensões separadas paraDate
eTime
são mais fáceis de gerenciar e consultar.É mais fácil analisar eventos diários cíclicos e recorrentes se Data e Hora forem dimensões separadas.
Exemplo: Número de reuniões ativas às 9h desta semana. Essa é uma consulta fácil se Data e Hora estiverem separados; é muito mais complexo se Data e Hora forem combinados em uma única dimensão. A seguir estão os problemas de ter dimensões de data e hora juntas em uma dimensão de data/hora:
Quanto mais registros na dimensão DateTime, mais lento será o desempenho da consulta.
Saiba mais: fonte
Eu encontrei a resposta.
Este conceito é chamado de Dimensões de Interpretação de Papéis
Da resposta de mmarie em stack-overflow .
Exemplo