-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
5 changed files
with
32 additions
and
68 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,50 @@ | ||
# NOSQL - Not Only SQL [em construção] | ||
# NOSQL - Not Only SQL | ||
|
||
## Conceitos | ||
Por muito tempo banco de dados Relacionais tem sido o principal meio de armazenamento de dados cuja ideia principal era representar | ||
**entidade** e **relacionamento** de maneira **uniforme**. | ||
|
||
Porém, o esquema rígida que o Modelo Relacional propõe não atende à algumas complexidades contemporâneas, principamente quando falamos de escalabilidade . | ||
|
||
|
||
NoSQL fornece um modelo de dados que se adapta | ||
melhor às necessidades da aplicação (modelagem mais | ||
rápida e menos código). | ||
Hoje há novos desafios e o modelo NoSQL foi criado com o | ||
objetivo de manipular volumes maiores de dados. Esse modelo não é orientado à tabelas, embora possa ter relacionamentos. | ||
|
||
Grande quantidade de dados: Necessita de | ||
processamento em cluster (armazenamento dividido | ||
entre vários servidores). | ||
|
||
Favorece replicação de dados e escalabilidade. | ||
As vantages do uso de NoSQL são sua **flexibilidade** e a sua **modelagem** que é mais rápida e exige menos código, além de lidar facilmente com grande volume de dados. | ||
|
||
## Replicação | ||
## Escalonamento | ||
Quando falamos de escalonamento devemos considerar dois tipos: | ||
|
||
Master-Slave | ||
- **Escalonamento horizontal** (Scaling out) é a capacidade de | ||
aumentar a quantidade de computadores. (mais complexo) | ||
- **Escalonamento vertical** (Scaling up) é a capacidade de alocar | ||
mais recursos ao computador (memória e processamento). | ||
|
||
O slave terá a cópia dos dados do master. | ||
Escrita ocorre apenas no master e leitura em ambos. | ||
|
||
é importante avaliar a questão sobre | ||
consistência e performance quando não há falhas na | ||
comunicação. | ||
|
||
Masterless | ||
|
||
muitos bancos NoSQL são baseados na ideia de que | ||
qualquer servidor pode receber requisições de leitura e escrita. | ||
|
||
Assim, mesmo com falha em um dos servidores do cluster, o | ||
serviço se mantem disponível. | ||
|
||
Teorema CAP (CAP Theorem): | ||
* Consistência (C - Consistency); | ||
* Alta disponibilidade (A - Availability); | ||
* Tolerância a particionamento dos dados na rede (P - Partition-tolerance) | ||
|
||
## Tipos de Banco de Dados NOSQL | ||
|
||
**Banco de dados chave-valor:** os registros | ||
- **Banco de dados chave-valor:** os registros | ||
pertencem a mesma coleção de elementos, e | ||
todos possuem uma chave única. (Redis) | ||
todos possuem uma chave única. (Ex.: Redis). | ||
|
||
**Família de colunas (colunares):** todos os | ||
- **Família de colunas (colunares):** todos os | ||
registros fazem parte da mesma tabela, mas | ||
podem conter diferentes colunas. (cassandra) | ||
podem conter diferentes colunas. (Ex.:Cassandra). | ||
|
||
**Documento:** registros em coleções | ||
- **Documento:** registros em coleções | ||
específicas, mas não há esquema fixo de | ||
registros (MongoDB) | ||
registros. Pense num arquivo JSON. (Ex.: MongoDB). | ||
|
||
- **Grafo:** registros são nós de um grafo e são | ||
interligados por relacionamentos.(Ex.: Neo4j). | ||
|
||
|
||
## Explorando o MongoDB | ||
|
||
**Grafo:** registros são nós de um grafo e são | ||
interligados por relacionamentos.(Neo4j) | ||
Em um documento podem existir um valor simples, como um número, | ||
uma palavra ou uma data, e também uma lista de valores. | ||
Os documentos são agrupados em collections. | ||
Um conjunto de collections forma um database (banco de dados). | ||
Se for necessário, esse database pode ser duplicado em outros servidores, | ||
e cada cópia é chamada de replica set (conjunto de réplica). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.