Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introdução ao mongodb - José Inoue - TchêLinux Uruguaiana

1,545 views

Published on

Palestra apresentada no 1º Seminário de Software Livre TchêLinux Uruguaiana realizado nos dias 16 e 17 de Setembro de 2011.

Published in: Technology
  • Be the first to comment

Introdução ao mongodb - José Inoue - TchêLinux Uruguaiana

  1. 1. Introdução ao Mongodb José Inoue
  2. 2. About Me
  3. 3. Roteiro <ul><li>Dados </li></ul><ul><li>Informação </li></ul><ul><li>Modelo Relacional </li></ul><ul><li>NoSQL </li></ul><ul><li>Modelo Relacional versus NoSQL </li></ul><ul><li>MongoDB </li></ul>
  4. 4. Dados <ul><li>Pedro 1984 Sant’Anna </li></ul><ul><li>045-2368 Cinza Bento Martins </li></ul><ul><li>ITA3577 Iznájar 78 Gol </li></ul>
  5. 5. Informação <ul><li>Nome: Pedro Sobrenome: Iznájar </li></ul><ul><li>Ano: 1984 Peso: 78 kg </li></ul><ul><li>Conta Corrente: 045-2368 </li></ul><ul><li>Endereço: Bento Martins, 1025 </li></ul><ul><li>Escola: Sant’Anna </li></ul><ul><li>Carro: Gol </li></ul><ul><li>Placa: ITA3577 </li></ul><ul><li>Cor: Cinza </li></ul>
  6. 6. O que é? <ul><li>O termo NoSQL foi usado pela primeira vez em 1998. </li></ul><ul><li>Retornando a ser utilizado em 2009 por Johan Oskarsson, da Last.fm. </li></ul><ul><li>Sistemas de armazenamento diferentes dos tradicionais bancos de dados relacionais. </li></ul><ul><li>Performance superior. </li></ul><ul><li>Alta escalabilidade. </li></ul><ul><li>Agrupamento de registros. </li></ul><ul><li>Schema-free. </li></ul>
  7. 7. Tipos: <ul><li>Key/Values ; </li></ul><ul><li>Wide Columns Store; </li></ul><ul><li>Document Store; </li></ul><ul><li>Graph Store; </li></ul><ul><li>Column Oriented Store; </li></ul>
  8. 8. Key/Value:
  9. 9. Wide Columns Store:
  10. 10. Document Store:
  11. 11. Graph Store:
  12. 12. Column Oriented Store:
  13. 13. Quem usa?
  14. 14. Por que usar? <ul><li>Acesso rápido por chave-valor ; </li></ul><ul><li>Esquema flexível e tipos de dados flexíveis; </li></ul><ul><li>Suporte para sistemas distribuídos; </li></ul><ul><li>Performance em escrita massiva; </li></ul><ul><li>Sincronização de dados online e offline. </li></ul>
  15. 15. Escalabili...
  16. 16. Modelo Relacional versus NoSQL <ul><li>Modelo Relacional </li></ul>Brasil 6325000 Rio de Janeiro 002 12700000 392000 582200 populacao Japão Tóquio 004 Israel Tel Aviv 003 Alemanha Dusseldorf 001 pais cidade codigo
  17. 17. Modelo Relacional versus NoSQL <ul><li>NoSQL </li></ul><ul><li>codigo: 001 codigo:002 </li></ul><ul><li>cidade: Dusseldorf cidade: Rio de Janeiro </li></ul><ul><li>populacao: 582200 populacao: 6325000 </li></ul><ul><li>pais: Alemanha pais: Brasil </li></ul><ul><li>codigo: 003 codigo:004 </li></ul><ul><li>cidade: Tel Aviv cidade: Tóquio </li></ul><ul><li>populacao: 392000 populacao: 12700000 </li></ul><ul><li>pais: Israel pais: Japão </li></ul>
  18. 18. Modelo Relacional versus NoSQL Fator fundamental. Alto grau de distribuição propicia maior número e solicitações Pode não suportar uma demanda muito grande de informações ao banco Disponibilidade Eventual, mas garante sempre o acesso ao último valor atualizado. Ponto Forte. Estrutura rígida garantem a consistência da informação. Consistência Principal vantagem por sua forma flexível e sem esquema definido. Possível, mas complexo devido à forma estrutura. Escalonamento NoSQL Relacional
  19. 19. <ul><li>Desenvolvido pela 10gen; </li></ul><ul><li>Iniciado em Outubro de 2007; </li></ul><ul><li>Primeira versão pública 2009; </li></ul><ul><li>Versão 2.0; </li></ul><ul><li>Licença GNU Affero GPL; </li></ul>
  20. 20. <ul><li>Orientado a documentos; </li></ul><ul><li>Atualizações in – place; </li></ul><ul><li>Map/Reduce; </li></ul><ul><li>Auto-sharding; </li></ul><ul><li>Schema free; </li></ul><ul><li>Suporte. </li></ul>
  21. 21. <ul><li>Diferenças: </li></ul>Attribute Column Document Row Collection Table Database Database MongoDB Modelo Relacional
  22. 22. <ul><li>JSON ( Java Script Object Notation ): </li></ul><ul><li>{ “Cidade&quot; : [ </li></ul><ul><li>{ &quot;nome&quot;: “Dusseldorf&quot;, “pais&quot;: “Alemanha” }, </li></ul><ul><li>{ &quot;nome&quot;: “Rio de Janeiro&quot;, “pais&quot;: “Brasil” }, </li></ul><ul><li>{ &quot;nome&quot;: “Tel Aviv&quot;, “pais&quot;: “Israel” } </li></ul><ul><li>] </li></ul><ul><li>} </li></ul>
  23. 23. <ul><li>Inserindo: </li></ul><ul><li>db.myColl.insert({name: “Joe&quot;, age: 20}); </li></ul><ul><li>db.myColl.insert({name: “Kristen&quot;, age: 22}); </li></ul>
  24. 24. <ul><li>Consultando: </li></ul><ul><li>db.myColl.find(); </li></ul>
  25. 25. <ul><li>Alterando: </li></ul><ul><li>myColl.update( { _id: X }, { _id: X, name: &quot;Joe&quot;, age: 20 } </li></ul>
  26. 26. <ul><li>Excluindo: </li></ul><ul><li>db.myColl.remove({name:“Joe”}); </li></ul>
  27. 28. Questions???
  28. 29. Contato <ul><li>@joseinoue </li></ul><ul><li>[email_address] </li></ul>

×