Bancos de Dados Objeto-relacional e Orientados a Objetos

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Programação em Java Prof. Maurício Braga
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
INFORMAÇÕES COMPLEMENTARES
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Operadores e Funções do LINGO
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Pesquisa Bibliográfica Disciplina de Metodologia da Pesquisa Profª Tereza Yoshiko Kakehashi 1.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Excel Profa. Cristina M. Nunes.
Curso de ADMINISTRAÇÃO
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
PERSPECTIVA CONCEITUAL
1 MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE) BREVE HISTÓRICO CARACTERÍSTICAS CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS MODELAGEM DE ANÁLISE E DE.
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
1 Objetos Relacionados a um banco de dados. 2 Introdução Visual Basic dispõe de um conjunto de objetos, que através de suas propriedades e métodos, nos.
Crescimento Econômico Brasileiro : Uma Visão Comparada de Longo Prazo Prof. Giácomo Balbinotto Neto UFRGS.
FUNÇÃO MODULAR.
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Aula 2 Aspectos Preliminares
Aula 4 Nomes, Vinculações, Tipos e Escopos
HellermannTyton Brasil Sistema de Gerenciamento Integrado HellermannTyton Brasil Sistema de Gerenciamento Integrado Alexandre Martins Consultor de Negócios.
O que é 5(S)? ? 5(S) É a prática de hábitos que permitem mudanças nas relações... É a base de qualquer programa de qualidade. 1.
EXEMPLOS DE ESTRUTURAS PROTENDIDAS
Questionário de Avaliação Institucional
Bancos de Dados – SQL – parte 1
Mecânica dos Sólidos não Linear
Listas Encadeadas.
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
MetaLib - Visão Geral 1º Encontro de Usuários ALEPH 30 Nov. e 1º Dez. de 2006 Caio Pellegatti.
Provas de Concursos Anteriores
Timken Store Brasil Denis Guimarães.
Instalação e Configuração
Hamburgo, Alemanha Definir o caminho que irá permitir a Lions Clubs International alcançar o seu potencial pleno como organização.
MECÂNICA - ESTÁTICA Cabos Cap. 7.
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
Object Oriented Software Construction (MEYER, Bertrand)
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Lemas (Sudkamp)  .
Coordenação Geral de Ensino da Faculdade
Plataforma Brasil – Submissão de pesquisa
Extranet GRD – Guia de Remessa de Documentos
Banco de Dados de Objetos
Projeto Marcas que Eu Gosto 1 PROJETO MARCAS QUE EU GOSTO Estudos Quantitativo de Consumidores Janeiro / 2005.
Inserir crédito para cliente
C ORROPIOS, C ARDINCHAS E C ÃES G RANDES O LIVRO de José Paixão em imagens – com pistas de leitura propostas por por www.joraga.net.
IF696 - Integração de Dados e DW
Semântica de Linguagens de Programação
Projeto de Banco de Dados
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Banco de Dados não Convencionais Fausto Maranhão Ayres 14 BDOO – db4o
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
EBSCOhost Pesquisa avançada.
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Módulo Compras Relatórios e Relações 1. Objetivo 2 Conhecer os relatórios e as relações do sistema disponibilizadas no módulo Compras.
Bancos de Dados Estrutura e Funcionamento de um SGBD
Transcrição da apresentação:

Bancos de Dados Objeto-relacional e Orientados a Objetos Aula6: DB4O Por: Robson do Nascimento Fidalgo Maria Carolina Torres da Silva rdnf@cin.ufpe.br mcts@cin.ufpe.br

Motivação A Orientação a Objetos é uma tendência. Conceitos fundamentados Abstração máxima Aprendizado rápido Aumentar a produtividade Diminuir a dependência da camada de persistência ...

DB4O – Visão Geral Conceitos básicos Consultas Objetos Complexos Coleções e arrays Herança Transações Conhecimentos extras Conclusões Referências

DB4O - Introdução Não é um SGBD Utiliza arquivo para armazenamento Suportado nas plataformas: Java .NET Framework Free Orientação a Objetos PURA ...

DB4O Aprendendo o básico

DB4O – Aprendendo o básico Operações básicas: Abrir e fechar a base Armazenar na base Consultar itens, com ou sem restrição Alterar e remover um item já existente na base Metodologia Aplicação em um exemplo

DB4O – Aprendendo o básico Objeto a ser persistido: Piloto

DB4O – Aprendendo o básico Abrir a base de dados Sintaxe Objeto ObjectContainer Representa a base de dados Interface abstrata Métodos básicos Observação: arquivo de qualquer extensão Dar preferência a arquivos vazios inicialmente. ObjectContainer base = Db4o.openFile(<nome do arquivo>);

