NoSQL é um termo usado para descrever os sistemas de bancos de dados não relacionais altamente disponíveis, dimensionáveis e otimizados para alto desempenho.

Em vez de usar o modelo relacional (SQL), os bancos de dados NoSQL usam modelos alternativos para o gerenciamento de dados, como pares de chave-valor, armazenamento de documentos, gráfico, memória e pesquisa.

Bancos de dados NoSQL são criados para modelos de dados específicos e têm esquemas flexíveis para a criação de aplicativos modernos.

Acima de tudo, os bancos de dados NoSQL são amplamente reconhecidos por sua facilidade de desenvolvimento, funcionalidade e performance em escala.

Nos dias de hoje, não é raro que aplicativos tenham milhões de usuários simultâneos, com terabytes de dados gerados por dia.

Por isso, os bancos de dados para tais aplicativos devem lidar com centenas de milhares de leituras e gravações por segundo.

Bancos de dados relacionais podem não suportar esse tipo escala.

Websites com tráfegos muito grandes como, por exemplo, Facebook, Google e Netflix, fazem uso massivo de bancos de dados NoSQL para poder escalar e oferecer a disponibilidade e escalabilidade necessária.

Bancos de Dados NoSQL

Chave-Valor: DynamoDB

Documentos: MongoDB, DocumentDB, CouchDB, RavenDB

Graph: Neptune, Neo4j, HyperGraphDB

Memória: Redis, MemcacheDB

Colunar: Cassandra, HBASE

Objetos: Perst

Arquivos/Blobs: S3

Temporais: Prometheus, Amazon Timestream

Melhores Livros sobre NoSQL

Para cada Desafio um Banco de Dados

Para entender melhor que tipo de banco de dados utilizar para o seu caso de uso, recomendo ver essa palestra realizada do evento AWS re:Invent:

E aí gostou? Deixe seus comentários!