1 / 29

MODELO HIERÁRQUICO

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

Download Presentation

MODELO HIERÁRQUICO

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MODELOHIERÁRQUICO Ana Carolina Salgado Fernando Fonseca Valéria Times

  2. 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

  3. 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

  4. Modelo Hierárquico de Dados • INFORMATION MANAGEMENT SYSTEMS (IMS) IBM

  5. 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.

  6. 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

  7. 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

  8. DEPARTAMENTO DNOME DNÚMERO DGER EMPREGADO PROJETO NOME NASC CPF SAL PNOME PNUMER PLOCAL TIPOS DE REGISTROS (DEP.,EMP., PROJ.) RELACIONAMENTO PAI-FILHO: DEPARTAMENTO-PROJETO RELACIONAMENTO PAI-FILHO Diagrama Hierárquico

  9. 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

  10. 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

  11. PROJETO M:N EMPREGADO 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

  12. 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

  13. 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

  14. 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)

  15. Hierarquia 1 Hierarquia 2 PROJETO EMPREGADO Esquema Hierárquico • Relacionamento Virtual No diagrama, uma seta sairá do filho virtual para o pai virtual PROJETO EMPREGADO EPONTEIRO

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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.

  21. DEPARTAMENTO EMPREGADO DNOME DNÚMERO ENOME ECPF ESAL LOCAL PROJETO SUPERVISÃO LCOD END PTS PNOME PNUM PLOC PODE ATUAR GERENTE TRABALHA PTP INÍCIO PTG PTE DEPENDENTE ATUA DPNOME DPNASC DPPAR HORAS PTT HIERARQUIA 2 HIERARQUIA 1

  22. 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

  23. 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) >]

  24. 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) >]

  25. Definição de Dados • Sintaxe (Cont.) /*Registro Virtual*/ . . . data items = [ < nomes de campo > < tipo > ] < nome do ponteiro > pointer with virtual parent = < pai virtual >

  26. 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

  27. 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

  28. Definição de Dados - Exemplo /*Registro Virtual*/ record name = Supervisão parent = Empregado child number = 2 data items = PTS pointer with virtual parent = Empregado

  29. 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

More Related