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
PDF
MongoDB e Bancos de Dados Orientados a Documentos
PDF
Bancos de dados nosql (not only sql)
PPTX
Pos-QCon-BigData
PDF
Como arquiteturas de dados quebram
PDF
NPA - NoSQL Persistence API
PDF
DevDay - MongoDb no mundo real - slides
PDF
Mongo db no mundo real slides
NoSQL - Soluções alternativas para bancos de dados
MongoDB e Bancos de Dados Orientados a Documentos
Bancos de dados nosql (not only sql)
Pos-QCon-BigData
Como arquiteturas de dados quebram
NPA - NoSQL Persistence API
DevDay - MongoDb no mundo real - slides
Mongo db no mundo real slides

Mais procurados (10)

PDF
PPTX
Nosql e BD Orientados a Documentos
PDF
Cassandra Trip Brasil
PDF
Curso JavaScript - Aula sobre DOM e Ajax
PPTX
Como o elasticsearch salvou minhas buscas
PDF
Introducao aos Bancos de Dados Não-relacionais
PDF
2011 01-18 mongo-db
KEY
PPTX
Elasticsearch como gerenciar seus logs com logstash e kibana
Nosql e BD Orientados a Documentos
Cassandra Trip Brasil
Curso JavaScript - Aula sobre DOM e Ajax
Como o elasticsearch salvou minhas buscas
Introducao aos Bancos de Dados Não-relacionais
2011 01-18 mongo-db
Elasticsearch como gerenciar seus logs com logstash e kibana
Anúncio

Destaque (12)

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

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

PPTX
Mongo db
PPTX
#1 Introdução ao MongoDB
PDF
Introdução ao no sql e mongodb
PDF
Introducao aos bancos_nao_relacionais_com_mongodb
KEY
Utilizando NoSQL no desenvolvimento de soluções inteligentes
PDF
NoSql e NewSql
PDF
Artigo couchdb
PPTX
Introdução ao NoSQL
PDF
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
PPTX
No sql Orientado a documento
PPT
Bancos de dados NoSQL - Redis e MongoDB
PPTX
Apresentação MongoDB
PPTX
Introdução ao NoSQL e modelagem de dados com MongoDB
PPT
Mongo Db - PHP Day Workshop
PDF
Material Seminário NoSQL
PDF
Curso mongo db com php
PDF
Minicurso Epoca mongoDB
PDF
Mongo db slides
PDF
MAC5855 - NoSQL
Mongo db
#1 Introdução ao MongoDB
Introdução ao no sql e mongodb
Introducao aos bancos_nao_relacionais_com_mongodb
Utilizando NoSQL no desenvolvimento de soluções inteligentes
NoSql e NewSql
Artigo couchdb
Introdução ao NoSQL
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
No sql Orientado a documento
Bancos de dados NoSQL - Redis e MongoDB
Apresentação MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
Mongo Db - PHP Day Workshop
Material Seminário NoSQL
Curso mongo db com php
Minicurso Epoca mongoDB
Mongo db slides
MAC5855 - NoSQL

Último (19)

PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
Aula04-Academia Heri- Tecnologia Geral 2025
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Aula 18 - Manipulacao De Arquivos python
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Processos na gestão de transportes, TM100 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Aula04-Academia Heri- Tecnologia Geral 2025
Apple Pippin Uma breve introdução. - David Glotz
Custos e liquidação no SAP Transportation Management, TM130 Col18
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Aula 18 - Manipulacao De Arquivos python

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})