um exemplo de Banco de Dados NoSQL  um exemplo de Banco de Dados NoSQL
Quem sou?                    DANIELE MONTENEGRO – @lelybarros                    Bacharel em Ciências Sociais – UFRN      ...
Agenda1.   Modelo SQL2.   NoSQL3.   O mongoDB4.   Operações no mongoDB5.   Execução de Código no Lado Servidor6.   Aplicaç...
Modelo Relacional• Criação em 1970;• Elementos básicos: relações,  tuplas e atributos;• A utilização de restrições de  int...
Modelo Relacional• O modelo relacional usa como  linguagem de definição,  manipulação e consulta de  dados a SQL (Structur...
SGBD’s SQL oferecem• Processos de validação;• Verificação e garantias de  integridade dos dados;• Controle de concorrência...
Modelo ACID do SQLAtomicidade                               ConsistênciaIsolamento                               Durabilid...
Limitações do SQL• Com o crescimento  do número de  usuários, o sistema  começa a ter uma  queda de  performance.• Dificul...
Porque tudo mudou com a Web?• Necessidade de  manipulação de grandes  volumes de dados não  estruturados ou semi-  estrutu...
O que é NoSQL?• Termo genérico para  um classe definida de  banco de dados não-  relacionais;• Forma flexível de  estrutur...
Quando surgiram?• O termo surgiu em 1998;• Primeiras propostas pela  comunidade de software livre;• A primeira implementaç...
Modelo BASE do NoSQL Basicamente disponível                                   Estado leveConsistente em momento indetermin...
Características do NoSQL• Escalabilidade horizontal;• Ausência de esquema ou flexível;• Suporte nativo a replicação;• API ...
Tipos de Modelo de Dados NoSQL• Orientado a documentos;• Armazenamento Chave-valor;• Baseado em Grafos;• Orientado a Colun...
Exemplos de Banco NoSQLum exemplo de Banco de Dados NoSQL   15/48
Não usar x Usar o NoSQL• Aplicativos que  necessitam de uma forte            • Aplicativos que acessam  regra de negocio; ...
O mongoDB• Banco de dados Orientado a Documentos;• Usa o formato BSON;• Escrito em C++;• Alta performance;• Suporta tipos ...
O mongoDB• Binários  oficiais  disponíveis     para  Windows®, Mac OS X, Linux® e Solaris;• Drivers para C, C#, C++, Haske...
Porque o mongoDB?• Orientado a documentos;• Alta performance;• Alta disponibilidade;• Fácil escalabilidade;• Linguagem ric...
Modelo de Dados do mongoDB• Um banco de dados armazena um conjunto  de coleções;• Uma coleção armazena um conjunto de  doc...
Modelo de Dados do mongoDBum exemplo de Banco de Dados NoSQL   21/48
Coleções• Agrupamento lógico de documentos;• Schema-free;• Número ilimitado de documentos.      um exemplo de Banco de Dad...
Documentos• Unidade de armazenamento;• Todos devem ter um _id único;• Tamanho máximo de 4MB.  – para objetos maiores, usa-...
BSON• Objetos no MongoDB;• "Binary JSON“;• Permite representação de tipos ricos.      um exemplo de Banco de Dados NoSQL  ...
Como começar?• Baixar os Binários disponíveis para 32 e 64  bits no link: Baixar mongoDB     um exemplo de Banco de Dados ...
Instalação Windows• Baixa o arquivo do mongo;• Descompacta de preferência na Unidade C;• Renomeia o arquivo para mongodb;•...
Instalação WindowsRecomendado instalar como serviço, digita -seno Prompt:      um exemplo de Banco de Dados NoSQL        2...
Instalação WindowsDepois é só iniciar o serviço digitando noPrompt:      um exemplo de Banco de Dados NoSQL        28/48
Instalação Ubuntu• Abre o terminal e digita: > sudo apt-get install mongodb      um exemplo de Banco de Dados NoSQL       ...
Shell do mongoDBum exemplo de Banco de Dados NoSQL         30/48
Regra de Sintaxe• O atributo para o mongoDB tem duas regras  devem ser satisfeitas:       O nome do atributo não deve    ...
Criando banco, coleções e documentos• Criar banco: use [nome banco]• Criar Coleção e adicionar um documento:  db.colecao.s...
Criando banco, coleções e documentos    um exemplo de Banco de Dados NoSQL   33/48
Listando os dados de uma Coleçãoum exemplo de Banco de Dados NoSQL   34/48
Remover dados de uma Coleçãoum exemplo de Banco de Dados NoSQL   35/48
Operadores CondicionaisOperadores      Valor$lt             Menor que$lte            Menor igual que$gt             Maior ...
Utilitários de administração• http://localhost:28017;• db.serverStatus();• db.stats();• mongod --repair       um exemplo d...
Banco de Exemploum exemplo de Banco de Dados NoSQL         38/48
Comandos• db.alfabeto.find();• it;• db.alfabeto.find().forEach(printjson);        um exemplo de Banco de Dados NoSQL      ...
Consultas• db.alfabeto.find({char: "o"});• db.alfabeto.find({code:{$lte:100}});• db.alfabeto.find({code:{$in:[102,103,104,...
Resultados de paginação usando• db.alfabeto.find().limit(5);• db.alfabeto.find().skip(5).limit(5);       um exemplo de Ban...
Funções de Grupo e Agregação• db.alfabeto.find().count();• db.allfabeto.find({code: {$gte: 105}}).count();• db.contato.dis...
Função Group• SQL:SELECT name, COUNT(*) FROM colors GROUP BYname;         um exemplo de Banco de Dados NoSQL             4...
Função Group• mongoDBdb.colors.group( {key: {name: true},cond: {}, initial: {count: 0}, reduce: function(doc, out) { out.c...
Mais comandos• db.cor.drop();• show collections;• show dbs.      um exemplo de Banco de Dados NoSQL              45/48
Ferramentas e outros recursos• Importando e exportando dados;• Fazer backup e restaurar bancos de dados      um exemplo de...
Dúvidas?um exemplo de Banco de Dados NoSQL   47/48
Obrigada!um exemplo de Banco de Dados NoSQL
Upcoming SlideShare
Loading in …5
×

Minicurso Epoca mongoDB

2,961 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,961
On SlideShare
0
From Embeds
0
Number of Embeds
1,024
Actions
Shares
0
Downloads
77
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×