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 Domínio Classes de Acesso a Dados 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) http://www.liws.com.br/depo TiOPF (TechInsite Object Persistence Framework) http://www.techinsite.com.au/tiopf/ Instant Objects PHP http://www.instantobjects.org/ 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 http://www.hibernate.org/ Prevayler http://www.prevayler.org/ JBanana http://jbanana.c3sl.ufpr.br/ JDO (Java Data Objects) 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 http://www.nhibernate.org/ Gentle.Net 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