A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Mapeamento Objeto Relacional

Apresentações semelhantes


Apresentação em tema: "Mapeamento Objeto Relacional"— Transcrição da apresentação:

1 Mapeamento Objeto Relacional
Márcio F. Campos

2 Persistência Persistência é um dos conceitos fundamentais de uma aplicação. Se um sistema de informação não preservar seus dados quando “desligado” este sistema terá baixo valor agregado.

3 Banco de Dados Relacionais
A posição dos banco de dados relacionais deve ser entendida pela sua extrema flexibilidade e robustez na persistência/gerência Devido a sua teoria bem fundamentada estes banco de dados efetivamente garantem e protegem a integridade dos dados. Possuem independência de dados. Compartilhamento de dados. Utilização de SQL.

4 Persistência em Aplicações Orientadas a Objetos
Em uma aplicação orientada a objetos a persistência possibilita um objeto sobreviver a execução de um processo que o criou. O estado de um objeto pode ser armazenado em disco. Este mesmo objeto pode ser recriado/materializado no futuro. Este mecanismo se aplica a um único objeto ou a um coleção deles. Entretanto muitos objetos são transientes. Objetos de fronteira e objetos de controle são normalmente transientes.

5 Descompasso dos Paradigmas
Problema de granularidade(tipos). Subtipos/herança. Identidade do objeto. Associações: chaves vs referência.

6 Custo do descompasso Um dos maiores custos: o modelo relacional e de domínio devem ser semelhantes. Entretanto a modelagem de objetos pode levar a modelos diferenciados de domínio.

7 Acesso Direto ao BDD Possibilitar que cada objeto persistente do sistema possua os comportamentos de forma a permitir a sua restauração, atualização e remoção. Neste caso as classes do sistema ficam muito acopladas ao bando de dados dificultando a migração para outros sistemas. Necessidade de se conhecer SQl para fazer acesso ao BDD. A coesão das classes diminui já que cada classe deve possuir responsabilidades adicionais para o armazenamento e materialização dos objetos.

8 Camada de Persistência
O objetivo da camada de persistência é o isolar os objetos do sistema de mudanças do mecanismo de armazenamento. É através deste mecanismos que os sistemas que se diminui o acoplamento entre os objetos do sistema e a camada do sistema, tornando o sistema mais flexível e portável. A desvantagem é a sobrecarga desta intermediação, além da complexidade para a realização de determinadas atividades.

9 Mapeamento Objeto Relacional
Equivale a persistência automática e transparente de objetos em um banco de dados relacional através de utilização de metadados para o mapeamento objeto- relacional. Transforma dados de uma representação em outra. Pode ser considerado uma extensão do modelo relacional onde são inseridas características de orientação a objetos.

10 Elementos de de uma solução de persistência
Interface para realizar operações de CRUD. Linguagem para especificar consultas/querys. Mecanismos para especificação de metadados. Mecanismos para otimização de funções.

11 Regras de mapeamento Classes e atributos. Associações.
Classes são mapeadas para relações Um atributo será mapeado para uma coluna. Atributos derivados, em geral, não são mapeados. Cada instância de uma classe equivale a uma coluna na tabela respectiva. Associações. Um para Um: verificar se opcional ou obrigatória. Um para Muitos:adicionar chave estrangeira na tabela com referência a muitos elementos Muitos para Muitos: criar classe de associação.

12 Regras de mapeamento Classes Associativas.
As associações entre classes corresponderão a tabelas associativas no modelo relacional. Associações temporárias e do controlador. Estas associações não são transformadas em tabelas relacionais. Um controlador é normalmente um objeto único.

13 Regras de mapeamento Generalização: Três formas básicas:
(1)uma tabela para cada classe da hierarquia; (2)uma relação para toda a hierarquia; (3)uma relação para cada classe concreta da hierarquia. (1)utilização de chave estrangeira para cada relação da subclasse . (2) existência de um atributo para diferenciar o conceito. (3) atributos da superclasse são replicados.

14 Mapeamento <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" " <hibernate-mapping> <class name="hello.Mundo" table="MESSAGES"> <id name="id" column="ID_MUNDO"> <generator class="increment"/> </id> <property name="text" column=“MUNDO_TEXT"/> <many-to-one name="nextMessage“ cascade="all" column="NEXT_MUNDO_ID" Foreign-key="FK_NEXT_MESSAGE"/> </class> </hibernate-mapping>

15 Aspectos importantes Materialização: Atualização: Remoção:
Restaurar um objeto a partir do banco de dados. Atualização: Enviar modificações sobre um objeto para o banco de dados. Remoção: Remover um objeto do armazenamento persistente.

16 Dúvidas?


Carregar ppt "Mapeamento Objeto Relacional"

Apresentações semelhantes


Anúncios Google