Db4ofavi

854 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
854
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
31
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Db4ofavi

  1. 1. DB 4 OBJECTS WWW.DB4O.COM Eduardo Rocha Monteiro (emonteiro@inf.ufes.br)‏
  2. 2. APRESENTAÇÃO <ul><li>Graduado em Ciencia da Computação - UFES </li></ul><ul><li>Especializado em .NET – UVV </li></ul><ul><li>Mestrando em Inteligência Computacional – UFES </li></ul><ul><li>db4o valuable professional 2007,2008 e 2009 </li></ul>
  3. 3. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul>
  4. 4. INTRODUÇÃO <ul><li>Persistência </li></ul><ul><ul><li>Serialização </li></ul></ul><ul><ul><ul><li>Limitações </li></ul></ul></ul><ul><ul><ul><ul><li>Mudança na definição das classes </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Sem suporte a consultas </li></ul></ul></ul></ul><ul><ul><li>Bancos de dados </li></ul></ul><ul><ul><ul><li>Suporte a consultas </li></ul></ul></ul><ul><ul><ul><li>Suporte a transações </li></ul></ul></ul>
  5. 5. PARADIGMA DE PROGRAMAÇÃO ORIENTADO A OBJETOS <ul><li>Paradigma Predominante </li></ul><ul><li>Benefícios Chave </li></ul><ul><ul><li>Favorece o Reuso </li></ul></ul><ul><ul><li>Facilidade de representação de situações do mundo real </li></ul></ul><ul><ul><li>Clareza </li></ul></ul>
  6. 6. MODELO RELACIONAL <ul><li>Tabelas </li></ul><ul><ul><ul><li>Colunas contém valores simples </li></ul></ul></ul>
  7. 7. MODELO RELACIONAL <ul><li>SELECT C.nome FROM Clientes C JOIN Enderecos A ON A.Cliente_id = C.id WHERE C.endereco.cidade=“Vila Velha” </li></ul>
  8. 8. MODELO OBJETO-RELACIONAL <ul><li>Extensão do modelo relacional </li></ul><ul><li>Colunas de tabelas podem conter objetos </li></ul><ul><li>Objetos Complexos podem ser armazenados em tabelas relacionais </li></ul>
  9. 9. MODELO OBJETO-RELACIONAL <ul><li>SELECT C.nome FROM Clientes C WHERE C.endereco.cidade=“Vila Velha” </li></ul>
  10. 10. MODELO ORIENTADO A OBJETO <ul><li>O objeto no banco de dados é análogo ao objeto na memório da aplicação. </li></ul><ul><li>Não há necessidade de linguagens de definições de dados e de consulta. </li></ul>
  11. 11. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul><ul><li>Conclusão </li></ul>
  12. 12. MODELO RELACIONAL <ul><ul><li>Impedance Mismatch </li></ul></ul><ul><ul><li>Relacionamento muitos para muitos </li></ul></ul><ul><ul><li>Herança </li></ul></ul><ul><ul><ul><ul><li>Mapeamento Vertical </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mapeamento Horizontal </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mapeamento Filtrado </li></ul></ul></ul></ul>
  13. 13. MAPEAMENTO MUITOS PARA MUITOS
  14. 14. MAPEAMENTO MUITOS PARA MUITOS
  15. 15. MAPEAMENTO DE HERANÇA
  16. 16. MAPEAMENTO VERTICAL
  17. 17. MAPEAMENTO HORIZONTAL
  18. 18. MAPEAMENTO FILTRADO
  19. 19. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul>
  20. 20. O QUE É DB4O <ul><li>Um projeto Open Source </li></ul><ul><li>Uma biblioteca para Java e .NET </li></ul><ul><li>Benefícios </li></ul><ul><ul><li>Eliminar ferramentas e códigos para o mapeamento objeto relacional </li></ul></ul><ul><ul><li>Aumentar a produtividade </li></ul></ul>
  21. 21. PRINCIPAIS COMPONENTES <ul><li>Db4objects.Db4o </li></ul><ul><ul><li>Db4oFactory </li></ul></ul><ul><ul><ul><li>Controla conexões com bancos db4o (locais e remotos)‏ </li></ul></ul></ul><ul><ul><li>ObjectContainer </li></ul></ul><ul><ul><ul><li>É o banco de dados db4o, propriamente dito. </li></ul></ul></ul><ul><li>Db4objects.Db4o.Query </li></ul><ul><ul><li>Contém classes para realizar consultas complexas </li></ul></ul>
  22. 22. OBJECT MANAGER
  23. 23. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul>
  24. 24. ARMAZENANDO DADOS <ul><li>Muito simples. </li></ul><ul><li>Vamos definir algumas classes para exemplificar. </li></ul>
  25. 25. using System; namespace Db4oBrasil.Dominio { public class Usuario { private string _nome; private int _idade; public string Nome { get{ return _nome; } set{ _nome=value; } } public int Idade { get{ return _idade; } set{ _idade=value; } } public override string ToString() { return _nome + &quot; (&quot; + _idade + &quot;)&quot;; } } }
  26. 26. PROCEDIMENTO GERAL DE INTERAÇÃO COM DB4O // abre o banco IObjectContainer db = Db4oFactory.OpenFile(&quot;C:/Projetos/D4boBrasil/teste.yap&quot;); try { // fazer alguma coisa com db4o } finally { db.Close(); // fecha o banco de dados }
  27. 27. ARMAZENANDO OBJETOS Usuario eduardo = new Usuario(); eduardo.Nome=&quot;Eduardo Monteiro&quot;; eduardo.Idade=“26&quot;; Usuario fulano= new Usuario(); fulano.Nome=“Fulano da Silva&quot;; fulano.Idade=&quot;23&quot;; db.Set(eduardo); db.Set(fulano);
  28. 28. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul>
  29. 29. RECUPERANDO OBJETOS <ul><li>Existem três tipos de consultas em db4o </li></ul><ul><ul><li>Query by example </li></ul></ul><ul><ul><li>Native Queries </li></ul></ul><ul><ul><li>SODA </li></ul></ul>
  30. 30. QUERY BY EXAMPLE <ul><li>Um objeto exemplo é usado para realizar encontrar e recuperar objetos similares </li></ul><ul><li>Os atributos com valores nulos do objeto protótipo não são utilizados para restringir o resultado consulta </li></ul>
  31. 31. QUERY BY EXAMPLE <ul><li>Recuperando os usuários que tem 26 anos </li></ul><ul><li>Usuario prototipo = new Usuario(); </li></ul><ul><li>prototipo.Idade=26; </li></ul><ul><li>IObjectSet result = db.Get(prototipo); </li></ul><ul><li>ListResult(result); </li></ul><ul><li>Saída Eduardo(26) </li></ul>
  32. 32. QUERY BY EXAMPLE <ul><li>Limitações: </li></ul><ul><ul><li>Impossível realizar consultas que envolvam os operadores <, >, <=, >=. </li></ul></ul>
  33. 33. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul><ul><li>Conclusões </li></ul>
  34. 34. ATUALIZANDO DADOS <ul><li>Recuperar, alterar e salvar. </li></ul><ul><li>Usuario prototipo = new Usuario(); </li></ul><ul><li>prototipo.Nome=“Eduardo Monteiro”; </li></ul><ul><li>IObjectSet result = db.Get(prototipo); </li></ul><ul><li>prototipo.Idade=prototipo.Idade+1; </li></ul><ul><li>db.Set(prototipo); </li></ul>
  35. 35. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul><ul><li>Conclusões </li></ul>
  36. 36. EXCLUINDO DADOS <ul><li>Recuperar, excluir. </li></ul><ul><li>Usuario prototipo = new Usuario(); </li></ul><ul><li>prototipo.Nome=“Eduardo Monteiro”; </li></ul><ul><li>IObjectSet result = db.Get(prototipo); </li></ul><ul><li>db.delete(prototipo); </li></ul>
  37. 37. AGENDA <ul><li>Introdução </li></ul><ul><li>Mapeamento objeto relacional </li></ul><ul><li>O que é Db4o? </li></ul><ul><li>Armazenando dados </li></ul><ul><li>Recuperando dados </li></ul><ul><li>Atualizando dados </li></ul><ul><li>Excluindo dados </li></ul><ul><li>Conclusões </li></ul>
  38. 38. CONCLUSÕES <ul><li>Mapeamento objeto relacional é um entrave para a produtividade. </li></ul><ul><li>Db4o é fácil de aprender, fácil de usar. </li></ul><ul><li>Db4o é uma excelente alternativa para prototipação rápida de software. </li></ul>
  39. 39. MAIS SOBRE DB4O <ul><li>db4obrasil.blogspot.com </li></ul><ul><li>www.db4o.com </li></ul>

×