A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "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"— Transcrição da apresentação:

1 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

2 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados2 Agenda I.1 Um Hiato entre Especificação e Implementação I.2 Especificação: Evolução dos Modelos Conceituais I.3 Implementação: Evolução dos Modelos Lógicos I.4 Projeto de Aplicações de Banco de Dados

3 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados3 Especificação Implementação I.1 Um Hiato entre Especificação e Implementação

4 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados4 Nível de Abstração Especificação (Modelagem Conceitual) Implementação (Modelagem Lógica) Modelo Relacional Modelo de Entidade e Relacionamento BD I Modelo de Objeto Modelo Objeto- Relacional BD II

5 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados5 I.2 Especificação: Evolução dos Modelos Conceituais

6 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados6 Modelo de Entidade e Relacionamento Idéia Básica: Entidade Atributos atômicos, compostos e multivalorados (coleções) Relacionamentos entre entidades Instâncias de Entidade Associações entre instâncias de entidade Ponto Negativo Modelo Estático Omisso quanto às operações com (instâncias) de entidades

7 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados7 Elementos de um Modelo de Objeto Idéia Básica: Objeto Atributos complexos ou estruturados Atributos coleção Conjunto, Bag, Lista, Array Atributo Identidade (OID) Uma instância identifica um objeto Transparente e independente de aplicação Associações entre objetos Se um objeto A está associado a um objeto B, então A deve fazer referência ou apontar para B, ou A contém o OID de B, e/ou vice- versa Operações (Métodos)

8 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados8 Classe de Objetos Atributos e associações comuns a um conjunto de objetos Atributo(s) chave Relacionamentos entre classes de objeto Exprimem as associações entre objetos Classe persistente Repositório de objetos da classe

9 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados9 Exemplo de Classe de Objeto Classe Estudante Atributos Matrícula > Nome Endereço Rua Número Bairro Cep Prefixo Sufixo Data_nasc Historico_escolar Conjunto Disciplinas_feitas Referência_disciplina, período, media_final, status O atributo OID é transparente

10 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados10 Exemplo de Classe de Objeto (cont.) Classe Estudante Métodos Calcula CRE Créditos Restantes Emissão do Histórico Escolar... Relacionamentos com outras classes Matriculado em Disciplina … Repositório: Estudantes

11 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados11 Hierarquia de Classe É possível declarar uma classe S como uma subclasse de outra classe C S herda todas as propriedades da classe C, isto é, os atributos, os métodos e os relacionamentos de C S pode ter seus próprios atributos, suas próprias operações, seus próprios relacionamentos e seu próprio repositório (S é uma extensão de C) Exemplo: a classe Estudante é uma subclasse de Pessoa Relacionamento Subclasse é_um(a) (Sub)Classe Multiplicidade 1:1

12 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados12 Tipos de Métodos Métodos de Instância Aplicáveis a um único objeto Exemplo est.disciplinas_em_curso(), aplicável a um objeto da classe Estudante (est é um objeto da classe Estudante) Parâmetro de entrada implícito: objeto self ou this Métodos de Classe Não podem fazer referência a objeto self ou this Exemplo Estudante.número_estudantes()

13 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados13 Métodos Assinatura de um método (ou interface) Compreende Nome do método Parâmetros Tipo do valor de retorno (opcional) Comentários sobre a lógica do método Corpo (Código)

14 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados14 Métodos Sobrecarga (Overloading) Métodos de uma classe com o mesmo nome, porém com pelo menos um argumento diferente imprime_histórico_escolar ( ) Sem argumentos imprime_histórico_escolar (formato: string) Um argumento do tipo String

15 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados15 Métodos Polimorfismo Dois métodos, de classes diferentes, são polimorfos se têm a mesma assinatura O conceito de polimorfismo é extremamente útil em hierarquias de classes, mas não é restrito a elas Aluno_especial é_um Aluno Aluno_especial.histórico_escolar() Aluno.histórico_escolar()

16 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados16 Banco de Dados Orientado a Objetos Modelo Relacional Usado para modelar aplicações que lidam com tarefas de gerenciamento de dados simples Itens dados são registros pequenos com campos atômicos Limitado para aplicações complexas Projetos de Engenharia (Computer-aided Design – CAD) Sistemas de Informações Geográficas (Geographical Information Systems – GIS) Sistemas Cooperativos (Computer Supported Cooperative Work – CSCW)

