Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

36
Bancos de Dados com Objetos Bancos de Dados com Objetos Jacques Robin CIn-UFPE

Transcript of Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Page 1: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Bancos de Dados com ObjetosBancos de Dados com Objetos

Jacques RobinCIn-UFPE

Page 2: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Banco de dados com objetos: Banco de dados com objetos: diversidade dos modelosdiversidade dos modelos

Modelo puramente orientado a objetos (OO), ex., O2

Modelo objeto-relacional (OR), ex., SQL3 Modelo ativo orientado a objetos (AOO), ex.,

Chimera Modelo dedutivo orientado a objetos (DOO), ex., F-

Logic Modelo com restrições e objetos (COO), ex., C3

Modelo de componentes distribuídos orientado a objetos (DOOC), ex., CORBA

Page 3: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Orientação objetos para BD: motivaçãoOrientação objetos para BD: motivação

Uniformidade: • codificar lógica da aplicação e o acesso aos dados no mesmo

paradigma (impedance mismatch) Completude computacional:

• embutir no BD comportamentos ligados aos dados Expressividade da modelagem:

• estruturas complexas, recursivas e heterogêneas Modularidade e reuso

• hierarquia de classes com herança e encapsulamento permite prototipagem, personalização e extensão rápida

Integração em sistemas de componentes distribuídos Novas aplicações de BD:

• CAD/CAM, CASE, GIS, gerenciamento de workflows, groupware, bibliotecas digitais multimídia, comercio eletrónico, etc.

Page 4: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Serviços requeridos de um BDOOServiços requeridos de um BDOOOrientação a objetos Identificação única Encapsulamento de estado e

comportamento Construtores de estruturas

complexas ortogonais e extensíveis Hierarquia de classes (esquema)

com herança de estado e comportamento

Estado inicial e comportamento default

Sobrescrita, sobrecarga e ligação dinâmica

Completude computacional Restrições, verificação e inferência

de tipos Herança múltipla Acesso completo a recursos Gerenciamento de versões

Banco de dados Persistência Otimização de acesso a

memória segundaria Acesso concorrente Recuperação:

• terminação, exceções, transações

Linguagem de manipulação: • conciso, intuitivo, declarativo,

interpretado, otimizável, independente da aplicação, formalmente bem fundamentado

Visões e dados derivados Restrições de integridades Manipulação dinâmica de

esquema Utilitários administrativos

Page 5: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelos puramente orientado a objetosModelos puramente orientado a objetos

Extensões de LPOO para serviços de BD: resolvem o “impedance mismatch” (com Java, C++, Smalltalk)- nenhum já fornece leque de serviços suficiente para constituir

um autêntico SGBD (em geral apenas persistência e concorrência)

Implementações do padrão ODMG:+ cobrem maioria dos serviços obrigatórios de BDOO- não resolvem “impedance mismatch”:

não é computacionalmente completo integração com LPOO via strings e não objetos

- sintaxe: consultas SQL, definições SQL ( CORBA)- semântica: nada a ver com SQL, e de fato sem definição precisa- sem fundamentação nos princípios de engenharia de software- “padrão” comercial, ainda imaturo, e sem apoio dos gigantes+ cada vez mais usadas para aplicações avançadas

Page 6: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Características de OCaracterísticas de O22

Mais completa das implementações comerciais de ODMG

Tipos e classes:• tipos primitivos: booleano, caráter, inteiro, real, string• tipos compostos: via construtores

ortgonais e recursivos de tupla, lista, bag e conjunto aplicados a tipos primitivos e/ou classes definidas pelo usuário

• classes: tipo definido via construtores de tipos assinaturas do métodos implementação dos métodos: via LPOO ligado (Java, C++,

Smalltalk) superclasse(s)

Objetos:• id única, definido como persistente ou transitório• criado via new, herda tipo e métodos da classe

Page 7: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Estudo de caso comparativo: Estudo de caso comparativo: A lista de materiaisA lista de materiais

Problema padrão em indústria da manufatura

3 tarefas teste de linguagem de manipulação e consulta nesse domínio:1. Descrever um BD brinquedo (com seu esquema)2. Fazer uma consulta seletiva do BD brinquedo:

3. Fazer uma consulta agregada do BD brinquedo:

Page 8: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Companhia

Subsidiária

Pessoa

Empregado

nome_comp

localização#companhia

nome_sub rua localização

qualificação

salário

nome idade

domicílioVeículo

produz é-um

modelo fabricantecor

possui

administra

trabalha

rua

gerencia

