Buscar

Mapeamento Objeto Relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Mapeamento Objeto/Relacional
Marcio Aguiar Ribeiro
marcio@les.inf.puc-rio.br
© LES/PUC-Rio
Roteiro
• Introdução
• Informações básicas
– Shadow information
• Mapeando relações
– Tipos de relações
– Relações objeto vs. relacional
• Um para um
• Um para muitos
• Muitos para muitos
– Relações ordenadas
• Mapeando herança
– Tabela por hierarquia
– Tabela por classe concreta
– Tabela por classe
– Comparação das estratégias
• Performance
– Carga preguiçosa
© LES/PUC-Rio
Introdução
• Problema de impedância
– Modelo de objeto é diferente do modelo relacional
• Posição memória vs. Chave primária
• Referências vs. Chave estrangeira
• Herança
• Java GC 
© LES/PUC-Rio
Introdução
© LES/PUC-Rio
Shadow Information
• Informações necessárias na persistência que vão além do 
domínio do objeto
– IDs, data de criação, última atualização, versionamento...
© LES/PUC-Rio
Relacionamentos
• Multiplicidade
– One-to-One
– One-to-Many
– Many-to-Many
• Navegabilidade
– Unidirecional
– Bidirecional
• E/R todas as relações são bidirecionais
© LES/PUC-Rio
Relacionamentos - Objetos
One-to-one
One-to-Many
Many-to-Many
Unidirecional
Bidirecional
Bidirecional
© LES/PUC-Rio
Relacionamentos - ER
SELECT * FROM Position, Employee 
WHERE Position.EmployeePOID = Employee.EmployeePOID
SELECT * FROM Position, Employee
WHERE Position.PositionPOID = Employee.PositionPOID
© LES/PUC-Rio
Herança
• Abordagens
– Tabela por hierarquia
– Tabela por classe concreta
– Tabela por classe
– Estrutura genérica
© LES/PUC-Rio
Herança - Objetos
© LES/PUC-Rio
Herança – Tabela por hierarquia
• Todos os atributos são colocados em uma única tabela
• Necessita uma coluna para identificar o tipo
© LES/PUC-Rio
Herança – Tabela por hierarquia
1)
2)
© LES/PUC-Rio
Herança – Tabela por hierarquia
• Vantagem
– Simples implementação
– Fácil inclusão de classes
– Bom suporte a polimorfismo
– Acesso rápido
• Desvantagens
– A modificação de uma classe pode afetar outras classes na hierarquia
– Desperdicio de espaço
– Pode gerar tabelas muito grandes
– Atributos não podem ter restrições do tipo not-null
• Quando usar
– Hierarquias simples
© LES/PUC-Rio
Herança – Table por classe concreta
• Cada classe concreta é mapeada para uma tabela
© LES/PUC-Rio
Herança – Table por classe concreta
• Vantagem
– Boa performance para acesso de um único objeto
• Desvantagem
– Modificação de uma classe acarreta na modificação de sua 
tabela e todas as classes filhas
– Dificuldade de manter diversos papeis para um único objeto
– Dificuldade de modificar um papel de um objeto
• Quando usar
– Quando a troca de tipos e/ou overlap de tipos é rara
© LES/PUC-Rio
Herança – Tabela por classe
• Uma tabela por classe
© LES/PUC-Rio
Herança – Tabela por classe
• Vantagem
– Fácil compreensão
– Bom suporte para polimorfismo
– Facilidade para modificar superclasses e adicionar subclasses
– Crescimento de dados é proporcional ao número de objetos
• Desvantagem
– Muitas tabelas
– Potencialmente lento
• Quando usar
– Quando o overlap entre os tipos é significativo
– Mudanca nos tipos é comum
© LES/PUC-Rio
Referências
• Scott Ambler – Object Mapping 101
– http://www.agiledata.org/essays/mappingObjects.html

Continue navegando