Você está na página 1de 8

Modelo Hierárquico de Dados

► Modela diversos tipos de organizações hierárquicas:

 Esquemas de classificação para espécies dos reinos animal e vegetal

 Classificação de línguas humanas

 Corporações

 Hierarquias governamentais

► Representa hierarquias de forma direta e natural

► Problemas quando representa relacionamentos não-hierárquicos;

► Não existe documento original para descrever o modelo;

► Sistemas existentes:

 TIME-SHARED DATA MANAGEMENT (TDMS)

System Development Corporation

 MULTI-ACCESS RETRIEVAL SYSTEM (MARS VI)

Control Data Corporation

 INFORMATION MANAGEMENT SYSTEMS (IMS) - IBM

 Conceitos Estruturais

 Registro

 Coleção de campos de valores que provêm informação sobre uma


entidade ou relacionamento

 Tipo de registro: agrupa registros do mesmo tipo

 É dado um nome

 Estrutura é definida por uma coleção de nomes de campos (itens de


dados)

 Cada campo tem um tipo de dado como inteiro, real, etc.

 Conceitos Estruturais

 Relacionamento Pai-Filho

 Relacionamento 1:N entre


dois tipos de registros

 O tipo de registro pai está do


lado 1:, enquanto o tipo filho
está do lado :N

Uma ocorrência do relacionamento ou tipo pai-filho


consiste de um registro do tipo pai e um número
qualquer (zero ou mais) do tipo filho
Implementação de uma instância

► Uma instância do diagrama pode ser implementada usando ponteiro filho mais à
esquerda e próximo irmão.

 Ponteiro filho mais à esquerda aponta para um filho.

 Ponteiro próximo irmão aponta para outro filho do mesmo pai.

 Cada filho possui exatamente dois ponteiros .

► Assim registros de tamanho fixo mantêm seus tamanhos fixos quando adicionamos
ponteiros necessários.

Esquema de BD Hierárquico

► Esquema consiste de várias hierarquias

 Cada hierarquia consiste de um número de tipos de registros e de


relacionamentos pai-filho

► Diagrama Hierárquico: forma visual de mostrar um esquema hierárquico

► Propriedades

 Cada tipo de registro, exceto a raiz, participa de exatamente um


relacionamento como registro filho

 Um tipo de registro pode participar de qualquer número de relacionamentos


como registro pai

► Propriedades...
 Registro folha quando não participa de nenhum relacionamento como registro
pai

 Se um tipo de registro participa em mais de um relacionamento como registro


pai, então seus filhos são ordenados

Esquema Hierárquico

► Define uma estrutura de dados em árvore

 Tipos de registros são nós

 Tipos de relacionamentos são arcos

► Representação de Relacionamentos M:N

 Através da duplicação de instâncias do registro filho

Problemas

 1 ) M:N

 2) Tipos de registros participarem como filhos em mais de um


relacionamento

 3) Relacionamentos com mais de dois tipos de registros (ex: conta, agencia,


cliente)

► Casos 1 e 2 podem ser resolvidos por duplicação

 Gasto de armazenamento

 Exige manter consistência nas cópias de um mesmo registro

► Caso 3

 Tipos de relacionamentos hierárquicos são binários

► SOLUÇÃO

 Utilizar um tipo de registro virtual - PONTEIRO

► Cada um dos seus registros contém um ponteiro para um registro de


outro tipo

 Criar um relacionamento pai-filho entre um dos tipos de registro e o virtual

 Criar um relacionamento virtual entre o outro tipo de registro (pai virtual) e o


registro virtual (filho virtual)

► Relacionamento Virtual

No diagrama, uma seta sairá do filho virtual para o pai virtual


► Nenhuma ocorrência de registro, exceto raízes, pode existir sem estar relacionada a
uma ocorrência de registro pai

 Registro filho não pode ser inserido sem estar ligado a um registro pai

 Registro filho pode ser removido independentemente de seu registro pai

Restrições de Integridade ...

 A remoção de um registro pai resulta em todos os seus filhos e descendentes


sendo removidos automaticamente

 Um ponteiro num filho virtual tem que apontar para um registro pai virtual
existente

 A remoção de um registro pai virtual não pode ocorrer se existirem


