Bancos de Dados com Objetos
Jacques Robin
CIn-UFPE
Banco de dados com objetos:
diversidade 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çã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 BDOO
Orientaçã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:
•

Linguagem de manipulação:
•




terminação, exceções, transações
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 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 O2
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:
A 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:
A lista de materiais: modelo ER
modelo cor fabricante
1
n
Veículo
1
possui_frota
idade
Pessoa
n
1
produz
é-um
rua
localização
#companhia
nome
1
1
1
Companhia
nome_comp
domicílio
#pessoa
1
Empregado
administra
1
1
possui
salário
n
trabalha
gerencia
1
n
Subsidiária
nome_sub rua localização
qualificação
1
A lista de materiais em SQL2
BD x Aplicações
BD Orientado a Objetos - Exemplo
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 x Aplicações
BD Objeto Relacional - Exemplo
Criação de Tipos:
CREATE TYPE Endereço
(
RuaNoVARCHAR(60),
Cidade
VARCHAR(40),
);
CREATE TYPE Companhia
(
NomeComp
String,
Matriz
endereço,
Subsidiarias SET(REF(Subsidiaria)),
Presidente
REF(Empregado),
);
CREATE TYPE Fornecedor
(
CodFornec
CHAR(4)
NomeFornec
VARCHAR(40)
EndFornec
endereço,
);
CREATE TYPE Subsidiaria
(
NomeSub String,
Escritório endereço,
Empregados SET(REF(Empregado)),
);
CREATE TYPE empregado
(
nome CHAR(20),
salário DECIMAL(10,2),
);
Criação de Tabelas:
CREATE TABLE Fornecedor OF Fornecedor
CREATE TABLE empregados OF Empregado
BD de empregados: em O2 + Java
Definição do BD:
class Companhia
type tuple(name:string,
matriz:Endereço,
subsidiárias:set(Subsidiária),
presidente:Empregado)
end;
class Subsidiária
type 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-relacionais
Características de SQL3
BD de empregados em SQL3
Aplicações e limitações
dos modelos OO e OR
Modelo OO x Modelo OR
Modelo dedutivo orientado a objetos:
motivação
Serviços de um BD
dedutivo orientado a objetos
Tipologia e implementações dos modelos
dedutivos orientados a objetos
Características de F-Logic
BD de empregados em F-Logic
Aplicações e limitações dos modelos DOO
Modelo DOO x modelos OO e OR
Modelo ativo orientado a objetos: motivação
Serviços de BD ativo orientado a objetos
Tipologia e implementações dos modelos
ativos orientados a objetos
Características de ??
BD de empregados em ??
Aplicações e Limitações do modelo AOO
Modelo AOO x modelos OO e OR
Modelo AOO x modelo DOO
BD e componentes distribuídos
orientado a objetos
BD distribuídas heterogêneas e CORBA
Conclusão: contribuição atual da orientação
objetos para BD e perspectivas futuras
Download

oodb