PublicouVictoria Caldeira Alterado mais de 3 anos atrás
2 Modelo em Rede Definido pelo Comitê CODASYL (Conference on Data Systems Language) Apresentado pelo "Data Base Task Group" (DBTG) em Por isso também chamado Modelo DBTG Sua estrutura é uma forma ampliada da estrutura hierárquica
3 Estruturas de Banco de Dados em Rede
Conceitos Estruturais Principais Registro Grupo de valores de dados inter-relacionados 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.
4 Estruturas de Bancos de Dados em Rede
Conceitos Estruturais Principais (Cont.) Permite definição de itens de dados complexos (compostos e multivalorados) Um vetor é um item de dado que pode ter múltiplos valores Um item de repetição permite a inclusão de um conjunto de valores compostos em um registro Estudante Nome Matrículas Ano Disciplina Semestre Nota
5 Estruturas de Bancos de Dados Hierárquicos
Conceitos Estruturais Principais (Cont.) Grupo (Set Type) Relacionamento 1:N entre dois tipos de registros Cada grupo consiste de 3 elementos básicos: um nome de grupo um tipo de registro proprietário um tipo de registro membro Departamento Empregado EmpDepto
6 Estruturas de Bancos de Dados em Rede
Conceitos Estruturais Principais (Cont.) Instância (ou ocorrência) de Grupo Composta por: um registro proprietário um número (zero ou mais) de registros membros Um tipo de registro membro não pode existir em mais de uma instância de grupo, mantendo a restrição que um grupo representa um relacionamento 1:N
7 Estruturas de Bancos de Dados em Rede
Conceitos Estruturais Principais (Cont.) Relacionamentos 1:1 Cada instância deve se restringir a ter apenas um registro membro. Mas isto não é garantido pelo sistema, o programador deve checar no momento a inserção. Relacionamentos M:N Não podem ser representados por um único grupo. São representados por dois grupos e um registro adicional chamado de ligação (ou dummy).
8 Estruturas de Bancos de Dados em Rede
Conceitos Estruturais Principais (Cont.) Exemplo de um relacionamento M:N Empregado Projeto ProjTrab EmpTrab Trabalha horas
9 Restrições de Integridade
INCLUSÃO de um tipo de registro membro Duas opções: AUTOMÁTICA: o novo registro é automaticamente conectado à ocorrência do grupo apropriado MANUAL: o novo registro não é conectado a uma ocorrência de grupo. Se necessário, o registro é conectado depois, através do comando connect INSERTION IS <modo de inserção>
10 Restrições de Integridade
RETENÇÃO: especifica se um registro membro pode existir ou não independente de um proprietário Três opções: OPCIONAL: pode existir por conta própria, sem ser membro de uma ocorrência de grupo OBRIGATÓRIO: deve sempre estar associado a uma ocorrência de grupo FIXO: como o obrigatório e uma vez associado a uma ocorrência, ele não pode ser reconectado a outra. RETENTION IS <modo de retenção>
11 Um Exemplo Modelo Hierárquico de uma Companhia
Departamentos são descritos por Nome , Número e um conjunto de Locais. Projetos são descritos por Nome, Número e Local Empregados são descritos por Nome, CPF e Salário Dependentes são descritos por Nome, Data de Nascimento e Grau de Parentesco
12 Um Exemplo Considerar também
Cada Projeto é da responsabilidade de um único Departamento Empregados trabalham em um só Departamento e o mesmo possui vários Empregados Empregados atuam em mais de um Projeto e um projeto envolve vários empregados. Cada Empregado pode ter vários Dependentes, mas cada um desses só pode estar ligado a um único Empregado
13 Um Exemplo Empregados são supervisionados por um outro Empregado.
Um Departamento tem um Empregado gerente que pode gerenciar vários Departamentos. Porém, cada um deles gerencia um único Departamento.
14 EMPREGADO ENOME ECPF ESAL SNOME DEPARTAMENTO DNOME DNUM DLOC TRABALHA
Dependente-de Supervisiona Etrab Gerencia Possui SUPERVISÃO SNOME DEPARTAMENTO DNOME DNUM DLOC Controla TRABALHA PTE Ptrab DEPENDENTE DPNOME DPNASC DPPAR PROJETO PNOME PNUM PLOC
15 Definição de Dados Linguagem de Definição de Dados - DDL
SCHEMA NAME IS COMPANY RECORD NAME IS EMPREGADO DUPLICATES ARE NOT ALLOWED FOR ENOME ENOME	TYPE IS	CHARACTER 20 ECPF	TYPE IS CHARACTER 11 ESAL	TYPE IS	NUMERIC (7,2)
16 Definição de Dados Linguagem de Definição de Dados - DDL
SET NAME IS GERENCIA OWNER IS EMPREGADO MEMBER IS DEPARTAMENTO INSERTION IS AUTOMATIC RETENTION IS MANDATORY
17 Operações Acesso FIND: localiza um registro no BD e atualiza os valores dos apontadores correntes GET: copia o registro indicado pelo apontador da unidade de execução na área de trabalho FIND ANY <tipo-reg> using <campo> DUPLICATE Ex: Empregado.Sal := 5000; FIND ANY Empregado USING Sal; While db-status = 0 DO begin GET Empregado; PRINT (Empregado.Nome); FIND DUPLICATE Empregado using Sal; end;
18 Operações Acesso de registros em um grupo
FIND FIRST <tipo-reg> WITHIN <grupo> NEXT FIND OWNER WITHIN <grupo> Ex: Empregado.Sal := 5000; FIND ANY Empregado USING Sal; FIND FIRST Dependente WITHIN Dependente-de While db-status = 0 DO begin GET Dependente; PRINT (Dependente.Nome); FIND NEXT Dependente WITHIN Dependente-de; end;
19 Operações Inclusão STORE <tipo-reg> Modificação
MODIFY <tipo-reg> Requer que o registro a ser modificado seja acessado através de um FIND FOR UPDATE Remoção ERASE <tipo-reg> ERASE ALL <tipo-reg> : remove o mestre e todos os membros Também requer o FIND FOR UPDATE
20 Operações Operações sobre Grupos:
CONNECT <tipo-reg> TO <tipo-grupo> Liga o registro inserido ao proprietário do grupo indicado DISCONNECT <tipo-reg> FROM <tipo-grupo> Remove o registro de um grupo mas não elimina do BD RECONNECT <tipo-reg> TO <tipo-grupo> Move o registro de uma ocorrência de um grupo para outra do mesmo tipo
21 Operações Operações sobre Grupos: ORDER IS <modo-ordem>
Define a ordem de inserção de um novo registro Modo-ordem:	FIRST LAST NEXT PRIOR SYSTEM DEFAULT SORTED
Estrutura simétrica do sistema (flexibilidade) Representação natural dos relacionamentos M:N Ausência de anomalias de atualização Comercialização importante dos SGBD (IMS, TOTAL, DBMS/10,...) Desvantagens: Ausência de independência em relação às estratégias de acesso Maneira procedimental das linguagens de manipulação; o usuário deve "navegar" na rede constituída pelos registros e cadeias de apontadores.