SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
O NoSQL e o Relacional:
Uma Análise
Orientador: Fabio Aiub Sperotto
Marcio B. de Souza
Santa Maria, 2015
Especialização em Aplicações para a Web – TCC (2015)
Universidade Federal do Rio Grande (UFRG)
Polo de Santa Maria – RS – Brasil
Roteiro
•Introdução
•Objetivos
•Justificativas
•Metodologias
•Desenvolvimento
• Estudos de Casos
•Referências 2
Introdução
• Aplicações na Web atual
• Problemas enfrentados
• Bancos de dados Relacionais
• São parte deste problema?
• Grandes empresas de TI
• A busca por soluções
• Surgimento do NoSQL
3
Objetivos
• Identificar os problemas do modelo relacional
• Identificar as soluções (NoSQL)
• Comparativo entre Relacional e NoSQL
• Citar um BD NoSQL e suas soluções (MongoDB)
• Citar 3 estudos de casos reais com MongoDB
4
Justificativas
• Impacto da nova web nos relacionais
• Buscar informações sobre NoSQL
• Solução dos problemas dos relacionais
• Descrever as soluções e características do
MongoDB
5
Justificativas
• Destaque ao MongoDB
DB-Engines Ranking [db-engines.com]
6
Metodologias
• Pesquisa e Revisão Bibliográfica
• Livros
• Trabalhos acadêmicos
• Publicações técnicas
7
Desenvolvimento
• Problemas identificados na web atual
• Suportar o grande n° de sessões
• Grande consumo de espaço físico em disco
• Servidores mais e mais potentes
• Lidar com a escalabilidade é difícil
• Esquema de dados é rígido demais para cenário
atual
• Aumento significativo de custos
ProblemasnaWebAtual
8
Desenvolvimento
• Bancos de dados Relacionais são parte dos problemas
• Grandes empresas de TI em busca de soluções
• Surgimento do modelo não relacional ou NoSQL
AssoluçõesNoSQL
9
Desenvolvimento
• Comparativo entre Relacional e NoSQL
RelacionalxNoSQL
10
• Relacional
• Relacionamentos
• Joins
• Transações
• Consistência Total
• Normalização
• Evitar redundância
• Escalabilidade Vertical
• NoSQL
• Sem Relacionamentos
• Sem Joins
• Sem Transações
• Consistência Eventual/Total
• Sem Normalização
• Uso de redundância
• Escalabilidade Horizontal
Desenvolvimento
• Uma solução NoSQL, o MongoDB
• Lançado em 2009 (10gen) MongoDB Inc
• Orientado a Documentos
• Construído para grande volume e disponibilidade de dados
• Esquema flexível e dinâmico
• Altamente escalável
• Uso extensivo de memória ram
• Sem normalização
• Redundância
• Consistência Eventual e/ou Total
OMongoDB
11
Desenvolvimento
• Esquema Rígido
• Consome espaço
desnecessário em disco
• Tabelas esparsas, as vilãs
RelacionalxMongoDB
• Esquema Flexível/Dinâmico
• Menor consumo em disco
• Evita dados insignificantes
ID FIRST_NAME LAST_NAME AGE PHONE NICKNAME
101 Ana Maria De Souza 35 null Aninha
102 José Cassiano null 91914020 Zé
103 Pedro Luiz Marinho 29 null
104 Pietra Ramos null null Pi
105 Anete Da Silva 35 91998596 Neti
106 Júlio Cesar Da Fonseca null 99896520
107 Aline Barbosa 37 90985623 Ali
{
_id : 104,
firstName : ‘Pietra’,
lastName : ‘Ramos’,
nickname : ‘Pi’
{
{
_id : 105,
firstName : ‘Anete’,
lastName : ‘Da Silva’,
age : 35,
phone : 91998596,
nickname : ‘Aninha’
{
Desenvolvimento
RelacionalxMongoDB
13
• Escalabilidade Vertical
RelacionalxNoSQL
13
• Escalabilidade Horizontal
Desenvolvimento
RelacionalxMongoDB
14
• Modelo Relacional
• Armazenamento em HD
• Leitura e Escrita em HD
RelacionalxNoSQL
14
• MongoDB
• Armazenamento em HD
• Leitura e Escrita em RAM
Estudos de Casos Reais
• Globo.com & CartolaFC – MongoDB, porquê?
• MongoDB 2x mais rápido que o MySQL
• Esquema flexível e dinâmico
• Consultas mais simples que o SQL
• Resultados do Globo.com & CartolaFC com MongoDB
• Rodando 24/7 sem nenhum incidente reportado
• Entre 05/2011 e 07/2011 +1 Milhão de publicações
• 32 mil sessões simultâneas alcançadas
OMongoDB
15
Estudos de Casos Reais
• Ingresse.com
• Problemas de grande volume de dados
• Consultas complexas em SQL
• Retorno de dados considerado lento
• Aplicação Off-Line seguidas vezes.
• Resultados da Ingresse.com & MongoDB
• 2000 usuários simultâneos por minuto contra 100 no MySQL
• As consultas são mais simples que o SQL
• Esquema de dados fica mais fácil de ser elaborado
• Ganho significativo de performance com escalabilidade
• Foi detectado uma maior agilidade por da equipe
OMongoDB
16
Estudos de Casos Reais
• The Guardian – guardian.co.uk
• Banco de dados Oracle
• Tecnologias Java
• +300 tabelas
• Consultas extremamente complexas
• Nova aplicação totalmente interligada com o guardian.co.uk
• Considerações do The Guardian – guardian.co.uk
• Uso do formato JSON, esquema flexível e dinâmico permite
mudança em tempo de execução
• Consultas são fáceis de elaborar
• Grande desempenho para qualquer nível de escalabilidade
• É de fácil aprendizado para a equipe
• Migrar todo o guardian.co.uk em algum momento
OMongoDB
17
Referências
• Juravich, T. (2012) “CouchDB and PHP Web Development”, Packt Publishing Ltd, First Edition, 2012.
• Brito. R. W. (2010) “Bancos de Dados NoSQL x SGBDs Relacionais: Análise Comparativa”, Universidade de Fortaleza. Disponível em:
http://tinyurl.com/o5ajnp7. Data de acesso: 12/08/2015.
• Strozzi, C. “NoSQL – A Relational Database Management System”, Disponível em: http://tinyurl.com/7ohrr9t. Data de acesso: 12/08/2015.
• Araújo, E. de C. e Guizzo, G. (2012) “JPA/Hibernate ou NoSQL, qual utilizar?” – Revista Java Magazine, Edição 103.
• Kokay, M. C. (2012) “Bancos de Dados NoSQL: Um novo paradigma”, Revista SQL Magazine, Edição 102, 2012.
• Greenwald, R., Stackowiak, R. and Stern, J. (2007) “Oracle Essentials – Oracle Database 11g” O’Reilly Media Inc, Fourth Edition, 2007.
• Redmond, E. and Wilson, J. R. (2012) “Seven Databases in Seven Weeks – A guide to Modern Databases and NoSQL Movement”, Pragmatic
Programmers, LLC; First Edition, 2012.
• MongoDB Inc. “Top 5 Considerations When Evaluating NoSQL Databases”, A MongoDB White Paper. Disponível em: http://tinyurl.com/nz4f5yf. Data de
acesso: 12/08/2015.
• ______ “MongoDB Architecture Guide”, A MongoDB White Paper. Disponível em: http://tinyurl.com/pdfjspk. Data de acesso: 27/08/2015.
• ______ “The Guardian”. Disponível em: http://tinyurl.com/p22dk9z. Data de acesso: 11/11/2015.
• Fernandes, A. de S. e Candido, P. (2013) “NoSQL – Teorema Base x Acid – Teorema Cap”, Instituto Federal de Educação e Tecnologia, Campus Januária –
MG.
• Robinson, I., Webber, J. and Eifrem, E. (2013) “Graph Databases”, O’Reilly Media Inc, First Edition, 2013.
• Souza, M. B. (2015) “Desvendando o MongoDB: Do Mongo Shell ao Java Driver”, Ciência Moderna Ltda., 1ª Edição, 2015.
• ______ (2013) “Apresentando a API Morphia”, Revista Java Magazine, Edição 109.
• Toth, R. M. (2012) “Abordagem NoSQL – Uma Alternativa Real”, Universidade Federal de São Carlos – Campus Sorocaba, Sorocaba – SP. Disponível em:
http://tinyurl.com/q5qsw5n. Date de acesso: 21/08/2015.
• Issa, Felipe G. de S. (2011) “Estudo comparativo entre banco de dados relacionais e bancos de dados NoSQL na utilização de aplicações de business
intelligence”, Faculdade de Tecnologia de São José dos Campos – SP. Disponível em: http://tinyurl.com/nwf7vlo. Data de acesso: 27/10/2015.
• Chodorow, K. (2013) “MongoDB – The Definitive Guide”, O’Reilly Media Inc, Second Edition, 2013.
• Plugge, E., Membrey, P. and Hawkins, T. (2010) “The Difinitive Guide To MongoDB – The NoSQL Database for Cloud and Desktop Computing”, Apress,
First Edition, 2010.
• Wikipédia – “Grupo Globo”. Disponível em: https://pt.wikipedia.org/wiki/Grupo_Globo. Data de acesso: 09/11/2015.
• Amorim, Franklin (2011) “MongoDB @ Globo.com”, Conferência MongoDB São Paulo 2011 – SP. Disponível em: http://tinyurl.com/b9a927j. Date de
acesso: 09/11/2015.
• Costa, Kelly (2014) “MongoDB na Ingresse.com”, The Developers Conference, TDC 2014 – SP. Disponível em:
http://www.infoq.com/br/presentations/mongodb-no-ingressecom. Date de acesso: 10/11/2015.
• Wall, Mat (2011) “Why I Chose MongoDB for guardian.co.uk”, QCon London 2011. Disponível em: http://www.infoq.com/presentations/Why-I-Chose-
MongoDB-for-Guardian. Date de acesso: 11/11/2015.
18
19

Mais conteúdo relacionado

Mais procurados

NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPAricelio Souza
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQLEric Silva
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoAugusto Giles
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documentoAlex Martins
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS Antonio Pedro
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
Bancos de Dados Geográficos
Bancos de Dados GeográficosBancos de Dados Geográficos
Bancos de Dados GeográficosSuzana Viana Mota
 
Mini curso banco de dados comercial publicar
Mini curso   banco de dados comercial publicarMini curso   banco de dados comercial publicar
Mini curso banco de dados comercial publicarHilson Silva
 
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
 
Oracle EXPLICAÇÕES EM PDF
Oracle EXPLICAÇÕES EM PDFOracle EXPLICAÇÕES EM PDF
Oracle EXPLICAÇÕES EM PDFSergioSouza
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 

Mais procurados (20)

NoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAPNoSQL, Base VS ACID e Teorema CAP
NoSQL, Base VS ACID e Teorema CAP
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Algumas das principais características do NoSQL
Algumas das principais características do NoSQLAlgumas das principais características do NoSQL
Algumas das principais características do NoSQL
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas Apresentação
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Seminário - NoSQL
Seminário - NoSQLSeminário - NoSQL
Seminário - NoSQL
 
No sql Orientado a documento
No sql Orientado a documentoNo sql Orientado a documento
No sql Orientado a documento
 
NoSQL
NoSQLNoSQL
NoSQL
 
BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS BANCO DE DADOS RELACIONAIS
BANCO DE DADOS RELACIONAIS
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Bancos de Dados Geográficos
Bancos de Dados GeográficosBancos de Dados Geográficos
Bancos de Dados Geográficos
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Mini curso banco de dados comercial publicar
Mini curso   banco de dados comercial publicarMini curso   banco de dados comercial publicar
Mini curso banco de dados comercial publicar
 
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
 
Oracle EXPLICAÇÕES EM PDF
Oracle EXPLICAÇÕES EM PDFOracle EXPLICAÇÕES EM PDF
Oracle EXPLICAÇÕES EM PDF
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
Aula 3 banco de dados
Aula 3   banco de dadosAula 3   banco de dados
Aula 3 banco de dados
 
Big Data
Big DataBig Data
Big Data
 

Semelhante a Rel vs NoSQL

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
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANOsmar Petry
 
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
 
Workflows científicos
Workflows científicosWorkflows científicos
Workflows científicosElaine Naomi
 
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
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017Renato Groff
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dadosFelipe Correia
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBPaulo Bischof
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxAula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxJoseph Donald
 
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 20144 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014WANDERSON JONER
 
Ver
VerVer
Vercsmp
 
Modeloestruturaçaoads
ModeloestruturaçaoadsModeloestruturaçaoads
Modeloestruturaçaoadscsmp
 
Banco de dados 1 orientação e conceitos básicos
Banco de dados 1 orientação e conceitos básicosBanco de dados 1 orientação e conceitos básicos
Banco de dados 1 orientação e conceitos básicosFilipeHolanda7
 

Semelhante a Rel vs NoSQL (20)

Gestão de dados de investigação da recolha até ao depósito: Uma abordagem bas...
Gestão de dados de investigação da recolha até ao depósito: Uma abordagem bas...Gestão de dados de investigação da recolha até ao depósito: Uma abordagem bas...
Gestão de dados de investigação da recolha até ao depósito: Uma abordagem bas...
 
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
 
NoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEANNoSQL, MongoDB e MEAN
NoSQL, MongoDB e MEAN
 
Tcc versao final-15-12
Tcc versao final-15-12Tcc versao final-15-12
Tcc versao final-15-12
 
NoSql
NoSqlNoSql
NoSql
 
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
 
Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
 
Workflows científicos
Workflows científicosWorkflows científicos
Workflows científicos
 
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
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
 
Arquitetura de banco de dados
Arquitetura de banco de dadosArquitetura de banco de dados
Arquitetura de banco de dados
 
Apresentação
ApresentaçãoApresentação
Apresentação
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptxAula 2 - SGBDs e Modelos de Bancos de Dados.pptx
Aula 2 - SGBDs e Modelos de Bancos de Dados.pptx
 
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 20144 semestre trabalho individual analise e desenvolvimento de sistemas 2014
4 semestre trabalho individual analise e desenvolvimento de sistemas 2014
 
Ver
VerVer
Ver
 
Modeloestruturaçaoads
ModeloestruturaçaoadsModeloestruturaçaoads
Modeloestruturaçaoads
 
Banco de dados 1 orientação e conceitos básicos
Banco de dados 1 orientação e conceitos básicosBanco de dados 1 orientação e conceitos básicos
Banco de dados 1 orientação e conceitos básicos
 

Rel vs NoSQL

  • 1. O NoSQL e o Relacional: Uma Análise Orientador: Fabio Aiub Sperotto Marcio B. de Souza Santa Maria, 2015 Especialização em Aplicações para a Web – TCC (2015) Universidade Federal do Rio Grande (UFRG) Polo de Santa Maria – RS – Brasil
  • 3. Introdução • Aplicações na Web atual • Problemas enfrentados • Bancos de dados Relacionais • São parte deste problema? • Grandes empresas de TI • A busca por soluções • Surgimento do NoSQL 3
  • 4. Objetivos • Identificar os problemas do modelo relacional • Identificar as soluções (NoSQL) • Comparativo entre Relacional e NoSQL • Citar um BD NoSQL e suas soluções (MongoDB) • Citar 3 estudos de casos reais com MongoDB 4
  • 5. Justificativas • Impacto da nova web nos relacionais • Buscar informações sobre NoSQL • Solução dos problemas dos relacionais • Descrever as soluções e características do MongoDB 5
  • 6. Justificativas • Destaque ao MongoDB DB-Engines Ranking [db-engines.com] 6
  • 7. Metodologias • Pesquisa e Revisão Bibliográfica • Livros • Trabalhos acadêmicos • Publicações técnicas 7
  • 8. Desenvolvimento • Problemas identificados na web atual • Suportar o grande n° de sessões • Grande consumo de espaço físico em disco • Servidores mais e mais potentes • Lidar com a escalabilidade é difícil • Esquema de dados é rígido demais para cenário atual • Aumento significativo de custos ProblemasnaWebAtual 8
  • 9. Desenvolvimento • Bancos de dados Relacionais são parte dos problemas • Grandes empresas de TI em busca de soluções • Surgimento do modelo não relacional ou NoSQL AssoluçõesNoSQL 9
  • 10. Desenvolvimento • Comparativo entre Relacional e NoSQL RelacionalxNoSQL 10 • Relacional • Relacionamentos • Joins • Transações • Consistência Total • Normalização • Evitar redundância • Escalabilidade Vertical • NoSQL • Sem Relacionamentos • Sem Joins • Sem Transações • Consistência Eventual/Total • Sem Normalização • Uso de redundância • Escalabilidade Horizontal
  • 11. Desenvolvimento • Uma solução NoSQL, o MongoDB • Lançado em 2009 (10gen) MongoDB Inc • Orientado a Documentos • Construído para grande volume e disponibilidade de dados • Esquema flexível e dinâmico • Altamente escalável • Uso extensivo de memória ram • Sem normalização • Redundância • Consistência Eventual e/ou Total OMongoDB 11
  • 12. Desenvolvimento • Esquema Rígido • Consome espaço desnecessário em disco • Tabelas esparsas, as vilãs RelacionalxMongoDB • Esquema Flexível/Dinâmico • Menor consumo em disco • Evita dados insignificantes ID FIRST_NAME LAST_NAME AGE PHONE NICKNAME 101 Ana Maria De Souza 35 null Aninha 102 José Cassiano null 91914020 Zé 103 Pedro Luiz Marinho 29 null 104 Pietra Ramos null null Pi 105 Anete Da Silva 35 91998596 Neti 106 Júlio Cesar Da Fonseca null 99896520 107 Aline Barbosa 37 90985623 Ali { _id : 104, firstName : ‘Pietra’, lastName : ‘Ramos’, nickname : ‘Pi’ { { _id : 105, firstName : ‘Anete’, lastName : ‘Da Silva’, age : 35, phone : 91998596, nickname : ‘Aninha’ {
  • 14. Desenvolvimento RelacionalxMongoDB 14 • Modelo Relacional • Armazenamento em HD • Leitura e Escrita em HD RelacionalxNoSQL 14 • MongoDB • Armazenamento em HD • Leitura e Escrita em RAM
  • 15. Estudos de Casos Reais • Globo.com & CartolaFC – MongoDB, porquê? • MongoDB 2x mais rápido que o MySQL • Esquema flexível e dinâmico • Consultas mais simples que o SQL • Resultados do Globo.com & CartolaFC com MongoDB • Rodando 24/7 sem nenhum incidente reportado • Entre 05/2011 e 07/2011 +1 Milhão de publicações • 32 mil sessões simultâneas alcançadas OMongoDB 15
  • 16. Estudos de Casos Reais • Ingresse.com • Problemas de grande volume de dados • Consultas complexas em SQL • Retorno de dados considerado lento • Aplicação Off-Line seguidas vezes. • Resultados da Ingresse.com & MongoDB • 2000 usuários simultâneos por minuto contra 100 no MySQL • As consultas são mais simples que o SQL • Esquema de dados fica mais fácil de ser elaborado • Ganho significativo de performance com escalabilidade • Foi detectado uma maior agilidade por da equipe OMongoDB 16
  • 17. Estudos de Casos Reais • The Guardian – guardian.co.uk • Banco de dados Oracle • Tecnologias Java • +300 tabelas • Consultas extremamente complexas • Nova aplicação totalmente interligada com o guardian.co.uk • Considerações do The Guardian – guardian.co.uk • Uso do formato JSON, esquema flexível e dinâmico permite mudança em tempo de execução • Consultas são fáceis de elaborar • Grande desempenho para qualquer nível de escalabilidade • É de fácil aprendizado para a equipe • Migrar todo o guardian.co.uk em algum momento OMongoDB 17
  • 18. Referências • Juravich, T. (2012) “CouchDB and PHP Web Development”, Packt Publishing Ltd, First Edition, 2012. • Brito. R. W. (2010) “Bancos de Dados NoSQL x SGBDs Relacionais: Análise Comparativa”, Universidade de Fortaleza. Disponível em: http://tinyurl.com/o5ajnp7. Data de acesso: 12/08/2015. • Strozzi, C. “NoSQL – A Relational Database Management System”, Disponível em: http://tinyurl.com/7ohrr9t. Data de acesso: 12/08/2015. • Araújo, E. de C. e Guizzo, G. (2012) “JPA/Hibernate ou NoSQL, qual utilizar?” – Revista Java Magazine, Edição 103. • Kokay, M. C. (2012) “Bancos de Dados NoSQL: Um novo paradigma”, Revista SQL Magazine, Edição 102, 2012. • Greenwald, R., Stackowiak, R. and Stern, J. (2007) “Oracle Essentials – Oracle Database 11g” O’Reilly Media Inc, Fourth Edition, 2007. • Redmond, E. and Wilson, J. R. (2012) “Seven Databases in Seven Weeks – A guide to Modern Databases and NoSQL Movement”, Pragmatic Programmers, LLC; First Edition, 2012. • MongoDB Inc. “Top 5 Considerations When Evaluating NoSQL Databases”, A MongoDB White Paper. Disponível em: http://tinyurl.com/nz4f5yf. Data de acesso: 12/08/2015. • ______ “MongoDB Architecture Guide”, A MongoDB White Paper. Disponível em: http://tinyurl.com/pdfjspk. Data de acesso: 27/08/2015. • ______ “The Guardian”. Disponível em: http://tinyurl.com/p22dk9z. Data de acesso: 11/11/2015. • Fernandes, A. de S. e Candido, P. (2013) “NoSQL – Teorema Base x Acid – Teorema Cap”, Instituto Federal de Educação e Tecnologia, Campus Januária – MG. • Robinson, I., Webber, J. and Eifrem, E. (2013) “Graph Databases”, O’Reilly Media Inc, First Edition, 2013. • Souza, M. B. (2015) “Desvendando o MongoDB: Do Mongo Shell ao Java Driver”, Ciência Moderna Ltda., 1ª Edição, 2015. • ______ (2013) “Apresentando a API Morphia”, Revista Java Magazine, Edição 109. • Toth, R. M. (2012) “Abordagem NoSQL – Uma Alternativa Real”, Universidade Federal de São Carlos – Campus Sorocaba, Sorocaba – SP. Disponível em: http://tinyurl.com/q5qsw5n. Date de acesso: 21/08/2015. • Issa, Felipe G. de S. (2011) “Estudo comparativo entre banco de dados relacionais e bancos de dados NoSQL na utilização de aplicações de business intelligence”, Faculdade de Tecnologia de São José dos Campos – SP. Disponível em: http://tinyurl.com/nwf7vlo. Data de acesso: 27/10/2015. • Chodorow, K. (2013) “MongoDB – The Definitive Guide”, O’Reilly Media Inc, Second Edition, 2013. • Plugge, E., Membrey, P. and Hawkins, T. (2010) “The Difinitive Guide To MongoDB – The NoSQL Database for Cloud and Desktop Computing”, Apress, First Edition, 2010. • Wikipédia – “Grupo Globo”. Disponível em: https://pt.wikipedia.org/wiki/Grupo_Globo. Data de acesso: 09/11/2015. • Amorim, Franklin (2011) “MongoDB @ Globo.com”, Conferência MongoDB São Paulo 2011 – SP. Disponível em: http://tinyurl.com/b9a927j. Date de acesso: 09/11/2015. • Costa, Kelly (2014) “MongoDB na Ingresse.com”, The Developers Conference, TDC 2014 – SP. Disponível em: http://www.infoq.com/br/presentations/mongodb-no-ingressecom. Date de acesso: 10/11/2015. • Wall, Mat (2011) “Why I Chose MongoDB for guardian.co.uk”, QCon London 2011. Disponível em: http://www.infoq.com/presentations/Why-I-Chose- MongoDB-for-Guardian. Date de acesso: 11/11/2015. 18
  • 19. 19