Prof. Alexander Roberto Valdameri Banco de Dados Abordagem Hierárquica.
Transcript of Prof. Alexander Roberto Valdameri Banco de Dados Abordagem Hierárquica.
Prof. Alexander Roberto Valdameri
Banco de Dados Banco de Dados Abordagem Abordagem
HierárquicaHierárquica
2
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.
3
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.
4
BD Hierárquico - Representação
DEPARTAMENTO
CD_DEPTO NM_DEPTO NM_GERENTE
EMPREGADO
CD_EMP NM_EMP DT_NASC
PROJETO
CD_PROJ NM_PROJ DS_LOC
DEPENDENTE
CD_DEP NM_DEP DT_NASC
SUPERVISOR
CD_SUP NM_SUP
5
Linguagem de Definição - DDLschema name = EMPRESAHierarchies = HIERARQUIA1record name = DEPARTAMENTO type = RAIZ DE HIERARQUIA1 data items = CD_DEPTO integer
NM_DEPTO character(20) NM_GERENTE character(30)
key = CD_DEPTO order by = NM_DEPTO
record name = EMPREGADO parent = DEPARTAMENTO child NUMBER = 1 data items = CD_EMP integer
NM_EMP character(30) DT_NASC character(08)
key = CD_EMP order by = NM_EMP
6
Linguagem de Definição - DDLrecord name = PROJETO
parent = DEPARTAMENTO
child NUMBER = 2
data items = CD_PROJ integer
NM_PROJ character(20)
DS_LOC character(15)
key = CD_PROJ
order by = NM_PROJ
record name = SUPERVISOR parent = EMPREGADO child NUMBER = 1 data items = CD_SUP integer
NM_SUP character(30) key = CD_SUP order by = NM_SUP
7
Fonte: http://www.cs.yale.edu/homes/avi/db-book/b.pdf
BD Hierárquico – Representaçãocom replicação de dados
8
Fonte: http://www.cs.yale.edu/homes/avi/db-book/b.pdf
BD Hierárquico – Representaçãosolução alternativa para replicação de dados
9
Linguagem de Manipulação - DML
Alguns Comandos DML:
GET Recuperação
INSERT
DELETE
REPLACE
Atualização de Registros
A linguagem hospedeira é chamada de DL/1.
10
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.
11
Outros Produtos:
• ADABAShttp://www.consist.com.br/brasil/adabas/informacao.htm
• IBM IMShttp://www.ibm.com/br/products/software/db2/ts/ims.phtml
• SYSTEM 2000http://www.sas.com/products/system2000/index.html
Banco de Dados Banco de Dados Abordagem em RedeAbordagem em Rede
13
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).
14
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.
15
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”.
16
BD em Rede – Modelo de Dados
Sistemas e Computação ...
Alisson Rafael Appio ...
Leonardo Hyppolito ...
Silvia Hedla Correia Sales ...
Léo Jonathan Faht ...
DepartamentoRegistro Proprietário
AlunoRegistro Membro
17
BD em Rede – Representação
Sistemas e Computação ...
Alisson Rafael Appio ...
Leonardo Hyppolito ...
Silvia Hedla Correia Sales ...
Léo Jonathan Faht ...
Registro Departamento
Registro Aluno
•
•
•
•
•
18
BD em Rede – Representação
EMPREGADO
Codigo_Empregado ...
PROJETO
Codigo_Projeto ...
E_P
EMPREGADO
Codigo_Empregado ...
PROJETO
Codigo_Projeto ...
P_E
19
BD em Rede – Representação
E_PP_E
EMPREGADO
Codigo_Empregado ...
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.
20
BD em Rede – Representação
E_T P_T
EMPREGADO
Codigo_Empregado ...
PROJETO
Codigo_Projeto ...
Este tipo de registro adicional de conjunto “TRABALHA_EM” é denominado tipo de registro de
ligação.
TRABALHA_EM
Numero_Horas ...
21
Linguagem de Definição - DDLschema 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)
22
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
23
Linguagem de Manipulação - DML
Alguns Comandos DML:FIND Navegação
GET Recuperação
STORE
ERASE
MODIFYAtualização de Registros
CONNECT
DISCONNECT
RECONNECT Atualização de Conjuntos
24
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.
25
Outros Produtos:
• IDS – Honeywell Inc.• VAX-DBMS – Digital Inc.• TOTAL/SUPRA – Cincom Inc.• IDMS – Xerox.• IMAGE – Hewlett-Packard.
26
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?