SlideShare une entreprise Scribd logo
1  sur  19
NoSQL
O que eu vi por ai...
Cleber Dantas


• 8+ anos de experiência na área de TI
• Especialista em desenvolvimento Web
• Responsável pela área técnica do grupo Minha
  Vida
• Ministro treinamentos sobre desenvolvimento
  Web
• Dou algumas palestras em eventos de tecnologia
• @cleberdantas
• http://www.cleberdantas.com
Not Only SQL

•   Uma nova (ou não) escola de pensamentos
•   Aprendemos o modelo relacional na escola
•   Not Only RDBMS
•   MongoDB (DoubleClick)
CAP Theorem

• Consistency (all nodes see the same data at the same time)
• Availability ( a guarantee that every request receives a
  response about whether it was successful or failed)
• Partition tolerance (the system continues to operate despite
  arbitrary message loss or failure of part of the system)


• “Em um sistema de computação distribuída é
  impossível ter as 3 características” – Erick Brewer




                                   http://en.wikipedia.org/wiki/CAP_theorem
CAP Theorem
ACID vs BASE

 • ACID (atomicidade, consistência, isolamento,
   durabilidade) – Lembram? 
 • BASE (Basically Available, Soft state, Eventual
   consistency – Relaxamento das regras)
 • Onde não ser ACID não é ruim? Think about...




                       http://en.wikipedia.org/wiki/Eventual_consistency

                                       http://en.wikipedia.org/wiki/ACID
Estrutura de dados

 •   Key-Value
 •   Column family
 •   Document
 •   Graph
Bancos de dados
Arquitetura de armazenamento

 • Normalmente os NoSQL trabalham em memória
 • O próprio engine forka o processo de tempos em
   tempos e leva os dados ao disco
 • Para garantir a disponibilidade/performance
   trabalham com replicas/sharding
Map Reduce

• Funções que coletam/mapeiam dados de 1 ou
  mais nós gerando uma nova coleção
• Depois agrupam/reduzem os dados os tornando
  de alguma forma útil

• Ex: Contador de palavras




                             http://en.wikipedia.org/wiki/MapReduce
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
RDBMS Anti Patterns by @gleicon
Mensagem final…

• Cada vez mais temos que pensar muito nos
  problemas que estamos resolvendo e como
  vamos resolve-lo, independente da tecnologia
• Se é com PHP, Asp.Net, Java, Oracle, Sql Server,
  MemCached, Redis, MongoDB, Lua, Nuvem,
  Hadoop, Lucene ou não isso realmente não
  importa afinal somos profissionais de tecnologia.
  #OpenMind
• Temos que estudar 
Obrigado. Perguntas? Se eu souber responder claro 

Contenu connexe

Tendances

Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkGuilherme Carlos
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Tchelinux
 
O Guia de Sobrevivência do "DBA Moderno"
O Guia de Sobrevivência do "DBA Moderno"O Guia de Sobrevivência do "DBA Moderno"
O Guia de Sobrevivência do "DBA Moderno"Raul Oliveira
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
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
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyRicardo Faria
 
Introducao aos bancos_nao_relacionais_com_mongodb
Introducao aos bancos_nao_relacionais_com_mongodbIntroducao aos bancos_nao_relacionais_com_mongodb
Introducao aos bancos_nao_relacionais_com_mongodbFábio Theophilo
 
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
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
NoSQL: Uma análise crítica no TDC 2014
NoSQL: Uma análise crítica no TDC 2014NoSQL: Uma análise crítica no TDC 2014
NoSQL: Uma análise crítica no TDC 2014pichiliani
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Mozart Diniz
 
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018Renato Groffe
 

Tendances (20)

Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
Ruby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao FrameworkRuby on Rails - Introdução ao Framework
Ruby on Rails - Introdução ao Framework
 
Uma dica
Uma dicaUma dica
Uma dica
 
NoSQL + Node.js
NoSQL + Node.jsNoSQL + Node.js
NoSQL + Node.js
 
Browsers como vivem o que fazem
Browsers como vivem o que fazemBrowsers como vivem o que fazem
Browsers como vivem o que fazem
 
Chart css
Chart cssChart css
Chart css
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
Desenvolvendo um buscador com PHP e Elasticsearch - Fernando Silva - Tchelinu...
 
O Guia de Sobrevivência do "DBA Moderno"
O Guia de Sobrevivência do "DBA Moderno"O Guia de Sobrevivência do "DBA Moderno"
O Guia de Sobrevivência do "DBA Moderno"
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Azure Data Overview
Azure Data OverviewAzure Data Overview
Azure Data Overview
 
Mongo
MongoMongo
Mongo
 
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
 
O caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendlyO caminho das pedras na construção de uma aplicação cloud friendly
O caminho das pedras na construção de uma aplicação cloud friendly
 
Introducao aos bancos_nao_relacionais_com_mongodb
Introducao aos bancos_nao_relacionais_com_mongodbIntroducao aos bancos_nao_relacionais_com_mongodb
Introducao aos bancos_nao_relacionais_com_mongodb
 
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
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
NoSQL: Uma análise crítica no TDC 2014
NoSQL: Uma análise crítica no TDC 2014NoSQL: Uma análise crítica no TDC 2014
NoSQL: Uma análise crítica no TDC 2014
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
Azure Cosmos DB para Desenvolvedores - From Zero to Hero - Março-2018
 

