O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Minicurso Epoca mongoDB

3.014 visualizações

Publicada em

  • Seja o primeiro a comentar

Minicurso Epoca mongoDB

  1. 1. um exemplo de Banco de Dados NoSQL um exemplo de Banco de Dados NoSQL
  2. 2. Quem sou? DANIELE MONTENEGRO – @lelybarros Bacharel em Ciências Sociais – UFRN Graduanda em Análise e Desenvolvimento de Sistemas – IFRN E-mail: monte.daniele@gmail.com MSN: danie_monte@hotmail.comum exemplo de Banco de Dados NoSQL 02/48
  3. 3. Agenda1. Modelo SQL2. NoSQL3. O mongoDB4. Operações no mongoDB5. Execução de Código no Lado Servidor6. Aplicação Exemplo no Lado Cliente com Java um exemplo de Banco de Dados NoSQL 03/48
  4. 4. Modelo Relacional• Criação em 1970;• Elementos básicos: relações, tuplas e atributos;• A utilização de restrições de integridade (chaves);• Normalização. um exemplo de Banco de Dados NoSQL 04/48
  5. 5. Modelo Relacional• O modelo relacional usa como linguagem de definição, manipulação e consulta de dados a SQL (Structured Query Language);• Consistência dos dados. um exemplo de Banco de Dados NoSQL 05/48
  6. 6. SGBD’s SQL oferecem• Processos de validação;• Verificação e garantias de integridade dos dados;• Controle de concorrência, recuperação de falhas, segurança;• Controle de transações, otimização de consultas. um exemplo de Banco de Dados NoSQL 06/48
  7. 7. Modelo ACID do SQLAtomicidade ConsistênciaIsolamento Durabilidade um exemplo de Banco de Dados NoSQL 07/48
  8. 8. Limitações do SQL• Com o crescimento do número de usuários, o sistema começa a ter uma queda de performance.• Dificuldade em fazer a escalabilidade. um exemplo de Banco de Dados NoSQL 08/48
  9. 9. Porque tudo mudou com a Web?• Necessidade de manipulação de grandes volumes de dados não estruturados ou semi- estruturados;• Novas necessidades de disponibilidade e escalabilidade. um exemplo de Banco de Dados NoSQL 09/48
  10. 10. O que é NoSQL?• Termo genérico para um classe definida de banco de dados não- relacionais;• Forma flexível de estruturar o banco de dados. um exemplo de Banco de Dados NoSQL 10/48
  11. 11. Quando surgiram?• O termo surgiu em 1998;• Primeiras propostas pela comunidade de software livre;• A primeira implementação foi em 2004 com BigTable da Google;• Em 2007, a Amazon apresenta o sistema Dynamo. um exemplo de Banco de Dados NoSQL 11/48
  12. 12. Modelo BASE do NoSQL Basicamente disponível Estado leveConsistente em momento indeterminado um exemplo de Banco de Dados NoSQL 12/48
  13. 13. Características do NoSQL• Escalabilidade horizontal;• Ausência de esquema ou flexível;• Suporte nativo a replicação;• API simples para acesso a dados;• Consistência eventual. um exemplo de Banco de Dados NoSQL 13/48
  14. 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. 15. Exemplos de Banco NoSQLum exemplo de Banco de Dados NoSQL 15/48
  16. 16. Não usar x Usar o NoSQL• Aplicativos que necessitam de uma forte • Aplicativos que acessam regra de negocio; dados rapidamente;• Um maior grau de rigor • Dados que são quanto à consistência acessados com dos dados; frequência;• Sistemas em que os • Sistemas que os dados dados necessitam ser não precisam ser estruturados. estruturados. um exemplo de Banco de Dados NoSQL 16/48
  17. 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 NoSQL 17/48
  18. 18. O mongoDB• Binários oficiais disponíveis para Windows®, Mac OS X, Linux® e Solaris;• Drivers para C, C#, C++, Haskell, Java™, JavaScript, Perl, PHP, Python, Ruby e Scala; um exemplo de Banco de Dados NoSQL 18/48
  19. 19. Porque o mongoDB?• Orientado a documentos;• Alta performance;• Alta disponibilidade;• Fácil escalabilidade;• Linguagem rica de consulta. um exemplo de Banco de Dados NoSQL 19/48
  20. 20. Modelo de Dados do mongoDB• Um banco de dados armazena um conjunto de coleções;• Uma coleção armazena um conjunto de documentos;• Um documento é um conjunto de campos;• Um campo é um par chave-valor;• Uma chave é um nome;• Um valor é um tipo básico. um exemplo de Banco de Dados NoSQL 20/48
  21. 21. Modelo de Dados do mongoDBum exemplo de Banco de Dados NoSQL 21/48
  22. 22. Coleções• Agrupamento lógico de documentos;• Schema-free;• Número ilimitado de documentos. um exemplo de Banco de Dados NoSQL 22/48
  23. 23. Documentos• Unidade de armazenamento;• Todos devem ter um _id único;• Tamanho máximo de 4MB. – para objetos maiores, usa-se GridFS um exemplo de Banco de Dados NoSQL 23/48
  24. 24. BSON• Objetos no MongoDB;• "Binary JSON“;• Permite representação de tipos ricos. um exemplo de Banco de Dados NoSQL 24/48
  25. 25. Como começar?• Baixar os Binários disponíveis para 32 e 64 bits no link: Baixar mongoDB um exemplo de Banco de Dados NoSQL 25/48
  26. 26. Instalação Windows• Baixa o arquivo do mongo;• Descompacta de preferência na Unidade C;• Renomeia o arquivo para mongodb;• Cria duas pastas uma chamada data e a outra log; um exemplo de Banco de Dados NoSQL 26/48
  27. 27. Instalação WindowsRecomendado instalar como serviço, digita -seno Prompt: um exemplo de Banco de Dados NoSQL 27/48
  28. 28. Instalação WindowsDepois é só iniciar o serviço digitando noPrompt: um exemplo de Banco de Dados NoSQL 28/48
  29. 29. Instalação Ubuntu• Abre o terminal e digita: > sudo apt-get install mongodb um exemplo de Banco de Dados NoSQL 29/48
  30. 30. Shell do mongoDBum exemplo de Banco de Dados NoSQL 30/48
  31. 31. Regra de Sintaxe• O atributo para o mongoDB tem duas regras devem ser satisfeitas:  O nome do atributo não deve começar com o caractere $;  e o caractere ‘.’ jamais poderá ser incluso. um exemplo de Banco de Dados NoSQL 31/48
  32. 32. Criando banco, coleções e documentos• Criar banco: use [nome banco]• Criar Coleção e adicionar um documento: db.colecao.save({atributo: “valor”, atributo: “valor”}) ou doc = ({atributo: “valor”, atributo: “valor”}) db.colecao.save(doc) um exemplo de Banco de Dados NoSQL 32/48
  33. 33. Criando banco, coleções e documentos um exemplo de Banco de Dados NoSQL 33/48
  34. 34. Listando os dados de uma Coleçãoum exemplo de Banco de Dados NoSQL 34/48
  35. 35. Remover dados de uma Coleçãoum exemplo de Banco de Dados NoSQL 35/48
  36. 36. Operadores CondicionaisOperadores Valor$lt Menor que$lte Menor igual que$gt Maior que$gte Maior igual que$not Não igual$all Todos os valores de um array$exists Verificar se um campo existe ou não$or Corresponder uma consulta a outra um exemplo de Banco de Dados NoSQL 36/48
  37. 37. Utilitários de administração• http://localhost:28017;• db.serverStatus();• db.stats();• mongod --repair um exemplo de Banco de Dados NoSQL 37/48
  38. 38. Banco de Exemploum exemplo de Banco de Dados NoSQL 38/48
  39. 39. Comandos• db.alfabeto.find();• it;• db.alfabeto.find().forEach(printjson); um exemplo de Banco de Dados NoSQL 39/48
  40. 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 NoSQL 40/48
  41. 41. Resultados de paginação usando• db.alfabeto.find().limit(5);• db.alfabeto.find().skip(5).limit(5); um exemplo de Banco de Dados NoSQL 41/48
  42. 42. Funções de Grupo e Agregação• 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. 43. Função Group• SQL:SELECT name, COUNT(*) FROM colors GROUP BYname; um exemplo de Banco de Dados NoSQL 43/48
  44. 44. Função 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. 45. Mais comandos• db.cor.drop();• show collections;• show dbs. um exemplo de Banco de Dados NoSQL 45/48
  46. 46. Ferramentas e outros recursos• Importando e exportando dados;• Fazer backup e restaurar bancos de dados um exemplo de Banco de Dados NoSQL 46/48
  47. 47. Dúvidas?um exemplo de Banco de Dados NoSQL 47/48
  48. 48. Obrigada!um exemplo de Banco de Dados NoSQL

×