Cap­tulo 2: Evolu§£o dos Modelos de Dados e dos Sistemas de Gerenciamento de Banco de Dados Banco de Dados II Prof. Carlos Eduardo Pires cesp@dsc.ufcg.edu.br

  • View
    107

  • Download
    0

Embed Size (px)

Text of Cap­tulo 2: Evolu§£o dos Modelos de Dados e dos Sistemas de Gerenciamento de Banco de...

  • Slide 1
  • Captulo 2: Evoluo dos Modelos de Dados e dos Sistemas de Gerenciamento de Banco de Dados Banco de Dados II Prof. Carlos Eduardo Pires cesp@dsc.ufcg.edu.br
  • Slide 2
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados2 Agenda I.1 Um Hiato entre Especificao e Implementao I.2 Especificao: Evoluo dos Modelos Conceituais I.3 Implementao: Evoluo dos Modelos Lgicos I.4 Projeto de Aplicaes de Banco de Dados
  • Slide 3
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados3 Especificao Implementao I.1 Um Hiato entre Especificao e Implementao
  • Slide 4
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados4 Nvel de Abstrao Especificao (Modelagem Conceitual) Implementao (Modelagem Lgica) Modelo Relacional Modelo de Entidade e Relacionamento BD I Modelo de Objeto Modelo Objeto- Relacional BD II
  • Slide 5
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados5 I.2 Especificao: Evoluo dos Modelos Conceituais
  • Slide 6
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados6 Modelo de Entidade e Relacionamento Idia Bsica: Entidade Atributos atmicos, compostos e multivalorados (colees) Relacionamentos entre entidades Instncias de Entidade Associaes entre instncias de entidade Ponto Negativo Modelo Esttico Omisso quanto s operaes com (instncias) de entidades
  • Slide 7
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados7 Elementos de um Modelo de Objeto Idia Bsica: Objeto Atributos complexos ou estruturados Atributos coleo Conjunto, Bag, Lista, Array Atributo Identidade (OID) Uma instncia identifica um objeto Transparente e independente de aplicao Associaes entre objetos Se um objeto A est associado a um objeto B, ento A deve fazer referncia ou apontar para B, ou A contm o OID de B, e/ou vice- versa Operaes (Mtodos)
  • Slide 8
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados8 Classe de Objetos Atributos e associaes comuns a um conjunto de objetos Atributo(s) chave Relacionamentos entre classes de objeto Exprimem as associaes entre objetos Classe persistente Repositrio de objetos da classe
  • Slide 9
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados9 Exemplo de Classe de Objeto Classe Estudante Atributos Matrcula > Nome Endereo Rua Nmero Bairro Cep Prefixo Sufixo Data_nasc Historico_escolar Conjunto Disciplinas_feitas Referncia_disciplina, perodo, media_final, status O atributo OID transparente
  • Slide 10
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados10 Exemplo de Classe de Objeto (cont.) Classe Estudante Mtodos Calcula CRE Crditos Restantes Emisso do Histrico Escolar... Relacionamentos com outras classes Matriculado em Disciplina Repositrio: Estudantes
  • Slide 11
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados11 Hierarquia de Classe possvel declarar uma classe S como uma subclasse de outra classe C S herda todas as propriedades da classe C, isto , os atributos, os mtodos e os relacionamentos de C S pode ter seus prprios atributos, suas prprias operaes, seus prprios relacionamentos e seu prprio repositrio (S uma extenso de C) Exemplo: a classe Estudante uma subclasse de Pessoa Relacionamento Subclasse _um(a) (Sub)Classe Multiplicidade 1:1
  • Slide 12
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados12 Tipos de Mtodos Mtodos de Instncia Aplicveis a um nico objeto Exemplo est.disciplinas_em_curso(), aplicvel a um objeto da classe Estudante (est um objeto da classe Estudante) Parmetro de entrada implcito: objeto self ou this Mtodos de Classe No podem fazer referncia a objeto self ou this Exemplo Estudante.nmero_estudantes()
  • Slide 13
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados13 Mtodos Assinatura de um mtodo (ou interface) Compreende Nome do mtodo Parmetros Tipo do valor de retorno (opcional) Comentrios sobre a lgica do mtodo Corpo (Cdigo)
  • Slide 14
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados14 Mtodos Sobrecarga (Overloading) Mtodos de uma classe com o mesmo nome, porm com pelo menos um argumento diferente imprime_histrico_escolar ( ) Sem argumentos imprime_histrico_escolar (formato: string) Um argumento do tipo String
  • Slide 15
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados15 Mtodos Polimorfismo Dois mtodos, de classes diferentes, so polimorfos se tm a mesma assinatura O conceito de polimorfismo extremamente til em hierarquias de classes, mas no restrito a elas Aluno_especial _um Aluno Aluno_especial.histrico_escolar() Aluno.histrico_escolar()
  • Slide 16
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados16 Banco de Dados Orientado a Objetos Modelo Relacional Usado para modelar aplicaes que lidam com tarefas de gerenciamento de dados simples Itens dados so registros pequenos com campos atmicos Limitado para aplicaes complexas Projetos de Engenharia (Computer-aided Design CAD) Sistemas de Informaes Geogrficas (Geographical Information Systems GIS) Sistemas Cooperativos (Computer Supported Cooperative Work CSCW)
  • Slide 17
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados17 Banco de Dados Orientado a Objetos Requisitos Impostos pelas Aplicaes Complexas aos SGBD tradicionais Necessidade de lidar com maior volume de dados Manipulao de dados em formatos complexos Tratamento de esquemas evolutivos e dinmicos Transaes longas
  • Slide 18
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados18 Banco de Dados Orientado a Objetos Esquema Orientado a Objeto (Esquema OO) Um conjunto de classes persistentes e transitrias, segundo um modelo de esquema OO Classes persistentes (concretas) Com repositrio Classes transitrias (abstratas) Sem repositrio BD OO Um conjunto de repositrios Consultas sobre os repositrios Linguagem declarativa de consulta a objetos
  • Slide 19
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados19 BD OO: Exemplo de Esquema Classes Estudante, Disciplina, Curso, Repositrios Pessoa (classe abstrata) Estudantes : Joo, Maria, Jos, Disciplinas : BD I, BD II, Cursos : Bacharelado em CC,
  • Slide 20
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados20 Exemplos de SGBDOO Cach http://www.intersystems.com/ DB4O http://www.db4o.com/ (cdigo aberto) Objectivity/DB http://www.objectivity.com/ Object Store http://www.progress.com/objectstore/index.ssp Ozone http://www.ozone-db.org./frames/home/what.html (cdigo aberto) Versant Object Database http://www.versant.com/
  • Slide 21
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados21 Consrcio ODMG (Object Data Management Group) Formado por vendedores e fabricantes de SGBDOO Definir padres (classes e outras construes) para acrescentar persistncia a C++ e Java Encerrou suas atividades em 2002 Nenhum padro teve aceitao universal
  • Slide 22
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados22 Extenso C++ ODMG Linguagem de Definio de Objeto (C++ ODL) Permite definir classes, interfaces e especificao de tipos objeto Linguagem de Manipulao de Objeto (C++ OML) Linguagem declarativa Usada para consultar e atualizar objetos no banco de dados Sintaxe baseada em SQL
  • Slide 23
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados23 Linguagem de Definio de Objeto (C++ ODL) Class Pessoa: Public Objeto_Persistente { Public: String nome; String endereo; }; Class Cliente: Public Pessoa { Public: Date membro_desde; Int cliente_id; Ref origem_agncia; }; Class Agncia: Public Objeto_Persistente { Public: String nome; String endereo; Int ativos; }; Class Conta: Public Objeto_Persistente { Private: Int saldo; Public: Int nmero; Int entrar_saldo(); Int atualizar_saldo(int delta); };
  • Slide 24
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados24 Linguagem de Manipulao de Objeto (C++ OML) Set resultado; resultado =SELECT * FROM c IN Cliente WHERE c.nome = Fulano Herana da Classe Pessoa
  • Slide 25
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados25 Modelo Objeto-Relacional Extenso do Modelo Relacional tradicional Incorporao dos conceitos de OO Reutilizao da tecnologia relacional e otimizaes existentes Suporte SQL, gerncia de transaes, processamento e otimizao de consultas, etc. Sistema de tipos mais rico Tipos de dados complexos Manipulao de objetos pelo usurio Extenso da linguagem SQL
  • Slide 26
  • Captulo 2: A Evoluo dos Modelos de Dados e dos Sistemas de Gerncia de Banco de Dados26 Modelo Objeto-Relacional Resposta dos Bancos de Dados Relacionais Orientao a Objetos Incorpora novas funcionalidades e capacidade de modelagem para tratar dados complexos (objetos) sobre estruturas fsicas relacionais (tabelas)
  • Slide 27
  • Captu