i- introdução a evolução dos modelos de dados e dos sistemas de gerência de banco de dados

53
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Upload: lorenzo-castro-cordeiro

Post on 07-Apr-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

I- Introdução

A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Page 2: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Sumário

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: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Page 4: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Especificação

Implementação

Page 5: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Nívelde

AbstraçãoEspecificação(ModelagemConceitual)

Implementação(Modelagem

Lógica)

Modelo deEntidade e

Relacionamento

Modelo deObjeto

ModeloRelacional

ModeloObjeto-

Relacional

BD I

BD II

Page 6: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Page 7: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Modelo de Entidade e Relacionamento Idéia Básica: Entidade

Atributos atômicos, compostos e multi-valorados (coleções)

Relacionamentos entre entidades Instâncias de Entidade

Associações entre instâncias de entidade Modelo Estático

Omisso quanto às operações com (instâncias) de entidades

Page 8: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Pontos Negativos Modelo estático

Page 9: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 10: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Classe de objeto 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 11: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 12: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Métodos

CRE Sufixo do CEP Emissão do Histórico Escolar ...

Relacionamentos com outras classes Matriculado em Disciplina …

Repositório: Estudantes

Não há necessidadede definir métodosobserver e mutator

Page 13: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Multiplicidades de Relacionamento 1:1 1:N M:N

Page 14: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• Hierarquia de Classe– É possível declarar uma classe S como uma

subclasse de outra classe C. Neste caso, S herda todas as propriedades da classe C, isto é, os atributos, os métodos, e os relacionamentos de C

Page 15: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

– S pode ter seus próprios atributos, suas próprios 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 16: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• 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 17: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• Assinatura (Interface) – Uma assinatura de um método (ou interface)

compreende:• O nome• Os parâmetros• O tipo do valor de retorno (opcional)• Comentários sobre a lógica do método

• Corpo (Código)

Page 18: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Sobrecarga (“Overloading”)

Métodos de uma classe com o mesmo nome, porém com pelo menos um argumento diferente imprime_histórico_escolar ( ) imprime_histórico_escolar (formato: string)

Vantagem: Coesão

Page 19: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 20: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• Agregação/Composição de Classes

• Relacionamentos especiais É_PARTE_DE• Agregação

• Compartilhamento• Exemplo: um objeto da classe Brinquedo

é parte de vários objetos da classe Catálogo

• Composição• Não compartilhamento• Exemplo: um objeto da classe

Departamento é parte de um único objeto da classe Centro

• Dependência existencial

Page 21: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• Agregação/Composição de Classes

– Brinquedo é-parte-de Catálogo– UML

Catálogo

Brinquedo

*

*

Page 22: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

• Agregação/Composição de Classes

– Departamento é-parte-estrita-de Centro– UML

Centro

Depto

*

Page 23: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Uma linguagem de consulta a objetos Estilo SQL!

Exercite-se (mire-se no exemplo de motivação) Qual o histórico escolar do estudante com matrícula 1234? Qual o CRE do estudante 1234? Quais as disciplinas em que o estudante 1234 está

matriculado?

Page 24: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BD OO e UML

Pergunta: o que falta à linguagem UML para ela se tornar um completo padrão de BDOO? Linguagem de consulta a objetos Descrição textual completa de classes

Page 25: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Banco de Dados Orientado a Objeto (BD OO) 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

Pelo menos um não é vazio Consultas sobre os repositórios

Linguagem declarativa de consulta a objetos Apropriada ao modelo de esquema

Page 26: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BD OO: Exemplo de Esquema

Classes Estudante, Disciplina, Curso, …

Repositórios Estudantes: João, Maria, José, … Disciplinas: BD I, BD II, … Cursos: Bacharelado em CC, …

Page 27: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Page 28: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Linhas de tabela Pelo menos uma linha não vazia

Page 29: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Linguagem de consulta Operações sobre tabelas

Padrão SQL: esquema e consulta Regras de transformação de esquemas de

BDOO em esquemas de BDR SGBDR: implementa BDRs

Page 30: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Pontos negativos Pobreza de tipos Não oferece encapsulamento (operações), pois

stored procedures são definidas como elementos do esquema.

Page 31: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Modelo Objeto-Relacional (OR)

Tipos nativos INTEGER REAL DATE STRING COLEÇÃO

ARRAY (padrão SQL99) Oracle 11g

VARRAY NESTED TABLE

APONTADOR (REFERENCE)

Page 32: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 33: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Banco de Dados Objeto-Relacional (BD OR) 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 Regras de transformação de esquemas de BDOO em

esquemas de BDOR SGBDOR: implementa BDORs

Page 34: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 35: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 36: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 37: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 38: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 39: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDOR – Classificação de Stonebraker

Page 40: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

BDR x BDOO x BDOR

Page 41: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

I.4 Projeto de Banco de Dados

Page 42: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Requisitos

Esq. Conceitual OO

Esq. Lógico R, OR

Esq. Físico

UML /ODL + OQL

(Padrão ODMG p/BD OO)

Oracle 11g; Postgresql; DB2 ...

Page 43: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 Especiais 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 44: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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 45: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Esquema UML

Page 46: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Exemplo

Page 47: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Exemplo

Page 48: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Representação Relacional

CREATE TABLE MERCADORIA_REL ( CODMER NUMBER(15) NOT NULL, PRECO NUMBER(15,2) NULL, ICMS NUMBER(5,2) NULL, PRIMARY KEY (CODMER));

Exemplo

Page 49: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Exemplo

Page 50: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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

Exemplo

Page 51: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

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'

Exemplo

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 .

Page 52: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Limitações da Representação Relacional

SELECT DISTINCT M.CODMER, M.PRECO FROM CLIENTE C, PEDIDO P, ITEM_PEDIDO I, MERCADORIA M WHERE C.CODCLI = P.CODCLI AND P.CODPED = I.CODPED AND I.CODMER = M.CODMER AND C.NOME = 'Ronaldo Silva' AND C.CIDADE = 'Rio de Janeiro'

Exemplo

Obtenha o código e o preço das mercadorias pedidas pelo cliente ‘Ronaldo Silva’ da cidade do ‘Rio de Janeiro’

Page 53: I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados

Exercício em Grupo

Para o esquema relacional anterior, pede-se: 1. Projete um esquema ODL 2. Resolva as duas consultas em OQL