Banco de Dados Abordagem Hierárquica Prof. Alexander Roberto Valdameri Contextualização • Não existe documentação original, não há homologação; • Baseado IMS – Information Management System, mais utilizado ainda hoje; • Utilizado em ambientes corporativos – Mainframe. 2 Estruturas Básicas do Modelo • Dados – representados registros; • Tipos de registros – estrutura de dados com itens de dado (atributo); • Tipos de relacionamento pai-filho – RPF, cardinalidade 1:N, onde: • • o registro do lado “1” é chamado de tipo registro pai; o(s) registro(s) do lado “N” chamado(s) tipo registro filho. 3 BD Hierárquico - Representação DEPARTAMENTO CD_DEPTO NM_DEPTO NM_GERENTE EMPREGADO CD_EMP NM_EMP PROJETO DT_NASC SUPERVISOR CD_SUP NM_SUP CD_PROJ NM_PROJ DS_LOC DEPENDENTE CD_DEP NM_DEP DT_NASC 4 Linguagem de Definição - DDL schema name = EMPRESA Hierarchies = HIERARQUIA1 record name = DEPARTAMENTO type = RAIZ DE HIERARQUIA1 data items = CD_DEPTO NM_DEPTO NM_GERENTE key = CD_DEPTO order by = NM_DEPTO record name = EMPREGADO parent = DEPARTAMENTO child NUMBER = 1 data items = CD_EMP NM_EMP DT_NASC key = CD_EMP order by = NM_EMP integer character(20) character(30) integer character(30) character(08) 5 Linguagem de Definição - DDL record name = PROJETO parent = DEPARTAMENTO child NUMBER = 2 data items = CD_PROJ NM_PROJ DS_LOC key = CD_PROJ order by = NM_PROJ record name = SUPERVISOR parent = EMPREGADO child NUMBER = 1 data items = CD_SUP NM_SUP key = CD_SUP order by = NM_SUP integer character(20) character(15) integer character(30) 6 BD Hierárquico – Representação com replicação de dados Fonte: http://www.cs.yale.edu/homes/avi/db-book/b.pdf 7 BD Hierárquico – Representação solução alternativa para replicação de dados Fonte: http://www.cs.yale.edu/homes/avi/db-book/b.pdf 8 Linguagem de Manipulação - DML Alguns Comandos DML: GET INSERT DELETE REPLACE Recuperação Atualização de Registros A linguagem hospedeira é chamada de DL/1. 9 Resumindo… • Dificuldade na implementação; • Buscas mais complexas pela necessidade de navegação na estrutura de árvore; • Manteve-se, durante anos, à frente do modelo relacional pelas características das implementações. 10 Outros Produtos: • ADABAS http://www.consist.com.br/brasil/adabas/informacao.htm • IBM IMS http://www.ibm.com/br/products/software/db2/ts/ims.phtml • SYSTEM 2000 http://www.sas.com/products/system2000/index.html 11 Banco de Dados Abordagem em Rede Contextualização • Em 1971, relatório apresentado pelo Database Task Group cria o CODASYL - Conference on Data Sistems Languages; • Em 1978 e 1981 novos conceitos são incorporados, passa ser conhecido como “Modelo de Rede”; • Linguagem Cobol como anfitriã (host). 13 Estruturas Básicas do Modelo • Dados – representados em registros; • Tipos de registros – estrutura de dados com itens de dado (atributo); • Tipos Conjunto – descrição de uma relação 1:N entre dois tipos de registros. 14 Estruturas Básicas do Modelo • Relacionamentos entre os dados – representados por ligações (ponteiros); • Registros no BD são organizados como coleções arbitrárias de gráfos; • Trata-se de um “sistema de navegação”. 15 BD em Rede – Modelo de Dados Departamento Registro Proprietário Sistemas e Computação ... Alisson Rafael Appio ... Leonardo Hyppolito ... Silvia Hedla Correia Sales ... Léo Jonathan Faht ... Aluno Registro Membro 16 BD em Rede – Representação Registro Departamento Sistemas e Computação Alisson Rafael Appio ... Leonardo Hyppolito Registro Aluno ... • • ... • Silvia Hedla Correia Sales Léo Jonathan Faht ... • ... • 17 BD em Rede – Representação EMPREGADO Codigo_Empregado PROJETO ... E_P ... P_E PROJETO Codigo_Projeto Codigo_Projeto EMPREGADO ... Codigo_Empregado ... 18 BD em Rede – Representação EMPREGADO Codigo_Empregado P_E ... E_P PROJETO Codigo_Projeto Modelo em Rede não permite representar um relacionamento N:N entre dois tipos de registros em um único tipo de conjunto. ... 19 BD em Rede – Representação EMPREGADO Codigo_Empregado PROJETO ... Codigo_Projeto E_T ... P_T TRABALHA_EM Numero_Horas ... Este tipo de registro adicional de conjunto “TRABALHA_EM” é denominado tipo de registro de ligação. 20 Linguagem de Definição - DDL schema name is EMPRESA record name is EMPREGADO duplicates are not allowed for CODIGO_EMPREGADO CODIGO_EMPREGADO type is numeric integer NOME_EMPREGADO type is character 30 record name is PROJETO duplicates are not allowed for CODIGO_PROJETO CODIGO_PROJETO type is numeric integer NOME_PROJETO type is character 20 LOCAL_PROJETO type is character 15 record name is TRABALHA_EM duplicates are not allowed for CODIGO_EMPREGADO,CODIGO_PROJETO CODIGO_EMPREGADO type is numeric integer CODIGO_PROJETO type is numeric integer NUMERO_HORAS type is numeric (4,1) 21 BD em Rede – Representação Não há necessidade de redundância (replicação) do dado. Fonte: http://www.cs.yale.edu/homes/avi/db-book/a.pdf 22 Linguagem de Manipulação - DML Alguns Comandos DML: FIND Navegação GET Recuperação STORE ERASE MODIFY Atualização de Registros CONNECT DISCONNECT RECONNECT Atualização de Conjuntos 23 Resumindo… • Fortemente dependente da implementação; • Buscas mais complexas em comparação com o relacional; • Aumento significativo no trabalho do programador, seja para o projeto como para a manipulação de dados. 24 Outros Produtos: • • • • • IDS – Honeywell Inc. VAX-DBMS – Digital Inc. TOTAL/SUPRA – Cincom Inc. IDMS – Xerox. IMAGE – Hewlett-Packard. 25 Exercícios: 1. Explique a diferença entre os SGBDs baseados nos modelos hierárquico, de rede e relacional. 2. Cite algumas desvantagens do modelo hierárquico em relação ao modelo de rede. 3. Comente sobre a independência lógica e física dos dados nos modelos hierárquicos e de rede. 4. Por que ocorreu uma certa resistência por parte das empresas ao adotarem o CODASYL como produto para gerenciamento de dados? 5. Em qual(is) arquitetura(s) os modelos de rede e hierárquico eram/são encontrados? 26