SlideShare a Scribd company logo
1 of 28
Download to read offline
Não perca tempo com
bancos de dados relacionais
use MongoDB!
Fernando Boaglio
@boaglio
Abril de 2019
Quem é Fernando Boaglio?
MongoDB - o que é ?
• Banco de dados baseado em documentos
• classificado como NoSQL
• Sem schemas
• Sem transações
• Escalável
MongoDB – um pouco de história
1995 - Dwight funda a double click
2005 - vende ( Google compra em 2007)
2007 - Dwight funda a 10gen junto com Eliot
2007 - monta uma solução para concorrer com a
nuvem do Google:
App Engine chamava ED (Elliot + Dwight)
Banco de dados chamava P
MongoDB – um pouco de história
2008 - mudaram de P para MongoDB (Humongous)
2009 - vira open source o/
2010 - MongoDB vira production ready
2017 - Release 3.4.x - versão community +
Enterprise (auth, in-memory,compass) + MongoDB
Atlas (nuvem)
2018 – multi-document transactions
MongoDB – quem usa ?
http://www.mongodb.com/who-uses-mongodb
MongoDB no mercado
https://db-engines.com/en/ranking
Comparando conceitos...
Baseado em tabelas Baseado em documentos
Tabela Collection
Coluna Campo
Linha / registro sem limite de
tamanho
Documento / registro limitados em
16Mb
RAC Replica Set
Particionamento Sharding
Raw Device GridFS
Comparando conceitos...
Comparando conceitos...
MongoDB - o que é um documento?
• Representação da informação em formato JSON
• Linguagem usada é JavaScript
Exemplo NoSQL vs relacional
NOVO SISTEMA: JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
Exemplo NoSQL vs relacional
28 JUGs do Brasil por região
Fonte: http://www.dfjug.org/jugs-brasil/
Exemplo NoSQL e relacional
Por onde começamos ?
Exemplo relacional
Maneira tradicional ...
4 tabelas: JUG, LOCAL, REGION e LOCAL_REGION
4 registros para cadastrar 1 JUG
Exemplo relacional
Listar JUGs do Sudeste
Exemplo NoSQL - MongoDB
1 collection : jug
1 registro (documento) para cadastrar 1 JUG
Exemplo NoSQL - MongoDB
Listar JUGs do Sudeste
Java + JSON + MongoDB
- Driver Java oficial
- JNoSQL Diana
- Morphia
- Spring Data
https://github.com/boaglio/mongodb-java-examples
Driver Java Oficial
JNoSQL
Spring Data
Bonus: PostgreSQL
Suporte nativo ao JSON desde a versão 9.2 (2012)
Schema Design
Pense primeiro no sistema e depois na base !
Não existe certo ou errado !
Desvantagens do MongoDB
- sintaxe JavaScript não é trivial
- usar MongoDB pensando relacional
- uso errado de índices
- serviço do servidor é pesado
Vantagens do MongoDB
- banco de dados feito para desenvolvedor (quase
não precisa de DBA)
- JSON em todo lugar
- foco na app e nao no banco de dados
- velocidade
- escalável
Vantagens do MongoDB
- comando upsert e update multiple
- full text search
- busca por í­ndice geospatial -
https://github.com/boaglio/mongodb-java-geospatial-springdata-casadocodigo
- documento com validade
- capped collections (size / rows)
- TTL index (expireAfterSeconds)
Para finalizar…. dicas para iniciantes !
- Use a ferramenta Robo 3T (antigo Robomongo)
https://robomongo.org
- Pense bem no schema design
- Treinamentos gratuitos:
https://university.mongodb.com/courses/catalog
M001: MongoDB Basics
M101: Java , NodeJS , .Net, Python

More Related Content

What's hot

NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São PauloAzure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São PauloRenato Groff
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017Renato Groff
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017Renato Groff
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Renato Groff
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código abertoSuissa
 

What's hot (6)

NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São PauloAzure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
Azure Cosmos DB: NoSQL na nuvem - TDC 2018 - São Paulo
 
NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017NoSQL no Azure - Azure Tech Nights - 2017
NoSQL no Azure - Azure Tech Nights - 2017
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
Tecnologias de bancos de dados no Azure: conhecendo as opções relacionais e N...
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
 

Similar to Nao perca tempo com bancos de dados relacionais, use mongo db

MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014Fernando Boaglio
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Rogerio Fontes
 
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaPepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaFATEC São José dos Campos
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Christiano Anderson
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Fernando Rizzato
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à práticaMario Guedes
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBJhonathan de Souza Soares
 
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
 
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008CharlesAlfenasmg
 
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...tdc-globalcode
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2Flávio Lisboa
 

Similar to Nao perca tempo com bancos de dados relacionais, use mongo db (20)

MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014MongoDB e OpenShift - JUDCon2014
MongoDB e OpenShift - JUDCon2014
 
