39
Bancos de Dados Objeto Relacional Modelos e Linguagens Profa. Vânia Maria Ponte Vidal [email protected] [email protected] Universidade Federal do Ceará Departamento de Computação

Bancos de Dados Objeto Relacional Modelos e Linguagens

  • Upload
    cain

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Bancos de Dados Objeto Relacional Modelos e Linguagens. Profa. Vânia Maria Ponte Vidal [email protected] Universidade Federal do Ceará Departamento de Computação. Programa do Curso. Introdução Modelo Objeto Relacional do Oracle 9i Linguagem de Consultas (SQL3) - PowerPoint PPT Presentation

Citation preview

Page 1: Bancos de Dados  Objeto Relacional Modelos e Linguagens

Bancos de Dados Objeto Relacional

Modelos e Linguagens

Bancos de Dados Objeto Relacional

Modelos e Linguagens

Profa. Vânia Maria Ponte [email protected]@lia.ufc.br

Universidade Federal do CearáDepartamento de Computação

Page 2: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Programa do CursoPrograma do Curso

• Introdução

• Modelo Objeto Relacional do Oracle 9i

• Linguagem de Consultas (SQL3)

• Restrições de Integridade

• Visões de Objeto

• Projeto de Banco de Dados OR

• Banco de Dados Geográficos

Page 3: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Aula 1 - ConteúdoAula 1 - Conteúdo

• Histórico - A Evolução dos Sistemas de BD

• Limitações da Representação Relacional

• Propriedades de BDOO

Page 4: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

HistóricoHistórico

• Primeira Geração (final dos anos 60 e anos 70)

– Caracterizada pela separação entre a informação lógica e a informação física

– Modelos de dados começaram a ser utilizados para descrever estruturas físicas de um ponto de vista lógico (modelos de dados hierárquico e rede)

Page 5: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

HistóricoHistórico

• Segunda Geração(início dos anos 80)

– Caracterizada pelos modelos de dados relacionais

– Reconheceu-se que o uso de banco de dados poderia trazer vantagens para as áreas científica e técnica, bem como para os escritórios

– Os bancos de dados relacionais começaram a apresentar limitações para aplicações como: CAD, CASE, ...

Page 6: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

HistóricoHistórico

• Terceira Geração(final dos anos 80 até ...)

– Desenvolvimento de novas tecnologias: sistemas de bancos de dados orientados a objetos, objeto-relacional e relacional estendido

– Objetiva uma integração apropriada entre bancos de dados e linguagens de programação

Page 7: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Evolução das Aplicações de Banco de Dados

Evolução das Aplicações de Banco de Dados

• Aplicações que manipulam dados complexos (sistemas de informação geográfica, bibliotecas digitais, ...) estão sendo informatizadas

• Aplicações “comerciais” estão manipulando dados mais complexos do que os dados tradicionalmente tratados em DB Relacionais

Page 8: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Evolução das Aplicações de Banco de Dados

Evolução das Aplicações de Banco de Dados

• Dados multimídia freqüentemente encontrados na WEB necessitam de suporte para armazenamento e manipulação

• Novas aplicações distribuídas estão sendo construídas seguindo o paradigma OO e necessitam de bancos de dados compatíveis

Page 9: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Aplicações Avançadas de BDAplicações Avançadas de BD

– Engenharia mecânica e elétrica (CAD/CAM)• Projeto e produção de peças e componentes

– Sistemas de Informação Geográfica– Engenharia de Software

• Ferramentas CASE– Aplicações médicas e científicas

• Química, genética, geoprocessamento

Page 10: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Alguns Requisitos das Aplicações Avançadas de BD

Alguns Requisitos das Aplicações Avançadas de BD

• Mecanismos para a definição e manipulação de tipos de dados complexos

• Facilidades para modelar o comportamento de objetos complexos através da definição de operações

• Suporte para itens de dados de grandes tamanhos

• Gerenciamento de versões

Page 11: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

Limitações da Representação Relacional

• Atributos compostos não podem ser representados diretamente

• Atributos multivalorados devem ser diferenciados através de valores únicos e representados em um outro esquema relacional

Page 12: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

Limitações da Representação Relacional

• Agregações e especializações requerem esquemas de relações individuais equipadas com restrições de integridade especiais

• A introdução de chaves artificiais será necessária se os atributos não forem suficientes para obter uma identificação única

Page 13: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

Limitações da Representação Relacional

• Um exemplo de aplicação:

– Especificar um BD para suportar as vendas de uma loja de mercadorias diversas. A cada venda acontece a emissão de um pedido de compra, contendo o código do cliente e a lista dos itens (mercadorias) que formam aquele pedido.

Page 14: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Exemplo 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 15: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

ExemploExemplo

• 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 16: Bancos de Dados  Objeto Relacional Modelos e Linguagens

Exemplo - UML

Page 17: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

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

ExemploExemplo

Page 18: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação RelacionalRepresentação Relacional

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

ExemploExemplo

Page 19: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação RelacionalRepresentação Relacional

CREATE TABLE MERCADORIA_REL (

CODMER NUMBER(15) NOT NULL,

PRECO NUMBER(15,2) NULL,

ICMS NUMBER(5,2) NULL,

PRIMARY KEY (CODMER)

);

ExemploExemplo

Page 20: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

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

ExemploExemplo

Page 21: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação RelacionalRepresentação Relacional

