SlideShare uma empresa Scribd logo
NoSQL
Orientado à documentos
Apresentação
• NoSQL
• Problemas que levaram a utilização do NoSQL
• Quando utilizar NoSQL?
• Tipos
• Orientação à documentos
• MapReduce
• JSON
• CouchDB
• MongoDB
NoSQL
• Quando surgiu
o Na criação do termo, existia ausência do SQL e o modelo
ainda centrado no relacional
o O movimento NoSQL "é completamente distinto do
modelo relacional e portanto deveria ser chamado
"NoREL" ou algo que produzisse o mesmo efeito".
Carlo Strozzi
o Termo NoSQL vira abreviação de Not Only SQL
NoSQL
• O que é NoSQL hoje?
o Not Only SQL (Não apenas, não somente SQL)
o NoSQL = Não Relacional
o Atualmente é uma altenativa ao modelo relacional
NoSQL
• Problemas que motivaram a utilização do NoSQL
• BigData
o Volume
o Variedade
o Velocidade dos Dados
• Modelo relacional perde desempenho quando
utiliza BigData
NoSQL
• Teorema CAP
o Consistency, Availability and Partition tolerance
o Conceitos ACID x BASE
• ACID (Atomicity, Consistency, Isolation and Durability)
• BASE (Basically Available, Soft-state, Eventually
consistency)
o Traz uma sensível diminuição no custo
computacional para a garantia de consistência
dos dados em relação à SGBDs tradicionais.
NoSQL
• MapReduce
o MapReduce(Framework desenvolvido pelo Google) -
Modelo de programação paralela para processamento
largamente distribuído de grandes volumes de dados.
o MAP - processo de mapear a requisição do originador.
o REDUCE - processo de agregação do resultado em algo
consolidado.
NoSQL
• Quando utilizar NoSQL?
o Escalabilidade
o Flexibilidade
o Manipulação de quantidade massiva de dados
o Bom desempenho
o Facilidade para consultas
NoSQL
• Tipos de NoSQL
o Key/Value: DynamoDb, Riak, Azure Table Storage, Berkeley
DB, etc.
o Wide column store: Hadoop, Cassanda, Hypertable,
Amazon SimpleDB, etc.
o Document store: MongoDb, CouchDB, RavenDb, etc.
o Graph store: Neo4J, Infinite Graph, InforGrid,
HyperGraphDB, etc.
NoSQL
Orientação à
documentos
Orientação à documentos
Definição
Segundo Anderson(Anderson, et al., 2009),
BDODs utilizam o conceito de dados e documentos
autocontidos e auto descritivos, isso implica que o
documento em si já define como ele deve ser
apresentado e o significado dos dados em cuja sua
estrutura estão armazenados.
Exemplo: Uma nota fiscal.
Orientação à documentos
Características
• Permite que tenha redundância e inconsistência.
• Contêm todas as informações importantes em um único
documento.
• Livre de esquemas.
• Identificadores Únicos Universais(UUID)
• Consultar os documentos através de métodos avançados de
agrupamento e filtragem: MapReduce
Orientação à documentos
• JSON
o É um padrão leve de intercâmbio de dados, projetado
para facilitar a leitura e escrita de estruturas, também
sendo de fácil interpretação e geração por máquinas.
o Suas estruturas são baseadas em um subconjunto da
especificação da linguagem JavaScript e permitem a
construção de estruturas de dados partindo de dois
conceitos: uma coleção de pares chave/valor e uma lista
ordenada de valores (JSON, 2008).
Orientação à documentos
• Formato JSON
Orientação à documentos
• Vantagens
o Ganha Flexibilidade, disponibilidade, linguagem de
consulta simples e performance.
• Desvantagem
o Perde em consistência.
Orientação à documentos
• Ferramentas mais utilizadas
No sql Orientado a documento
CouchDB
• Definição
o O CouchDB é um sistema distribuído, acessível através de
uma API RESTful, realiza o armazenamento versionado de
objetos que utiliza a abstração de documentos,
disponibiliza uma forma de agregar e consultar dados
através do MapReduce e replica seus dados de forma
incremental, bidirecional e multi-master, utilizando o
MVCC, um algoritmo de consenso de conflitos, onde os
dados estão sujeitos a consistência eventual em cada nó
(Anderson, et al., 2009).
CouchDB
• Linha de comando
o RESTful API
• Interface do Futon
o Cria documentos no formato JSON
CouchDB
• RESTful API
o Leitura do banco de dados
o Escreve: GET http://localhost:5984/
o Retorna: {"couchdb":"Welcome","version":"1.0.1"}
CouchDB
• RESTful API
o Criando ou atualizando o banco de dados
o Escreve: PUT http://localhost:5984/database
o Retorna: {"ok":true}
CouchDB
• RESTful API
o Deletando o banco de dados
o Escreve: DELETE http://localhost:5984/database
o Retorna: {"ok":true}
CouchDB
• RESTful API
o Criando o documento
o Escreve: PUT http://localhost:5984/database/doc-
d'{"nome":"Henrique","apelido":"Gogó"}‘
o Retorna: {"ok":true,"id":"doc","rev":"1-
446a0c701e94053b4c3baaa5ef3fe68c"}
CouchDB
• RESTful API
o Ver o documento
o Escreve: GET http://localhost:5984/database/doc
o Retorna: {"_id":"doc","_rev":"1-
446a0c701e94053b4c3baaa5ef3fe68c","no
me":"Henrique","apelido":"Gogu00f3"}
CouchDB
• RESTful API
o Atualizar o documento
o Escreve: PUT http://localhost:5984/database/doc
-d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c",
"apelido":"Gogs"}‘
o Retorna: {"ok":true,"id":"doc","rev":"2-
191182436ca9a532ec1124aa91b5a8da"}
CouchDB
• RESTful API
o Deletar o documento
o Escreve: DELETE http://localhost:5984/database/doc?rev=2-
191182436ca9a532ec1124aa91b5a8da
o Retorna: {"ok":true,"id":"doc","rev":"3-
4c1033574d7d38e57fe92a1b51fc667d"}
CouchDB
• MapReduce
o function(doc) {
if (doc.city == "Fortaleza")
emit(doc.title,doc.month+"/"+doc.year);
}
CouchDB
• Map
CouchDB
• View
CouchDB
• View
CouchDB
• Reduce
o function(keys, values) {
return values;
}
CouchDB
• Reduce
CouchDB
• View
No sql Orientado a documento
MongoDB
• Apresentação da ferramenta
o Código aberto
o Alta performance (desempenho)
o Sem esquemas
o Orientado à documentos
o Escrito em C++
o Multiplataforma
o É formado por um conjunto de Aplicativos JSON
MongoDB
• Criação
o Início 2007
o 1ª versão em 2009
o Versão atual: MongoDB 2.4 Released
MongoDB
• Funcionamento
o JSON – estilo de documento com esquemas dinâmicos
para oferecer simplicidade e poder.
o Suporte de índice completo
o Auto-Sharding - escala horizontalmente sem comprometer
a funcionalidade.
o Consultas Ricas, baseada em documentos
o MapReduce - Agregação flexível e processamento de
dados.
o GridFS - Armazenar arquivos de qualquer tamanho sem
complicação.
MongoDB
• Analogia à BD Relacional
o O documento JSON seria o registro;
o A collection seria uma tabela;
o Os índices seriam os índices mesmo;
o O embedding e o linking seria o join.
MongoDB
• Algumas características interessantes do MongoDB
o É possível acrescentar dados, por meio de um update;
o Não existe um schema dentro das coleções, ou seja, as
collections podem ser dinâmicas;
o Há upserts, que podem atualizar se documento já existe,
ou cria se ele não existe;
o Você pode armazenar o seu dado da forma que ele
ocorre na “natureza”.
MongoDB
• Comparando expressões
o Create
MongoDB
• Comparando expressões
o Delete
MongoDB
• Comparando expressões
o Update
MongoDB
• Comparando expressões
o Insert
MongoDB
• Comparando expressões
o Select
MongoDB
• Comparando expressões
o Select
MongoDB
• Comparando expressões
o Select
MongoDB
• Empresas que utilizam o MongoDB
o Dentre as empresas que já usam o MongoDB, destaque
para a globo.com (com o Cartola FC), SourceForge e a
FourSquare.
o Outros projetos com MongoDB na Globo.com são:
receitas.com, novo catálogo de vídeos da emissora, com
800 mil arquivos cadastrados, e o site de participações em
eventos e programas da Globo.
MongoDB
• Avaliação da equipe do Cartola FC
o Velocidade (2x mais rápido que o MySQL)
o Sem necessidade de um ORM (não tem abstração de tabela,
por exemplo)
o Acesso mais natural aos dados (não tem que escrever query)
o Sem schema / sem migrations (com exceções, mas em geral não
há problema de executar migration)
o Failover automático
o Possibilidade de escalar escritas com Sharding
• OBS.: Em alguns momentos específicos o cartola obteve
quase 30 mil sessões simultâneas.
MongoDB
• Agora pense em vídeo HD, geolocalização,
mensagens em tempo real, realidade aumentada,
imagens em tempo próximo ao real por satélite.
Pense em todos esses dados, e na velocidade que
as pessoas vão querer isso. Então, pense sobre qual
banco de dados que você deseja começar a usar
agora.
Duvidas?
Referências
• Documentação. Disponível em: < http://www.mongodb.org/>.
• Creative Commons. Processamento de Dados Massivos/Projeto e implementação de aplicações Big
Data/Agregação eficiente de dados temporais. Disponível em:
http://pt.wikibooks.org/wiki/Processamento_de_Dados_Massivos/Projeto_e_implementação_de_aplica
ções_Big_Data/Agregação_eficiente_de_dados_temporais>.
• Ianni, Vinicius. Introdução aos bancos de dados NoSQL. Disponível em:
<http://www.devmedia.com.br/introducao-aos-bancos-de-dados-nosql/26044#ixzz2O7Sed5P3>.
• Ianni, Vinicius. Big Data: Algumas definições e, sim, serve também para o pequeno negócio! Disponível
em: <http://www.devmedia.com.br/space.asp?id=198225>.
• Lerner, Alberto. Introdução ao MongoDB – Direto da fonte! Disponível em:
<http://ensinar.wordpress.com/tag/mongodb/>.
• Lennon, Joe. Explore o MongoDB. Disponível em: <http://www.ibm.com/developerworks/br/library/os-
mongodb4/>.
• Nascimento, Jean3 Razões para usar MongoDB. Disponível em:
<http://imasters.com.br/artigo/18334/mongodb/3-razoes-para-usar-mongodb/>.
• Nascimento, Jean. Como utilizar selects com MongoDB. Disponível em:
<http://imasters.com.br/artigo/17308/mongodb/como-utilizar-selects-com-mongodb//>.

Mais conteúdo relacionado

PPT
Banco de Dados - NoSQL
PPTX
Key-Value NoSQL Database
PPTX
Introduction to NoSQL
ODP
PostgreSQL Administration for System Administrators
PPTX
NOSQL uma breve introdução
PDF
Minicurso - Catalogação em RDA
PPTX
The oracle database architecture
PPTX
Scrum - As Regras do Jogo segundo o Guia do Scrum
Banco de Dados - NoSQL
Key-Value NoSQL Database
Introduction to NoSQL
PostgreSQL Administration for System Administrators
NOSQL uma breve introdução
Minicurso - Catalogação em RDA
The oracle database architecture
Scrum - As Regras do Jogo segundo o Guia do Scrum

Mais procurados (20)

PDF
Non Relational Databases
PPTX
Azure Data Fundamentals DP 900 Full Course
PPTX
Oracle Database Introduction
PDF
Mastering PostgreSQL Administration
 
PDF
Google BigQuery Best Practices
PDF
Building an open data platform with apache iceberg
PPTX
Introduction to MongoDB
PPTX
NoSQL databases - An introduction
PDF
Accelerate Your ML Pipeline with AutoML and MLflow
PPTX
Conhecendo Apache Kafka
PDF
Azure SQL Database
PPTX
Microsoft Azure Storage Basics
PDF
Calidad de datos. Preparación y limpieza de los datos
PPSX
RDA como novo código de catalogação
PDF
MongodB Internals
PPTX
Free Training: How to Build a Lakehouse
PDF
Azure Synapse Analytics
PPS
PDF
Azure Cosmos DB
Non Relational Databases
Azure Data Fundamentals DP 900 Full Course
Oracle Database Introduction
Mastering PostgreSQL Administration
 
Google BigQuery Best Practices
Building an open data platform with apache iceberg
Introduction to MongoDB
NoSQL databases - An introduction
Accelerate Your ML Pipeline with AutoML and MLflow
Conhecendo Apache Kafka
Azure SQL Database
Microsoft Azure Storage Basics
Calidad de datos. Preparación y limpieza de los datos
RDA como novo código de catalogação
MongodB Internals
Free Training: How to Build a Lakehouse
Azure Synapse Analytics
Azure Cosmos DB
Anúncio

Destaque (20)

PPTX
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
PDF
MongoDB: um banco de dados orientado a documento
PDF
Sistemas NoSQL, surgimento, características e exemplos
PDF
MongoDB e Bancos de Dados Orientados a Documentos
PPTX
Nosql e BD Orientados a Documentos
PDF
NoSQL Familia de Colunas Monografia
PPT
Modelando aplicação em documento - MongoDB
PDF
No sql e as vantagens na utilização do mongodb
PDF
Introduction to column oriented databases
PDF
Introducao aos Bancos de Dados Não-relacionais
ODP
NoSQL - Por que e quando usar?
PPTX
#6 Operadores de Comparação e Lógicos no MongoDB
PDF
O NoSQL e o Relacional: Uma Análise
PPT
CouchDB Presentation
PDF
noSQL com CouchDb e PHP
PDF
Aplicações no Contexto de Big Data
PDF
Apache CouchDB
PDF
Curso AngularJS - Parte 1
PDF
Palestra CouchDB III ENSOL
PDF
Conhecendo o CouchDB
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
MongoDB: um banco de dados orientado a documento
Sistemas NoSQL, surgimento, características e exemplos
MongoDB e Bancos de Dados Orientados a Documentos
Nosql e BD Orientados a Documentos
NoSQL Familia de Colunas Monografia
Modelando aplicação em documento - MongoDB
No sql e as vantagens na utilização do mongodb
Introduction to column oriented databases
Introducao aos Bancos de Dados Não-relacionais
NoSQL - Por que e quando usar?
#6 Operadores de Comparação e Lógicos no MongoDB
O NoSQL e o Relacional: Uma Análise
CouchDB Presentation
noSQL com CouchDb e PHP
Aplicações no Contexto de Big Data
Apache CouchDB
Curso AngularJS - Parte 1
Palestra CouchDB III ENSOL
Conhecendo o CouchDB
Anúncio

Semelhante a No sql Orientado a documento (20)

PPT
Mongo Db - PHP Day Workshop
PPTX
Mongo db
PPTX
Introdução ao NoSQL e modelagem de dados com MongoDB
PDF
MongoDB e OpenShift - JUDCon2014
PDF
Introdução ao no sql e mongodb
PPTX
Desenvolvimento de aplicações PHP com MongoDB
PPTX
Introdução ao MongoDB (NoSQL)
KEY
Utilizando NoSQL no desenvolvimento de soluções inteligentes
PDF
MAC5855 - NoSQL
PDF
Python e bancos NoSQL
PDF
Mongo db slides
PDF
Curso mongo db com php
KEY
MongoDB - Apresentação
PDF
Palestra nosql
PPTX
MongoDB + PHP
PPTX
#1 Introdução ao MongoDB
PDF
Mongopesl
PDF
MongoDB outras alternativas de persistência
PDF
Mongo DB
Mongo Db - PHP Day Workshop
Mongo db
Introdução ao NoSQL e modelagem de dados com MongoDB
MongoDB e OpenShift - JUDCon2014
Introdução ao no sql e mongodb
Desenvolvimento de aplicações PHP com MongoDB
Introdução ao MongoDB (NoSQL)
Utilizando NoSQL no desenvolvimento de soluções inteligentes
MAC5855 - NoSQL
Python e bancos NoSQL
Mongo db slides
Curso mongo db com php
MongoDB - Apresentação
Palestra nosql
MongoDB + PHP
#1 Introdução ao MongoDB
Mongopesl
MongoDB outras alternativas de persistência
Mongo DB

Último (20)

PPTX
disciplulado curso preparatorio para novos
PPTX
Reino Monera e Protista: representantes e caracteristicas.pptx
PDF
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
PDF
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
PDF
O retorno a origem (islã Islamismo)
PDF
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
PDF
A Revolução Francesa de 1789 slides história
PPTX
MENDEL - Aula sobre Mendel - Genética EM
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PPTX
O Romantismo e a identidade brasileira..
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
Trabalho Cidades sustentáveis ou Utopia.pptx
PDF
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PPTX
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
PPTX
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
PPTX
Filosofia Ocidental Antiga 2025 - versão atualizada
PPT
História e Evolução dos Computadores domésticos
disciplulado curso preparatorio para novos
Reino Monera e Protista: representantes e caracteristicas.pptx
DAQUISIÇÃO E DESENVOLVIMENTO DA FALA 12 A 24 MESES
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
50 anos Hoje - Volume V - 1973 - Manaus Amazonas
O retorno a origem (islã Islamismo)
ESPELHOS DA ALMA A PSICOLOGIA POR TRÁS DOS CONTOS DE FADAS.pdf
A Revolução Francesa de 1789 slides história
MENDEL - Aula sobre Mendel - Genética EM
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
O Romantismo e a identidade brasileira..
GUERRAFRIA.pptdddddddddddddddddddddddddx
Trabalho Cidades sustentáveis ou Utopia.pptx
GESTÃO DA FASE PRÉ-ANALÍTICA- Recomendações da SBPC-ML (3).pdf
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
Organizador Curricular da Educação em Tempo Integral.pdf
Slides Lição 7, CPAD, Uma Igreja Que Não Teme A Perseguição, 3Tr25.pptx
QuestõesENEMVESTIBULARPARAESTUDOSEAPRENDIZADO.pptx
Filosofia Ocidental Antiga 2025 - versão atualizada
História e Evolução dos Computadores domésticos

No sql Orientado a documento

  • 2. Apresentação • NoSQL • Problemas que levaram a utilização do NoSQL • Quando utilizar NoSQL? • Tipos • Orientação à documentos • MapReduce • JSON • CouchDB • MongoDB
  • 3. NoSQL • Quando surgiu o Na criação do termo, existia ausência do SQL e o modelo ainda centrado no relacional o O movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser chamado "NoREL" ou algo que produzisse o mesmo efeito". Carlo Strozzi o Termo NoSQL vira abreviação de Not Only SQL
  • 4. NoSQL • O que é NoSQL hoje? o Not Only SQL (Não apenas, não somente SQL) o NoSQL = Não Relacional o Atualmente é uma altenativa ao modelo relacional
  • 5. NoSQL • Problemas que motivaram a utilização do NoSQL • BigData o Volume o Variedade o Velocidade dos Dados • Modelo relacional perde desempenho quando utiliza BigData
  • 6. NoSQL • Teorema CAP o Consistency, Availability and Partition tolerance o Conceitos ACID x BASE • ACID (Atomicity, Consistency, Isolation and Durability) • BASE (Basically Available, Soft-state, Eventually consistency) o Traz uma sensível diminuição no custo computacional para a garantia de consistência dos dados em relação à SGBDs tradicionais.
  • 7. NoSQL • MapReduce o MapReduce(Framework desenvolvido pelo Google) - Modelo de programação paralela para processamento largamente distribuído de grandes volumes de dados. o MAP - processo de mapear a requisição do originador. o REDUCE - processo de agregação do resultado em algo consolidado.
  • 8. NoSQL • Quando utilizar NoSQL? o Escalabilidade o Flexibilidade o Manipulação de quantidade massiva de dados o Bom desempenho o Facilidade para consultas
  • 9. NoSQL • Tipos de NoSQL o Key/Value: DynamoDb, Riak, Azure Table Storage, Berkeley DB, etc. o Wide column store: Hadoop, Cassanda, Hypertable, Amazon SimpleDB, etc. o Document store: MongoDb, CouchDB, RavenDb, etc. o Graph store: Neo4J, Infinite Graph, InforGrid, HyperGraphDB, etc.
  • 10. NoSQL
  • 12. Orientação à documentos Definição Segundo Anderson(Anderson, et al., 2009), BDODs utilizam o conceito de dados e documentos autocontidos e auto descritivos, isso implica que o documento em si já define como ele deve ser apresentado e o significado dos dados em cuja sua estrutura estão armazenados. Exemplo: Uma nota fiscal.
  • 13. Orientação à documentos Características • Permite que tenha redundância e inconsistência. • Contêm todas as informações importantes em um único documento. • Livre de esquemas. • Identificadores Únicos Universais(UUID) • Consultar os documentos através de métodos avançados de agrupamento e filtragem: MapReduce
  • 14. Orientação à documentos • JSON o É um padrão leve de intercâmbio de dados, projetado para facilitar a leitura e escrita de estruturas, também sendo de fácil interpretação e geração por máquinas. o Suas estruturas são baseadas em um subconjunto da especificação da linguagem JavaScript e permitem a construção de estruturas de dados partindo de dois conceitos: uma coleção de pares chave/valor e uma lista ordenada de valores (JSON, 2008).
  • 16. Orientação à documentos • Vantagens o Ganha Flexibilidade, disponibilidade, linguagem de consulta simples e performance. • Desvantagem o Perde em consistência.
  • 17. Orientação à documentos • Ferramentas mais utilizadas
  • 19. CouchDB • Definição o O CouchDB é um sistema distribuído, acessível através de uma API RESTful, realiza o armazenamento versionado de objetos que utiliza a abstração de documentos, disponibiliza uma forma de agregar e consultar dados através do MapReduce e replica seus dados de forma incremental, bidirecional e multi-master, utilizando o MVCC, um algoritmo de consenso de conflitos, onde os dados estão sujeitos a consistência eventual em cada nó (Anderson, et al., 2009).
  • 20. CouchDB • Linha de comando o RESTful API • Interface do Futon o Cria documentos no formato JSON
  • 21. CouchDB • RESTful API o Leitura do banco de dados o Escreve: GET http://localhost:5984/ o Retorna: {"couchdb":"Welcome","version":"1.0.1"}
  • 22. CouchDB • RESTful API o Criando ou atualizando o banco de dados o Escreve: PUT http://localhost:5984/database o Retorna: {"ok":true}
  • 23. CouchDB • RESTful API o Deletando o banco de dados o Escreve: DELETE http://localhost:5984/database o Retorna: {"ok":true}
  • 24. CouchDB • RESTful API o Criando o documento o Escreve: PUT http://localhost:5984/database/doc- d'{"nome":"Henrique","apelido":"Gogó"}‘ o Retorna: {"ok":true,"id":"doc","rev":"1- 446a0c701e94053b4c3baaa5ef3fe68c"}
  • 25. CouchDB • RESTful API o Ver o documento o Escreve: GET http://localhost:5984/database/doc o Retorna: {"_id":"doc","_rev":"1- 446a0c701e94053b4c3baaa5ef3fe68c","no me":"Henrique","apelido":"Gogu00f3"}
  • 26. CouchDB • RESTful API o Atualizar o documento o Escreve: PUT http://localhost:5984/database/doc -d '{"_rev":"1-446a0c701e94053b4c3baaa5ef3fe68c", "apelido":"Gogs"}‘ o Retorna: {"ok":true,"id":"doc","rev":"2- 191182436ca9a532ec1124aa91b5a8da"}
  • 27. CouchDB • RESTful API o Deletar o documento o Escreve: DELETE http://localhost:5984/database/doc?rev=2- 191182436ca9a532ec1124aa91b5a8da o Retorna: {"ok":true,"id":"doc","rev":"3- 4c1033574d7d38e57fe92a1b51fc667d"}
  • 28. CouchDB • MapReduce o function(doc) { if (doc.city == "Fortaleza") emit(doc.title,doc.month+"/"+doc.year); }
  • 32. CouchDB • Reduce o function(keys, values) { return values; }
  • 36. MongoDB • Apresentação da ferramenta o Código aberto o Alta performance (desempenho) o Sem esquemas o Orientado à documentos o Escrito em C++ o Multiplataforma o É formado por um conjunto de Aplicativos JSON
  • 37. MongoDB • Criação o Início 2007 o 1ª versão em 2009 o Versão atual: MongoDB 2.4 Released
  • 38. MongoDB • Funcionamento o JSON – estilo de documento com esquemas dinâmicos para oferecer simplicidade e poder. o Suporte de índice completo o Auto-Sharding - escala horizontalmente sem comprometer a funcionalidade. o Consultas Ricas, baseada em documentos o MapReduce - Agregação flexível e processamento de dados. o GridFS - Armazenar arquivos de qualquer tamanho sem complicação.
  • 39. MongoDB • Analogia à BD Relacional o O documento JSON seria o registro; o A collection seria uma tabela; o Os índices seriam os índices mesmo; o O embedding e o linking seria o join.
  • 40. MongoDB • Algumas características interessantes do MongoDB o É possível acrescentar dados, por meio de um update; o Não existe um schema dentro das coleções, ou seja, as collections podem ser dinâmicas; o Há upserts, que podem atualizar se documento já existe, ou cria se ele não existe; o Você pode armazenar o seu dado da forma que ele ocorre na “natureza”.
  • 48. MongoDB • Empresas que utilizam o MongoDB o Dentre as empresas que já usam o MongoDB, destaque para a globo.com (com o Cartola FC), SourceForge e a FourSquare. o Outros projetos com MongoDB na Globo.com são: receitas.com, novo catálogo de vídeos da emissora, com 800 mil arquivos cadastrados, e o site de participações em eventos e programas da Globo.
  • 49. MongoDB • Avaliação da equipe do Cartola FC o Velocidade (2x mais rápido que o MySQL) o Sem necessidade de um ORM (não tem abstração de tabela, por exemplo) o Acesso mais natural aos dados (não tem que escrever query) o Sem schema / sem migrations (com exceções, mas em geral não há problema de executar migration) o Failover automático o Possibilidade de escalar escritas com Sharding • OBS.: Em alguns momentos específicos o cartola obteve quase 30 mil sessões simultâneas.
  • 50. MongoDB • Agora pense em vídeo HD, geolocalização, mensagens em tempo real, realidade aumentada, imagens em tempo próximo ao real por satélite. Pense em todos esses dados, e na velocidade que as pessoas vão querer isso. Então, pense sobre qual banco de dados que você deseja começar a usar agora.
  • 52. Referências • Documentação. Disponível em: < http://www.mongodb.org/>. • Creative Commons. Processamento de Dados Massivos/Projeto e implementação de aplicações Big Data/Agregação eficiente de dados temporais. Disponível em: http://pt.wikibooks.org/wiki/Processamento_de_Dados_Massivos/Projeto_e_implementação_de_aplica ções_Big_Data/Agregação_eficiente_de_dados_temporais>. • Ianni, Vinicius. Introdução aos bancos de dados NoSQL. Disponível em: <http://www.devmedia.com.br/introducao-aos-bancos-de-dados-nosql/26044#ixzz2O7Sed5P3>. • Ianni, Vinicius. Big Data: Algumas definições e, sim, serve também para o pequeno negócio! Disponível em: <http://www.devmedia.com.br/space.asp?id=198225>. • Lerner, Alberto. Introdução ao MongoDB – Direto da fonte! Disponível em: <http://ensinar.wordpress.com/tag/mongodb/>. • Lennon, Joe. Explore o MongoDB. Disponível em: <http://www.ibm.com/developerworks/br/library/os- mongodb4/>. • Nascimento, Jean3 Razões para usar MongoDB. Disponível em: <http://imasters.com.br/artigo/18334/mongodb/3-razoes-para-usar-mongodb/>. • Nascimento, Jean. Como utilizar selects com MongoDB. Disponível em: <http://imasters.com.br/artigo/17308/mongodb/como-utilizar-selects-com-mongodb//>.