QualificaçãoTCC_PersistênciaSoftwareOOMapeamento.pps

Propaganda
Persistência em Software
Orientado a Objetos:
Soluções de Mapeamento
Orientador: Marco Antônio Pereira Araújo
Co-Orientadora: Alessandreia Marta de Oliveira Julio
Marcelo Santos Daibert
Agenda
•
•
•
•
•
•
•
•
•
Motivação
Contextualização
Mapeamento Objeto-Relacional
Camada de Persistência
Framework de Persistência
Resultados
Próximos Passos
Conclusão
Referências
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
• 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 deste trabalho é apresentado uma
abordagem 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
• Modelo Orientado a Objetos:
– Classes
– Atributos
– Objetos
5
Mapeamento Objeto-Relacional
• Consiste em mapear as classes, seus atributos e
seus relacionamentos para o modelo relacional
• Escolhendo um OID (Object Identification)
• Mapeando atributos para colunas
• Mapeando classes para tabelas
6
Mapeamento Objeto-Relacional
• Mapeando Herança
– Três estratégias para o mapeamento de heranças
7
Mapeamento Objeto-Relacional
• Mapeando Relacionamentos
– Do Tipo Um (1:n e 1:1)
– Do Tipo Muitos (n:n)
8
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
9
Camada de Persistência
– Camada de Classes de Dados
– Camada de Persistência (Enfoque deste trabalho)
10
Framework 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
Persistência de Objetos
Manipulação de Objetos
•
•
•
•
Create - Criar
Retrieve - Recuperar
Update - Atualizar
Delete - Excluir
11
Framework de Persistência - DePO
• DePO (Delphi Persistent Objects)
– Ambiente de Desenvolvimento
• Linguagem Delphi / Kylix
– Plataforma Suportada
• Windows / Linux
– Compatibilidade com SGBD Relacional
• Todos
– Estratégia de Mapeamento
• XML ou .pas agregado ao sistema
– Valor
• Freeware e OpenSource
12
Framework de Persistência - DePO
– Estratégia para Persistência
• Classe que será persistida herda da classe persistente do
DePO
– Estratégia para Relacionamento Herança
• Uma tabela para cada classe
– Estratégia para Relacionamento do Tipo Um
• Chave estrangeira na tabela referenciada e/ou que
referencia
– Estratégia para Relacionamento do Tipo Muitos
• Cria-se outra tabela para o manter o relacionamento
• Suporte ao Tipo Coleção de Objetos
• Transparente ao programador
13
Framework de Persistência - DePO
• Estudo de Caso
14
Framework de Persistência - DePO
– Configurando os Componentes DePO
15
Framework de Persistência - DePO
– Configurando os Componentes DePO
16
Framework de Persistência - DePO
– Mapeamento
TPessoa = class(TdpoPersistentObject)
private
FCodigo: Integer;
FNome: String;
published
property Codigo: Integer read FCodigo write FCodigo;
property Nome: String read FNome write FNome;
end;
TProfessor = class(TPessoa)
private
FCPF: Integer;
published
property CPF: Integer read FCPF write FCPF;
end;
17
Framework de Persistência - DePO
– Mapeamento
with dpoDBMappingManager.Classes.Add do
begin
ClassObject := TProfessor;
InheritsMappingFrom := TPessoa;
StorageName := 'Professor';
with AttributesMapping.add do
begin
AttributeName := 'Codigo';
IsOid
:= True;
ColumnName
:= 'Codigo';
IndexType
:= idxUnique;
Required
:= True;
end;
with AttributesMapping.add do
begin
AttributeName := 'CPF';
IsOid
:= False;
ColumnName
:= 'CPF';
Required
:= True;
end;
end;
18
Framework de Persistência - DePO
– Manipulação dos Objetos
• Instanciação e Persistência
var
Aluno: TAluno;
begin
Aluno:= TAluno.Create(dpoDBXMechanism);
Aluno.Codigo:= '1';
Aluno.Nome:= 'José da Silva';
Aluno.Matricula:= '2002102013';
Aluno.Save;
end;
19
Framework de Persistência - DePO
– Manipulação dos Objetos
• Recuperação
var
Aluno: TAluno;
begin
Aluno:= TAluno.Create(dpoDBXMechanism);
Aluno.Codigo:= '1';
if not Aluno.Retrieve then
begin
MessageDlg('Aluno não existe', mtWarning, [mbOK], 0);
end;
end;
20
Framework de Persistência - DePO
– Manipulação dos Objetos
• Atualização
var
Aluno: TAluno;
begin
Aluno:= TAluno.Create(dpoDBXMechanism);
Aluno.Codigo:= '1';
if Aluno.Retrieve then
begin
Aluno.Nome:= 'Joaquim Souza';
Aluno.Save;
end;
end;
21
Framework de Persistência - DePO
– Manipulação dos Objetos
• Exclusão
var
Aluno: TAluno;
begin
Aluno:= TAluno.Create(dpoDBXMechanism);
Aluno.Codigo:= '1';
if Aluno.Retrieve then
begin
Aluno.Delete;
Aluno.Save;
end;
end;
22
Resultados
• Submissão de artigo à revista ClubeDelphi:
“Persistência de Objetos no Delphi: Introdução ao
framework DePO (Delphi Persistent Objects)”
23
Próximos Passos
• Estudo dos frameworks:
–
–
–
–
–
IO (Instant Objects)
TiOPF (TechInside Object Persistence Framework)
ECO (Enterprise Core Objects)
Miolo
Hibernate
• Reestruturação do relatório monográfico para
buscar maior didática
• Estudo comparativo entre os frameworks
• Divulgação e disponibilização dos resultados para
24
a comunidade acadêmica
Conclusão
• Os frameworks buscam suprir as necessidades
do desenvolvimento orientado a objetos, unindo:
– A Maturidade,
– A Confiança,
– E a Rapidez dos bancos de dados relacionais
25
Referências
•
AMBLER, S. W. Mapping Objects To Relational Databases. Disponível em:
<http://www.ambysoft.com/mappingObjects.html>. Acesso em: 10 jun. 2005.
•
AMBLER, S. W. Análise e Projeto Orientado a Objeto. Rio de Janeiro:
Infobook, 1997.
•
AMBLER, S. W. The Design of a Robust Persistence Layer for Relational
Databases. Disponível em: <http://www.ambysoft.com/persistenceLayer.html>.
Acesso em: 10 jun. 2005.
•
SATZINGER, J.; ORVIK, T. Object-Oriented Approach. USA: Course
Technology, 1996.
•
TAFNET, M. A.; CORREIA, C. H. Análise Orientada a Objetos. Florianópolis:
Visual Books, 2001.
26
Download