Upload
internet
View
113
Download
0
Embed Size (px)
Citation preview
Bancos de Dados com ObjetosBancos de Dados com Objetos
Jacques RobinCIn-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
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.
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
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
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
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:
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
A lista de materiais em SQL2A lista de materiais em SQL2
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
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
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}]
Modelos objeto-relacionaisModelos objeto-relacionais
Características de SQL3Características de SQL3
BD de empregados em SQL3BD de empregados em SQL3
Aplicações e limitações Aplicações e limitações dos modelos OO e ORdos modelos OO e OR
Modelo OO x Modelo ORModelo OO x Modelo OR
Modelo dedutivo orientado a objetos: Modelo dedutivo orientado a objetos: motivaçãomotivação
Serviços de um BD Serviços de um BD dedutivo orientado a objetosdedutivo orientado a objetos
Tipologia e implementações dos modelos Tipologia e implementações dos modelos dedutivos orientados a objetosdedutivos orientados a objetos
Características de F-LogicCaracterísticas de F-Logic
BD de empregados em F-LogicBD de empregados em F-Logic
Aplicações e limitações dos modelos Aplicações e limitações dos modelos DOODOO
Modelo DOO x modelos OO e ORModelo DOO x modelos OO e OR
Modelo ativo orientado a objetos: Modelo ativo orientado a objetos: motivaçãomotivação
Serviços de BD ativo orientado a objetosServiços de BD ativo orientado a objetos
Tipologia e implementações dos modelos Tipologia e implementações dos modelos ativos orientados a objetosativos orientados a objetos
Características de ??Características de ??
BD de empregados em ??BD de empregados em ??
Aplicações e Limitações do modelo AOOAplicações e Limitações do modelo AOO
Modelo AOO x modelos OO e ORModelo AOO x modelos OO e OR
Modelo AOO x modelo DOOModelo AOO x modelo DOO
BD e componentes distribuídos BD e componentes distribuídos orientado a objetosorientado a objetos
BD distribuídas heterogêneas e CORBABD distribuídas heterogêneas e CORBA
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