banco de dados orientado a objetos
DESCRIPTION
Seminário apresentado na turma de Projeto de Banco de Dados 2010.1 no Curso de Bacharelado em Sistemas de Informação. Universidade Federal Rural de Pernambuco - Unidade Acadêmica de Serra Talhada.TRANSCRIPT
Grupo
Andrêsa Cibelly
Clébia Alves
Cleyton Vanut
Mouglas Eugênio
Ronnie Edson
Roteiro
1 - Modelos de Banco de Dados
2 - Banco de Dados Orientado a Objetos
3 - Exemplos de Sistemas de Gerência Banco de Dados Orientado a Objetos
4 - O Padrão ODMG
5 - Operações no BDOO
6 - Técnicas e Ferramentas de Apoio
7 – Vantagens e Desvantagens
8 - Tendências
Banco de Dados Orientados a Objetos
2
Introdução
Banco de Dados Orientados a Objetos
Problemas
atuais no
desenvolvimento
de BD
Falta de abordagens
adequada
Resultados indesejáveis
Ineficiência no atendimento
da demanda
Problemas na manutenção
3
Modelos de Banco de Dados
Banco de Dados Orientados a Objetos
O modelo de dados é
a principal ferramenta
no fornecimento de
informações sobre a
abstração.
Consiste de um conjunto
de conceitos utilizados
para descrever a
estrutura de um BD, ou
seja, os tipos de dados,
relacionamentos e
restrições sobre estes
dados.
4
Primeiro a ser conhecido como Modelo de Dados
Banco de Dados Orientados a Objetos
Modelo Hierárquico
Tarciso 505 A Gama Valmer 204 C Paranoá Cesar 713 B Ceilândia
3B4 20,00 5B2 52,25 2C3 100,00 8A1 5,00
Registro: coleção de campos contendo somente um valor.
Link: é uma associação entre exatamente dois registros.
Possui estrutura do tipo árvore
5
Banco de Dados Orientados a Objetos
Modelo Hierárquico
Tarciso 505 A Gama Valmer 204 C Paranoá Cesar 713 B Ceilândia
3B4 20,00 5B2 52,25 2C3 100,00 8A1 5,00
Os registros filhos só podem ter um pai;
Caso um registro necessite ter dois pais, deve ser replicado.
Desvantagens da replicação:
Inconsistência ao realizar atualizações
Desperdício de espaço;A navegação neste modelo deve obedecer os padrões do modelo
6
Banco de Dados Orientados a Objetos
1. Não pode haver ciclos no gráfico básico de um
diagrama de estrutura de árvore
2. Restrições nos relacionamentos (links) de muitos
para muitos (N:M) e de muitos para um (N:1)
3. Necessidade de navegação por ponteiros para
acessar a informação desejada
4. Só trabalha com dados primitivos
Modelo Hierárquico
Dificuldades
7
Banco de Dados Orientados a Objetos
Modelo em Rede
Este modelo surgiu para suprir algumas deficiências no Modelo Hierárquico
O conceito de hierarquia foi abolido;
Esse modelo aceita relacionamentos NxM
Um filho pode ter mais de um pai;
Utiliza grafos ao invés de árvores;
Possui uma linguagem própria para definição e manipulação
Concorrência e segurança
Características:
8
Banco de Dados Orientados a Objetos
• Aumenta significativamente o trabalho do
programador, tanto para o projeto de um banco de
dados quanto para a manipulação dos dados
• Necessidade do uso de mecanismo complicados
(ponteiros)
• Projetista do banco de dados tem que criar tipos de
registros artificiais para implementar simples
relacionamentos muitos para muitos (N:M)
Modelo em Rede
Dificuldades
9
Banco de Dados Orientados a Objetos
Modelo Relacional
Surgiu com o propósito de aumentar a
independência dos sistemas gerenciadores de BD.
Características:
Baseado em funções de álgebra relacional
Representado por coleções de tabelas;
Cada tabela possui nome, tuplas, etc.
Restrições:
Não pode haver tuplas repetidas
Restrições de chave;
10
Banco de Dados Orientados a Objetos
Modelo Relacional - OO
Junção do modelo Relacional com modelo OO
Características:
Segue o padrão SQL
Possui identidade de objeto, encapsulamento, herança e
polimorfismo;
A semântica da aplicação é modelada através de objetos,
porém a implementação física ainda é feita através de tabelas
11
Banco de Dados Orientados a Objetos
Motivação
A maioria das aplicação são desenvolvidas em OO;
Necessidade de tradução para uma linguagem que o
BD entenda;
Dificuldade de trabalhar com objetos complexos no
modelo relacional.
12
Surgimento
Banco de Dados Orientados a Objetos
Combinação de ideias
dos modelos de dados
tradicionais e linguagens
de Programação OO
Crescimento em 2004
A ODMG padronizou
uma linguagem para
consulta de objetos
O acesso aos dados
neste modelo é bem
mais rápido, já que o
acesso é feito
diretamente aos
objetos.
13
Banco de Dados Orientados a Objetos
BDOO
Conceitos
Básicos
Um SGBDOO provê um identificador único
(IDO) para cada objeto independente
armazenado no BD.
Propriedade essencial: não mudar
Propriedade desejável: um IDO não deve ser
reutilizado.
Então... IDOs não podem depender de
valores de atributos dos objetos.
Identidade do Objeto
14
Formalmente, um objeto pode ser representado por um trio (triple) (i,c,v), onde:
i: IDO
c: construtor de tipo
v: estado (ou valor) do objeto
o1=(i1,atom, „Houston‟)
o2=(i2,atom, „Bellaire‟)
o3=(i3,atom, „Sugarland‟)
15
Banco de Dados Orientados a Objetos
Exemplo
BDOO
Conceitos
Básicos
Objeto
Banco de Dados Orientados a Objetos
BDOO
Conceitos
Básicos
O interesse pela representação de objetos
complexos é a principal motivação para o
desenvolvimento de sistemas OO.
Requerem grande quantidade de memória.
Imagens ou longos objetos textuais
O SGBDOO não conhece sua estrutura (somente
a aplicação que deles faz uso pode interpretar
seu significado)
Possuem uma estrutura definida pela repetida
aplicação dos construtores de tipo providos
pelo SGBDOO.
Objetos complexos
Não Estruturados
Estruturados
16
Em que
são
usados os
BDOO?
Banco de Dados Orientados a Objetos
São usados em aplicações que utilizam objetos
complexos
• Projetos de engenharia e arquitetura.
• Experiências cientificas.
• Telecomunicações.
• Sistemas de informações geográficas.
• Multimídia.
Aplicações complexas
Características das Aplicações complexas
• Transações e duração mais longa
• Novos tipos de dados para
armazenar: imagens ou documentos
de texto
17
Banco de Dados Orientado a Objetos
Banco de Dados Orientados a Objetos
Cada informação é armazenada na forma de
objeto;
Só pode ser manipulada por métodos;
Lembrando....
São mais adequados para o tratamento
de objetos complexos (textos, gráficos,
imagens)
18
BD Relacional BDOO
BDOO x BD Relacional
Banco de Dados Orientados a Objetos
Coleção de tabelas com
nomes únicos
Integridade referencial e
chaves primárias
garantem a consistência
das informações
Já um BDOO possui três pilares
principais:
Herança;
Polimorfismo;
e encapsulamento.
Este modelo apresenta maior
flexibilidade na manipulação de
seu conteúdo e por meio de
identificadores de objetos
manipula os dados de forma
consistente.
19
O conceito (OO) forma uma base de aplicações mais avançadas como:
Aplicações de engenharia;
SI Geográficos, Multimídia;
Sistemas de Interface de Usuários.
BDOO‟s diferem dos BD‟sTradicionais pela:
Estrutura de dados mais complexa;
Transações duradouras;
Novos tipos de dados para armazenar imagens e textos;
Necessidade de definir operações não padrões específica da aplicação.
Banco de Dados Orientados a Objetos
20
Banco de Dados Orientados a Objetos
Características
Banco de Dados Orientados a Objetos
21
BDOO requer conceitos próprios;
Possui Objetos Persistentes;
Modelagem BDOO
Objetos armazenados no BDOO está
associado a um identificador único
chamado de OID (Object Indentifier),
que é gerado pelo SGBDOO;
Banco de Dados Orientados a Objetos
22
Valor invisível ao usuário;
É imutável;
Desejável que seja usado apenas uma vez;
Não pode depender de valor de atributo do
objeto.
Modelagem BDOO‟s
Características do OID
Banco de Dados Orientados a Objetos
23
Estrutura do Objeto
Programadores sem muitas
preocupações;
Melhor desempenho;
O valor de cada
atributo de um o
objeto pode ser:
- atômico: integer,
real, character,
booleano, etc.
- complexo: tuple, set, list, bag e array.
Vantagens de OID’s em relação as
Chaves:
No MOO não existe conceito de chave primária, existe os OID‟s dos
objetos que são criados e
mantidos pelo SGBD e não são de
acesso de usuários.
Banco de Dados Orientados a Objetos 24
Método consiste de
assinatura e corpo;
O comportamento de um
objeto em um BDOO é
representada do por meio de
métodos .
Métodos
Banco de Dados Orientados a Objetos
25
São
agrupamentos
de objetos de
um mesmo tipo,
possuindo
comportamentos
e propriedades
em comum.
ClassesExemplo:
Banco de Dados Orientados a Objetos
26
Classes
Os BDOO‟s que novos tipos sejam criados
para se adequar ao requerimento da
aplicação, sendo combinados com os
tipos existentes no sistema e sendo
utilizados da mesma maneira.
Banco de Dados Orientados a Objetos
27
No BDOO esta noção é mais visível;
A maioria dos SGBDOO‟s permitem acesso direto aos atributos, onde é uma violação do encapsulamento que o BD permite.
Encapsulamento
Determina que somente as
operações sobre os objetos são visíveis e sua estrutura é escondida;
Banco de Dados Orientados a Objetos
28
Herança
Na herança uma classe chamada subclasse pode ser
definida com base na definição de outra classe
chamada superclasse.
Banco de Dados Orientados a Objetos
29
Polimorfismo
Exemplo:uma operação display que recebe um objeto como entrada e apresenta o objeto na tela. Se o objeto for:
Uma pessoa: deseja-se apresentar os dados sobre a pessoa (nome,
endereço, etc);
Uma imagem: deseja-se apresentar a imagem;
Um gráfico: deseja-se apresentar uma representação gráfica.
Os SGBDOO‟s permitem o recurso de polimorfismo de operações conhecido como Sobrecarga de operador (overloading) ;
Banco de Dados Orientados a Objetos
30
Usando um sistema convencional :
Usando o Sistema OO
for x in X do
begin
case of type(x)
pessoa: display_pessoa(x);
figura: display_figura(x);
gráfico: display_gráfico(x);
end;
end;
for x in X do display(x)
Polimorfismo
A operação tem um único nome
e pode ser chamada por vários
objetos;
O sistema decide qual
implementação usar para a
execução.
Banco de Dados Orientados a Objetos
31
Um banco de dados é usualmente mantido e
acessado por meio de
um software conhecido
como Sistema Gerenciador de Banco
de Dados (SGBD).
Podem ser definidos como
um BD capaz de armazenar
além de dados, outros tipos
diferentes de dados que
não podem ser convertidos
somente em arquivos
lineares ou bidimensionais
como tabelas, e sim um
tipo especial de objeto.
Definição
Banco de Dados Orientados a Objetos
32
SGBDOO
Caracteristicas
A principal característica de SGBDOO é
modelar estruturas complexas
armazenando não somente a estrutura
de dados, mas também seu
comportamento.
a noção de objeto é usada no nível
lógico e possui características não
encontradas nas linguagens de
programação tradicionais;
Banco de Dados Orientados a Objetos
33
SGBDOO no mercado
Banco de Dados Orientados a Objetos
34
Órion
Foi resultado de um projeto
desenvolvido no Programa
Advanced Computer
Architecture da MCC
(Microelectronics and
Computer Corporation),
empresa de Austin;
Muito usado em perícias;
Mais barato do mercado.
Caracteristicas
Banco de Dados Orientados a Objetos
35
Órion
Conta com 1103 veículos de
carga;
4121 veículos de passeio e
comerciais leves cadastrados em
seu banco de dados;
Além de ser o mais barato do
mercado. Presente em mais de
640 oficinas, o Órion possibilitou a
realização de mais de130 mil
perícias, no ano de 2006.
Banco de Dados Orientados a Objetos
36
Órion Novo layout da agenda de visitas: Possui
todas as informações necessárias para o
trâmite de realização de orçamento e comunicação direta com o perito da
seguradora;
Novo layout de fotos: Possibilita a inserção de mais de 30 fotos por
processo;
Consulta eletrônica de peças: Permite a consulta eletrônica de peças, tanto por
descrição como por part-number.
Novas Funcionalidades
Banco de Dados Orientados a Objetos
37
Agenda de Visitas
Banco de Dados Orientados a Objetos 38
Agenda de Visitas
Banco de Dados Orientados a Objetos 39
Consulta de Peças
Banco de Dados Orientados a Objetos 40
Layout de Fotos
Banco de Dados Orientados a Objetos 41
Órion
Banco de Dados Orientados a Objetos 42
DB4O
Poderoso SGBDOO para
manipulação de objetos como
base de dados;
Possui uma performance ate 40 vezes maior que qualquer banco de dados relacional;
Processa aproximadamente 200.000 objetos por segundo, seu código é aberto e seu custo é muito baixo (praticamente zero).
CaracteristicasFacilidade de uso;
Voltado a objeto;
A ferramenta permite armazenar classes
Java diretamente no banco, sem precisar
utilizar consultas SQL ou qualquer tipo de ferramenta que faça o mapeamento
objeto-relacional.
Banco de Dados Orientados a Objetos
43
Implementação com o DB4O em Java:
/**
* Definição básica de um Carro.
* */
public class Carro {
private String fabricante;
private String modelo;
//Construtor
public Carro(String marca, String modelo) {
this.fabricante = marca;
this.modelo = modelo;
}
//gets e sets
}
/**
* Exemplo de utilização do db4o.
* */
public class GravaObjeto {
private static final String DB_FILENAME = "exemplo.db";
private static ObjectContainer db;
public static void main(String args[]) {
// Abrindo o arquivo de dados.
db = Db4o.openFile(DB_FILENAME);
try {
// Instanciando dois objetos da classe Carro.
Carro corsa = new Carro("Chevrolet", "Corsa
Hatch 1.6");
Carro fiesta = new Carro("Ford", "Fiesta
Hatch 1.6");
// Gravando os dois objetos no banco de dados.
db.set(corsa);
db.set(fiesta);
db.commit();
} finally {
// Fechando o arquivo de dados.
db.close();
}
Banco de Dados Orientados a Objetos
44
Caché
Banco de
dados mais
rápido do
mundo!
Disponível para Windows, Open
VMS, Linux e a maioria das
plataformas UNIX e é entregue em
sistemas que vão de dois a mais de 10,000 de usuários simultâneos.
BD pós-relacional OO, vem conquistando espaço no mercado
devido ao seu desempenho com as aplicações.
Permite a integração entre a linguagem padrão de banco de dados:
SQL (Structured Query Language –Linguagem de Consultas Estruturada)
OQL (Object Query Language –Linguagem de Consutlas a Objetos).
Banco de Dados Orientados a Objetos
45
Linguagens de Programação
Caché
Banco de Dados Orientados a Objetos 46
Vantagens
Aplicações web de alta
performance ;
Menos trabalho;
Custo-efetividade;
Banco de Dados Orientados a Objetos
47
ZODBO ZODB (banco de
dados orientado à
objetos para
aplicalções
Phyton,
originalmente
criado como um
componente do
servidor de
Aplicação Zope2
(Z Object
Publishing
Environment).
Um banco de dados objeto nativo para Python
Objetivo principal: transparência
para o desenvolvedor Python;
Não impõe que estruturas de
tabelas e índices sejam usadas
para armazenar os dados;
O desenvolvedor pode utilizar
qualquer estrutura de dados
nativa da linguagem para
armazenar e pesquisar seus
objetos no SGBD como: listas,
dicionários ou árvores B.
Banco de Dados Orientados a Objetos
48
GemStone Utiliza a técnica de BD
distribuídos;
Oferece uma arquitetura
cliente/servidor;
Trabalha com diversas
linguagens de dados;
49
Banco de Dados Orientados a Objetos
Oracle 10g
Oracle é o mais popular
banco de dados
relacional do mundo para aplicações
transacionais;
Tiram proveito de características dos sistemas relacionais e do sistema orientado a objeto;
50
Banco de Dados Orientados a Objetos
O banco de dados mais rápido para
aplicações OLTP;
O banco de dados mais rápido para
aplicações de datawarehouse;Banco de dados autogerenciável;
Características
Padrão ODMG
O ODMG (Object Database Management Group) era um consórcio de vendedores de banco de
dados orientados a objetos e mapeadores objeto-relacionais, membros da comunidade acadêmica,
e parceiros interessados. A meta era criar um conjunto de especificações que permitiriam a portabilidade das aplicações que armazenam
objetos em sistemas de gerenciamento de banco de dados.
Banco de Dados Orientados a Objetos
51
Padrão ODMG
Padronização vinda através do consórcio de
SGBDO que criou o padrão ODMG (Object
Data Management Group), lançando o
ODMG-93 ou ODMG 1.0.
Banco de Dados Orientados a Objetos
52
Linguagens de consulta
O ODMG definiu sua própria SQL:
OQL (Object Query Language), linguagem de
recuperação de objetos;
ODL (Object Definition Language), linguagem
para definir e armazenar estes objetos.
Banco de Dados Orientados a Objetos
53
Características básicas do objeto
1 ° - OID – O número de identificação do
objeto;
2 º - nome – Uma identificação feita durante
a aplicação.
3 º - tempo de vida – Um objeto é persistente
(ou seja, um objeto do banco de dados) ou
um objeto transiente (ou seja, próprio do
aplicativo);
4 º - estrutura – Define se o objeto é atômico
ou uma coleção.
Banco de Dados Orientados a Objetos
54
Tipos de Dados
O tipo de um objeto é definido pelo seu comportamento (conjunto de operações que podem ser executadas) e estado (valores que tomam suas propriedades – atributos e relações).
Existem três formas de caracterizar um tipo:
Uma interface define apenas o comportamento abstrato de um tipo de objeto.
Um literal define apenas o estado abstrato de um tipo literal.
Uma classe define o comportamento abstrato e o estado abstrato de um tipo de objeto.
Banco de Dados Orientados a Objetos
55
Banco de Dados Orientados a Objetos 56
Por que surgiram os
bancos de dados OO e
por que utilizá-los
57
Banco de Dados Orientados a Objetos
Os usuários não precisavam se preocupar com
conceitos ligados a maquina
Apenas com Objetos e operações
Beneficio elevar o nível de abstração ao Maximo
O objetivo de um programa de aplicação
é resolver um problema especifico
Já o BD resolve uma variedade de
problemas diferentes
58
Banco de Dados Orientados a Objetos
Em programas de aplicações é bom inserir
muita inteligência em OB complexos
Já No BD não é uma boa idéia
Alguns acreditam que
técnicas que envolvem
modelagem de Objetos são
as mais adequada para
aplicações complexas
59
Banco de Dados Orientados a Objetos
Os SQL‟s clássicos apresentam
dificuldades nessas áreas
60
Banco de Dados Orientados a Objetos
Modelo relacional
Curso {curso#, titulo}
Oferta {curso#, ofer#, dataofer, local}
Professor {curso#, ofer#,emp#}
Matricula{curso#, ofer#,grau}
emp{emp#,enome,salario,posição}
61
Banco de Dados Orientados a Objetos
Exemplo de modelagem
Curso
ProfessorMatricula
EMP
Oferta
62
Banco de Dados Orientados a Objetos
Linguagem de dados OPAL
baseada na smallTalk
63
Banco de Dados Orientados a Objetos
object subclasse : „emp‟
Nomesvarinst : #[„emp#‟,‟enome‟,‟posição‟]
Restrições : #[ #[#emp#,string],
[#enome, string],
[#posição, string]].
64
Banco de Dados Orientados a Objetos
Method : emp
Get_emp#
^emp#
%
Method : emp
Set_emp# : emp#_parm
emp# :=emp#_parm
%
65
Banco de Dados Orientados a Objetos
object subclasse : „curso‟
Nomesvarinst : #[„curso#‟,‟titulo‟,‟ofertas‟]
Restrições : #[ #[#curso#,string],
[#titulo, string],
[#oferta, oset]].
66
Banco de Dados Orientados a Objetos
object subclasse : „oferta‟
Nomesvarinst :
#[„ofer#‟,‟odate‟,‟local‟,‟matriculas‟,‟professore
s‟]
Restrições : #[ #[#ofer#,string],
[#odate, datetime],
[#local, string],
[#matriculas,nset],
[#professores, tset]].
67
Banco de Dados Orientados a Objetos
object subclasse : „matricula‟
Nomesvarinst : #[„emp‟,‟grau‟],
Restrições : #[ #[#emp,emp],
[#grau, string]].
68
Banco de Dados Orientados a Objetos
Emp subclasse : „professor‟
nomesvarinst : #[„cursos‟],
restrições : #[#[#cursos,cset]].
Set subclasse :‟eset‟
restrições : emp.
69
Banco de Dados Orientados a Objetos
Set subclasse :‟cset‟
restrições : curso.
Set subclasse :‟oset‟
restrições : oferta.
Set subclasse :‟nset‟
restrições : matricula.
Set subclasse :‟tset‟
restrições : professor.
70
Banco de Dados Orientados a Objetos
Como preencher o banco de dados
Method : eset
add_emp# : emp#_parm
add_enome# : enome#_parm
add_pos# : pos_parm
| emp_oid |
emp_oid := emp new.
emp_oid set_emp# : emp#_parm;
set_nome : enome parm;
set_pos : pos_parm.
Self add: emp_oid.
71
Banco de Dados Orientados a Objetos
Vamos inserir agora!
Oid_de_conj_de_todos_os_emps
add_emp# : „e009‟
add_enome : „helms‟
add_pos : „zelador‟.
72
Banco de Dados Orientados a Objetos
Busca
| curso_c001, c001_ofers, c001_ni_ofers |
Curso_c001
:= oosoac detect : [:cx | (cx get_curso#)=„c001‟].
C001_ofers
:= curso_c001 get_ofertas.
C001_ni_ofers
:= c001_ofers select :
[:ox | (ox get_local)=„nova york‟].
^c001_ni_ofers.
73
Banco de Dados Orientados a Objetos
Excluir
E001 := oid_de_conj_de_todos_os_emps
detect : [:ex | (ex get_emp#)=„e001‟].
oid_de_conj_de_todos_os_emps
remove : e001.
74
Banco de Dados Orientados a Objetos
Operações no BD
Linguagem de definição de Objetos
(ODL)
75
Banco de Dados Orientados a Objetos
Declaração de uma classe
Class <nome> [extends <nome_pai>]
[:<nomes_interfaces>] [(extends
<nome_extensão>)] {<elementos: atributos,
relacionamentos e metodos>
[<declaração_chaves>]}
76
Banco de Dados Orientados a Objetos
Declarações
Atributos:
Attribute <tipo> <nome>;
Relaciomentos:
Relationship <rangetype> <nome> [inverse
<nome_classe_inv>::<metodo_inv>]
77
Banco de Dados Orientados a Objetos
Rangetype
Declaração:
Set <tipo_conj>
78
Banco de Dados Orientados a Objetos
Metodos:
<tipo_retorno> <nome_metodo>
(<lista_parametros>) [raizes(<lista_exceçoes>)]
[in | out | inout] <nome_parametro>
79
Banco de Dados Orientados a Objetos
Chaves não são necessárias!
80
Banco de Dados Orientados a Objetos
Modelo entidade relacionamento
cliente
agencia
emprestimo
nome
ssn endereç
o
Id_empresti
mo
quanti
a
tipo
idagenci
a
localida
de
Cliente de
emprestant
e
Pertence_a
81Banco de Dados Orientados a Objetos
Entidade cliente em ODL
Interface cliente {
Attribute string nome;
Attribute integer ssn;
Attribute string addr {string rua, String cidade, int cep} endereço:
Relationship set<emprestimo> emprestou
inverse emprestimo :: emprestou:
Relationship set<agencia> tem_conta_eminverse agencia :: clientes:
Key (ssn)
}
82
Banco de Dados Orientados a Objetos
Linguagem de consulta de Objetos
(OQL)
83
Banco de Dados Orientados a Objetos
Não tem operações para atualizações
Possível define nome para uma consulta
Contém construtores de objetos
Suporta clausulas
84
Banco de Dados Orientados a Objetos
Sintaxe OQL igual a SQL
Select d.dnome from d in departamento
where d.faculdade=„engenharia‟;
Exemplo:
85
Banco de Dados Orientados a Objetos
Necessário um ponto de entrada!
Devemos definir uma variável de interação
86
Banco de Dados Orientados a Objetos
Três variáveis especificar interações87
Banco de Dados Orientados a Objetos
Uma consulta só
precisa de um objeto
persistente
88
Banco de Dados Orientados a Objetos
Fazer uma referência desse modo
89
Banco de Dados Orientados a Objetos
Set <departamento>
Inclusão de objetos no banco
João := cliente(nome: “joão”, ssn: 12345,
endereco: struct (rua: “rua A”, cidade:
“salvador”, cep: 12345));
Ou
Add emprestimo(quantia: 500, id_emprestimo:
1234, tipo: 2) to joão.emprestou;
90
Banco de Dados Orientados a Objetos
Swizzling
Clustering
Hibernate
Doctrine
91
Banco de Dados Orientados a Objetos
Swizzling
Swizzling é o processo de
conversão entre a
representação persistente
do objeto, na base de
objetos, e sua
representação dinâmica,
na linguagem de
programação orientada a
objetos adotada pela
aplicação, onde o objeto
será efetivamente
manipulado.
Banco de Dados Orientados a Objetos
92
Swizzling
A conversão ocorre:
1. No momento em que o objeto é transferido da base de objetos para o espaço de memória da aplicação (checkout);
2. Quando o objeto, já transferido para a memória, é referenciado pela primeira vez pela aplicação;
3. Se a aplicação o solicita explicitamente; e
4. Quando não é possível reaproveitar um endereço físico designado anteriormente, o qual é registrado também na base de dados.
Banco de Dados Orientados a Objetos
93
Clustering
Adoção de estratégias de
alocação de objetos no
sistema de
armazenamento de
modo a minimizar a
quantidade de páginas
necessárias para
manipular objetos.
Banco de Dados Orientados a Objetos
94
A
B
C
D
Objeto Complexo
Estratégias de Clustering
Banco de Dados Orientados a Objetos
95
A B C
Referências
A B C
Objetos complexos
AA AB AC
Tipos de objetos
A1 A2 A3
Índices
A B (A.atr)
Definição do usuário
Hibernate
O Hibernate é uma ferramenta de mapeamento
objeto/relacional para Java. Ela transforma os
dados tabulares de um banco de dados em
um grafo de objetos definido pelo
desenvolvedor.
Banco de Dados Orientados a Objetos
96
1. criar as classes ;
2. mapear cada uma das classes feitas;
3. criar os arquivo de configuração do hibernate;
A utilização do Hibernate consiste em:
Banco de Dados Orientados a Objetos 97
O Doctrine é um mapeador de
objeto–relacional que utiliza
objetos em PHP.
Doctrine
Vantagens
• Capacidade de Armazenamento de Objetos;
• Os Objetos se comunicam entre si através de mensagens;
• Permitem representar a semântica do problema do mundo real;
• Manipulam objetos complexos;
• Objetos podem ser reusados;
• Melhor gerenciamento de transação e concorrência;
• Linguagem de consulta mais expressiva;
• Melhor suporte para trabalho cooperativo.
Banco de Dados Orientados a Objetos
98
Desvantagens
Falta de Padronização das linguagens de
manipulação dos dados;
Alto custo de aquisição das novas
tecnologias;
Curva de aprendizagem e adaptação ao
novo ambiente demorada.
Banco de Dados Orientados a Objetos
99
Tendências
Entre as tendências
emergentes neste
contexto está o
armazenamento em
memória.
Prevayler (2006);
SOA (Service Oriented
Architecture)
Banco de Dados Orientados a Objetos
100
Conclusão
A evolução dos SGBDOO‟s facilitará a forma de
se trabalhar com dados mais complexos e com
os objetos das LPOO‟s.
Banco de Dados Orientados a Objetos
101
O paradigma de objeto relacional ainda não
esta bem consolidado no mercado de trabalho,
porém vem ganhando seu espaço rapidamente
devido ao seu conjunto de características que
facilitam a implementação da persistência.
Referências
• Jefferson A. do Rosario, Hemerson L. S. Carlin e Alexandre S. Cardoso. Bancos de Dados Orientados a Objetos e Objeto/Relacional. UNIOESTE – Universidade Estadual do Oeste do Paraná, 2009.
• Clodis Boscarioli, Anderson Bezerra, Marcos de Benedicto, Gilliard Delmiro. Uma reflexão sobre Banco de Dados Orientados a Objetos. UNIOESTE – Universidade Estadual do Oeste do Paraná / FASP - Faculdades Associadas de São Paulo, 2006.
• Cattel, R.G.G. Object-Oriented and Extended Relational Database Systems. Addison-Wesley, 1994.
• Cattell, R.G.G. The Object Database Standard: ODMG-93 -Release 1.2, Morgan Kaufmann Publishers, inc., 1996.
• Leonardo Jones, Luis Alberto, Murilo de Lima. Bancos de Dados Orientados a Objetos. Universidade Federal da Bahia, 2007.
Banco de Dados Orientados a Objetos
102