#1 Introdução ao MongoDB
#1   Introdução ao MongoDB#1   Introdução ao MongoDB
#1 Introdução ao MongoDB
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014Mongodb praquer-usar-uaijugcloudday2014
Mongodb praquer-usar-uaijugcloudday2014
 
Spring data
Spring dataSpring data
Spring data
 
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmicaPepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
 
Cobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de DadosCobo, Cristiane Brandão. Especialização Banco de Dados
Cobo, Cristiane Brandão. Especialização Banco de Dados
 
Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7Django e MongoDB - Python Brasil 7
Django e MongoDB - Python Brasil 7
 
Mongo
MongoMongo
Mongo
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
Big data da teoria à prática
Big data  da teoria à práticaBig data  da teoria à prática
Big data da teoria à prática
 
Introdução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDBIntrodução ao NoSQL e modelagem de dados com MongoDB
Introdução ao NoSQL e modelagem de dados com MongoDB
 
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
 
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
BANCO DE DADOS MONGODB VS BANCO DE DADOS SQL SERVER 2008
 
mongodb.pdf
mongodb.pdfmongodb.pdf
mongodb.pdf
 
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
TDC2016POA | Trilha BigData - Orquestrando Hadoop, Cassandra e MongoDB com o ...
 
Palestra nosql
Palestra nosqlPalestra nosql
Palestra nosql
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Treinamento hadoop - dia4
Treinamento hadoop - dia4Treinamento hadoop - dia4
Treinamento hadoop - dia4
 
NoSQL com Zend Framework 2
NoSQL com Zend Framework 2NoSQL com Zend Framework 2
NoSQL com Zend Framework 2
 

More from Fernando Boaglio

O seu negocio precisa de API Gateway
O seu negocio precisa de API Gateway O seu negocio precisa de API Gateway
O seu negocio precisa de API Gateway Fernando Boaglio
 
Java Meetup SP- pesquisa 2019
Java Meetup SP- pesquisa 2019Java Meetup SP- pesquisa 2019
Java Meetup SP- pesquisa 2019Fernando Boaglio
 
3 dicas para ser um profissional melhor
3 dicas para ser um profissional melhor3 dicas para ser um profissional melhor
3 dicas para ser um profissional melhorFernando Boaglio
 
Jenkins, de onde veio e para onde vai
Jenkins, de onde veio e para onde vai Jenkins, de onde veio e para onde vai
Jenkins, de onde veio e para onde vai Fernando Boaglio
 
6 mitos de projetos open source para Java
6 mitos de projetos open source para Java6 mitos de projetos open source para Java
6 mitos de projetos open source para JavaFernando Boaglio
 
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC20185 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018Fernando Boaglio
 
Jenkins por dentro e por fora - Oracle Code São Paulo 2018
Jenkins por dentro e por fora - Oracle Code São Paulo 2018Jenkins por dentro e por fora - Oracle Code São Paulo 2018
Jenkins por dentro e por fora - Oracle Code São Paulo 2018Fernando Boaglio
 
Katalon,o Selenium fácil
Katalon,o Selenium fácil Katalon,o Selenium fácil
Katalon,o Selenium fácil Fernando Boaglio
 
SAP Hybris e SAP HANA - o que dá para usar?
 SAP Hybris e SAP HANA - o que dá para usar?  SAP Hybris e SAP HANA - o que dá para usar?
SAP Hybris e SAP HANA - o que dá para usar? Fernando Boaglio
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora Fernando Boaglio
 
Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Fernando Boaglio
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootFernando Boaglio
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaFernando Boaglio
 

More from Fernando Boaglio (20)

Rinha de Back-end 2023
Rinha de Back-end 2023Rinha de Back-end 2023
Rinha de Back-end 2023
 
Java Meetup SP
Java Meetup SP Java Meetup SP
Java Meetup SP
 
Testando jwebserver
Testando jwebserver Testando jwebserver
Testando jwebserver
 
Novidades Spring 2021
Novidades Spring 2021Novidades Spring 2021
Novidades Spring 2021
 
O seu negocio precisa de API Gateway
O seu negocio precisa de API Gateway O seu negocio precisa de API Gateway
O seu negocio precisa de API Gateway
 
Retrospectiva Java 2019
Retrospectiva Java 2019Retrospectiva Java 2019
Retrospectiva Java 2019
 
Java Meetup SP- pesquisa 2019
Java Meetup SP- pesquisa 2019Java Meetup SP- pesquisa 2019
Java Meetup SP- pesquisa 2019
 
3 dicas para ser um profissional melhor
3 dicas para ser um profissional melhor3 dicas para ser um profissional melhor
3 dicas para ser um profissional melhor
 
Jenkins, de onde veio e para onde vai
Jenkins, de onde veio e para onde vai Jenkins, de onde veio e para onde vai
Jenkins, de onde veio e para onde vai
 
Java Meetup SP intro
Java Meetup SP  introJava Meetup SP  intro
Java Meetup SP intro
 
6 mitos de projetos open source para Java
6 mitos de projetos open source para Java6 mitos de projetos open source para Java
6 mitos de projetos open source para Java
 