ponteiros de registros filhos virtuais

 Se um registro filho tiver dois ou mais registros pais de um mesmo tipo de registro,
deve ser duplicado para cada registro pai

 Um registro filho tendo dois ou mais pais de tipos de registros diferentes, deve ter no
máximo um pai real e todos os outros virtuais

Definição de Dados

► Linguagem Hierárquica de Definição de Dados - HDDL

 Para definir um Esquema de BD Hierárquico

► Definir campos de cada tipo de registro

► Definir tipos de dados de cada campo

► Definir chaves e restrições

► Determinar raízes

► Para cada registro não-raiz determinar o pai

► Especificar relacionamentos verticais

► Sintaxe
schema name = < nome do esquema >

hierarchies = < hierarchy 1 >, < hierarchy 2 >, ...

/*Raiz*/

record

name = < nome >

type = root of < hierarchy n >

data items =

< nomes de campo > < tipo >

key = < campo(s) >

[ order by < campo(s) >]

/*Outros*/

record

name = < nome >

parent = < registro pai >

child number = < número de ordem >

data items =

< nomes de campo > < tipo >

key = < campo(s) >

[ order by < campo(s) >]

/*Registro Virtual*/

...

data items =

[ < nomes de campo > < tipo > ]

< nome do ponteiro > pointer with virtual


parent = < pai virtual >

INSTRUÇÕES

► Get next root <record name> [where <select criteria>]

 Esta instrução busca um registro raiz que obedece a determinado critério com
base em valores de seus campos

► Get next child <record name> where <select criteria>]

 Esta instrução busca um registro que


► 1 - é filho do registro corrente

► 2 - obedece a determinado critério

► Vantagens:

 Adequação a aplicações com estrutura arborescente

 Simplicidade sobretudo na implementação

 Interessante para aplicações cuja utilização é conhecida a priori

 Comercialização bastante divulgada dos SGBD

► Desvantagens:

 Dificuldade de representação dos relacionamentos M:N entre entidades

 Anomalias para operações de atualização

 Independência lógica reduzida

 Ausência de interfaces não-procedimentais

Em caso de problemas não hierárquicos cria:

 Redundância de dados

► Resulta em anomalias de atualização ("update anomalies") nas


instruções de modificação da base de dados

 Assimetrias indesejáveis na representação de dados e na programação

 Desempenho

 Modelava a idéia de armazenar contiguamente um registro pai e seus vários


filhos

 IBM fez cedo uma reforma introduzindo o conceito de pai-filho lógico

 Permitia estabelecer relações entre diferentes árvores e de fato implementar


o modelo em rede (ver adiante)

XML

► Estrutura de dados

 Banco de dados é um documento XML

 Documento XML é composto de um elemento raiz

 Elemento raiz pode ser composto por outros elementos e assim


recursivamente

Estrutura em árvores
Relacionamentos

 Um - para - UM

 Uma pessoa possui um RG e um RG é associado a uma única pessoa

 Um - para – Muitos

 Ex: departamento tem vários empregados

 Muitos - para – Muitos

 Médico possui vários pacientes e paciente é atendido por vários médicos

Exercício 1

► Considere os seguintes dados a armazenar em uma base de dados. Deseja-se


armazenar informações sobre a produção científica de vários pesquisadores. A base de
dados armazena dados sobre artigos científicos publicados por cada pesquisador. Para
cada artigo deseja-se saber o título, o ano e o local de publicação. Para cada artigo é
necessário conhecer seus autores. Para cada autor, deseja-se saber o nome e a
instituição a qual ele está vinculado. Monte o esquema.

► Instituição

► Nome

► Sigla

► Lista de Pesquisadores

► Pesquisadores

► Nome

► RG

► Instituição

► Lista de Artigos

► Artigos

► Titulo

► Ano

► Local Publicação

► Lista de Autores
Exercício 2

► Uma biblioteca deseja informatizar seus serviços A biblioteca possui um acervo de


títulos. Existe mais de um exemplar para cada título. Um titulo pode ter mais de um
autor e possui um código e uma editora.

► Para cada exemplar é guardado um código, uma data de aquisição e um estado.

► Os associados da biblioteca podem fazer vários empréstimos. O empréstimo deve


conter um código, o funcionário responsável e a data.

Você também pode gostar