120 likes | 213 Views
Ferramentas de Mapeamento OO para ER. Aluno Eduardo Mazza ( emb@cin.ufpe.br ) Professora Valeria Times ( vst@cin.ufpe.br ). Roteiro. Introdução (Do que se trata? Quais são as vantagens?) Tecnologia (Como é feito?) Ferramentas (O que o mercado usa?) Problemas (Desvantagens conhecidas)
E N D
Ferramentas de Mapeamento OO para ER Aluno Eduardo Mazza (emb@cin.ufpe.br) Professora Valeria Times (vst@cin.ufpe.br)
Roteiro • Introdução (Do que se trata? Quais são as vantagens?) • Tecnologia (Como é feito?) • Ferramentas (O que o mercado usa?) • Problemas (Desvantagens conhecidas) • Referências
Introdução • Nova camada de persistência • Abstração do SGBD • Abstração do Modelo • Reduz o código • Aumenta performance • Trasparent Persistence • Manipular diretamente dados em banco de dados relacional usando um linguagem OO
Tecnologia • Camada de Mapeamento • Mapeamento Obejto-Para-Tabela • Mapeamento Tabela-Para-Objeto • Caching • Cache sychronization
Tecnologia • Mapeamento Objeto-Para-Tabela • Mapear o objeto para uma ou mais tabelas • Mapear classes de coleções em tabelas • Mapear os tipos dos objetos em objetos do banco de dados (direto) • Mapear relações de objetos em chaves tabelas de intersessão (n para n)
Tecnologia • Mapeamento Tabela-Para-Objetos • Mapear tipos de dados do banco de dados para tipos de objetos (direto) • Mapear as relações de chave estrangeira • Mapear as heranças • Mapear tabelas de intersessão para relações de objetos (n para n)
Tecnologia • Caching • Minimizar acesso ao disco • Acumula a estrutura do relacionamento
Tecnologia • Caching synchronization • Mais de uma aplicação usando a mesma base de dados
Ferramentas • Hibernate • Arquivos XML com o mapeamento • JDO (Java Data Objects) • Uso de linguagem própria (Java Data Objects Query Language) • JGrinder • Classes estendidas do modelo Domain • JRF • Classes de persistência + Classes de mapeamento
Problemas • Muito esforço é requerido na descrição do mapeamento • Objetos com muitos relacionamentos podem gerar muito SELECT sem fazer uso da informação • Não é possível executar QUERY com recursos avançados • Performance pode ser prejudicada devido a falta de técnicas de otimização
Referências • Object-Relational mapping articles • (www.service-architecture.com/object-relational-mapping/articles/index.html) • Hibernate (www.hibernate.org) • jRelationalFramework (jrf.sourceforge.net) • Java Data Objects (java.sun.com/products/jdo/)
Finalizando • Perguntas??? • Críticas??? • Sugestões???