possui_frota #pessoa

1 1

1

1

n

1

1

n

n 1

n

1

1

1

1

A lista de materiais: modelo ERA lista de materiais: modelo ER

Page 9: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

A lista de materiais em SQL2A lista de materiais em SQL2

Page 10: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

classe3:Endereço: [

rua: String,localização: String]

classe4:Pessoa: [

nome: String,idade: Integer;domicilio: Endereço,Frota: {Veiculos}]

classe5:Empregado is-a Pessoa: [

qualificações: {String},salário: Integer;Familiares: {Pessoa}]

BD Orientado a Objetos - ExemploBD Orientado a Objetos - Exemplo

BD x Aplicações

Page 11: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD Objeto Relacional - ExemploBD Objeto Relacional - Exemplo

CREATE TYPE Endereço ( RuaNo VARCHAR(60), Cidade VARCHAR(40),);

CREATE TYPE Fornecedor ( CodFornec CHAR(4) NomeFornec VARCHAR(40) EndFornec endereço,);

CREATE TYPE empregado( nome CHAR(20), salário DECIMAL(10,2),);

CREATE TABLE Fornecedor OF Fornecedor

CREATE TABLE empregados OF

Empregado

CREATE TYPE Companhia( NomeComp String,

Matriz endereço,Subsidiarias SET(REF(Subsidiaria)),Presidente REF(Empregado),

);

CREATE TYPE Subsidiaria(

NomeSub String,Escritório endereço,Empregados SET(REF(Empregado)),

);

Criação de Tipos:

Criação de Tabelas:

BD x Aplicações

Page 12: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD de empregados: em OBD de empregados: em O2 2 + Java+ Java

Definição do BD:class Companhia type tuple(name:string, matriz:Endereço, subsidiárias:set(Subsidiária), presidente:Empregado)end;class Subsidiáriatype tuple(name:string, public escritório:Endereço

Consulta seletiva: Consulta agregada:

classe1:

Companhia: [

nome: String,

matriz: Endereço;

Subsidiarias: {Subsidiaria},

Presidente: Empregado]

classe2:

Subsidiaria: [

nome: String,

escritório: Endereço;

Gerente: Empregado,

Empregados: {Empregado}]

Page 13: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelos objeto-relacionaisModelos objeto-relacionais

Page 14: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Características de SQL3Características de SQL3

Page 15: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD de empregados em SQL3BD de empregados em SQL3

Page 16: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Aplicações e limitações Aplicações e limitações dos modelos OO e ORdos modelos OO e OR

Page 17: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo OO x Modelo ORModelo OO x Modelo OR

Page 18: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo dedutivo orientado a objetos: Modelo dedutivo orientado a objetos: motivaçãomotivação

Page 19: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Serviços de um BD Serviços de um BD dedutivo orientado a objetosdedutivo orientado a objetos

Page 20: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Tipologia e implementações dos modelos Tipologia e implementações dos modelos dedutivos orientados a objetosdedutivos orientados a objetos

Page 21: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Características de F-LogicCaracterísticas de F-Logic

Page 22: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD de empregados em F-LogicBD de empregados em F-Logic

Page 23: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Aplicações e limitações dos modelos Aplicações e limitações dos modelos DOODOO

Page 24: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo DOO x modelos OO e ORModelo DOO x modelos OO e OR

Page 25: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo ativo orientado a objetos: Modelo ativo orientado a objetos: motivaçãomotivação

Page 26: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Serviços de BD ativo orientado a objetosServiços de BD ativo orientado a objetos

Page 27: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Tipologia e implementações dos modelos Tipologia e implementações dos modelos ativos orientados a objetosativos orientados a objetos

Page 28: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Características de ??Características de ??

Page 29: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD de empregados em ??BD de empregados em ??

Page 30: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Aplicações e Limitações do modelo AOOAplicações e Limitações do modelo AOO

Page 31: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo AOO x modelos OO e ORModelo AOO x modelos OO e OR

Page 32: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Modelo AOO x modelo DOOModelo AOO x modelo DOO

Page 33: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD e componentes distribuídos BD e componentes distribuídos orientado a objetosorientado a objetos

Page 34: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

BD distribuídas heterogêneas e CORBABD distribuídas heterogêneas e CORBA

Page 35: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.

Conclusão: contribuição atual da Conclusão: contribuição atual da orientação objetos para BD e orientação objetos para BD e

perspectivas futurasperspectivas futuras

Page 36: Bancos de Dados com Objetos Jacques Robin CIn-UFPE.