SlideShare a Scribd company logo
1 of 48
Download to read offline
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

                    Graduanda em Análise e Desenvolvimento de
                    Sistemas – IFRN

                    E-mail: monte.daniele@gmail.com
                    MSN: danie_monte@hotmail.com




um exemplo de Banco de Dados NoSQL                        02/48
Agenda
1.   Modelo SQL
2.   NoSQL
3.   O mongoDB
4.   Operações no mongoDB
5.   Execução de Código no Lado Servidor
6.   Aplicação Exemplo no Lado Cliente com Java



        um exemplo de Banco de Dados NoSQL       03/48
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
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
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
Modelo ACID do SQL

Atomicidade
                               Consistência
Isolamento
                               Durabilidade

    um exemplo de Banco de Dados NoSQL        07/48
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
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
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
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
Modelo BASE do NoSQL

 Basicamente disponível
                                   Estado leve
Consistente em momento indeterminado

     um exemplo de Banco de Dados NoSQL          12/48
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
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
Exemplos de Banco NoSQL




um 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;                    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
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
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
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
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
Modelo de Dados do mongoDB




um 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 Dados NoSQL         22/48
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
BSON
• Objetos no MongoDB;

• "Binary JSON“;

• Permite representação de tipos ricos.




      um exemplo de Banco de Dados NoSQL     24/48
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
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
Instalação Windows
Recomendado instalar como serviço, digita -se
no Prompt:




      um exemplo de Banco de Dados NoSQL        27/48
Instalação Windows
Depois é só iniciar o serviço digitando no
Prompt:




      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           29/48
Shell do mongoDB




um 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
        começar com o caractere $;

       e o caractere ‘.’ jamais poderá ser
        incluso.


      um exemplo de Banco de Dados NoSQL          31/48
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
Criando banco, coleções e documentos




    um exemplo de Banco de Dados NoSQL   33/48
Listando os dados de uma Coleção




um exemplo de Banco de Dados NoSQL   34/48
Remover dados de uma Coleção




um exemplo de Banco de Dados NoSQL   35/48
Operadores Condicionais
Operadores      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
Utilitários de administração

• http://localhost:28017;

• db.serverStatus();

• db.stats();

• mongod --repair



       um exemplo de Banco de Dados NoSQL   37/48
Banco de Exemplo




um 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         39/48
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
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
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
Função Group
• SQL:

SELECT name, COUNT(*) FROM colors GROUP BY
name;




         um exemplo de Banco de Dados NoSQL             43/48
Função Group

• mongoDB
db.colors.group( {key: {name: true},
cond: {}, initial: {count: 0},
 reduce: function(doc, out) { out.count++; }
});




      um exemplo de Banco de Dados NoSQL             44/48
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 Banco de Dados NoSQL     46/48
Dúvidas?


um exemplo de Banco de Dados NoSQL   47/48
Obrigada!


um exemplo de Banco de Dados NoSQL

More Related Content

What's hot

MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014Christiano Anderson
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIBruna Pereira
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBAri Stopassola Junior
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16Christiano Anderson
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014Christiano Anderson
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - ApresentaçãoTerra / Neo
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasWaldemar Neto
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosYuri Adams
 

What's hot (20)

NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
MongoDB na Campus Party
MongoDB na Campus PartyMongoDB na Campus Party
MongoDB na Campus Party
 
MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014MongoDB - Tudo que você precisa saber - FGSL 2014
MongoDB - Tudo que você precisa saber - FGSL 2014
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16MongoDB - Tudo o que você precisa saber - FISL16
MongoDB - Tudo o que você precisa saber - FISL16
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
Python e MongoDB - Ensol
Python e MongoDB - EnsolPython e MongoDB - Ensol
Python e MongoDB - Ensol
 
MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014MongoDB Schema Design - Latinoware 2014
MongoDB Schema Design - Latinoware 2014
 
Meetup MUG-RS KingHost
Meetup MUG-RS KingHostMeetup MUG-RS KingHost
Meetup MUG-RS KingHost
 
MongoDB - Apresentação
MongoDB - ApresentaçãoMongoDB - Apresentação
MongoDB - Apresentação
 
2011 01-18 mongo-db
2011 01-18 mongo-db2011 01-18 mongo-db
2011 01-18 mongo-db
 
Mongodb workshop cinlug
Mongodb workshop cinlugMongodb workshop cinlug
Mongodb workshop cinlug
 
Workshop MongoDB
Workshop MongoDBWorkshop MongoDB
Workshop MongoDB
 
Mongo + php
Mongo + phpMongo + php
Mongo + php
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a Documentos
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 

Viewers also liked

Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosDesmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosFabíola Fernandes
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dadosJordan Kobellarz
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesChristiano Anderson
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?Nico Steppat
 

