Minicurso Epoca mongoDB

Click here to load reader

  • date post

    25-May-2015
  • Category

    Documents

  • view

    2.640
  • download

    4

Embed Size (px)

Transcript of Minicurso Epoca mongoDB

  • 1. um exemplo de Banco de Dados NoSQLum exemplo de Banco de Dados NoSQL

2. Quem sou?DANIELE MONTENEGRO @lelybarrosBacharel em Cincias Sociais UFRNGraduanda em Anlise e Desenvolvimento deSistemas IFRNE-mail: monte.daniele@gmail.comMSN: danie_monte@hotmail.comum exemplo de Banco de Dados NoSQL02/48 3. Agenda1. Modelo SQL2. NoSQL3. O mongoDB4. Operaes no mongoDB5. Execuo de Cdigo no Lado Servidor6. Aplicao Exemplo no Lado Cliente com Javaum exemplo de Banco de Dados NoSQL 03/48 4. Modelo Relacional Criao em 1970; Elementos bsicos: relaes,tuplas e atributos; A utilizao de restries deintegridade (chaves); Normalizao.um exemplo de Banco de Dados NoSQL04/48 5. Modelo Relacional O modelo relacional usa comolinguagem de definio,manipulao e consulta dedados a SQL (Structured QueryLanguage); Consistncia dos dados.um exemplo de Banco de Dados NoSQL05/48 6. SGBDs SQL oferecem Processos de validao; Verificao e garantias deintegridade dos dados; Controle de concorrncia,recuperao de falhas,segurana; Controle de transaes,otimizao de consultas.um exemplo de Banco de Dados NoSQL06/48 7. Modelo ACID do SQLAtomicidade ConsistnciaIsolamento Durabilidadeum exemplo de Banco de Dados NoSQL07/48 8. Limitaes do SQL Com o crescimentodo nmero deusurios, o sistemacomea a ter umaqueda deperformance. Dificuldade em fazera escalabilidade. um exemplo de Banco de Dados NoSQL08/48 9. Porque tudo mudou com a Web? Necessidade demanipulao de grandesvolumes de dados noestruturados ou semi-estruturados; Novas necessidades dedisponibilidade eescalabilidade.um exemplo de Banco de Dados NoSQL 09/48 10. O que NoSQL? Termo genrico paraum classe definida debanco de dados no-relacionais; Forma flexvel deestruturar o banco dedados.um exemplo de Banco de Dados NoSQL10/48 11. Quando surgiram? O termo surgiu em 1998; Primeiras propostas pelacomunidade de software livre; A primeira implementao foi em2004 com BigTable da Google; Em 2007, a Amazon apresenta osistema Dynamo.um exemplo de Banco de Dados NoSQL11/48 12. Modelo BASE do NoSQL Basicamente disponvel Estado leveConsistente em momento indeterminado um exemplo de Banco de Dados NoSQL12/48 13. Caractersticas do NoSQL Escalabilidade horizontal; Ausncia de esquema ou flexvel; Suporte nativo a replicao; API simples para acesso a dados; Consistncia eventual.um exemplo de Banco de Dados NoSQL 13/48 14. Tipos de Modelo de Dados NoSQL Orientado a documentos; Armazenamento Chave-valor; Baseado em Grafos; Orientado a Coluna.um exemplo de Banco de Dados NoSQL 14/48 15. Exemplos de Banco NoSQLum exemplo de Banco de Dados NoSQL 15/48 16. No usar x Usar o NoSQL Aplicativos quenecessitam de uma forte Aplicativos que acessamregra de negocio;dados rapidamente; Um maior grau de rigor Dados que soquanto consistnciaacessados comdos dados; frequncia; Sistemas em que os Sistemas que os dadosdados necessitam ser no precisam serestruturados.estruturados. um exemplo de Banco de Dados NoSQL 16/48 17. O mongoDB Banco de dados Orientado a Documentos; Usa o formato BSON; Escrito em C++; Alta performance; Suporta tipos ricos.um exemplo de Banco de Dados NoSQL17/48 18. O mongoDB Binriosoficiaisdisponveis paraWindows, Mac OS X, Linux e Solaris; Drivers para C, C#, C++, Haskell, Java,JavaScript, Perl, PHP, Python, Ruby eScala; um exemplo de Banco de Dados NoSQL18/48 19. Porque o mongoDB? Orientado a documentos; Alta performance; Alta disponibilidade; Fcil escalabilidade; Linguagem rica de consulta. um exemplo de Banco de Dados NoSQL19/48 20. Modelo de Dados do mongoDB Um banco de dados armazena um conjuntode colees; Uma coleo armazena um conjunto dedocumentos; Um documento um conjunto de campos; Um campo um par chave-valor; Uma chave um nome; Um valor um tipo bsico. um exemplo de Banco de Dados NoSQL 20/48 21. Modelo de Dados do mongoDBum exemplo de Banco de Dados NoSQL 21/48 22. Colees Agrupamento lgico de documentos; Schema-free; Nmero ilimitado de documentos.um exemplo de Banco de Dados NoSQL 22/48 23. Documentos Unidade de armazenamento; Todos devem ter um _id nico; Tamanho mximo de 4MB. para objetos maiores, usa-se GridFS um exemplo de Banco de Dados NoSQL 23/48 24. BSON Objetos no MongoDB; "Binary JSON; Permite representao de tipos ricos.um exemplo de Banco de Dados NoSQL 24/48 25. Como comear? Baixar os Binrios disponveis para 32 e 64bits no link: Baixar mongoDB um exemplo de Banco de Dados NoSQL 25/48 26. Instalao Windows Baixa o arquivo do mongo; Descompacta de preferncia na Unidade C; Renomeia o arquivo para mongodb; Cria duas pastas uma chamada data e a outralog;um exemplo de Banco de Dados NoSQL26/48 27. Instalao WindowsRecomendado instalar como servio, digita -seno Prompt:um exemplo de Banco de Dados NoSQL27/48 28. Instalao WindowsDepois s iniciar o servio digitando noPrompt:um exemplo de Banco de Dados NoSQL28/48 29. Instalao Ubuntu Abre o terminal e digita: > sudo apt-get install mongodbum exemplo de Banco de Dados NoSQL 29/48 30. Shell do mongoDBum exemplo de Banco de Dados NoSQL 30/48 31. Regra de Sintaxe O atributo para o mongoDB tem duas regrasdevem ser satisfeitas: O nome do atributo no devecomear com o caractere $; e o caractere . jamais poder serincluso.um exemplo de Banco de Dados NoSQL31/48 32. Criando banco, colees e documentos Criar banco: use [nome banco] Criar Coleo e adicionar um documento:db.colecao.save({atributo: valor, atributo:valor})oudoc = ({atributo: valor, atributo: valor})db.colecao.save(doc) um exemplo de Banco de Dados NoSQL32/48 33. Criando banco, colees e documentosum exemplo de Banco de Dados NoSQL 33/48 34. Listando os dados de uma Coleoum exemplo de Banco de Dados NoSQL 34/48 35. Remover dados de uma Coleoum exemplo de Banco de Dados NoSQL 35/48 36. Operadores CondicionaisOperadoresValor$lt Menor que$lteMenor igual que$gt Maior que$gteMaior igual que$notNo igual$allTodos os valores de um array$exists Verificar se um campo existe ou no$or Corresponder uma consulta a outra um exemplo de Banco de Dados NoSQL 36/48 37. Utilitrios de administrao http://localhost:28017; db.serverStatus(); db.stats(); mongod --repair um exemplo de Banco de Dados NoSQL 37/48 38. Banco de Exemploum exemplo de Banco de Dados NoSQL 38/48 39. Comandos db.alfabeto.find(); it; db.alfabeto.find().forEach(printjson);um exemplo de Banco de Dados NoSQL 39/48 40. Consultas db.alfabeto.find({char: "o"}); db.alfabeto.find({code:{$lte:100}}); db.alfabeto.find({code:{$in:[102,103,104,105]}}, {char: 1}); db.alfabeto. find({code: {$gte:118}}).sort({code: 0}); um exemplo de Banco de Dados NoSQL40/48 41. Resultados de paginao usando db.alfabeto.find().limit(5); db.alfabeto.find().skip(5).limit(5); um exemplo de Banco de Dados NoSQL 41/48 42. Funes de Grupo e Agregao db.alfabeto.find().count(); db.allfabeto.find({code: {$gte: 105}}).count(); db.contato.distinct("name"); um exemplo de Banco de Dados NoSQL 42/48 43. Funo Group SQL:SELECT name, COUNT(*) FROM colors GROUP BYname; um exemplo de Banco de Dados NoSQL 43/48 44. Funo Group mongoDBdb.colors.group( {key: {name: true},cond: {}, initial: {count: 0}, reduce: function(doc, out) { out.count++; }});um exemplo de Banco de Dados NoSQL 44/48 45. Mais comandos db.cor.drop(); show collections; show dbs.um exemplo de Banco de Dados NoSQL45/48 46. Ferramentas e outros recursos Importando e exportando dados; Fazer backup e restaurar bancos de dadosum exemplo de Banco de Dados NoSQL 46/48 47. Dvidas?um exemplo de Banco de Dados NoSQL 47/48 48. Obrigada!um exemplo de Banco de Dados NoSQL