Estou tentando modelar um DW onde tenho vários níveis de geografia (Bairro, Distrito, Cidade, Estado).
Tenho vários dados demográficos que devem ser incluídos no modelo. Esses dados incluem contagem de pessoas que vivem nessa área, renda mensal média, idade média e outros. O nível mais baixo para o qual tenho dados é o bairro, o que significa que pode ser agrupado para calcular os valores dos níveis superiores.
A Geografia é modelada em uma única dimensão (desnormalizada), onde cada nível recebe sua própria coluna.
Agora tenho que ajustar os dados demográficos no modelo. Devo colocá-lo em outra dimensão separada ou devo colocá-lo na dimensão Geografia? E os níveis agregados?
Colocar tudo na dimensão Geografia me deixaria com um grande número de colunas:
- Identidade
- Nome do bairro
- Nome do distrito
- Nome da Cidade
- Nome do estado
- Renda mensal média do bairro
- Idade média da população trabalhadora do bairro
- Bairro Número de pessoas
- ...
- Renda mensal média do distrito
- Idade média da população trabalhadora do distrito
- Distrito Número de pessoas
- ...
- Renda mensal média da cidade
- Idade média da população trabalhadora da cidade
- Cidade Número de pessoas
- ...
Isso está correto? Isso parece bastante complicado. Procurei designs alternativos em vários livros (incluindo o de Kimball), mas não consegui encontrar nada satisfatório.
Existem alternativas melhores, comprovadas, aprovadas e confiáveis para esse projeto?
Minha opinião sobre isso é que talvez você queira tentar usar uma dimensão pai-filho, para que o modelo permita uma quantidade teoricamente infinita de níveis. Dessa forma, você pode conectar os fatos a cada nível da hierarquia.
Aqui está um exemplo:
As vantagens desta abordagem são:
As desvantagens que posso pensar são:
Não tenho a menor ideia se esta é a solução "correta" de acordo com Kimball, Inmon, etc. Em vez disso, gostaria que você verificasse se ela se aplica às suas necessidades específicas. ;)