SQL vs NoSQL: quando cada um faz sentido
· 7 min
"SQL vs NoSQL" costuma ser tratado como pergunta de performance, mas a bifurcação real está no modelo de dados e nas garantias de consistência, não em velocidade bruta.

O que SQL garante que NoSQL geralmente não garante de graça
Bancos relacionais garantem consistência forte, transações que atravessam múltiplas tabelas e linhas (ACID) e consultas via join sobre dados normalizados. Isso vale muito quando o dado tem muitas relações que precisam permanecer consistentes entre si o tempo todo.
O que NoSQL otimiza que SQL sacrifica
Bancos NoSQL (documento, chave-valor, wide-column) tipicamente otimizam pra escala horizontal e schemas flexíveis/desnormalizados relaxando garantias transacionais entre registros, trocando parte da consistência por throughput de escrita e particionamento horizontal mais simples.
Onde a escolha errada dói de verdade
Modelar dado profundamente relacional, um livro-razão financeiro, um estoque com invariantes entre várias tabelas, num banco de documentos obriga a aplicação a reimplementar na mão checagens de consistência que o banco relacional garantiria sozinho. Do outro lado, forçar um padrão de acesso altamente desnormalizado e em constante mudança dentro de um schema relacional rígido gera migrações constantes e queries pesadas em join que não escalam.
O caminho mais comum na prática
A maioria dos sistemas em escala real usa os dois: relacional pro núcleo de dados transacional, e uma camada NoSQL ou de cache pro dado derivado, de leitura pesada, ou pouco estruturado, em vez de escolher um só pro sistema inteiro.