DB4O – Aprendendo o básico Fechar a base de dados Sintaxe Aplicação básica (abrir e fechar a base): base.close(); ObjectContainer base = Db4o.openFile(<nome do arquivo>); try { // Realiza a operações necessárias }finally { db.close(); }

DB4O – Aprendendo o básico Aplicação util.Conectividade util.Repositorio

DB4O – Aprendendo o básico Armazenar na base Chamar o método store Passar o objeto a ser persistido como parâmetro Sintaxe: Object obj = new Object(); ObjectContainer base = Db4o.openFile(<nome do arquivo>); try { base.store(obj); }finally { db.close(); }

DB4O – Aprendendo o básico Armazenar na base (cont.) Aplicação:

DB4O – Aprendendo o básico Consultar a base Query by example (QBE) Forma mais fácil de se familiarizar Native Queries (NQ) Interface principal para consultas SODA Query API (SODA) Forma mais avançada

DB4O – Aprendendo o básico Consultar a base (cont.) Query by example (QBE) Cria um protótipo do que se deseja consultar Retorna todos os objetos do mesmo tipo que contenham os mesmos valores dos campos do protótipo Resultado abstraído no tipo ObjectSet Estende de java.util.List e java.util.Iterator Pode ser parametrizado

DB4O – Aprendendo o básico Consultar a base (cont.) Query by example (QBE) (cont.) Consultar todos os objetos de um tipo Protótipo vazio! .class

DB4O – Aprendendo o básico Consultar a base (cont.) Query by example (QBE) (cont.) Consultar todos os objetos de um tipo impondo uma restrição Protótipo restrito

DB4O – Aprendendo o básico Atualizar a base Simples como armazenar Resgatar o objeto que se deseja alterar Realizar a alteração desejada Chamar o método store com esse objeto como parâmetro Observação: é necessário realizar o resgate inicial antes da alteração. Caso isso não seja feito, ao chamar o método store um novo objeto será inserido na base.

DB4O – Aprendendo o básico Atualizar a base (cont.) Aplicação:

DB4O – Aprendendo o básico Remover da base Simples como armazenar e alterar Resgatar o objeto que se deseja remover Chamar o método delete com esse objeto como parâmetro Observação: é necessário realizar o resgate inicial antes da remoção. Um protótipo não é suficiente.

DB4O Consultando...

DB4O – Consultando... Disponibiliza três formas para consulta: Query-By-Example (QBE): mais apropriada para usuários novatos em DB4O. Native Queries (NQ): principal interface para realização de consultas, recomenda-se seu uso. SODA: uso mais avançado, provendo maior dinamismo na geração de consultas, já que NQ é fortemente tipada.

DB4O – Consultando... Query by example Já visto anteriormente Uso de protótipos/templates Limitações: Validação com todos os campos do objeto, exceto os que possuírem valores default. O preenchimento dos campos força uma combinação de cláusulas AND na nossa consulta. Consultas mais complexas não são possíveis (AND, NOT, OR, etc.) Não pode filtrar as consultas usando valores defaults, já que os mesmos são interpretados como não restritivos ...

DB4O – Consultando... Native Queries Recomendação para consultas a partir de uma aplicação Usa semântica da linguagem de programação utilizada Altamente organizada Escolha segura para o futuro Aceita em qualquer plataforma suportada por DB4O Uso de predicados para filtrar o retorno Aplicação: inicial.base.piloto.RepositorioPilotoNQ.java

DB4O – Consultando... Native Queries (cont.) Aplicação:

DB4O – Consultando... Native Queries (cont.) Para realizar pesquisas mais complexas, o caminho já se mostra óbvio. Aplicação:

DB4O – Consultando... SODA Query API É a API de consulta mais baixo nível de DB4O Acessa diretamente os nós do grafo da consulta Utiliza string para identificar campo Não fornece segurança de tipo Nem checagem em tempo de compilação É um pouco complicado de escrever Tentou-se trocar Native Queries por SODA Nem todas as consultas puderam ser convertidas Para a grande maioria das aplicações, Native Queries é a melhor interface de consulta.

DB4O – Consultando... SODA Query API (cont.) Criar um objeto Query Métodos básicos de uma consulta Ordenação Adicionar restrições ... Troca os protótipos utilizados em QBE para uma meta-descrição dos objetos que se deseja retornar. Um grafo de consulta é montado com os nós e restrições. Cada nó é preenchido por um objeto candidato Cada restrição define se inclui ou exclui o candidato do resultado Aplicação: inicial.base.pilotoRepositorioPilotoSODA

DB4O – Consultando... SODA Query API (cont.) Aplicação: Qualquer candidato da classe Piloto será agregado ao resultado. Class: Piloto

DB4O – Consultando... SODA Query API (cont.) Aplicação: Qualquer candidato da classe Piloto, que possua a quantidade de pontos determinada pelo parâmetro será agregado ao resultado. Class: Piloto pontos Equals: qtdePontos

DB4O Objetos complexos

DB4O – Objetos complexos Aplicação:

DB4O – Objetos complexos Armazenamento: Aplicação: Observação: Insere o carro e o piloto do carro, exceto se o piloto relacionado com o carro tenha sido trazido da base. Consultas (QBE , Native Queries, SODA API): Aplicação: inicial.base.carro.RepositorioCarro.java

DB4O – Objetos complexos Atualização: Aplicação: inicial.base.carro.RepositorioCarro.java Em algumas situações, a base não terá sido alterada Sessões diferentes com objetos carregados em memória. Para solucionar esse problema Db4o.configure().objectClass(<nome completa da classe>) .cascadeOnUpdate(true);

DB4O – Objetos complexos Remoção: Aplicação: inicial.base.carro.RepositorioCarro.java Em algumas situações, é necessário que todos os objetos sejam apagados Exemplo: sempre que um carro for apagado do sistema, seu piloto também deve ser Isso não é feito automaticamente! Para solucionar esse problema: Db4o.configure().objectClass(<nome completa da classe>) .cascadeOnDelete (true);

DB4O – Objetos complexos Remoção (cont.): CUIDADO: Ao se deletar um objeto, todos os que dependem dele são apagados automaticamente. DB4O não realiza nenhuma verificação! Se um piloto é deletado, todos os carros que ele dirige também serão deletados sem que haja nenhum alerta.

DB4O Coleções e arrays

DB4O – Coleções e arrays Algumas relações são melhores modeladas com coleções ou arrays. DB4O dá suporte a ambos! Aprenderemos: Armazenar Consultar Atualizar Deletar

DB4O – Coleções e arrays Array Coleções Aplicação: avancado.dados.LeitorSensor.java Coleções Aplicação: avancado.dados.CarroAvancado.java

DB4O – Coleções e arrays Armazenamento, Consultas, Atualização e Remoção Aplicação: avancado.base.RepositorioCarroAvancado e avancado.base.RepositorioLeitorSensor

DB4O – Coleções e arrays Consultas (QBE) Observação 1: Tentar buscar uma lista com protótipo sem instanciar o objeto que o possui, funciona! Observação 2: Tentar buscar array com protótipo não funciona sem instanciar o objeto que o possui.

DB4O Herança

DB4O - Herança Melhora entendimento e reuso do código Aplicação: heranca.dados.LeitorTemperatura, heranca.dados.LeitorPressao e heranca.dados.LeitorSensorHeranca CUIDADO com uso de classes abstratas ou interfaces nas consultas Consultas: heranca.base.RepositorioLeitoresHeranca Inserção, Atualização e remoção sem nenhuma alteração

DB4O Transações

DB4O – Transações Acesso concorrente ao uma única base DB4O provê um mecanismo de transação Commit Rollback Commit e Rollback Sempre age dentro de uma transação Implicitamente iniciada quando abre-se a base E implicitamente finalizada quando fecha-se a base

DB4O – Transações Rollback Objeto ExtObjectContainer Cuidado com objetos alterados, mas não armazenados. Aplicação: MainTransacao.java Objeto ExtObjectContainer Retorna o estado do objeto para o estado antes do rollback

DB4O Conhecimentos extras

DB4O – Conhecimentos extras Alguns outros tópicos, não abordados aqui Grafos profudos Indexes Otimização de Native Queries Ids Funcionamento do DB4O num arquitetura cliente/servidor ...

DB4O Para finalizar...

DB4O – Considerações Finais Vantagens Aprendizado rápido Produtividade máxima Custo mínimo Java Biblioteca open-source IDE free Independência da equipe de BD ...

DB4O – Considerações Finais Desvantagens SQL não existe Não é um SGBD Dados armazenados em um arquivo qualquer Falta de segurança Nenhum poder de recuperação ... Controle manual Alto poder ao desenvolvedor

DB4O – Considerações Finais Resumindo... Para aplicações simples, uma boa opção! Para aplicações complexas, de grandes empresas... Melhor repensar seu uso Precisa amadurecer para ganhar o mercado Academicamente interessante

DB4O – Considerações Finais Configuração para desenvolvimento Tutorial completo de instalação Desde o eclipse até a configuração do projeto Ainda não finalizado

DB4O Referências

DB4O – Referências DB4O - Site oficial DB4O – Tutorial http://www.db4o.com/ DB4O – Tutorial http://www.cin.ufpe.br/~mcts/ETI/DB4O/Tutorial.pdf