1 / 26

Persistência em Software Orientado a Objetos:

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

jaimie
Download Presentation

Persistência em Software Orientado a Objetos:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Agenda • Motivação • Contextualização • Mapeamento Objeto-Relacional • Camada de Persistência • Framework de Persistência • Resultados • Próximos Passos • Conclusão • Referências

  3. 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

  4. 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

  5. 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

  6. 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

  7. Mapeamento Objeto-Relacional • Mapeando Herança • Três estratégias para o mapeamento de heranças

  8. Mapeamento Objeto-Relacional • Mapeando Relacionamentos • Do Tipo Um (1:n e 1:1) • Do Tipo Muitos (n:n)

  9. 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

  10. Camada de Persistência • Camada de Classes de Dados • Camada de Persistência (Enfoque deste trabalho)

  11. 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

  12. 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

  13. 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

  14. Framework de Persistência - DePO • Estudo de Caso

  15. Framework de Persistência - DePO • Configurando os Componentes DePO

  16. Framework de Persistência - DePO • Configurando os Componentes DePO

  17. 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;

  18. 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;

  19. 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;

  20. 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;

  21. 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;

  22. 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;

  23. Resultados • Submissão de artigo à revista ClubeDelphi: “Persistência de Objetos no Delphi: Introdução ao framework DePO (Delphi Persistent Objects)”

  24. 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 a comunidade acadêmica

  25. 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

  26. 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.

More Related