modelo hierÁrquico ana carolina salgado fernando fonseca valéria times
TRANSCRIPT
MODELO HIERÁRQUICO
Ana Carolina Salgado
Fernando FonsecaValé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 MANAGEMENT SYSTEMS (IMS)
IBM
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 nomeSua 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 pai-filho 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 SAL
PROJETO
PNOME PNUMER PLOCAL
TIPOS DE REGISTROS (DEP.,EMP., PROJ.)
RELACIONAMENTO PAI-FILHORELACIONAMENTO 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
EMPREGADO
M:N
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çãoGasto de armazenamentoManter consistência nas cópias de um
mesmo registro Caso 3
Tipos de relacionamentos hierárquicos são binários
Esquema Hierárquico
SoluçãoUtilizar um tipo de registro virtual -
PONTEIROCada 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 Virtual
No diagrama, uma seta sairá do filho virtual para o pai virtual
PROJETO
EMPREGADO
PROJETO
EPONTEIRO
EMPREGADO
Hierarquia 1 Hierarquia 2
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.
PODE ATUAR
PTP
DEPARTAMENTO
DNOME DNÚMERO
EMPREGADO
ENOME ECPF ESAL
PROJETO
PNOME PNUM PLOC
GERENTE
INÍCIO PTG
TRABALHA
PTE
ATUA
HORAS PTT
SUPERVISÃO
PTS
DEPENDENTE
DPNOME DPNASC DPPAR
HIERARQUIA 1 HIERARQUIA 2
LOCAL
LCOD END
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 - Exemploschema 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