Java Meetup SP intro
Java Meetup SP introJava Meetup SP intro
Java Meetup SP intro
 
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC20185 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
5 motivos para usar JNoSQL - Fernando Boaglio - TDC2018
 
Jenkins por dentro e por fora - Oracle Code São Paulo 2018
Jenkins por dentro e por fora - Oracle Code São Paulo 2018Jenkins por dentro e por fora - Oracle Code São Paulo 2018
Jenkins por dentro e por fora - Oracle Code São Paulo 2018
 
Katalon,o Selenium fácil
Katalon,o Selenium fácil Katalon,o Selenium fácil
Katalon,o Selenium fácil
 
SAP Hybris e SAP HANA - o que dá para usar?
 SAP Hybris e SAP HANA - o que dá para usar?  SAP Hybris e SAP HANA - o que dá para usar?
SAP Hybris e SAP HANA - o que dá para usar?
 
Jenkins por dentro e por fora
Jenkins por dentro e por fora Jenkins por dentro e por fora
Jenkins por dentro e por fora
 
Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio Análise de qualidade de código com Sonar - Fernando Boaglio
Análise de qualidade de código com Sonar - Fernando Boaglio
 
Aumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring BootAumente sua produtividade com Spring Boot
Aumente sua produtividade com Spring Boot
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 

Nao perca tempo com bancos de dados relacionais, use mongo db

  • 1. Não perca tempo com bancos de dados relacionais use MongoDB! Fernando Boaglio @boaglio Abril de 2019
  • 2. Quem é Fernando Boaglio?
  • 3. MongoDB - o que é ? • Banco de dados baseado em documentos • classificado como NoSQL • Sem schemas • Sem transações • Escalável
  • 4. MongoDB – um pouco de história 1995 - Dwight funda a double click 2005 - vende ( Google compra em 2007) 2007 - Dwight funda a 10gen junto com Eliot 2007 - monta uma solução para concorrer com a nuvem do Google: App Engine chamava ED (Elliot + Dwight) Banco de dados chamava P
  • 5. MongoDB – um pouco de história 2008 - mudaram de P para MongoDB (Humongous) 2009 - vira open source o/ 2010 - MongoDB vira production ready 2017 - Release 3.4.x - versão community + Enterprise (auth, in-memory,compass) + MongoDB Atlas (nuvem) 2018 – multi-document transactions
  • 6. MongoDB – quem usa ? http://www.mongodb.com/who-uses-mongodb
  • 8. Comparando conceitos... Baseado em tabelas Baseado em documentos Tabela Collection Coluna Campo Linha / registro sem limite de tamanho Documento / registro limitados em 16Mb RAC Replica Set Particionamento Sharding Raw Device GridFS
  • 11. MongoDB - o que é um documento? • Representação da informação em formato JSON • Linguagem usada é JavaScript
  • 12. Exemplo NoSQL vs relacional NOVO SISTEMA: JUGs do Brasil por região Fonte: http://www.dfjug.org/jugs-brasil/
  • 13. Exemplo NoSQL vs relacional 28 JUGs do Brasil por região Fonte: http://www.dfjug.org/jugs-brasil/
  • 14. Exemplo NoSQL e relacional Por onde começamos ?
  • 15. Exemplo relacional Maneira tradicional ... 4 tabelas: JUG, LOCAL, REGION e LOCAL_REGION 4 registros para cadastrar 1 JUG
  • 17. Exemplo NoSQL - MongoDB 1 collection : jug 1 registro (documento) para cadastrar 1 JUG
  • 18. Exemplo NoSQL - MongoDB Listar JUGs do Sudeste
  • 19. Java + JSON + MongoDB - Driver Java oficial - JNoSQL Diana - Morphia - Spring Data https://github.com/boaglio/mongodb-java-examples
  • 23. Bonus: PostgreSQL Suporte nativo ao JSON desde a versão 9.2 (2012)
  • 24. Schema Design Pense primeiro no sistema e depois na base ! Não existe certo ou errado !
  • 25. Desvantagens do MongoDB - sintaxe JavaScript não é trivial - usar MongoDB pensando relacional - uso errado de índices - serviço do servidor é pesado
  • 26. Vantagens do MongoDB - banco de dados feito para desenvolvedor (quase não precisa de DBA) - JSON em todo lugar - foco na app e nao no banco de dados - velocidade - escalável
  • 27. Vantagens do MongoDB - comando upsert e update multiple - full text search - busca por í­ndice geospatial - https://github.com/boaglio/mongodb-java-geospatial-springdata-casadocodigo - documento com validade - capped collections (size / rows) - TTL index (expireAfterSeconds)
  • 28. Para finalizar…. dicas para iniciantes ! - Use a ferramenta Robo 3T (antigo Robomongo) https://robomongo.org - Pense bem no schema design - Treinamentos gratuitos: https://university.mongodb.com/courses/catalog M001: MongoDB Basics M101: Java , NodeJS , .Net, Python