## glossário
O que é NoSQL?
NoSQL designa uma família de bancos de dados que não seguem o modelo relacional de tabelas, linhas e junções. A sigla é geralmente lida como "Not Only SQL", já que muitos deles oferecem linguagens de consulta próprias e alguns até suportam SQL.
Surgiram na década de 2000 a partir de necessidades concretas de empresas como Google e Amazon: distribuir dados por centenas de servidores, aceitar esquemas que mudam com frequência e priorizar disponibilidade sobre consistência imediata.
Os quatro tipos principais
- Documento — armazena registros JSON aninhados. MongoDB, CouchDB. Bom para dados com estrutura variável.
- Chave-valor — o modelo mais simples: uma chave aponta para um valor. Redis, DynamoDB. Excelente para cache e sessões.
- Colunar — organiza por colunas em vez de linhas. Cassandra, HBase. Escala escrita massiva e séries temporais.
- Grafo — modela entidades e relacionamentos como cidadãos de primeira classe. Neo4j. Ideal para redes sociais e detecção de fraude.
Relacional versus documento na prática
-- RELACIONAL: normalizado, junções na leitura
SELECT p.nome, e.rua, e.cidade
FROM pedidos p
JOIN enderecos e ON e.id = p.endereco_id
WHERE p.id = 42;
// DOCUMENTO: desnormalizado, tudo junto
{
"_id": 42,
"nome": "Ana Souza",
"endereco": {
"rua": "Rua das Palmeiras, 120",
"cidade": "Juiz de Fora",
"uf": "MG"
},
"itens": [{ "sku": "A-19", "qtd": 2, "preco": 4990 }]
}A diferença de filosofia aparece aí. O relacional evita duplicação e resolve relações na hora da leitura. O documento aceita duplicar dados para que uma consulta traga tudo de uma vez — mais rápido para ler, mais trabalhoso para manter consistente quando algo muda.
O teorema CAP e o que ele implica
Em um sistema distribuído, é impossível garantir simultaneamente consistência, disponibilidade e tolerância a partições. Como partições de rede acontecem, a escolha real é entre consistência e disponibilidade. Bancos relacionais tradicionalmente priorizam consistência; muitos NoSQL escolhem disponibilidade, aceitando consistência eventual — os dados convergem, mas não instantaneamente.
Quando escolher cada um
Use relacional quando os dados têm estrutura estável, as relações importam e transações precisam ser atômicas — o caso de sistemas financeiros e da maioria das aplicações de negócio. Use NoSQL quando o esquema varia bastante, a escala horizontal é necessária ou o padrão de acesso é conhecido e específico. Para começar na prática, veja como integrar MongoDB com Next.js e, no lado relacional, MySQL e suas aplicações.
## faq
Perguntas frequentes
NoSQL é mais rápido que SQL?
Não em geral. É mais rápido para os padrões de acesso para os quais foi modelado, especialmente leituras simples por chave e escritas distribuídas. Para consultas analíticas com múltiplas junções e agregações, bancos relacionais costumam ser superiores.
NoSQL não tem esquema?
Tem, só não é imposto pelo banco. O esquema passa a existir implicitamente no código da aplicação. Isso dá flexibilidade e transfere a responsabilidade: sem validação no banco, documentos inconsistentes se acumulam silenciosamente até quebrarem algo.
Posso usar NoSQL e SQL no mesmo projeto?
Sim, e é comum — a prática é chamada de persistência poliglota. Um exemplo típico é PostgreSQL para dados transacionais, Redis para cache e sessões, e Elasticsearch para busca textual. O custo é a complexidade operacional de manter vários sistemas.