Escolar Documentos
Profissional Documentos
Cultura Documentos
Corporações
Hierarquias governamentais
DEPARTAMENTO
DNOME DNÚMERO DGER
EMPREGADO PROJETO
NOME NASC CPF SAL PNOME PNUMER PLOCAL
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
M:N
Problemas (Cont.)
Relacionamentos com mais de dois tipos
de registros
Casos 1 e 2 podem ser resolvidos por
duplicação
Gasto de armazenamento
Solução
Relacionamento Virtual
No diagrama, uma seta sairá do filho
virtual para o pai virtual
Hierarquia 1 Hierarquia 2
PROJETO
PROJETO EMPREGADO
EMPREGADO
EPONTEIRO
Restrições de Integridade
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
DEPENDENTE
ATUA
DPNOME DPNASC DPPAR
HORAS PTT
HIERARQUIA 2
HIERARQUIA 1
Definição de Dados
Determinar raízes
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