O que é um Banco de Dados Hierárquico?

Um Banco de dados hierárquico consiste em uma coleção de registros que são conectados uns aos outros por meio de ligações.

Um registro é uma coleção de campos, cada qual contendo apenas um valor de dados. Uma ligação é uma associação entre exatamente dois registros.

O modelo hierárquico é, portanto, similar ao modelo de rede, no sentido de que dados e relacionamentos entre dados são também representados por registros e ligações, respectivamente. O modelo hierárquico difere do modelo de rede na organização de registros como coleção de árvores em vez de como grafos arbitrários.

Um diagrama com estrutura de árvore é um esquema para um banco de dados hierárquico.

Tal diagrama consiste em dois componentes básicos: retângulos, que correspondem a tipos de registro, e linhas, que correspondem a ligações.

O diagrama com estrutura de árvore serve para os mesmos propósitos que um diagrama entidade-relacionamento; a saber, ele especifica a estrutura lógica geral do banco de dados.

Um diagrama com estrutura de árvore é similar ao diagrama de estrutura de dados no modelo de rede. A principal diferença é que, no primeiro, tipos de registro são organizados na forma de uma árvore enraizada. Para todo diagrama entidade-relacionamento, existe um diagrama com estrutura de árvore correspondente.

O esquema de banco de dados é, portanto, representado como uma coleção de diagramas com estrutura de árvore. Para cada diagrama, existe uma única instância de uma arvore do banco de dados. A raiz dessa árvore é um nó auxiliar. Os filhos desse nó são instâncias de fato do tipo de registro apropriado. Cada instância pode, por sua vez ter diversas instâncias de vários tipos de registro, como especificadas no diagrama com estrutura de árvore correspondente.

A linguagem de manipulação de dados consiste em uma série de comandos que são embutidos em uma linguagem hospedeira. Esses comandos fazem o acesso e manipulam itens do banco de dados assim como variáveis declaradas localmente. Para cada programa de aplicação, o sistema mantém uma área de trabalho de programa que contém gabaritos de registro, ponteiros correntes e indicadores de estado.

Os itens de dados são buscados através do comando get, que localiza um registro o banco de dados e posiciona o ponteiro corrente para apontar para ele, e então copia aquele registro do banco de dados para o gabarito de área de trabalho do programa apropriado. Existe uma série de diferentes formas do comando get. A principal distinção entre elas é se um registro deve ser localizado dentro de toda a árvore de um banco de dados ou dentro de uma subárvore.

Vários mecanismos estão disponíveis para atualizar informações no banco de dados. Eles incluem a criação e a remoção de registros (via operações insert e delete) e a modificação (via operação replace) do conteúdo dos registros existentes.

No caso de relacionamentos muitos-para-muitos, a duplicação de registros é necessária para preservar a estrutura de árvore do banco de dados. A duplicação de registros tem dois inconvenientes principais: atualizações podem levar a inconsistência de dados e o desperdício de espaço é inevitável.

A solução é o registro virtual, tal registro não contém valores de dados, ele contém um ponteiro lógico para um registro físico partícula. Quando um registro é duplicado em diversas árvores de banco de dados, uma única cópia daquele registro é mantida em uma das árvores e todas as outras ocorrências do mesmo são substituídas por um registro virtual contendo um ponteiro para aquele registro físico.

A linguagem de manipulação de dados para essa nova configuração leva ao mesmo caso em que a duplicação de registro é permitida. Assim, um usuário não precisa preocupar-se com essas mudanças.

A implementação de banco de dados hierárquicos não usa ponteiros pai-filho, uma vez que eles requerem o uso de registros de tamanho variável.

Em vez disso, são usadas cadeias em pré-ordem. Essa técnica permite que cada registro contenha exatamente dois ponteiros. Opcionalmente, um terceiro ponteiro filho – para – pai pode ser adicionado.

Bibliografia
KORTH, Henry F., SILBERSCHATZ, Abraham. Sistema de Banco de Dados. 2ª ed. rev. – São Paulo: Makron Books, 1995.


4 Comentários

Fábio Prado
1

Felipe, vc conhece ou já trabalhou com algum BD hierárquico? Vc conseguiria informar algum benefício ou situação em q o Bd hierárquico poderia substituir um bd relacional?

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!