Hierarquias
Hierarquias irregulares com n níveis são geralmente usadas para representar, entre outras coisas, dimensões geográficas ou organizacionais em dados. Esses tipos de hierarquias são geralmente armazenados em uma tabela de nós adjacentes, isto é, em uma tabela na qual cada registro corresponde a um nó e possui um campo que contém uma referência ao nó pai.
Em uma tabela como essa, o nó é armazenado em apenas um registro, mas ainda pode ter um número indefinido de filhos. A tabela pode conter campos adicionais que descrevem atributos para os nós.
Uma tabela de nós adjacentes é fácil de manter, mas difícil de usar em trabalhos do dia-a-dia. Em vez disso, em consultas e análises, outras representações são usadas. A tabela de nós expandidos é uma representação comum, na qual cada nível da hierarquia é armazenado em um campo separado. Os níveis de uma tabela de nós expandidos podem ser facilmente utilizados, por exemplo, em uma estrutura de árvore. A palavra-chave hierarchy pode ser usada no script de carregamento para transformar uma tabela de nós adjacentes em uma tabela de nós expandidos.
Exemplo:
Um dos problemas da tabela de nós expandidos é que não é fácil usar os campos de nível para realizar pesquisas ou seleções, já que é necessário ter um conhecimento prévio sobre o nível que se deseja pesquisar ou selecionar. A tabela de ancestrais é uma representação diferente que resolve esse problema. Essa representação também é chamada de tabela de ponte.
A tabela de ancestrais contém um registro para cada relação filho-ancestral encontrada nos dados. Ela contém chaves e nomes para os filhos, bem como para os ancestrais, ou seja, cada registro descreve o nó ao qual um nó específico pertence. A palavra-chave hierarchybelongsto pode ser usada no script de carregamento para transformar uma tabela de nós adjacentes em uma tabela de ancestrais.