Persistência em Software Orientado a Objetos:

Propaganda
Persistência em Software
Orientado a Objetos:
Abordagens Utilizando
Frameworks OpenSource
Marcelo Santos Daibert
Orientador: Marco Antônio Pereira Araújo
Co-Orientadora: Alessandreia Marta de Oliveira Julio
Agenda
●
Motivação
●
Contextualização
●
Mapeamento Objeto-Relacional
●
Camada de Persistência
●
Frameworks de Persistência
●
Considerações Finais
2
Motivação
●
●
●
Crescente utilização do paradigma orientado a
objetos no desenvolvimento de software
Necessidade de persistência dos objetos em
alguma estratégia de armazenamento:
–
Arquivo texto, xml, serializado
–
Banco de dados relacional, pós-relacional,
orientado a objetos
Atualmente os banco de dados orientado a objetos
não são maduros o suficiente
3
Contextualização
●
Persistência de Objetos
●
Estratégias de Persistência em Banco de Dados:
–
●
Orientado a objetos, objeto-relacional e relacional
No contexto desta apresentação é apresentado
abordagens de persistência de objetos em banco
de dados relacional
4
Mapeamento Objeto-Relacional
●
●
O modelo relacional de dados difere
substancialmente do modelo orientado a objetos
Modelo Relacional:
–
–
–
●
Tabelas
Linhas (tuplas)
Colunas
Tabelas
Modelo Orientado a Objetos:
–
Classes
–
Atributos
–
Objetos
–
Relacionamentos
Classes
5
Mapeamento Objeto-Relacional
●
Consiste em mapear as classes, seus atributos e
seus relacionamentos para o modelo relacional
Tabelas
Classes
●
●
●
●
Escolher um OID (Object Identification)
Mapear classes para tabelas
Mapear atributos para colunas
Mapear os relacionamentos
– Herança, Associação, Composição, Agregação
6
Mapeamento Objeto-Relacional
●
Mapear Herança
–
Três estratégias para o mapeamento de
heranças
●
Uma tabela por hierarquia
7
Mapeamento Objeto-Relacional
●
Uma tabela por classe concreta
8
Mapeamento Objeto-Relacional
●
Uma tabela por classe
9
Mapeamento Objeto-Relacional
●
Mapear Relacionamentos
–
Do Tipo 1:1
–
Do Tipo 1:N
10
Mapeamento Objeto-Relacional
–
Do Tipo N:N
11
Camada de Persistência
●
●
Estrutura agregada ao sistema responsável pela
persistência e manipulação dos objetos
Três estratégias para persistência de objetos em
um banco de dados relacional:
–
Camada SQL
SQL
SGBDR
Classes de Domínio
12
Camada de Persistência
–
Camada de Classes de Acesso a Dados
SQL
SGBDR
Classes de
Acesso a Dados
Classes de Domínio
–
Camada de Persistência
Camada
de
Persistência
SQL
SGBDR
Classes de Domínio
13
Frameworks de Persistência
●
Conceito: Solução completa e genérica para
camada de persistência de objetos:
–
Conexão ao banco de dados relacional
–
Mapeamento Objeto-Relacional
–
Persistência de Objetos
–
Manipulação de Objetos – CRUD:
●
●
●
●
Create – Criar
Retrieve – Recuperar
Update – Atualizar
Delete – Excluir
14
Frameworks de Persistência
●
Kylix / Delphi
–
DePO* (Delphi Persistent Objects)
●
–
TiOPF (TechInsite Object Persistence Framework)
●
–
http://www.techinsite.com.au/tiOPF/
Instant Objects
●
●
http://www.liws.com.br/depo
http://www.instantobjects.org/
PHP
–
Miolo
●
http://www.miolo.org.br
*DAIBERT, M. S., ARAÚJO, M. A. P., JULIO, A. M. O. Persistência de Objetos no Delphi:
Introdução ao DePO (Delphi Persistent Objects). Clube Delphi, dez 2005.
15
Frameworks de Persistência
●
Java:
–
Hibernate
●
–
Prevayler
●
–
http://jbanana.c3sl.ufpr.br/
JDO (Java Data Objects)
●
–
http://www.prevayler.org/
JBanana
●
–
http://www.hibernate.org/
http://java.sun.com/products/jdo/
CMP e BMP (Container/Bean Managed Persistence)
●
http://java.sun.com/products/ejb/
16
Frameworks de Persistência
●
Plataforma .NET:
–
NHibernate
●
–
Gentle.Net
●
–
http://www.nhibernate.org/
http://sourceforge.net/projects/gopf
XPrevail
●
http://xprevail.sourceforge.net/
17
Considerações Finais
●
Os frameworks de persistência buscam
facilitar o desenvolvimento do software,
associando:
–
Velocidade e maturidade dos bancos de dados
relacionais
–
Com as vantagens do paradigma orientado a
objetos
18
Persistência em Software
Orientado a Objetos:
Abordagens Utilizando
Frameworks OpenSource
{msdaiber, maraujo, amojulio} @granbery.com.br
Marcelo Santos Daibert
Orientador: Marco Antônio Pereira Araújo
Co-Orientadora: Alessandreia Marta de Oliveira Julio
Download