CREATE TABLE ITEM_PEDIDO (

NO_ITEM NUMBER(5) NOT NULL,

CODPED NUMBER(20) NOT NULL,

QUANTIDADE NUMBER(15,2) NULL,

DESCONTO NUMBER(5,2) NULL,

CODMER NUMBER(15) NOT NULL,

PRIMARY KEY (NO_ITEM, CODPED),

FOREIGN KEY (CODMER) REFERENCES MERCADORIA_REL,

FOREIGN KEY (CODPED) REFERENCES PEDIDO_REL

);

ExemploExemplo

Page 22: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

Limitações da Representação Relacional

• Atributos compostos não podem ser representados diretamente – ex: endereço de um cliente ou de entrega do

pedido);

• Atributos multivalorados devem ser diferenciados através de valores únicos e representadas em um outro esquema relacional – ex: telefones de contato ;

Page 23: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

Limitações da Representação Relacional

• Agregações e especializações requerem esquemas de relações individuais equipadas com restrições de integridade especiais – ex.: Itens do pedido; cliente e cliente VIP

• A introdução de chaves artificiais será necessária se os atributos não forem suficientes para obter uma identificação única

Page 24: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

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'

ExemploExemplo

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 25: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Limitações da Representação Relacional

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'

ExemploExemplo

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

Page 26: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Como superar as limitações do Modelo Relacional ?

Como superar as limitações do Modelo Relacional ?

• Em 1989, Manifesto de Banco de Dados Orientado a Objetos– BDOO Combina as propriedades do paradigma OO

com as propriedades típicas de BD

• Em 1990, contra manifesto pró Relacional

• Na década de 90– SGBD relacional

– SGBD relacionais estendidos

– SGBD orientados a objetos

Page 27: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação Não RelacionalRepresentação Não Relacional

• Declarações de tipo são tão flexíveis quanto em linguagens de programação;

• Objetos podem ser unicamente identificados independentemente dos valores de seus atributos. Identificadores de Objetos são fornecidos, permitindo referências entre objetos;

Page 28: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação Não RelacionalRepresentação Não Relacional

• Reuso de informação é possível:

– Referenciando objetos já existentes. Novos objetos podem ser construídos a partir de objetos existentes (Agregação ou Associação);

– Definindo especializações entre unidades de informações, permitindo a herança de estrutura e comportamento.

Page 29: Bancos de Dados  Objeto Relacional Modelos e Linguagens

Exemplo - UML

Page 30: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação Não RelacionalRepresentação Não Relacional

Cliente: [

código: inteiro

nome: string

endereco: Endereço

telefones: SetOf(string)

]

Endereço: [rua: stringcidade: stringestado: stringcep: string]

ExemploExemplo

Cliente Especial is-a Cliente: [

Desconto Padrão: double]

Cliente VIP is-a Cliente: [

desconto padrão: double

pontos bonificação: inteiro]

Page 31: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Representação Não RelacionalRepresentação Não RelacionalExemploExemplo

Pedido: [código: inteirodata_pedido: datedata_entrega: dateendereco_entrega: Endereçoitens: SetOf(Item_Pedido)cliente: REF Cliente]

Item_Pedido: [

no_item: inteiro

quantidade: double

desconto: double

mercadoria: REF Mercadoria

]

Mercadoria: [código: inteiropreco: doubleicms: double]

Page 32: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

ConsultaConsulta

SELECT P.cliente.nome,

P.cliente.endereco,

CURSOR(SELECT M.mercadoria.codigo

FROM TABLE (P.itens ) M )

FROM PEDIDOS P

WHERE P.DATA_ENTREGA = ’10/08/2004'

ExemploExemplo

Para todos os pedidos com data de entrega igual 10/08/2004, obtenha o nome e endereço do cliente, e código das mercadorias pedidas .

Page 33: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

ConsultaConsulta

SELECT I.MERCADORIA.CODIGO, I.MERCADORIA.PRECO

FROM PEDIDO P, TABLE(P.ITENS) I

WHERE P.CLIENTE.NOME = 'Ronaldo Silva'

AND P.CLIENTE.ENDERECO.CIDADE = 'Rio de Janeiro'

ExemploExemplo

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

Page 34: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

O paradigma de OOO paradigma de OO

OO em BD combina conceitos de várias áreas:

• Linguagens de Programação:

– tipos de dados abstratos e encapsulamento

• Tecnologia de Software:

– extensibilidade e reusabilidade de código e o princípio da modularização

Page 35: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

O paradigma de OOO paradigma de OO

OO em BD combina conceitos de várias áreas:

• Inteligência Artificial:

– idéias sobre a representação do conhecimento e técnicas de classificação

• Bancos de dados ou modelagem de dados:

– relações aninhadas ou generalizações do modelo relacional, juntamente com os modelos de dados semânticos

Page 36: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Propriedades de um BDOOPropriedades de um BDOO

• Propriedades de OO– Modelos de dados

– Linguagens

• Propriedades do BD

Page 37: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Propriedades de OO:Modelagem de dadosPropriedades de OO:Modelagem de dados

• Capacidade para modelar objetos complexos

• Suporte a identidade de objetos

• Distinção entre tipos e classes

• Definição de hierarquias de classes com herança

Page 38: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Propriedades de OO:Características da Linguagem

Propriedades de OO:Características da Linguagem

• Encapsulamento

• Overloading, overwriting e ligação dinâmica

• Consultas ad hoc

• Completude computacional

• Gerenciamento de versões

• Extensibilidade

Page 39: Bancos de Dados  Objeto Relacional Modelos e Linguagens

BDOO - Modelos e Linguagens BDOO - Modelos e Linguagens

Propriedades de BDPropriedades de BD

• Persistência• Controle de multi-usuários• Recuperação• Gerenciamento de armazenamento secundário de

informações