En vedette

LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery TemplatesCleber Dantas
 
Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Cleber Dantas
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performanceCleber Dantas
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4JCleber Dantas
 
[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e SaúdeCleber Dantas
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4Cleber Dantas
 
Performance em aplicações Web
Performance em aplicações WebPerformance em aplicações Web
Performance em aplicações WebCleber Dantas
 

En vedette (9)

LABjs e JQuery Templates
LABjs e JQuery TemplatesLABjs e JQuery Templates
LABjs e JQuery Templates
 
Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET Dicas de otimização e performance de aplicações Web com ASP.NET
Dicas de otimização e performance de aplicações Web com ASP.NET
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
5 dicas simples de performance
5 dicas simples de performance5 dicas simples de performance
5 dicas simples de performance
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J[MinhaVida TechDay] NEO4J
[MinhaVida TechDay] NEO4J
 
[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde[Minha Vida TechDay] Novo Dieta e Saúde
[Minha Vida TechDay] Novo Dieta e Saúde
 
Novidades asp.net mvc 4
Novidades asp.net mvc 4Novidades asp.net mvc 4
Novidades asp.net mvc 4
 
Performance em aplicações Web
Performance em aplicações WebPerformance em aplicações Web
Performance em aplicações Web
 

Similaire à [MinhaVida TechDay] NoSQL

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
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdfEizo Edson
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Brasil
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
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
 
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
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebramGleicon Moraes
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise críticapichiliani
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 

Similaire à [MinhaVida TechDay] NoSQL (20)

Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
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
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
MySQL Cluster - visão geral
MySQL Cluster - visão geralMySQL Cluster - visão geral
MySQL Cluster - visão geral
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
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
 
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
 
Material Seminário NoSQL
Material Seminário NoSQLMaterial Seminário NoSQL
Material Seminário NoSQL
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Como arquiteturas de dados quebram
Como arquiteturas de dados quebramComo arquiteturas de dados quebram
Como arquiteturas de dados quebram
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 
BIG DATA na UFSM
BIG DATA na UFSMBIG DATA na UFSM
BIG DATA na UFSM
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Clusterização de Aplicações PHP
Clusterização de Aplicações PHPClusterização de Aplicações PHP
Clusterização de Aplicações PHP
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
NoSQL: Uma análise crítica
NoSQL: Uma análise críticaNoSQL: Uma análise crítica
NoSQL: Uma análise crítica
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
Artigo Nosql
Artigo NosqlArtigo Nosql
Artigo Nosql
 

[MinhaVida TechDay] NoSQL

  • 1. NoSQL O que eu vi por ai...
  • 2. Cleber Dantas • 8+ anos de experiência na área de TI • Especialista em desenvolvimento Web • Responsável pela área técnica do grupo Minha Vida • Ministro treinamentos sobre desenvolvimento Web • Dou algumas palestras em eventos de tecnologia • @cleberdantas • http://www.cleberdantas.com
  • 3. Not Only SQL • Uma nova (ou não) escola de pensamentos • Aprendemos o modelo relacional na escola • Not Only RDBMS • MongoDB (DoubleClick)
  • 4. CAP Theorem • Consistency (all nodes see the same data at the same time) • Availability ( a guarantee that every request receives a response about whether it was successful or failed) • Partition tolerance (the system continues to operate despite arbitrary message loss or failure of part of the system) • “Em um sistema de computação distribuída é impossível ter as 3 características” – Erick Brewer http://en.wikipedia.org/wiki/CAP_theorem
  • 6. ACID vs BASE • ACID (atomicidade, consistência, isolamento, durabilidade) – Lembram?  • BASE (Basically Available, Soft state, Eventual consistency – Relaxamento das regras) • Onde não ser ACID não é ruim? Think about... http://en.wikipedia.org/wiki/Eventual_consistency http://en.wikipedia.org/wiki/ACID
  • 7. Estrutura de dados • Key-Value • Column family • Document • Graph
  • 9. Arquitetura de armazenamento • Normalmente os NoSQL trabalham em memória • O próprio engine forka o processo de tempos em tempos e leva os dados ao disco • Para garantir a disponibilidade/performance trabalham com replicas/sharding
  • 10. Map Reduce • Funções que coletam/mapeiam dados de 1 ou mais nós gerando uma nova coleção • Depois agrupam/reduzem os dados os tornando de alguma forma útil • Ex: Contador de palavras http://en.wikipedia.org/wiki/MapReduce
  • 11. RDBMS Anti Patterns by @gleicon
  • 12. RDBMS Anti Patterns by @gleicon
  • 13. RDBMS Anti Patterns by @gleicon
  • 14. RDBMS Anti Patterns by @gleicon
  • 15. RDBMS Anti Patterns by @gleicon
  • 16. RDBMS Anti Patterns by @gleicon
  • 17. RDBMS Anti Patterns by @gleicon
  • 18. Mensagem final… • Cada vez mais temos que pensar muito nos problemas que estamos resolvendo e como vamos resolve-lo, independente da tecnologia • Se é com PHP, Asp.Net, Java, Oracle, Sql Server, MemCached, Redis, MongoDB, Lua, Nuvem, Hadoop, Lucene ou não isso realmente não importa afinal somos profissionais de tecnologia. #OpenMind • Temos que estudar 
  • 19. Obrigado. Perguntas? Se eu souber responder claro 