17 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados17 Banco de Dados Orientado a Objetos Requisitos Impostos pelas Aplicações Complexas aos SGBD tradicionais Necessidade de lidar com maior volume de dados Manipulação de dados em formatos complexos Tratamento de esquemas evolutivos e dinâmicos Transações longas

18 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados18 Banco de Dados Orientado a Objetos Esquema Orientado a Objeto (Esquema OO) Um conjunto de classes persistentes e transitórias, segundo um modelo de esquema OO Classes persistentes (concretas) Com repositório Classes transitórias (abstratas) Sem repositório BD OO Um conjunto de repositórios Consultas sobre os repositórios Linguagem declarativa de consulta a objetos

19 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados19 BD OO: Exemplo de Esquema Classes Estudante, Disciplina, Curso, … Repositórios Pessoa (classe abstrata) Estudantes : João, Maria, José, … Disciplinas : BD I, BD II, … Cursos : Bacharelado em CC, …

20 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados20 Exemplos de SGBDOO Caché DB4O (código aberto) Objectivity/DB Object Store Ozone (código aberto) Versant Object Database

21 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados21 Consórcio ODMG (Object Data Management Group) Formado por vendedores e fabricantes de SGBDOO Definir padrões (classes e outras construções) para acrescentar persistência a C++ e Java Encerrou suas atividades em 2002 Nenhum padrão teve aceitação universal

22 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados22 Extensão C++ ODMG Linguagem de Definição de Objeto (C++ ODL) Permite definir classes, interfaces e especificação de tipos objeto Linguagem de Manipulação de Objeto (C++ OML) Linguagem declarativa Usada para consultar e atualizar objetos no banco de dados Sintaxe baseada em SQL

23 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados23 Linguagem de Definição de Objeto (C++ ODL) Class Pessoa: Public Objeto_Persistente { Public: String nome; String endereço; }; Class Cliente: Public Pessoa { Public: Date membro_desde; Int cliente_id; Ref origem_agência; }; Class Agência: Public Objeto_Persistente { Public: String nome; String endereço; Int ativos; }; Class Conta: Public Objeto_Persistente { Private: Int saldo; Public: Int número; Int entrar_saldo(); Int atualizar_saldo(int delta); };

24 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados24 Linguagem de Manipulação de Objeto (C++ OML) Set resultado; resultado =SELECT * FROM c IN Cliente WHERE c.nome = Fulano Herança da Classe Pessoa

25 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados25 Modelo Objeto-Relacional Extensão do Modelo Relacional tradicional Incorporação dos conceitos de OO Reutilização da tecnologia relacional e otimizações existentes Suporte à SQL, gerência de transações, processamento e otimização de consultas, etc. Sistema de tipos mais rico Tipos de dados complexos Manipulação de objetos pelo usuário Extensão da linguagem SQL

26 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados26 Modelo Objeto-Relacional Resposta dos Bancos de Dados Relacionais à Orientação a Objetos Incorpora novas funcionalidades e capacidade de modelagem para tratar dados complexos (objetos) sobre estruturas físicas relacionais (tabelas)

27 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados27 I.3 Implementação: Evolução dos Modelos Lógicos

28 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados28 Modelo Relacional Tipos nativos INTEGER REAL DATE STRING Esquema de Banco de Dados Relacional (BDR) Conjunto de tabelas Regras de integridade (consistência do conteúdo das tabelas)

29 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados29 Modelo Relacional Linguagem de Consulta Operações sobre tabelas Padrão SQL Esquema e consulta Pontos negativos Pobreza de tipos Não oferece encapsulamento (operações), pois stored procedures são definidas como elementos do esquema

30 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados30 Modelo Objeto-Relacional (OR) Tipos nativos INTEGER REAL DATE STRING COLEÇÃO ARRAY (padrão SQL99) Oracle 11g VARRAY NESTED TABLE APONTADOR (REFerence)

31 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados31 Modelo Objeto-Relacional (OR) Tipos Definidos pelo Usuário (Extensibilidade) Tipos de Objeto Atributos stricto sensu Atributos apontadores (ou referências) Métodos Funções Procedures Hierarquias de tipos de objeto Repositórios de tipos de objeto Typed Table (SQL99, IBM) Object Table (Oracle) Linguagem de consulta SQLOR Extensão-objeto da linguagem SQL

