330 likes | 515 Views
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
E N D
MODELOHIERÁ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 • Classificação de línguas humanas • Corporações • Hierarquias governamentais • Representa organizações hierárquicas de forma direta e natural
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
Modelo Hierárquico de Dados • INFORMATION MANAGEMENT SYSTEMS (IMS) IBM
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.
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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.
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
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
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) >]
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) >]
Definição de Dados • Sintaxe (Cont.) /*Registro Virtual*/ . . . data items = [ < nomes de campo > < tipo > ] < nome do ponteiro > pointer with virtual parent = < pai virtual >
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 /*Outros*/ record name = Dependente parent = Empregado child number = 1 data items = DPnome character 20 DPnasc date Dppar character 10 key = DPnome order by DPnasc
Definição de Dados - Exemplo /*Registro Virtual*/ record name = Supervisão parent = Empregado child number = 2 data items = PTS pointer with virtual parent = Empregado
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