Transcript
Page 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 cesp@dsc.ufcg.edu.br

Capítulo 2: Evolução dos Modelos de Dados e dos Sistemas de Gerenciamento de Banco de Dados

Banco de Dados IIBanco de Dados IIProf. Carlos Eduardo PiresProf. Carlos Eduardo Pires

[email protected]@dsc.ufcg.edu.br

Page 2: 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

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

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

Page 3: 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

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

Especificação

Implementação

I.1 Um Hiato entre Especificação e Implementação

Page 4: 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

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

Nível deAbstração

Especificação(ModelagemConceitual)

Implementação(Modelagem

Lógica)

ModeloRelacional

Modelo deEntidade e

Relacionamento BD I

Modelo deObjeto

ModeloObjeto-

Relacional

BD II

Page 5: 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

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

I.2 Especificação: Evolução dos Modelos Conceituais

Page 6: 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

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

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

Page 7: 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

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

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)

Page 8: 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

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

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

Page 9: 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

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

Exemplo de Classe de Objeto

Classe Estudante Atributos

Matrícula << chave>> 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 atributoOID étransparente

Page 10: 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

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

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

Page 11: 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

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

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

Page 12: 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

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

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()

Page 13: 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

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

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)

Page 14: 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

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

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

Page 15: 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

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

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()

Page 16: 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

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

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)

Page 17: 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

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

Banco de Dados Orientado a Objetos

Requisitos Impostos pelas Aplicações Complexas aos SGBD tradicionaisNecessidade de lidar com maior volume de

dadosManipulação de dados em formatos

complexosTratamento de esquemas evolutivos e

dinâmicosTransações longas

Page 18: 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

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

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

Page 19: 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

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

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, …

Page 20: 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

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

Exemplos de SGBDOO

Caché http://www.intersystems.com/

DB4O http://www.db4o.com/ (código 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 (código aberto)

Versant Object Database http://www.versant.com/

Page 21: 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

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

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

Page 22: 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

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

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

Page 23: 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

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

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 <Agência> 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);

};

Page 24: 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

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

Linguagem de Manipulação de Objeto (C++ OML)

Set <Paciente> resultado;

resultado = SELECT *

FROM c IN Cliente

WHERE c.nome = ‘Fulano’

Herança da Classe “Pessoa”

Page 25: 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

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

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

Page 26: 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

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

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)

Page 27: 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

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

I.3 Implementação: Evolução dos Modelos Lógicos

Page 28: 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

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

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)

Page 29: 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

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

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

Page 30: 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

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

Modelo Objeto-Relacional (OR)

Tipos nativos INTEGER REAL DATE STRING COLEÇÃO

ARRAY (padrão SQL99) Oracle 11g

VARRAY NESTED TABLE

APONTADOR (REFerence)

Page 31: 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

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

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

Page 32: 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

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

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

Page 33: 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

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

BDOR – Classificação de Stonebraker

Page 34: 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

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

BDOR – Classificação de Stonebraker

Page 35: 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

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

BDOR – Classificação de Stonebraker

Page 36: 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

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

BDOR – Classificação de Stonebraker

Page 37: 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

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

BDOR – Classificação de Stonebraker

Page 38: 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

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

BDOR – Classificação de Stonebraker

Page 39: 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

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

BDR x BDOO x BDOR

Page 40: 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

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

I.4 Projeto de Banco de Dados

Page 41: 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

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

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

Page 42: 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

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

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

Page 43: 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

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

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

Page 44: 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

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

Esquema UML

Page 45: 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

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

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);

Page 46: 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

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

Representação RelacionalCREATE 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)

);

Page 47: 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

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

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