SlideShare uma empresa Scribd logo
Um banco de dados noSQL
MSc.Thiago Ribeiro de Azeredo
Professor do curso de Engenharia da Computação
O que é um banco noSQL?
• NoSQL abrange uma grande variedade de diferentes tecnologias de banco de
dados que foram desenvolvidos em resposta a um aumento do volume de dados
armazenados sobre usuários, objetos e produtos, a frequência em que esses dados
são acessados, e desempenho de processamento e necessidades. Bancos de
dados relacionais, por outro lado, não foram projetados para lidar com os desafios
de escala e agilidade que enfrentam aplicações modernas, nem foram construídos
para tirar proveito do armazenamento barato e poder de processamento
disponível hoje.
https://www.mongodb.com/nosql-explained
Quais as vantagens de um banco noSQL?
• Quando comparado com bancos de dados relacionais, bancos de dados NoSQL
são mais escaláveis e proporcionam um desempenho superior.
• Seu modelo de dados aborda várias questões que o modelo relacional não é
projetado para lidar com:
• Grandes volumes de dados estruturados, semi-estruturados, não-estruturados e
• Sprints ágeis, iteração rápida e empurrões código frequentes
• Programação orientada a objetos
• Arquitetura escalável no lugar de arquitetura monolítica
https://www.mongodb.com/nosql-explained
Como são tão rápidos e escaláveis?
Auto-sharding!
Nativamente e automaticamente propagam dados entre um número arbitrário de
servidores, sem exigir a aplicação ao mesmo esteja ciente da composição do pool
de servidores. Dados e carga de consulta são automaticamente equilibrada entre
servidores, e quando um servidor cair, ela pode ser rápida e transparente substituído
sem interrupção do aplicativo.
https://www.mongodb.com/nosql-explained
Quais são os tipos de bancos noSQL?
• Chave/Valor
• Grafo
• Colunas
• Documentos
Chave/Valor
• São os mais simples bancos NoSQL.
• Todo item é armazenado com uma chave que o identifica
• Muito útil para desenvolvimento de aplicações na nuvem
• Exemplos: CouchDB, Oracle NoSQL Database, Dynamo, FoundationDB,
HyperDex, MemcacheDB, Redis, Riak, FairCom c-treeACE, Aerospike, OrientDB,
MUMPS, Voldemort
Grafo
• Armazenam de forma natural informações interligada
• Conexões em redes sociais, mapa de ruas, topologia de redes são bons exemplo
de utilização
• Exemplos: Allegro, Neo4J, InfiniteGraph, OrientDB,Virtuoso, Stardog
Colunas
• Otimizados para fazer consultas em grandes conjuntos de dados
• Armazena os dados em colunas ao invés de linhas
• Exemplos: Cassandra, HBase
Documentos
• Cada registro é uma estrutura complexa chamada de documento
• Cada documento contém um identificador único
• Cada documento pode conter uma enorme quantidade chaves e valores
• Um valor pode ser um vetor de valores
• Um valor também pode ser um outro documento
• Exemplos: Clusterpoint, Apache CouchDB, Couchbase,
DocumentDB, HyperDex, Lotus Notes, MarkLogic,
MongoDB, OrientDB, Qizx
Documentos
• Cada registro é uma estrutura complexa chamada de documento
• Cada documento contém um identificador único
• Cada documento pode conter uma enorme quantidade chaves e valores
• Um valor pode ser um vetor de valores
• Um valor também pode ser um outro documento
• Exemplos: Clusterpoint, Apache CouchDB, Couchbase,
DocumentDB, HyperDex, Lotus Notes, MarkLogic,
MongoDB, OrientDB, Qizx
MongoDB
• Do inglês humongous (gigantesco)
• Primeira versão publicada em 2009
• Quem usa?
• Cidade de Chicago
• Expedia
• Adobe
• Facebook
• MTV
• EA
• CISCO
• Verizon
• The NewYorkTimes
• eBay
• Google
• PEBBLE
Como funciona?
• Armazena todas as informações em formato JSON (JavaScript Object Notation)
• Pode-se fazer analogias entre:
• Coleções eTabelas
• Documentos e Linhas
Iniciando o banco
•http://pastebin.com/Qd11K4xw
Primeiros passos
• Shell do mongoDB aceita comandos javascript
• Não existe comando para criar um novo database. É criado automaticamente.
• Não existe comando para criar uma coleção. É criada automaticamente
• Automaticamente quando?
• Quando um documento for inserido!
• show dbs
• show collections
• use fsma
• db.alunos.insert({"nome":"Thiago",“sexo":”Masculino”})
• db.alunos.find()
Inserindo documentos complexos
db.alunos.insert(
{
"nome":"Thiago",
"nascimento": new ISODate("1990-01-01"),
“cr”:8.72,
"materias":[
{
"nome":"matemática",
"créditos":3
},
{
"nome":"programação",
"créditos":2
}
]
}
)
Como fazer buscas?
• db.alunos.find()
• db.alunos.find({“nome”:”Thiago”})
• db.alunos.find({“cr”:{$gt:8}})
• db.alunos.find({"materias":{$elemMatch: { "nome":"matemática"} } })
• db.alunos.find({},{“nome”:1})
• db.alunos.find({“cr”:{$gt:8}},{“materias”:1,_id:0})
$eq
$gt
$gte
$lt
$lte
$ne
$in
$nin
-
$or
$and
$not
$nor
-
$exists
$type
https://docs.mongodb.org/manual/reference/operator/query/
Alterando/Removendo documentos
db.alunos.update( {"cr“ : { $gt : 8 } }, { $set : { "cr“ : 9 } } )
db.alunos.remove({“cr”:9})

Mais conteúdo relacionado

PPS
NoSQL - Soluções alternativas para bancos de dados
Nicolas Ibanheiz
 
PDF
MongoDB e Bancos de Dados Orientados a Documentos
UNIFESP - Universidade Federal de São Paulo
 
PDF
Bancos de dados nosql (not only sql)
Rodrigo Valerio
 
PPTX
Pos-QCon-BigData
Fernando Cicconeto
 
PDF
Como arquiteturas de dados quebram
Gleicon Moraes
 
PDF
NPA - NoSQL Persistence API
Wesley Fuchter
 
PDF
DevDay - MongoDb no mundo real - slides
Suissa
 
PDF
Mongo db no mundo real slides
Suissa
 
NoSQL - Soluções alternativas para bancos de dados
Nicolas Ibanheiz
 
MongoDB e Bancos de Dados Orientados a Documentos
UNIFESP - Universidade Federal de São Paulo
 
Bancos de dados nosql (not only sql)
Rodrigo Valerio
 
Pos-QCon-BigData
Fernando Cicconeto
 
Como arquiteturas de dados quebram
Gleicon Moraes
 
NPA - NoSQL Persistence API
Wesley Fuchter
 
DevDay - MongoDb no mundo real - slides
Suissa
 
Mongo db no mundo real slides
Suissa
 

Mais procurados (10)

PDF
NoSQL
Claudio Santos
 
PPTX
Nosql e BD Orientados a Documentos
Yuri Adams
 
PDF
Cassandra Trip Brasil
Edward Ribeiro
 
PDF
Curso JavaScript - Aula sobre DOM e Ajax
Tiago Antônio da Silva
 
PPTX
Como o elasticsearch salvou minhas buscas
Waldemar Neto
 
PDF
Introducao aos Bancos de Dados Não-relacionais
Mauricio De Diana
 
PDF
2011 01-18 mongo-db
Campus Party Brasil
 
KEY
MongoDB
Rodrigo Machado
 
PPTX
Elasticsearch como gerenciar seus logs com logstash e kibana
Luiz Henrique Zambom Santana
 
Nosql e BD Orientados a Documentos
Yuri Adams
 
Cassandra Trip Brasil
Edward Ribeiro
 
Curso JavaScript - Aula sobre DOM e Ajax
Tiago Antônio da Silva
 
Como o elasticsearch salvou minhas buscas
Waldemar Neto
 
Introducao aos Bancos de Dados Não-relacionais
Mauricio De Diana
 
2011 01-18 mongo-db
Campus Party Brasil
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Luiz Henrique Zambom Santana
 
Anúncio

Destaque (12)

PPTX
Mitä mieltä Kela-siirrosta?
TITA research
 
PPTX
Alphabetical order 1 ppt tg 2012
gavinnancarrow
 
PPTX
Y3 colour sounds unit 21
gavinnancarrow
 
PPTX
Y6 sight words rust
gavinnancarrow
 
PPTX
Y1 Ck spelling powerpoint tg 2012
gavinnancarrow
 
PDF
Finns in Sweden: What influence fathers’ parental leave use?
TITA research
 
PPTX
Promoting parental leaves for foreign-born fathers - what role does the polic...
TITA research
 
PPTX
Y1 Ll spelling powerpoint tg 2012
gavinnancarrow
 
PPTX
Stanford Latino Alumni Network - Speaker Series
Ahmad Wright
 
PPTX
Subjective well-being of food aid recipients in the capitals of Finland, Gree...
TITA research
 
PDF
Innovations in Publishing
Ciarán Quinn
 
PDF
Hacking Business 3 : Pitch Deck
Sébastien Derivaux
 
Mitä mieltä Kela-siirrosta?
TITA research
 
Alphabetical order 1 ppt tg 2012
gavinnancarrow
 
Y3 colour sounds unit 21
gavinnancarrow
 
Y6 sight words rust
gavinnancarrow
 
Y1 Ck spelling powerpoint tg 2012
gavinnancarrow
 
Finns in Sweden: What influence fathers’ parental leave use?
TITA research
 
Promoting parental leaves for foreign-born fathers - what role does the polic...
TITA research
 
Y1 Ll spelling powerpoint tg 2012
gavinnancarrow
 
Stanford Latino Alumni Network - Speaker Series
Ahmad Wright
 
Subjective well-being of food aid recipients in the capitals of Finland, Gree...
TITA research
 
Innovations in Publishing
Ciarán Quinn
 
Hacking Business 3 : Pitch Deck
Sébastien Derivaux
 
Anúncio

Semelhante a Introdução ao MongoDB (NoSQL) (20)

PPTX
Mongo db
Edmilson Neto
 
PPTX
No sql Orientado a documento
Alex Martins
 
PPT
NoSQL & SQL
Charles Fortes
 
PDF
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
João Helis Bernardo
 
PDF
Web Scale Data Management
Regis Magalhães
 
ODT
Nosql
Suissa
 
KEY
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Christiano Anderson
 
PDF
Bancos de dados no sql – uma nova abordagem
João Gabriel Lima
 
PPT
Interoperabilidade entre bancos de dados
pichiliani
 
PPT
Interoperabilidade entre bancos de dados
pichiliani
 
PDF
Bancos de dados NoSQL
Rodrigo De Souza Valerio
 
PDF
Minicurso Epoca mongoDB
LelyBarros
 
PPTX
Introdução ao NoSQL
ronaldopiresdias
 
PDF
Introducao a base de dados IBD07 NoSQL.pdf
genesisnowmz
 
PPS
Apresentação
Joel Junior
 
PPSX
FireDAC para BigDATA: Teradata e MongoDB
Alan Glei
 
PDF
Estudo de técnicas de persistência e acesso concorrente a ontologias
Helio Henrique L. C. Monte-Alto
 
PPTX
Big Data, NoSQL e In Memory Databases
Caio Louro
 
PDF
NoSql e NewSql
Suzana Viana Mota
 
PDF
Material Seminário NoSQL
Lorran Pegoretti
 
Mongo db
Edmilson Neto
 
No sql Orientado a documento
Alex Martins
 
NoSQL & SQL
Charles Fortes
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
João Helis Bernardo
 
Web Scale Data Management
Regis Magalhães
 
Nosql
Suissa
 
Utilizando NoSQL no desenvolvimento de soluções inteligentes
Christiano Anderson
 
Bancos de dados no sql – uma nova abordagem
João Gabriel Lima
 
Interoperabilidade entre bancos de dados
pichiliani
 
Interoperabilidade entre bancos de dados
pichiliani
 
Bancos de dados NoSQL
Rodrigo De Souza Valerio
 
Minicurso Epoca mongoDB
LelyBarros
 
Introdução ao NoSQL
ronaldopiresdias
 
Introducao a base de dados IBD07 NoSQL.pdf
genesisnowmz
 
Apresentação
Joel Junior
 
FireDAC para BigDATA: Teradata e MongoDB
Alan Glei
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Helio Henrique L. C. Monte-Alto
 
Big Data, NoSQL e In Memory Databases
Caio Louro
 
NoSql e NewSql
Suzana Viana Mota
 
Material Seminário NoSQL
Lorran Pegoretti
 

Último (16)

PPTX
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
PPTX
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPTX
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
PPTX
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx
Anderson Maciel
 
PPTX
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
PDF
tutor eletronico para seguranca de bebes e criancas
matheusjosesilva934
 
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
fabriciolabgeo91411
 
PPTX
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
PPT
Sistemas de Informação em Saúde Aplicada.ppt
fabriciolabgeo91411
 
PPTX
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
PPTX
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
PPTX
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
PPTX
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
PPTX
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
PDF
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 
Computacao-e-Tecnologias-Digitais-Por-Que-Aprender.pptx
RobertaOliveiradaFon1
 
21 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Curso de Java 5 - (Strings) Tipo de Dados.pptx
Anderson Maciel
 
Curso de Java 8 - (Tratamento de Exceções, (try-catch-finally)).pptx
Anderson Maciel
 
Curso de Java 7 - (ArrayList, Collections,(Set, List, Queue, Map)).pptx
Anderson Maciel
 
tutor eletronico para seguranca de bebes e criancas
matheusjosesilva934
 
Curso de Java 4 - (Orientação a Objetos).pptx
Anderson Maciel
 
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
fabriciolabgeo91411
 
22 - Lógica de Programação com Portugol.pptx
Anderson Maciel
 
Sistemas de Informação em Saúde Aplicada.ppt
fabriciolabgeo91411
 
Curso de Java 2 - (PrimeiroPrograma, Variáveis, Tipos e Operadores.pptx
Anderson Maciel
 
Curso de Java 3 - (Estruturas de Controle, Decisão, Loop, Procedimento).pptx
Anderson Maciel
 
Curso de Java 6 - (Números, Data e Hora).pptx
Anderson Maciel
 
aplicativopenseira.pptx Aplicativo que organiza Pensamentos - Peça Publicitária
StelaNorie1
 
Curso de Java 1 - (Introdução Geral).pptx
Anderson Maciel
 
Certificado em Redes Neurais Artificiais em Python
CaioSilva506151
 

Introdução ao MongoDB (NoSQL)

  • 1. Um banco de dados noSQL MSc.Thiago Ribeiro de Azeredo Professor do curso de Engenharia da Computação
  • 2. O que é um banco noSQL? • NoSQL abrange uma grande variedade de diferentes tecnologias de banco de dados que foram desenvolvidos em resposta a um aumento do volume de dados armazenados sobre usuários, objetos e produtos, a frequência em que esses dados são acessados, e desempenho de processamento e necessidades. Bancos de dados relacionais, por outro lado, não foram projetados para lidar com os desafios de escala e agilidade que enfrentam aplicações modernas, nem foram construídos para tirar proveito do armazenamento barato e poder de processamento disponível hoje. https://www.mongodb.com/nosql-explained
  • 3. Quais as vantagens de um banco noSQL? • Quando comparado com bancos de dados relacionais, bancos de dados NoSQL são mais escaláveis e proporcionam um desempenho superior. • Seu modelo de dados aborda várias questões que o modelo relacional não é projetado para lidar com: • Grandes volumes de dados estruturados, semi-estruturados, não-estruturados e • Sprints ágeis, iteração rápida e empurrões código frequentes • Programação orientada a objetos • Arquitetura escalável no lugar de arquitetura monolítica https://www.mongodb.com/nosql-explained
  • 4. Como são tão rápidos e escaláveis? Auto-sharding! Nativamente e automaticamente propagam dados entre um número arbitrário de servidores, sem exigir a aplicação ao mesmo esteja ciente da composição do pool de servidores. Dados e carga de consulta são automaticamente equilibrada entre servidores, e quando um servidor cair, ela pode ser rápida e transparente substituído sem interrupção do aplicativo. https://www.mongodb.com/nosql-explained
  • 5. Quais são os tipos de bancos noSQL? • Chave/Valor • Grafo • Colunas • Documentos
  • 6. Chave/Valor • São os mais simples bancos NoSQL. • Todo item é armazenado com uma chave que o identifica • Muito útil para desenvolvimento de aplicações na nuvem • Exemplos: CouchDB, Oracle NoSQL Database, Dynamo, FoundationDB, HyperDex, MemcacheDB, Redis, Riak, FairCom c-treeACE, Aerospike, OrientDB, MUMPS, Voldemort
  • 7. Grafo • Armazenam de forma natural informações interligada • Conexões em redes sociais, mapa de ruas, topologia de redes são bons exemplo de utilização • Exemplos: Allegro, Neo4J, InfiniteGraph, OrientDB,Virtuoso, Stardog
  • 8. Colunas • Otimizados para fazer consultas em grandes conjuntos de dados • Armazena os dados em colunas ao invés de linhas • Exemplos: Cassandra, HBase
  • 9. Documentos • Cada registro é uma estrutura complexa chamada de documento • Cada documento contém um identificador único • Cada documento pode conter uma enorme quantidade chaves e valores • Um valor pode ser um vetor de valores • Um valor também pode ser um outro documento • Exemplos: Clusterpoint, Apache CouchDB, Couchbase, DocumentDB, HyperDex, Lotus Notes, MarkLogic, MongoDB, OrientDB, Qizx
  • 10. Documentos • Cada registro é uma estrutura complexa chamada de documento • Cada documento contém um identificador único • Cada documento pode conter uma enorme quantidade chaves e valores • Um valor pode ser um vetor de valores • Um valor também pode ser um outro documento • Exemplos: Clusterpoint, Apache CouchDB, Couchbase, DocumentDB, HyperDex, Lotus Notes, MarkLogic, MongoDB, OrientDB, Qizx
  • 11. MongoDB • Do inglês humongous (gigantesco) • Primeira versão publicada em 2009 • Quem usa? • Cidade de Chicago • Expedia • Adobe • Facebook • MTV • EA • CISCO • Verizon • The NewYorkTimes • eBay • Google • PEBBLE
  • 12. Como funciona? • Armazena todas as informações em formato JSON (JavaScript Object Notation) • Pode-se fazer analogias entre: • Coleções eTabelas • Documentos e Linhas
  • 14. Primeiros passos • Shell do mongoDB aceita comandos javascript • Não existe comando para criar um novo database. É criado automaticamente. • Não existe comando para criar uma coleção. É criada automaticamente • Automaticamente quando? • Quando um documento for inserido! • show dbs • show collections • use fsma • db.alunos.insert({"nome":"Thiago",“sexo":”Masculino”}) • db.alunos.find()
  • 15. Inserindo documentos complexos db.alunos.insert( { "nome":"Thiago", "nascimento": new ISODate("1990-01-01"), “cr”:8.72, "materias":[ { "nome":"matemática", "créditos":3 }, { "nome":"programação", "créditos":2 } ] } )
  • 16. Como fazer buscas? • db.alunos.find() • db.alunos.find({“nome”:”Thiago”}) • db.alunos.find({“cr”:{$gt:8}}) • db.alunos.find({"materias":{$elemMatch: { "nome":"matemática"} } }) • db.alunos.find({},{“nome”:1}) • db.alunos.find({“cr”:{$gt:8}},{“materias”:1,_id:0}) $eq $gt $gte $lt $lte $ne $in $nin - $or $and $not $nor - $exists $type https://docs.mongodb.org/manual/reference/operator/query/
  • 17. Alterando/Removendo documentos db.alunos.update( {"cr“ : { $gt : 8 } }, { $set : { "cr“ : 9 } } ) db.alunos.remove({“cr”:9})