Sem resumo de edição
Linha 36: Linha 36:


[[Arquivo:FiguraH.2.png]]
[[Arquivo:FiguraH.2.png]]
O esquema do banco de dados é representado como uma coleção desses diagramas. Para cada diagrama, existe uma única instância de uma database tree. A raiz dessa árvore é um dummy node, e os filhos deste são instâncias de registros do tipo da raiz do digrama especificado. Cada uma destas instâncias pode ter vários filhos, que são instâncias de vários tipos de registros que estão especificados no diagrama correspondente.

Edição das 17h22min de 19 de agosto de 2013

No modelo hierárquico de banco de dados, os dados são representados como coleções de registros e são organizados usando a estrutura de dados de árvore. O tipo de um registro é definido por uma coleção de campos (atributos) e, graças à estrutura de árvore, é possível usar o relacionamento pai/filho para relacionar registros, onde um registro pai pode possuir um ou mais registros filhos, mas um registro só poder ter um registro pai (também conhecido como relacionamento 1:N).

História

O modelo foi um dos primeiros a serem usados pois era bastante apropriado em mídias de armazenamento de tipo linear, como fitas magnéticas que eram usadas na época. Foi criado pela IBM na década de 1960. Sua primeira implementação foi feita pela própria empresa, o IMS. O IMS possui uma extensiva capacidade de transações e continua sendo um produto forte no mercado, mesmo depois de mais de quarenta anos após sua criação. O sistema recebeu diversas melhorias ao longo do tempo e atualmente suporta tecnologias como Java, JDBC, XML, etc.

Conceitos Básicos

Um banco de dados hierárquico consiste de uma coleção de registros que estão conectados através de links. Cada link é uma associação entre precisamente dois registros. Em geral, este modelo é similar ao modelo de Rede, sendo que o que torna os dois modelos diferentes é a estrutura de dados usada para organização do registro.

Para melhor visualização dos conceitos, considere um banco de dados que representa um relacionamento conta-cliente em um sistem bancário. Portanto, existem dois tipos de registros: conta e cliente. O tipo de registro cliente consiste de três campos: customer_name, customer_street e customer_city. Da mesma maneira, o tipo de registro conta possui dois campos: account_number e balance.

Uma instância desse banco de dados aparece na figura H.1. Cada retângulo representa um registro e cada linha representa um link que liga os dois registros. O registro no topo de hierárquia é apenas a raiz da árvore (nível 0), chamado de dummy node. É possível observar que os registros do tipo cliente estão no nível 1 da árvore, enquanto os regitros do tipo conta estão no nível 2. Se um registro cliente está associado a um ou mais registros do tipo conta, então aquele cliente específico possui aquela(s) conta(s). Um banco de dados baseado no modelo hierárquico é uma coleção de tais árvores, portanto formando uma floresta. Uma árvore deste tipo é chamada de database tree.

No caso da figura, o cliente Hayes possui a conta A-102, enquanto o cliente Johnson possui as contas A-101 e A-201 e o cliente Turner possui a conta A-305.

O conteúdo de um determinado registro pode ser repetido em diferentes localizações. Por exemplo, neste sistema bancário do exemplo da figura, uma conta pode pertencer a vários clientes. Portanto, a informação referente a esta determinada conta ou a informação dos vários clientes que possuem esta conta terá de ser repetida. Esta repetição pode ocorrer na mesma árvore ou em diferentes árvores e apresenta duas desvantagens:

  • 1. Inconsistência pode surgir com atualizações nos dados do banco
  • 2. Desperdício de espaço é inevitável


Diagrama de topologia em árvore

O diagrama de topologia em árvore é um esboço do banco de dados. O diagrama consiste em dois componentes:

  • 1. Caixas, que correspodem aos tipos dos registros
  • 2. Linhas, que correspodem aos links

Este diagrama serve o mesmo propósito do digrama entidade-relacionamento (E-R). Os relacionamentos formados no diagrama devem ser tais que apenas relacionamentos 1:1 e 1:N existam entre o pai e o filho. A forma genérica de como o digrama deve parecer está na figura H.2. Na figura aparece que a seta aponta do filho para o pai. Um pai pode ter uma seta apontando para um filho, mas um filho deve ter uma seta apontando para o pai.

Definição (árvore enraizada): por ser uma ávore, não pode haver nenhum ciclo. Além disso, há um tipo de registro que é designado como raiz da árvore. Os relacionamentos formados no diagrama entre pais e filhos devem ser apenas 1:N ou 1:1.

O esquema do banco de dados é representado como uma coleção desses diagramas. Para cada diagrama, existe uma única instância de uma database tree. A raiz dessa árvore é um dummy node, e os filhos deste são instâncias de registros do tipo da raiz do digrama especificado. Cada uma destas instâncias pode ter vários filhos, que são instâncias de vários tipos de registros que estão especificados no diagrama correspondente.