Camada de Persistência

Slides:



Advertisements
Apresentações semelhantes
Um pouco mais de cardinalidade e Relacionamentos
Advertisements

I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Triggers Renata Viegas.
Funcionalidades de um SGBD
SISTEMAS DE INFORMAÇÃO
Modelo Entidade-Relacionamento
Projeto de Banco de Dados
DIAGRAMA DE CLASSES X DIAGRAMA DE ENTIDADES E RELACIONAMENTOS
Maurício Edgar Stivanello
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Motor de Armazenamento
Sistema Gerenciador de Banco de Dados SGBD
Mapeamento Objeto Relacional
Projeto de Sistema Orientado a Objeto
Banco de Dados Oracle AESO.
Introdução à Engenharia da Computação
Org. e Projeto de Banco de Dados
Diagrama de Classes.
(Linguagem de Modelagem Unificada)
Caio Nakashima Hibernate Associação Caio Nakashima
Contratos Modelagem Funcional.
Geração de Código.
Profa. Priscila Facciolli
Mapeamento de Objetos para Tabelas Relacionais
Diagramas de Sequência e Comunicação
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Banco de Dados Aplicado ao Desenvolvimento de Software - BDD
Pesquisa em Memória Primária
DIAGRAMA DE CLASSE Modelagem de Software
Mapeamento de Objetos para o Modelo Relacional - Introdução
Engenharia de Software e Sistemas Danilo Veras e Rebeka Gomes.
Modelo de Banco de Dados
Curso Técnico em Mineração
Análise de Sistemas de Informação
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
UML Diagrama de classes.
Sistemas Operacionais
Objetivos Apresentar de forma breve a Metodologia de Modelagem Orientada a Objetos (OMT). A partir de um modelo de objetos de um sistema de informação.
Banco de Dados Aplicado ao Desenvolvimento de Software
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Laboratório de Programação II Método Construtor Dados e Métodos de Objetos Prof Edivaldo - Network.
Campus de Caraguatatuba Aula 2: Introdução a Tecnologia de BD
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
Teste.
Análise e Projeto de Sistemas
Projeto de Sistemas Alexandre Monteiro. Agenda 2. Análise 3. Projeto 1. Revisão 4. Exercícios.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Componentes Avançados JPA - API Prof. Leandro Rubim
Camada de Persistência
Hibernate Universidade Federal do Rio Grande do Sul Instituto de Informática Web e Sistemas de Informação (2004/2005) Objetos Distribuídos Prof. Dr. Cláudio.
Objetos em Bancos de Dados Relacionais Alcides Calsavara.
Modelo Relacional Marcelo Mendes Manaus – 2015.
SisCol Modelo de Banco de Dados
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
B ANCO DE DADOS Introdução ABTécnico. C ONCEITO É uma coleção de dados interrelacionados, representando informações sobre um domínio específico. Exemplos:
Projeto de Banco de Dados Ceça Moraes Dezembro/09.
Projetar Base de Dados. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Projetar base de dados | 2 Objetivos deste.
Modelo Relacional, Chaves e Relacionamentos
Desenvolvimento WEB II Professora: Kelly de Paula Cunha.
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Modelo de Banco de Dados Jairo Charnoski Janisson Gois.
CIn-UFPE1 Projeto de Gerenciamento de Dados. CIn-UFPE2 Objetivos n Definir o que significa gerenciamento de dados do sistema; n Entender abordagens diferentes.
Modelo Relacional Introduzido por Ted Codd, da IBM Research, em Utiliza o conceito de relação matemática. Possui base teórica na teoria dos conjuntos.
Persistência de dados e padrão DAO
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
Modelagem de Banco de Dados: Conceitos
Universidade de Passo Fundo Tecnologia em Sistemas de Informação TSI109- Fundamentos de Banco de Dados (Restrições de Integridade) Prof. Alexandre Tagliari.
Transcrição da apresentação:

