Your SlideShare is downloading. ×
  • Like
MongoDB outras alternativas de persistência
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

MongoDB outras alternativas de persistência

  • 251 views
Published

Palestra introduz o MongoDB como uma alternativa de persistência, em sistemas de grande escala e baixo custo.

Palestra introduz o MongoDB como uma alternativa de persistência, em sistemas de grande escala e baixo custo.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
251
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
6
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Explore  outras  alternativas  de  persistência   Eder  Magalhães   @edermag  
  • 2. Agenda   ü  Um  visão  sobre  banco  de  dados  relacional;   ü  Demanda  por  um  novos  modelos  de  persistência;   ü  Introdução  e  caracterís@cas  do  MongoDB;   ü  JavaScript,  a  linguagem  essencial;   ü  O  Documento;   ü  CRUD  em  Mongo  vs  SQL;   ü  Demos;  
  • 3. Banco  de  dados  relacional   ü  +30  anos;   ü  Consolidada  no  mercado;   ü  Um  modelo  que  atendeu  a  demanda  coorpora@va;   ü  Empresas  e  muitas  tecnologias  de  sucesso,  baseado  nesse   modelo  de  desenvolvimento;  
  • 4. Alguns  pontos   ü  Escalabilidade;   ü  Alto  custo:  equipamento  e  licenças;   ü  Flexibilidade  em  relação  a  mudanças;  
  • 5. NoSQL,  outro  conceito   ü  Sigla:  Not  Only  SQL   ü  Proposta  que  difere  do  modelo  relacional;   ü  Não  adota  a  linguagem  SQL;   ü  Foco  em  escabilidade  –  demanda  da  web;   ü  Aderente  a  cloud  compu@ng;  
  • 6. O  MongoDB   ü  Tecnologia  free,  open  source;   ü  Orientado  a  Documentos;   ü  Flexível  schemaless;   ü  Implementado  em  C++;   ü  API  alto  nível  em  diversas  linguagens;   ü  Suporte  a  dados  binários:  fotos  e  vídeos;   ü  Voltado  para  replicação  /  dados  distribuídos;  
  • 7. Funcionalidade  vs  performance  
  • 8. JavaScript,  papel  essencial   ü  A  linguagem  usada  pelo  terminal  do  MongoDB  para   manipular  os  dados;   ü  Presente  no  desenvolvimento  web:   ü  Front-­‐end;   ü  Back-­‐end  (server);   ü  É  a  linguagem  “na@va”  do  MongoDB;  
  • 9. JSON   ü  A  manipulação  dos  dados  ocorre  via  JSON;   ü  Formato  simples  e  popular  de  manipulação  de  dados;   ü  Estrutura:   ü  Arrays:  [ "maça", "pera", "abacate" ] ü  Dic@onary:     { placa: "EEE-0001", renavam: "1231…"} ü  Tipos  de  valores:  string,  number,  object,  array,  true,  false  e  null;   ü  hcp://www.json.org  
  • 10. Shell   ü  Ambiente/interpretador  JavaScript;   ü  Simples  e  alto  nível;   ü  Vamos  experimentar!  
  • 11. Similaridades   MongoDB   Banco  Relacional   Database   Database   Coleção   Tabela   Documento   Registro   Chave  primária   Chave  primária  
  • 12. MongoDB  Schema  Design   ü  Applica@on  Driven  schema;   ü  Rich  documents:  arrays  e  objetos  aninhados;   ü  Schemaless;   ü  Não  se  preocupe  com  normalização;  
  • 13. Modelo  versão  relacional  
  • 14. Modelo  versão  MongoDB   { "placa": "EXZ-0112", "marca": "Jetta", "modelo": "2.0 TSI", "fabricante": "Volkswagen", "cor": "Branco", "ano": { "fabricacao": 2011, "modelo": 2012 }, "opcionais": ["airbag", "teto solar", "ar", "abs" ... ], "proprietarios": [ { "nome": "Pedro Silva", "cpf": "222" } ], "restricoes": { "financeiras": ["Banco Stander"], "multas": ["Velocidade", "Rodizio"] } }
  • 15. +  Detalhes  sobre  o  MongoDB   ü  O  MongoDB  não  trabalha  com  chaves  estrangeiras;   ü  O  MongoDB  não  tem  suporte  a  controle  transacional;   ü  Toda  operação  que  manipula  dados  é  atômica;  
  • 16. CRUD  -­‐  Create   ü  Demonstração  de  insert;   //MongoDB db.estudantes.insert( { nome: 'Jose da Silva', curso: 'Ciências da Computação', universidade: 'USCS', matricula: '010' } ); //SQL insert into estudantes(nome, curso, universidade, matricula) values('Jose da Silva', 'Ciências da computação', 'USCS', '010' );
  • 17. CRUD  -­‐  Update   ü  Demonstração  de  update;   //MongoDB db.estudantes.update( { nome: 'Jose da Silva' }, { $set: { nome: 'Jose da Silva Souza' } } ); //SQL update estudantes set nome = 'Jose da Silva Souza' where nome = 'Jose da Silva';
  • 18. CRUD  -­‐  Delete   ü  Demonstração  de  delete;   //MongoDB db.estudantes.delete( { matricula: '200' } ); //SQL delete from estudantes where matricula = '200';
  • 19. CRUD  -­‐  Query   ü  Demonstração  de  consultas;   //MongoDB db.estudantes.find({ curso: 'Arquitetura' }, { nome: 1 }); //SQL select nome from estudantes where curso = 'Arquitetura';
  • 20. CRUD  -­‐  Aggrega@on   ü  Demonstração  de  consultas  agregadas;   //MongoDB db.estudantes.aggregate( { $group: { _id: '$curso', total: { $sum: 1 } } }); //SQL select curso, count(id) from estudantes group by curso;
  • 21. +  Consultas   ü  Demonstração  de  consultas  avançadas  com  grande  volume   de  dados  (base  de  email);  
  • 22. Drivers   ü  Linguagens  c/  driver  do  MongoDB:   ü  Java   ü  Python   ü  C++  /  C#   ü  Node.js   ü  Erlang   ü  Ruby   ü  Scala   ü  Perl   ü  PHP  …  
  • 23. Demo  em  Java   ü  Projeto  exemplo  demonstrando  como  trabalhar  com  o   MongoDB  em  Java;   ü  Tecnologias  u@lizadas:   ü  MongoDB  Driver  para  Java;   ü  Spark  microcontainer;   ü  Freemaker;   ü  Maven;   ü  Bootstrap;  
  • 24. Outras  funcionalidades   ü  ReplicaSet;   ü  Sharding;   ü  GridFS;   ü  MapReduce;  
  • 25. Mais  opções  NoSQL?   ü  Cassandra;   ü  CouchDB;   ü  Redis;   ü  Cloudera;   ü  Veja  outros  no  sie:  hcp://nosql-­‐database.org/    
  • 26. Links   ü  hcp://www.mongodb.org/   ü  hcp://docs.mongodb.org/manual/   ü  hcps://educa@on.mongodb.com/   ü  Os  comandos  u@lizados  nessa  palestra  foram   disponibilizados  junto  com  o  projeto  demo,  na  url:   ü  hcps://github.com/edermag/mongodb-­‐javaweb  
  • 27. Vídeo  aulas  /  projetos  exemplo   ü  hcp://www.yaw.com.br/screencast   ü  hcp://www.yaw.com.br/open/projetos/  
  • 28. Obrigado!   ü  eder@yaw.com.br   ü  hcps://twicer.com/edermag   ü  hcp://github.com/edermag   ü  hcp://edermag.blogspot.com.br/   ü  hcps://bitbucket.org/edermag/