MODELO HIERÁRQUICO
Ana Carolina Salgado
Fernando Fonseca
Valéria Times
Modelo Hierárquico de Dados


Desenvolvido para modelar os muitos tipos de
organizações hierárquicas existentes no mundo
real
Esquemas de classificação para espécies dos
reinos animal e vegetal
Classificação de línguas humanas
Corporações
Hierarquias governamentais
Representa organizações hierárquicas de forma
direta e natural
Modelo Hierárquico de Dados


Apresenta
problemas
quando
representa
relacionamentos não-hierárquicos
Não existe nenhum documento original para
descrever o modelo
Apareceram sistemas
 TIME-SHARED
DATA
MANAGEMENT
(TDMS)
System Development Corporation
 MULTI-ACCESS
RETRIEVAL
SYSTEM
(MARS VI)
Control Data Corporation
Modelo Hierárquico de Dados
 INFORMATION
(IMS)
IBM
MANAGEMENT
SYSTEMS
Estruturas de Banco de Dados
Hierárquicos

Conceitos Estruturais Principais
Registro
 Coleção de campos de valores que provêm
informação sobre uma entidade ou
relacionamento
 Registros de um mesmo tipo são agrupados
em um tipo de registro
 É dado um nome
 Sua estrutura é definida por uma coleção
de nomes de campos (itens de dados)
 Cada campo tem um tipo de dado como
inteiro, real, etc.
Estruturas de Bancos de Dados
Hierárquicos

Conceitos Estruturais Principais (Cont.)
Relacionamento Pai-Filho
 Relacionamento 1:N entre dois tipos de
registros
 O tipo de registro pai está do lado 1: do
relacionamento, 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
Esquema de BD Hierárquico


Consiste de um dado número de esquemas
hierárquicos ou hierarquias
Cada hierarquia consiste de um um número de
tipos de registros e de relacionamentos paifilho
Diagrama Hierárquico
Forma visual de mostrar um esquema hierárquico
Tipos
de registros são mostrados em
retângulos
Relacionamentos pai-filho são representados
por linhas conectando pai e filho
Diagrama Hierárquico
DEPARTAMENTO
DNOME DNÚMERO DGER
EMPREGADO
NOME NASC CPF
PROJETO
SAL
PNOME PNUMER PLOCAL
TIPOS DE REGISTROS (DEP.,EMP., PROJ.)
RELACIONAMENTO PAI-FILHO:
PAI-FILHO
DEPARTAMENTO-PROJETO
Esquema Hierárquico

Propriedades
Um tipo de registro, chamado de raiz não
participa de relacionamentos como registro
filho
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
Esquema Hierárquico

Propriedades (Cont.)
Um tipo de registro que não participa de
nenhum relacionamento como registro pai, é
chamado de folha
Se um tipo de registro participa em mais de
um relacionamento como registro pai, então
seus tipos de registros filhos são ordenados
 No diagrama hierárquico, por convenção, a
ordenação é da esquerda para a direita
Esquema Hierárquico


Um 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
PROJETO
M:N
EMPREGADO
Esquema Hierárquico
PROJETO
EMPREGADOS TRAB. NO PROJ.
A
E1, E3, E5
B
E2, E4, E6
C
E1, E4
D
E2,E3,E4,E5
Relacionamentos Pai-Filho Virtuais
 Problemas do Modelo Hierárquico
 M:N
 Tipos de registros participarem como
filhos em mais de um relacionamento
Esquema Hierárquico
 Problemas
(Cont.)
 Relacionamentos com mais de dois tipos
de registros
 Casos 1 e 2 podem ser resolvidos por
duplicação
 Gasto de armazenamento
 Manter consistência nas cópias de um
mesmo registro
 Caso 3
 Tipos de relacionamentos hierárquicos
são binários
Esquema Hierárquico
 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)
Esquema Hierárquico
 Relacionamento
PROJETO
Virtual
No diagrama, uma seta sairá do filho
virtual para o pai virtual
Hierarquia 1
Hierarquia 2
PROJETO
EMPREGADO
EPONTEIRO
EMPREGADO
Restrições de Integridade

Nenhuma ocorrência de registro, exceto raízes,
pode existir sem estar relacionada a uma
ocorrência de registro pai
Um registro filho não pode ser inserido sem
estar ligado a um registro pai
Um
registro filho pode ser removido
independentemente de seu registro pai
A remoção de um registro pai resulta em todos
os seus filhos e descendentes sendo
removidos automaticamente
Restrições de Integridade
Um



ponteiro num filho virtual tem que apontar
para um registro pai virtual existente
 A remoção de um registro pai virtual não
deve ser permitida enquanto 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
Regras particulares a cada SGBD implementado
Um Exemplo

Modelo Hierárquico de uma Companhia
Departamentos descritos por Nome e Número
Locais descritos por um Código e Endereço
Projetos descritos por Nome, Número e Local
Empregados descritos por Nome, CPF e
Salário
Dependentes descritos por Nome, Nascimento
e Parentesco
Um Exemplo
Considerar
também
 Cada Departamento está situado em vários
locais
 Cada Projeto é da responsabilidade de um
único Departamento
 Empregados estão alocados a um único
Departamento. Eles podem atuar em mais
de um Projeto e vice-versa
 Cada
Empregado
pode
ter
vários
Dependentes, mas cada um desses só pode
estar ligado a um único Empregado
Um Exemplo
 Empregados
são supervisionados por um
único Empregado.
 Um Departamento pode ter mais de um
gerente e deseja-se guardar a data de início
de cada um deles como gerente. Porém,
cada Empregado gerencia um único
Departamento.
DEPARTAMENTO
DNOME
EMPREGADO
DNÚMERO
ENOME
ECPF
ESAL
LOCAL
PROJETO
SUPERVISÃO
LCOD END
PNOME PNUM PLOC
PTS
GERENTE
TRABALHA
INÍCIO PTG
PODE ATUAR
PTP
PTE
DEPENDENTE
ATUA
HORAS PTT
HIERARQUIA 1
DPNOME DPNASC
DPPAR
HIERARQUIA 2
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 virtuais
Definição de Dados

Sintaxe
schema name = < nome >
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) >]
Definição de Dados

Sintaxe (Cont.)
/*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) >]
Definição de Dados

Sintaxe (Cont.)
/*Registro Virtual*/
...
data items =
[ < nomes de campo > < tipo > ]
< nome do ponteiro > pointer with
virtual parent = < pai virtual >
Definição de Dados - Exemplo
schema name = Companhia
hierarchies = Hierachia 1, Hierarchia 2
/*Raiz*/
record
name = Empregado
type = root of Hierarchia 2
data items =
Enome character 15
ECPF character 12
Esalário real
key = ECPF
order by Enome
Definição de Dados - Exemplo
/*Outros*/
record
name = Dependente
parent = Empregado
child number = 1
data items =
DPnome character 20
DPnasc date
Dppar
character 10
key = DPnome
order by DPnasc
Definição de Dados - Exemplo
/*Registro Virtual*/
record
name = Supervisão
parent = Empregado
child number = 2
data items =
PTS pointer with virtual parent = Empregado
Vantagens e Desvantagens


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 declarativas
Download

hierarquico