Dados e armazenamento / SQL vs NoSQL
SQL vs NoSQL
SQL vs NoSQL Sem Slogan
Como escolher armazenamento olhando para acesso, consistencia e evolucao do sistema, nao para torcida por tecnologia.
O problema
Discussao sobre SQL e NoSQL costuma virar slogan rapido.
Parece que uma opcao e moderna e a outra e antiga, ou que uma escala e a outra organiza.
Na pratica, essa conversa quase sempre piora a decisao em vez de ajudar.
Modelo mental
A pergunta util nao e “qual banco e melhor?”.
A pergunta util e:
Qual estrutura combina melhor com o tipo de acesso, consistencia e evolucao que este sistema precisa?
Quando voce pensa assim, a conversa sai do hype e volta para o problema.
Quebrando o problema
Antes de escolher, tente responder:
- os dados tem relacoes fortes e consultas cruzadas frequentes?
- a consistencia precisa ser mais rigida?
- o formato do dado muda muito entre registros?
- o gargalo principal e consulta relacional ou distribuicao simples em escala?
Essas perguntas costumam dar mais sinal do que qualquer comparacao superficial.
Exemplo simples
Imagine um sistema de pedidos, clientes e pagamentos.
Se voce precisa:
- relacionar pedido com cliente e item
- fazer joins com frequencia
- garantir integridade transacional
SQL costuma ser um encaixe melhor.
Agora imagine um sistema que armazena eventos ou documentos sem estrutura muito fixa, com leitura simples por chave e grande volume distribuido.
Nesse caso, NoSQL pode fazer mais sentido.
O ponto nao e que um venceu o outro.
O ponto e que o formato do uso mudou.
Erros comuns
- escolher tecnologia pela moda
- chamar NoSQL para fugir de modelagem
- usar SQL sem pensar no padrao de acesso real
- falar de escala antes de validar o problema de consistencia e consulta
Como um senior pensa
Um senior forte nao responde essa pergunta com torcida.
Ele puxa a decisao para o uso real.
Normalmente isso soa assim:
Se a forca do sistema esta em relacao, consulta e consistencia, SQL tende a encaixar melhor. Se o problema pede formato mais flexivel e acesso simples em grande escala, NoSQL pode ser a melhor ferramenta.
Essa resposta e melhor porque parte do problema, nao da ferramenta favorita.
O que o entrevistador quer ver
Em entrevista, isso costuma mostrar maturidade bem rapido:
- voce entende trade-off entre estrutura e flexibilidade
- voce sabe ligar escolha de storage ao padrao de acesso
- voce nao depende de frase pronta para responder
Quem faz isso bem parece alguem que escolhe tecnologia com criterio, nao com hype.
SQL e NoSQL nao competem em abstrato. Eles respondem melhor a formatos diferentes de problema.
Se voce ainda nao sabe como o dado vai ser lido e escrito, a escolha do banco ainda esta cedo demais.