O documento discute bancos de dados NoSQL distribuídos. Apresenta uma visão geral sobre BDRs, explica o que é NoSQL e por que sua utilização vem crescendo, destacando características como flexibilidade e escalabilidade. Detalha quatro modelos NoSQL - chave-valor, tabular, baseado em documentos e baseado em grafos - e quando cada um é mais apropriado.
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
1. Banco de Dados NoSQL Distribuídos
João Helis Bernardo
Smith Ascari
2. Agenda
● Uma visão geral sobre BDR
● O que é NoSQL
● Por que NoSQL?
● Realidade das aplicações atuais
● Características
● Modelos
3. Visão geral sobre BDR
Todos os dados guardados em tabelas
● Tabelas (Entidades, Relações)
● Registros (Tuplas)
● Colunas (Atributos)
● Chave
○ Primária
○ Estrangeira
● Restrições de integridade
4. O que é NoSQL?
● Um movimento que promove armazenamento de dados
não relacionais (Not Only SQL).
● Resolve problemas como:
○ Tratamento de grande quantidade de dados
○ Execução de consulta com baixa latência
○ Modelos flexíveis de armazenamento de dados (e.g.
XML, JSON)
5. Por que NoSQL?
● Mudança das aplicações interativas
● Três meta-tendências inter-relacionadas (Big Data, Big
User, Cloud Computing)
● Aplicações precisam suportar o grande número de
usuários simultâneos
6. Realidade das Aplicações Atuais
Fonte: http://www.couchbase.com/why-nosql/nosql-database
● Big Users
8. Realidade das Aplicações Atuais
● Cloud Computing
● A maioria das aplicações utilizam a arquitetura web 3-tier
● Suportam um grande número de usuários
● BD NoSQL foram projetados pra serem distribuídos
○ Escalabilidade horizontal (scale out)
9. O uso do NoSQL pelos desenvolvedores
● Por que os desenvolvedores estão considerando o
NoSQL?
○ Modelo mais flexível dos dados
■ Complexidade do modelo relacional
■ Facilidade do modelo NoSQL (e.g. BD NoSQL
orientados a documentos, utilizando o formato
JSON).
10. O uso do NoSQL pelos desenvolvedores
Fonte: http://www.couchbase.com/why-nosql/nosql-database
Modelo Relacional - Esquema Rígido x Modelo NoSQL - Sem Esquema
11. Características
➔ Armazenamento
◆ objetivo - Disponibilidade
◆ utiliza memória principal (alguns modelos 100%)
◆ cache integrado (impacta sobre a latência)
16. Modelo Tabular
➔ o conceito de chave(key) ainda é presente, mas
apontam para um conjunto de colunas
➔ exemplos
◆ Cassandra, HBase, Riak
➔ aplicações
◆ sistemas de arquivos distribuídos
18. Baseado em Documentos
➔ similar ao modelo chave-valor
➔ coleções de outras coleções (key-value)
➔ considerado o próximo nível do chave-valor
➔ suportam consultas eficientes
➔ documentos (semi-estruturados) são armazenados em formato
JSON
➔ exemplos
◆ CouchDB, MongoDB
➔ aplicações
◆ apps Web
20. Baseado em Grafos
➔ relacionamento entre nós
➔ facilita a conexão entre nós
➔ também é escalável
➔ exemplos
◆ Neo4J, InfoGrid, Infinite Graph
➔ aplicações
◆ redes sociais
21. Baseado em Grafos
Fonte: http://blog.caelum.com.br/wp-content/uploads/2011/05/grafo.png
23. Quando usar NOSQL
NOSQL RDBs
O armazenamento deve ser capaz de lidar com carregamentos pesados Armazenamento é esperado para apresentar
carregamento pesado também, mas consiste
principalmente na leitura de operações
Você executa muitas operações de escrita no armazenamento Você precisa de uma linguagem SQL query poderosa
Você quer um armazenamento que seja escalável horizontalmente
Simplicidade é bom, como em uma linguagem query bem simples (sem joins)
Adaptado de: http://imasters.com.br/artigo/21781/banco-de-dados/escolhendo--a-ferramenta-certa-para-o-banco-de-dados-nosql/