32 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados32 Banco de Dados Objeto-Relacional (BDOR) Esquema de BDOR Conjunto de tipos persistentes de objeto Instanciáveis e/ou não instanciáveis BDOR Conjunto de Object (Typed) Tables e/ou conjunto de tabelas puramente relacionais Um BDOR estende stricto sensu um BDR Linguagem SQLOR Operações sobre objetos de object (typed) table e/ou sobre linhas de tabela relacional

33 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados33 BDOR – Classificação de Stonebraker

34 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados34 BDOR – Classificação de Stonebraker

35 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados35 BDOR – Classificação de Stonebraker

36 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados36 BDOR – Classificação de Stonebraker

37 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados37 BDOR – Classificação de Stonebraker

38 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados38 BDOR – Classificação de Stonebraker

39 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados39 BDR x BDOO x BDOR

40 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados40 I.4 Projeto de Banco de Dados

41 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados41 Projeto de Banco de Dados Requisitos Esq. Conceitual OO Esq. Lógico R, OR Esq. Físico UML / SQL Estendida SGBDOR Oracle 11g; PostgreSQL; DB2... DER / SQL SGBDR

42 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados42 Exemplo Descrição dos atributos que caracterizam as entidades: Clientes Comuns têm um código, nome, endereço (rua, cidade, estado, CEP) e telefones de contato Clientes Especiais têm todos os atributos de clientes comuns e um campo de desconto padrão Clientes VIP têm todos os atributos de clientes comuns e um campo de pontos de bonificação no programa de incentivo Mercadorias têm um código, preço e valor de ICMS cobrado

43 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados43 Exemplo Descrição dos atributos que caracterizam as entidades: Pedidos têm um código, a data do pedido, a data de entrega, o endereço de entrega (rua, cidade, estado, cep), o cliente e a lista de itens Cada item da lista de itens tem um número único, a mercadoria correspondente, a quantidade pedida e o desconto individual obtido

44 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados44 Esquema UML

45 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados45 Representação Relacional CREATE TABLE CLIENTE_REL ( CODCLI NUMBER(15) NOT NULL, NOME VARCHAR2(100) NULL, RUA VARCHAR2(100) NULL, CIDADE VARCHAR2(100) NULL, ESTADO CHAR(2) NULL, CEP CHAR(10) NULL, FONE1 VARCHAR2(20) NULL, FONE2 VARCHAR2(20) NULL, FONE3 VARCHAR2(20) NULL, PRIMARY KEY (CODCLI) ); CREATE TABLE CLIENTE_VIP ( CODCLI NUMBER(15) NOT NULL, PONTOS_BONIFICACAO INTEGER NULL, DESCONTO_PADRAO NUMBER(5,2) NULL, PRIMARY KEY (CODCLI), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); CREATE TABLE CLIENTE_ESPECIAL ( DESCONTO_PADRAO NUMBER(5,2) NULL, CODCLI NUMBER(15) NOT NULL, PRIMARY KEY (CODCLI), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL );

46 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados46 Representação Relacional CREATE TABLE PEDIDO_REL ( CODPED NUMBER(20) NOT NULL, DATA_PEDIDO DATE NULL, DATA_ENTREGA DATE NULL, RUA VARCHAR2(100) NULL, CIDADE VARCHAR2(100) NULL, ESTADO CHAR(2) NULL, CEP CHAR(10) NULL, CODCLI NUMBER(15) NOT NULL, PRIMARY KEY (CODPED), FOREIGN KEY (CODCLI) REFERENCES CLIENTE_REL ); CREATE TABLE MERCADORIA_REL ( CODMER NUMBER(15) NOT NULL, PRECO NUMBER(15,2) NULL, ICMS NUMBER(5,2) NULL, PRIMARY KEY (CODMER) );

47 Capítulo 2: A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados47 Limitações da Representação Relacional SELECT DISTINCT C.NOME, C.RUA, C.CIDADE, C.ESTADO, C.CEP, M.CODMER, M.PRECO FROM PEDIDO P, CLIENTE C, ITEM_PEDIDO I, MERCADORIA M WHERE C.CODCLI = P.CODCLI AND P.CODPED = I.CODPED AND I.CODMER = M.CODMER AND P.DATA_ENTREGA = 10/08/2004' Para todos os pedidos com data de entrega igual 10/08/2004, obtenha o nome e endereço do cliente, código e preço das mercadorias pedidas


Carregar ppt "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"

Apresentações semelhantes


Anúncios Google