Viewers also liked (15)

Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de DadosDesmistificando NoSQL e Novas Tecnologias de Bancos de Dados
Desmistificando NoSQL e Novas Tecnologias de Bancos de Dados
 
NoSql
NoSqlNoSql
NoSql
 
MongoDB: introdução à sua próxima base de dados
MongoDB:  introdução à sua próxima base de dadosMongoDB:  introdução à sua próxima base de dados
MongoDB: introdução à sua próxima base de dados
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentesUtilizando NoSQL no desenvolvimento de soluções inteligentes
Utilizando NoSQL no desenvolvimento de soluções inteligentes
 
Palestra MongoDB
Palestra MongoDBPalestra MongoDB
Palestra MongoDB
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Introdução ao NoSql
Introdução ao NoSqlIntrodução ao NoSql
Introdução ao NoSql
 
No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
NOSQL
NOSQLNOSQL
NOSQL
 
NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?NoSQL - Por que e quando usar?
NoSQL - Por que e quando usar?
 

Similar to Minicurso Epoca mongoDB

Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemJoão Gabriel Lima
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Rodrigo Valerio
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J Daniel San Martin
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)wchevreuil
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadospichiliani
 

Similar to Minicurso Epoca mongoDB (20)

Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Mongo db
Mongo dbMongo db
Mongo db
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)Bancos de dados nosql (not only sql)
Bancos de dados nosql (not only sql)
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J  Banco de Dados em Grafos com Neo4J
Banco de Dados em Grafos com Neo4J
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
I nd t_bigdata(1)
I nd t_bigdata(1)I nd t_bigdata(1)
I nd t_bigdata(1)
 
Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)Bancos de dados NoSQL (Not only sql)
Bancos de dados NoSQL (Not only sql)
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
BD I - Aula 07 A - Projetando BD
BD I - Aula 07 A - Projetando BDBD I - Aula 07 A - Projetando BD
BD I - Aula 07 A - Projetando BD
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 
Interoperabilidade entre bancos de dados
Interoperabilidade entre bancos de dadosInteroperabilidade entre bancos de dados
Interoperabilidade entre bancos de dados
 

Minicurso Epoca mongoDB

  • 1. um exemplo de Banco de Dados NoSQL um exemplo de Banco de Dados NoSQL
  • 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.com um exemplo de Banco de Dados NoSQL 02/48
  • 3. Agenda 1. Modelo SQL 2. NoSQL 3. O mongoDB 4. Operações no mongoDB 5. Execução de Código no Lado Servidor 6. Aplicação Exemplo no Lado Cliente com Java um exemplo de Banco de Dados NoSQL 03/48
  • 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. 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. 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. Modelo ACID do SQL Atomicidade Consistência Isolamento Durabilidade um exemplo de Banco de Dados NoSQL 07/48
  • 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. 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. 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. 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. Modelo BASE do NoSQL Basicamente disponível Estado leve Consistente em momento indeterminado um exemplo de Banco de Dados NoSQL 12/48
  • 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. 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 NoSQL um exemplo de Banco de Dados NoSQL 15/48
  • 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. 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. 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. 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. 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. Modelo de Dados do mongoDB um exemplo de Banco de Dados NoSQL 21/48
  • 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. 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. BSON • Objetos no MongoDB; • "Binary JSON“; • Permite representação de tipos ricos. um exemplo de Banco de Dados NoSQL 24/48
  • 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. 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. Instalação Windows Recomendado instalar como serviço, digita -se no Prompt: um exemplo de Banco de Dados NoSQL 27/48
  • 28. Instalação Windows Depois é só iniciar o serviço digitando no Prompt: um exemplo de Banco de Dados NoSQL 28/48
  • 29. Instalação Ubuntu • Abre o terminal e digita: > sudo apt-get install mongodb um exemplo de Banco de Dados NoSQL 29/48
  • 30. Shell do mongoDB um exemplo de Banco de Dados NoSQL 30/48
  • 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. 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. Criando banco, coleções e documentos um exemplo de Banco de Dados NoSQL 33/48
  • 34. Listando os dados de uma Coleção um exemplo de Banco de Dados NoSQL 34/48
  • 35. Remover dados de uma Coleção um exemplo de Banco de Dados NoSQL 35/48
  • 36. Operadores Condicionais Operadores 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. Utilitários de administração • http://localhost:28017; • db.serverStatus(); • db.stats(); • mongod --repair um exemplo de Banco de Dados NoSQL 37/48
  • 38. Banco de Exemplo um 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 NoSQL 40/48
  • 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. 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. Função Group • SQL: SELECT name, COUNT(*) FROM colors GROUP BY name; um exemplo de Banco de Dados NoSQL 43/48
  • 44. Função Group • mongoDB db.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 NoSQL 45/48
  • 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. Dúvidas? um exemplo de Banco de Dados NoSQL 47/48
  • 48. Obrigada! um exemplo de Banco de Dados NoSQL