7/30/2019 Parte11 - MapeamentoObjetoRelacional
1/35
Mapeamento de Objetos para
Tabelas Relacionais
7/30/2019 Parte11 - MapeamentoObjetoRelacional
2/35
Sem dvida os SGBDR dominam o mercadocomercial. Oracle MS-SQLServer IBM DB2 Informix Sybase Ingres MySQL PostgreSQL Outros...
7/30/2019 Parte11 - MapeamentoObjetoRelacional
3/35
Banco de Dados OO
Maiores informaes: http://www.odbms.org/
A informao a ser armazenada o objeto
Apenas para nichos especficos Telecomunicaes
espao
sade
Multimedia
CAD/CAM/CAE
7/30/2019 Parte11 - MapeamentoObjetoRelacional
4/35
Tipos de objetos
Os objetos podem ser persistentes outransientes.
Objetos transientes: existem somente na
memria principal. Objetos de controle e objetos de fronteira.
Objetos persistentes: tm uma existncia que
perdura durante vrias execues do sistema. Precisam ser armazenados e recuperados.
Tipicamente objetos de entidade.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
5/35
Projeto de banco de dados
Uma das primeiras atividades do projetodetalhado de um software o desenvolvimentodo banco de dados.
Essa atividade corresponde aoprojeto do bancode dados. Principais tarefas: Construo do esquema do banco de dados
Armazenamento fsico dos dados
Definio de vises sobre os dados armazenados. Atribuio de direitos de acesso
Polticas de backup dos dados
7/30/2019 Parte11 - MapeamentoObjetoRelacional
6/35
Conceitos do modelo relacional
O modelo relacional fundamentado no conceito derelao.
Cada coluna de uma relao pode conter apenas valoresatmicos.
chave primria: colunas cujos valores podem ser utilizadospara identificar unicamente cada linha de uma relao.
Associaes entre linhas: valores de uma coluna fazemreferncia a valores de uma outra coluna. (chaveestrangeira) .
Uma chave estrangeira tambm pode conter valores nulos ,representados pela constante NULL.
O NULL normalmente usado para indicar que um valorno se aplica, ou desconhecido, ou no existe.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
7/35
Mapeamento de objetos para omodelo relacional
a partir do modelo de classes que omapeamento de objetos para o modelorelacional realizado.
Semelhante ao mapeamento do MER. Diferenas em virtude de o modelo de classes possuir
mais recursos de representao que o MER.
MER e o modelo de classes no so equivalentes! O MER um modelo de dados; O modelo de classes representa objetos (dados e
comportamento).
7/30/2019 Parte11 - MapeamentoObjetoRelacional
8/35
Mapeamento de objetos para omodelo relacional
Os exemplos dados a seguir utilizam umacoluna de implementao como chave
primria de cada relao.
Uma coluna de implementao umidentificador sem significado no domnio denegcio.
Essa abordagem utilizada: para manter uma padronizao nos exemplos
7/30/2019 Parte11 - MapeamentoObjetoRelacional
9/35
Mapeamento: Classes e seus atributos
Classes so mapeadas para tabelas. Caso mais simples: mapear cada classe como uma
tabela, e cada atributo como uma coluna.
No entanto, pode no haver correspondncia unvocaentre classes e tabelas.
Para atributos o que vale de forma geral queum atributo ser mapeado para uma ou mais
colunas. Nem todos os atributos de uma classe so
persistentes (atributos derivados).
7/30/2019 Parte11 - MapeamentoObjetoRelacional
10/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
11/35
Mapeamento de associaes
O procedimento utiliza o conceito de chave estrangeira .
H trs casos, cada um correspondente a um tipo deconectividade.
Nos exemplos dados a seguir, considere o seguinte diagramade classes:
7/30/2019 Parte11 - MapeamentoObjetoRelacional
12/35
Mapeamento de associaes 1..1
Raramente acontecem
Deve-se adicionar uma chave estrangeira emuma das duas tabelas.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
13/35
Exemplo de mapeamento deassociao 1..1
7/30/2019 Parte11 - MapeamentoObjetoRelacional
14/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
15/35
Mapeamento de associaes muitos-
muitos
Uma tabela de associao deve ser criada.
Alternativas para definir a chave primria.
definir uma chave primria composta,combinando as chaves primrias das tabelas.
criar uma coluna de implementao que sirvacomo chave primria simples da relao de
associao.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
16/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
17/35
Mapeamento de agregaes
Forma especial de associaomesmoprocedimento para realizar o mapeamento deassociaes pode ser utilizado.
A diferena semntica influi na forma como oSGBDR deve agir quando um registro da relaocorrespondente ao todo deve ser excludo ouatualizado.
Remoo ou atualizao em cascata. Pode ser implementado como gatilhos (triggers) e
procedimentos armazenados (stored procedures) .
7/30/2019 Parte11 - MapeamentoObjetoRelacional
18/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
19/35
Mapeamento de associaes n-rias
Associaes n-rias (n 3): procedimentosemelhante ao utilizado para associaesbinrias de conectividade muitos para muitos .
Uma relao para representar a associao criada.
So adicionadas nesta relao chaves estrangeiras.
Se a associao n-ria possuir uma classeassociativa, os atributos desta so mapeadoscomo colunas da tabela de associao.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
20/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
21/35
Mapeamento de classes associativas
Mapeamento feito atravs da criao deuma tabela para represent-la.
Os atributos da classe associativa somapeados para colunas dessa tabela.
Essa tabela deve conter chaves estrangeirasque referenciem as tabelas correspondentes
s classes que participam da associao.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
22/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
23/35
Mapeamento de Herana
Trs formas alternativas de mapeamento: Uma tabela para cada classe da hierarquia Uma tabela para toda a hierarquia Uma tabela para cada classe concreta da hierarquia
Nenhuma das alternativas de mapeamento degeneralizao pode ser considerada a melhor dentretodas.
Cada uma delas possui vantagens e desvantagens. Escolha de uma delas depende do software sendo
desenvolvido. A equipe de desenvolvimento pode decidir implementar
mais de uma alternativa.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
24/35
7/30/2019 Parte11 - MapeamentoObjetoRelacional
25/35
Mapeamento de herana
A 1 alternativa (uma relao para cada classeda hierarquia) a que melhor reflete omodelo OO.
Desvantagem: desempenho da manipulao dasrelaes.
Inseres, remoes ejunes.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
26/35
Mapeamento de herana
A 2 alternativa de implementao bastantesimples, alm de facilitar situaes em queobjetos mudam de classe.
Desvantagem: alterao de esquema Adio ou remoo de atributos.
tem o potencial de desperdiar bastante espao dearmazenamento
7/30/2019 Parte11 - MapeamentoObjetoRelacional
27/35
Mapeamento de herana
A 3 alternativa apresenta a vantagem de agrupar os objetosde uma classe em uma nica relao.
Desvantagem: quando uma classe modificada, cada uma dastabelas correspondentes as suas subclasses deve ser
modificada.
Todas as tabelas correspondentes a subclasses devem sermodificadas quando a definio da superclasse modificada.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
28/35
Camada de Persistncia
Para isolar os objetos do negcio de detalhes de comunicaocom o SGBD, uma camada de persistncia pode ser utilizada.
O objetivo de uma camada de persistncia isolar os objetosdo software de mudanas no mecanismo de
armazenamento. Se um SGBD diferente tiver que ser utilizado pelo sistema,
somente a camada de persistncia modificada;
Os objetos da camada de negcio permanecem intactos.
Diminuio do acoplamento entre os objetos e a estrutura dobanco de dados torna o software maisflexvel e mais portvel.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
29/35
Camada de persistncia
No entanto, as vantagens de uma camada depersistncia no vm de graa. A intermediao feita por essa camada entre os objetos do
domnio e o SGBD traz uma sobrecarga de processamento .
A camada de persistncia pode aumentar a complexidadecomputacional da realizao de operaes que seriamtriviais com o uso direto de SQL.
As vantagens adquiridas pela utilizao de uma camada
de software, principalmente em sistemas complexos ,geralmente compensam a perda no desempenho e adificuldade de implementao.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
30/35
Estratgias de persistncia
H diversas estratgias que podem serutilizadas para definir a camada depersistncia de um software:
Acesso direto ao banco de dados
Uso de um SGBDOO ou de um SGBDOR
Uso do padro DAO (Data Access Object )
Uso de um frameworks
7/30/2019 Parte11 - MapeamentoObjetoRelacional
31/35
Acesso direto
Uma estratgia simples para o mapeamento objeto-relacional cada objeto persistente possuircomportamento que permita a sua restaurao,atualizao ou remoo. H cdigo escrito em SQL para realizar a insero,
remoo, atualizao e consulta das tabelas onde estoarmazenados os objetos.
Essa soluo de fcil implementao em Linguagens
de quarta gerao, como o Visual Basic, e o Delphi. Essa estratgia de mapeamento objeto-relacional
justificvel para sistemas simples.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
32/35
Acesso direto - desvantagens
Classes relativas lgica do negcio ficam muito acopladas sclasses relativas interface grfica e ao acesso ao banco dedados.
Mais complicado migrar o software de um SGBD para outro.
A lgica da aplicao fica desprotegida de eventuaismodificaes na estrutura do banco de dados. A coeso das classes diminui
cada classe deve possuir responsabilidades relativas aoarmazenamento de seus objetos, alm de ter responsabilidadesinerentes ao negcio.
Dificuldades de manuteno e extenso do cdigo fontepraticamente probe a utilizao desta estratgia em sistemascomplexos.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
33/35
Uso de SGBDOO ou SGBDOR
Um SGBDOO permite a definio de estruturas de dadosarbitrariamente complexas (classes) no SGBDOO.
Nesse modelo, atributos de um objeto podem contervalores de tipos de dados estruturados
No modelo relacional, as tabelas s armazenam itensatmicos. possvel definir hierarquias de herana entre classes. A linguagem de consulta para SGBDOO, OQL (Object Query
Language), permite consultar e manipular objetos
armazenados em um banco de dados. Tambm possui extenses para identidade de objetos, objetos
complexos, chamada de operaes e herana.
7/30/2019 Parte11 - MapeamentoObjetoRelacional
34/35
Uso de SGBDOO ou SGBDOR
Os principais SGBDR comearam a incorporarcaractersticas de orientao a objetos.
Esses SGBD passaram a adotar o modelo de dados
objeto-relacional, (extenso do modelo relacional),onde so adicionadas caractersticas da orientao
a objetos.
Hoje em dia os principais SGBD so sistemas degerncia de bancos de dados objeto-relacionais
(SGBDOR).
7/30/2019 Parte11 - MapeamentoObjetoRelacional
35/35
Uso do padro DAO
O padro DAO uma forma de desacoplar as classes donegcio dos aspectos relativos ao acesso aoarmazenamento persistente. DAO: Data Access Object (Objeto de Acesso a Dados).
Nessa estratgia, um software obtm acesso a objetos denegcio atravs de uma interface, a chamada interfaceDAO.
O software interage com o objeto DAO atravs de umainterface.
O objeto DAO isola completamente os seus clientes dasparticularidades do mecanismo de armazenamento (fontede dados) sendo utilizado. Ex. JDBC, ODBC, ADO.NET
Top Related