Camada de Persistência Framework

Equivalência entre o Projeto Orientado a Objetos e o Modelo Relacional O BD relacional reflete exatamente as instâncias das classes, mas com organização distinta

Classes e Atributos

Associações de * para *

Associações de 1 para *

Associações de 1 para 1

Associações Ordenadas

Associações Qualificadas Qualificador é um atributo da classe qualificada: implementa-se como associação para *. Qualificador externo: implementa-se como a associação ordenada, trocando o índice pelo valor do qualificador externo.

Classe de Associação

Associações Temporárias e Associações do Controlador Não são persistentes.

Herança

Proxy Virtual Um proxy virtual é um objeto muito simples que implementa apenas duas responsabilidades: Se o objeto real não estiver em memória, providenciar para que seja trazido Repassar ao objeto real todas as mensagens que receber em nome dele

Carregamento preguiçoso Objetos só são trazidos para a memória principal quando necessários para realizar alguma colaboração

Funcionamento Geral de um Proxy Virtual

Estruturas de Dados Virtuais VirtualSet, VirtualList, VirtualMap Não contêm objetos, mas seus identificadores únicos: IUO

Estrutura de um Virtual Set

Operações de Inserção e Remoção

Iteração

Materialização É o ato de trazer um objeto da memória secundária para a principal É feita por brokers especializados (um singleton para cada classe persistente)

Ao materializar um objeto o broker: Cria uma instância da classe persistente Inicializa os valores dos atributos da nova instância com valores da respectiva coluna do banco de dados Inicializa as coleções virtuais (associações para *) com a lista dos OIDs dos respectivos objetos associados Inicializa os proxies de objetos associados (associações para 1 ou para 0..1), com o OID do respectivo objeto

Exemplo

Um BrokerDeCliente deve: Criar uma instância de Cliente Preencher os atributos nome, endereco, telefone e debito da nova instância com os valores armazenados nas respectivas colunas da tabela Cliente no banco de dados. A linha da tabela selecionada será a linha cuja chave primária #IUOCliente corresponde ao IUO da instância de Cliente em questão

Um BrokerDeCliente deve: Inicializar o VirtualSet reservas da nova instância de Cliente com os valores dos IUOs da coluna #IUOReserva da tabela associativa Cliente_solicitou_Reserva Inicializar o VirtualSet emprestimos com os valores dos IUOs da coluna #IUOEmprestimo da tabela associativa Cliente_fez_Emprestimo

Caches São mapeamentos que associam IUOs com objetos reais O BrokerManager verifica se um objeto está em memória consultando as caches

Caches Classificações: Limpos e sujos, dependendo se estão ou não consistentes com o banco de dados Novos e velhos, dependendo se já existem ou não no banco de dados Excluídos, dependendo se foram excluídos em memória, mas ainda não do banco de dados

Funcionamento Um objeto materializado é inserido em uma OldCleanCache Quando alterado é movido para uma OldDirtyCache Quando criado é inserido em uma NewCache Quando destruído é movido para uma OldDeleteCache ou NewDeleteCache

Controle de Objetos Sujos Nos métodos: set (atributo) associa, desassocia, adiciona e remove (associações) BrokerManager.instance().ficouSujo(this)

Efeitos do Committ Efetuar um update no banco de dados para os objetos da OldDirtyCache e mover estes objetos para a OldCleanCache Efetuar um insert no banco de dados para os objetos da NewCache e mover esses objetos para a OldCleanCache Efetuar um remove no banco de dados para os objetos da OldDeleteCache e remover estes objetos da cache Remover da cache os objetos da NewDeleteCache

Efeitos do Rollback remover todos os objetos de todas as caches, exceto os da OldCleanCache

Sugestão para sistemas multi-usuário Uma OldCleanCache compartilhada por todos os usuários Cada usuário possuirá individualmente sua própria OldDirtyCache, NewDeleteCache, OldDeleteCache e NewCache