NoSQL
NoSQL é o conjunto de bancos de dados que armazenam dados em formatos diferentes de tabelas relacionais, como documentos JSON, pares chave-valor, grafos ou colunas largas.
NoSQL não significa "sem SQL". Significa "not only SQL": bancos que usam modelos de dados diferentes do relacional para resolver problemas que tabelas e joins resolvem mal.
Existem quatro tipos principais. Bancos de documentos como MongoDB armazenam dados como objetos JSON, ideal para dados com estrutura variável. Bancos chave-valor como Redis funcionam como dicionários ultrarrápidos, perfeitos para cache e sessões. Bancos de colunas largas como Cassandra foram desenhados para escala massiva em escrita. Bancos de grafos como Neo4j modelam relacionamentos complexos entre entidades.
NoSQL resolve o problema de escala horizontal
Bancos relacionais escalam bem verticalmente, mas escalar horizontalmente (em múltiplos servidores) é complexo. A maioria dos bancos NoSQL foi projetada para distribuição horizontal desde o início. Isso os torna escolha frequente em sistemas que precisam lidar com grandes volumes de dados ou alta taxa de escrita.
A troca geralmente envolve consistência. Muitos bancos NoSQL adotam consistência eventual em vez de consistência imediata, o que pode ser aceitável dependendo do caso de uso.
Como funciona na prática
- Dados são armazenados em formato nativo ao tipo do banco: documento, chave-valor, grafo ou coluna
- Não há schema rígido obrigatório na maioria dos bancos de documento
- Queries são feitas com APIs ou linguagens específicas de cada banco
- A distribuição horizontal permite adicionar nós para aumentar capacidade
- Consistência é configurável em muitos bancos, com trade-off entre disponibilidade e garantia de dados
Exemplo Prático
Um sistema de catálogo de produtos onde cada produto tem atributos completamente diferentes, um livro tem ISBN e editora, um eletrônico tem voltagem e dimensões, se beneficia de um banco de documentos como MongoDB porque não exige schema fixo.
Por que isso é importante?
NoSQL importa porque muitos problemas modernos, como feeds de redes sociais, logs em tempo real e catálogos com estrutura variável, não se encaixam bem no modelo relacional. Conhecer os tipos de NoSQL permite escolher a ferramenta certa para cada problema.
Perguntas Frequentes (FAQ) sobre NoSQL
NoSQL substitui o SQL?
Não. São ferramentas diferentes para problemas diferentes. A maioria dos sistemas modernos usa os dois: SQL para dados transacionais e NoSQL para cache, busca, logs ou dados com estrutura variável.
MongoDB é o único banco NoSQL?
Não. MongoDB é o mais popular entre bancos de documento, mas existem Redis, Cassandra, DynamoDB, Neo4j, Elasticsearch e muitos outros, cada um otimizado para um padrão diferente de acesso a dados.