## 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

O mesmo dado, modelado de duas formas
-- 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.