Modelo Hierárquico de Dados MODELO HIERÁRQUICO F Ana Carolina Salgado Fernando Fonseca Valéria Times /Classificação F Apresenta problemas quando relacionamentos não -hierárquicos F representa 4 INFORMATION ßÉ 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. ßSua MANAGEMENT SYSTEMS (IMS) IBM Não existe nenhum documento original para descrever o modelo /Apareceram sistemas 4 TIME- SHARED DATA MANAGEMENT (TDMS) System Development Corporation 4 MULTI - ACCESS RETRIEVAL SYSTEM (MARS VI) Control Data Corporation Conceitos Estruturais Principais /Registro 4 Coleção de campos de valores que provêm informação sobre uma entidade ou relacionamento 4 Registros de um mesmo tipo são agrupados em um tipo de registro /Hierarquias governamentais Representa organizações hierárquicas de forma direta e natural Modelo Hierárquico de Dados Estruturas de Banco de Dados Hierárquicos F de línguas humanas /Corporações Modelo Hierárquico de Dados F 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 Estruturas de Bancos de Dados Hierárquicos F Conceitos Estruturais Principais (Cont.) /Relacionamento Pai -Filho 4 Relacionamento 1:N entre dois tipos de registros 4 O tipo de registro pai está do lado 1: do relacionamento, enquanto o tipo filho está do lado :N 4 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 1 Esquema de BD Hierárquico F F Diagrama Hierárquico DEPARTAMENTO 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 DNOME EMPREGADO NOME NASC CPF PROJETO SAL 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 F 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 4 No diagrama hierárquico, por convenção, a ordenação é da esquerda para a direita Esquema Hierárquico F Um esquema hierárquico define uma estrutura de dados em árvore /Tipos de registros são nós /Tipos F de relacionamentos são arcos Representação de Relacionamentos M:N /Através da duplicação de instâncias registro filho PROJETO M:N EMPREGADO do PNOME PNUMER PLOCAL TIPOS DE REGISTROS (DEP.,EMP., PROJ.) RELACIONAMENTO PAI- FILHO: FILHO DEPARTAMENTO- PROJETO Esquema Hierárquico F DNÚMERO DGER Esquema Hierárquico PROJETO A EMPREGADOS TRAB. NO PROJ. E1, E3, E5 B E2, E4, E6 C E1, E4 D E2,E3,E4,E5 /Relacionamentos Pai -Filho Virtuais 4 Problemas do Modelo Hierárquico ¶ M:N · Tipos de registros participarem como filhos em mais de um relacionamento 2 Esquema Hierárquico 4 Problemas Esquema Hierárquico (Cont.) ¸ Relacionamentos 4 Solução com mais de dois tipos ßUtilizar um tipo de registro virtual PONTEIRO de registros 4 Casos 1 e 2 podem ser resolvidos por duplicação ßGasto de armazenamento ßManter consistência nas cópias de um mesmo registro 4 Caso 3 ø 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) ßTipos de relacionamentos hierárquicos são binários Esquema Hierárquico ø Relacionamento PROJETO Virtual No diagrama, uma seta sairá do filho virtual para o pai virtual Hierarquia 1 Hierarquia 2 PROJETO Restrições de Integridade F EMPREGADO 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 EMPREGADO EPONTEIRO Restrições de Integridade /Um F F F ponteiro num filho virtual tem que apontar para um registro pai virtual existente 4 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 F Modelo Hierárquico de uma Companhia /Departamentos descritos por Nome e Número /Locais descritos por um Código e Endereço descritos por Nome, Número e Local /Empregados descritos por Nome, CPF e Salário /Dependentes descritos por Nome, Nascimento e Parentesco /Projetos 3 Um Exemplo Um Exemplo /Considerar também Departamento está situado em vários locais 4 Empregados são supervisionados por um único Empregado. 4 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. 4 Cada 4 Cada Projeto é da responsabilidade de um único Departamento 4 Empregados estão alocados a um único Departamento. Eles podem atuar em mais de um Projeto e vice-versa 4 Cada Empregado pode ter vários Dependentes, mas cada um desses só pode estar ligado a um único Empregado DEPARTAMENTO DNOME EMPREGADO DNÚMERO ENOME LOCAL PROJETO LCOD END PNOME PNUM PLOC GERENTE Definição de Dados ESAL SUPERVISÃO F PTS campos de cada tipo de registro tipos de dados de cada campo 4 Definir chaves e restrições 4 Determinar raízes 4 Definir PTP PTE DEPENDENTE ATUA DPNOME DPNASC PTT HIERARQUIA 1 Linguagem Hierárquica de Definição de Dados HDDL /Para definir um Esquema de BD Hierárquico 4 Definir PODE ATUAR TRABALHA INÍCIO PTG ECPF 4 Para DPPAR cada registro não -raiz determinar o pai relacionamentos virtuais 4 Especificar HIERARQUIA 2 Definição de Dados F 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 F 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) >] 4 Definição de Dados F Sintaxe (Cont.) /*Registro Virtual*/ ... data items = [ < nomes de campo > < tipo > ] < nome do ponteiro > pointer with virtual parent = < pai virtual > Definição de Dados - Exemplo /*Outros*/ record name = Dependente parent = Empregado child number = 1 data items = DPnome character 20 DPnasc date Dppar character 10 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 /*Registro Virtual*/ record name = Supervisão parent = Empregado child number = 2 data items = PTS pointer with virtual parent = Empregado key = DPnome order by DPnasc Vantagens e Desvantagens F F 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 5