Escolar Documentos
Profissional Documentos
Cultura Documentos
e Não Relacionais
Prof. Henrique Batista da Silva
Introdução à NoSQL
Armazenamento dos dados
A quantidade massiva de dados, principalmente
dados não estruturados, a serem manipulados é
uma realidade e tende a aumentar cada vez.
Modelo de Relacional
Tabela: Cliente Tabela: Pedido
(organizado em tuplas, Id Nome Id IdCliente IdEndEntrega
1 Marcos 1 1 1
normalizado, e possui
Tabela: ItemPedido
Id IdPedido IdProduto Preço
integridade referencial) 1 2 10 350,00
dados.
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação master-replica
Se houver alguma
estratégia de confirmação
de escrita antes de
Escrita
(replicação)
propagar, a leitura no
replica pode ser
desatualizada (perdemos a
consistência por pouco
tempo)
Master Replica
Leitura e Leitura Leitura de dados ainda
não propagados
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação master-replica
Falha no máster
antes da
propagação.
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação master-replica
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação master-replica
Escrita é mais
lenta (latência da
comunicação).
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Aumentar a disponibilidade
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação master-replica
Master Replica
Leitura e Leitura
escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação masterless
Cluster Sincronização
Nodo Nodo
Leitura e Leitura e
escrita escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Replicação masterless (p2p)
Cluster Sincronização
Nodo Nodo
Leitura e Leitura e
escrita escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Aumentar a disponibilidade
Cluster Sincronização
Escrita Escrita
Nodo Nodo
Leitura e Leitura e
escrita escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Aumentar a disponibilidade
Cluster
Nodo
Nodo
Leitura e escrita
Leitura e escrita
Nodo
Leitura e escrita
CA AP
Escolha 2
Figura adaptada de: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
CAP Theorem
Disponibilidade
O banco deve estar
disponível sempre para
leitura e escrita
CA AP
Escolha 2
Figura adaptada de: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
CAP Theorem
Escolha 2
Figura adaptada de: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
CAP Theorem
Disponibilidade
CA AP
Escolha 2
Figura adaptada de: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Clust
er
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Forte consistência e tolerância a particionamento (CP)
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Eventual-consistency :
Clust sempre disponível para
er escrita e depois
sincroniza os dados com
Nodo Nodo os demais nós.
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Nodo Nodo
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Se em uma escrita a
Clust comunicação com algum
er Escrita nó falhar, os dados são
replicados apenas aos
Nodo Nodo servidores disponíveis
Leitura e escrita Leitura e escrita sem que o serviço fique
indisponível (escrita
Nodo ainda é possível).
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Após o
Clust reestabelecimento da
er Escrita comunicação, os dados
são sincronizados com os
Nodo Nodo demais servidores.
Leitura e escrita Leitura e escrita
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Nodo
Leitura e escrita
Referências: Pramod J.; Sadalage, Martin Fowler. NoSQL Essencial. 2013
Alta disponibilidade e tolerância a particionamento (AP)
Exemplos de sistemas
Clust que implementa o
er conceito:
Propriedades BASE:
independente).
Especificação
Referências: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
Modelo Relacional
Album
semanasEmPr numMusicasE
Cod nome artista dataLanc estudio produtor imeiro mPrimeiro
Mesma estrutura
The Dark Side Pink Floyd para todos os
1 Of The Moon Pink Floyd 4/29/1973 1 3 registros.
Sound City
Studios,
Smart Studios
2 Nevermind Nirvana 1/11/1992 (Madison) 1 1
3 Independente independente 01/01/2017
2 1 25/08/88 2 Estudio
Referências: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
Limitações
Referências: Paniz, David. NoSQL: Como armazenar os dados de uma aplicação moderna. Casa do Código, 2017.
Quais são os banco de dados NoSQL
http://nosql-database.org/
Principais Referências