SlideShare uma empresa Scribd logo
1 de 17
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

Mais procurados

Mais procurados (10)

NoSQL
NoSQLNoSQL
NoSQL
 
Nosql e BD Orientados a Documentos
Nosql e BD Orientados a DocumentosNosql e BD Orientados a Documentos
Nosql e BD Orientados a Documentos
 
Cassandra Trip Brasil
Cassandra Trip BrasilCassandra Trip Brasil
Cassandra Trip Brasil
 
Curso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e AjaxCurso JavaScript - Aula sobre DOM e Ajax
Curso JavaScript - Aula sobre DOM e Ajax
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Introducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionaisIntroducao aos Bancos de Dados Não-relacionais
Introducao aos Bancos de Dados Não-relacionais
 
2011 01-18 mongo-db
2011 01-18 mongo-db2011 01-18 mongo-db
2011 01-18 mongo-db
 
Hadoop
HadoopHadoop
Hadoop
 
MongoDB
MongoDBMongoDB
MongoDB
 
Elasticsearch como gerenciar seus logs com logstash e kibana
Elasticsearch   como gerenciar seus logs com logstash e kibanaElasticsearch   como gerenciar seus logs com logstash e kibana
Elasticsearch como gerenciar seus logs com logstash e kibana
 

Destaque

Mitä mieltä Kela-siirrosta?
Mitä mieltä Kela-siirrosta? Mitä mieltä Kela-siirrosta?
Mitä mieltä Kela-siirrosta? TITA research
 
Alphabetical order 1 ppt tg 2012
Alphabetical order 1 ppt tg 2012Alphabetical order 1 ppt tg 2012
Alphabetical order 1 ppt tg 2012gavinnancarrow
 
Y3 colour sounds unit 21
Y3 colour sounds unit 21Y3 colour sounds unit 21
Y3 colour sounds unit 21gavinnancarrow
 
Y1 Ck spelling powerpoint tg 2012
Y1 Ck spelling powerpoint tg 2012Y1 Ck spelling powerpoint tg 2012
Y1 Ck spelling powerpoint tg 2012gavinnancarrow
 
Finns in Sweden: What influence fathers’ parental leave use?
Finns in Sweden: What influence fathers’ parental leave use?Finns in Sweden: What influence fathers’ parental leave use?
Finns in Sweden: What influence fathers’ parental leave use?TITA research
 
Promoting parental leaves for foreign-born fathers - what role does the polic...
Promoting parental leaves for foreign-born fathers - what role does the polic...Promoting parental leaves for foreign-born fathers - what role does the polic...
Promoting parental leaves for foreign-born fathers - what role does the polic...TITA research
 
Y1 Ll spelling powerpoint tg 2012
Y1 Ll spelling powerpoint tg 2012Y1 Ll spelling powerpoint tg 2012
Y1 Ll spelling powerpoint tg 2012gavinnancarrow
 
Stanford Latino Alumni Network - Speaker Series
Stanford Latino Alumni Network - Speaker SeriesStanford Latino Alumni Network - Speaker Series
Stanford Latino Alumni Network - Speaker SeriesAhmad Wright
 
Subjective well-being of food aid recipients in the capitals of Finland, Gree...
Subjective well-being of food aid recipients in the capitals of Finland, Gree...Subjective well-being of food aid recipients in the capitals of Finland, Gree...
Subjective well-being of food aid recipients in the capitals of Finland, Gree...TITA research
 
Innovations in Publishing
Innovations in PublishingInnovations in Publishing
Innovations in PublishingCiarán Quinn
 

Destaque (12)

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

Semelhante a Introdução ao MongoDB (NoSQL)

No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
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
 
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
 
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
 
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
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDBLelyBarros
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBAlan Glei
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasHelio Henrique L. C. Monte-Alto
 
Big Data, NoSQL e In Memory Databases
Big Data, NoSQL e In Memory DatabasesBig Data, NoSQL e In Memory Databases
Big Data, NoSQL e In Memory DatabasesCaio Louro
 

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

Mongo db
Mongo dbMongo db
Mongo db
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
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
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Nosql
NosqlNosql
Nosql
 
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
 
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
 
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
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 
Minicurso Epoca mongoDB
Minicurso Epoca mongoDBMinicurso Epoca mongoDB
Minicurso Epoca mongoDB
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
FireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDBFireDAC para BigDATA: Teradata e MongoDB
FireDAC para BigDATA: Teradata e MongoDB
 
Estudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologiasEstudo de técnicas de persistência e acesso concorrente a ontologias
Estudo de técnicas de persistência e acesso concorrente a ontologias
 
Big Data, NoSQL e In Memory Databases
Big Data, NoSQL e In Memory DatabasesBig Data, NoSQL e In Memory Databases
Big Data, NoSQL e In Memory Databases
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 

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