Apresentação – O NoSQL e o Relacional: Uma Análise
Especialização em Aplicações para a Web – TCC (2015)
Universidade Federal do Rio Grande (UFRG)
TCC completo em: http://www.slideshare.net/romarcio/o-nosql-e-o-relacional-uma-anlise
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
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’
{
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