Este documento fornece uma introdução ao MongoDB, incluindo sua origem, principais características e quando usá-lo ou não. Resume os fundamentos do NoSQL e do MongoDB, como modelagem de dados, principais usuários e advertências sobre benchmarks e complexidade desnecessária.
2. • Jhonathan de Souza Soares
• Bacharel Ciência da Computação - UNIFENAS
• Pós Graduado em Arquitetura de Software - IGTI
• MBA em Gestão de TI - UNIS
• Most Valuable Professional (MVP) - Microsoft
• Top 50 World Certified - Neo4j
• Evangelist e Ambassador - MongoDB
• Scrum Master PSM – Scrum.org
• Professor na FIAP e Bandtec
• Lead Architect na Lumini IT Solutions
About me
3. Surgimento NOSQL
• Primeiramente introduzido em 1998 por Carlo Strozzi,
como NoREL
• Conceito BigTable – 2006 Google Inc
• NÃO ACID ( Atomicidade, Consistência, Isolamento e
Durabilidade )
• SIM BASE (Basic Availability , Soft-state , Eventual
consistency )
4. BASE - Basically Available, Soft state, Eventual consistency
• Basic Availability
• Caracteriza-se por ser basicamente disponível, ou
seja, o sistema parece estar funcionando o tempo
todo;
• Soft-state
• Em estado leve, o sistema não precisa ser
consistente o tempo todo nem possuir esquema
rígido
• Eventual consistency
• Eventualmente consistente, o sistema torna-se
consistente no momento devido, priorizando a
disponibilidade do que a consistência.
5.
6. Fundamentos NoSQL
• BIG DATA – Grande volume de dados
• BIG DATA – Velocidade para análise de dados
• BIG DATA – Capturar, armazenar e analisar dados não
estruturados
• Flexibilidade no desenvolvimento
• “Nova” Arquitetura em Nuvem
• Internet of things – tudo conectado
• Demandas por escalabilidade é cada vez maior
8. Fundamentos NoSQL
NoSQL
Não Relacional, distribuído,
alta performance para e alta
escalabilidade;
SQL
Relacional, processamento
de transações, concorrência,
consistência, baixíssima
latência;
Dificuldades para escalar; Não serve para tudo;
11. MongoDB – quem é?
• Origem do nome: Humongous – Gigantesco
12. MongoDB – quem é?
• Escrito em C++
• Document Model / Multi-model
• Alta disponibilidade
• Alta escalabilidade
• Json Like
• Não possui schema definido
• Não é relacional
13. MongoDB – quem é?
• Criado pelo 10gen em 2007 e lançado em 2009
• Criado para dar suporte à restful API’s (que era algo
novo na época)
• Mantido pela MongoDB como Open Source
• Altamente escalável e disponível
• Projetado para velocidade de leitura
• Curva de aprendizagem pequena
• Altamente abrangente em inúmeras aplicações
15. MongoDB – quando usar?
Dados para armazenar
• 60 ~ 80% das aplicações
• Sistemas via Restfull API
• Aplicações com dados não estruturados, semi-
estruturados e polimórficos
• Integração ou suporte à outros bancos
• Alta leitura
16. MongoDB – quando usar?
Os documentos BSON (JSON binário) do
Mongo são schemaless e aceitam quase
qualquer coisa que você quiser armazenar.
17. MongoDB – quando não usar?
Dados para não armazenar
• Relatórios
• Sistemas de busca complexos
• Alta conectividade
• ACID
18. MongoDB – quem usa?
• Google
• Twitter
• Adobe
• Ebay
• Gap
• SAP
• Forbes
• Expedia
• EA sports
• PES e Crysis utilizam MongoDB