Title: Bancos de Dados com Objetos
1Bancos de Dados com Objetos
2Banco 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
3Orientaçã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.
4Serviç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
- 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
5Modelos 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
6Caracterí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
7Estudo 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
8A lista de materiais modelo ER
fabricante
cor
modelo
nome
idade
1
n
1
domicílio
possui_frota
Veículo
Pessoa
pessoa
n
1
produz
é-um
rua
1
1
salário
1
localização
1
administra
Companhia
Empregado
companhia
qualificação
1
1
n
nome_comp
possui
trabalha
gerencia
1
n
Subsidiária
1
9A lista de materiais em SQL2
10BD Orientado a Objetos - Exemplo
BD x Aplicações
- 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
11BD Objeto Relacional - Exemplo
BD x Aplicações
Criação de Tipos
CREATE TYPE Subsidiaria ( NomeSub
String, Escritório endereço, Empregados
SET(REF(Empregado)), )
CREATE TYPE Endereço ( RuaNo VARCHAR(60),
Cidade VARCHAR(40), )
CREATE TYPE empregado ( nome CHAR(20),
salário DECIMAL(10,2), )
CREATE TYPE Companhia ( NomeComp
String, Matriz endereço, Subsidiarias
SET(REF(Subsidiaria)), Presidente REF(Empregado),
)
Criação de Tabelas
CREATE TYPE Fornecedor ( CodFornec
CHAR(4) NomeFornec VARCHAR(40)
EndFornec endereço, )
CREATE TABLE Fornecedor OF Fornecedor CREATE
TABLE empregados OF Empregado
12BD de empregados em O2 Java
- Definição do BD
- class Companhia
- type tuple(namestring,
- matrizEndereço,
- subsidiáriasset(Subsidiária),
- presidenteEmpregado)
- end
- class Subsidiária
- type tuple(namestring,
- public escritórioEndereç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
13Modelos objeto-relacionais
14Características de SQL3
15BD de empregados em SQL3
16Aplicações e limitações dos modelos OO e OR
17Modelo OO x Modelo OR
18Modelo dedutivo orientado a objetos motivação
19Serviços de um BD dedutivo orientado a objetos
20Tipologia e implementações dos modelos dedutivos
orientados a objetos
21Características de F-Logic
22BD de empregados em F-Logic
23Aplicações e limitações dos modelos DOO
24Modelo DOO x modelos OO e OR
25Modelo ativo orientado a objetos motivação
26Serviços de BD ativo orientado a objetos
27Tipologia e implementações dos modelos ativos
orientados a objetos
28Características de ??
29BD de empregados em ??
30Aplicações e Limitações do modelo AOO
31Modelo AOO x modelos OO e OR
32Modelo AOO x modelo DOO
33BD e componentes distribuídos orientado a objetos
34BD distribuídas heterogêneas e CORBA
35Conclusão contribuição atual da orientação
objetos para BD e perspectivas futuras
36(No Transcript)