Outra forma de se criar uma estrutura hierárquica é pela desnormalização da tabela hierárquica. Isso é feito pela adição de outros campos à uma estrutura simples, eliminando a autorrelação. Este modelo é adequado para quando o número de níveis de detalhamento é igual para todos os itens da estrutura (todos os elementos possuem informação para todas as categorias).
Veja o exemplo a seguir:
| Produto_ID | Tipo_do_Produto | Categoria | Subcategoria |
|---|---|---|---|
| 1 | Frango congelado | Alimentos | Congelados |
| 2 | Linguiça | Alimentos | Carnes frescas |
| 3 | Sabão em pó | Limpeza | Roupas |
| 4 | Detergente | Limpeza | Louça |
| 5 | Arroz | Alimentos | Em grãos |
| 6 | Feijão | Alimentos | Em grãos |
No exemplo acima, Tipo_do_Produto é um atributo, Produto_ID é um atributo-chave. Em um data warehouse, o atributo-chave em uma dimensão deve conter um valor exclusivo para cada membro da dimensão.
Em termos de banco de dados relacional, este atributo-chave é denominado chave primária. Além de tornar a tabela de fatos menor, mover informações sobre dimensão para uma tabela separada tem uma vantagem: você pode adicionar novas informações sobre cada membro da dimensão, bastando criar novas colunas para isso.