Eu meio que respondi aqui: https://www.tabnews.com.br/maniero/22e29cfe-89fe-46d4-a456-e8931a58006a. E tem outro comentário meu lá que ajuda entender, tem links para você entender melhor.
Note que o termo NoSQL é horrível porque várias tecnologias incluidas nele, então nem dá para compara com banco de dados relacional (que usa SQL ou não) porque é o mesmo que você dizer que veículo é melhor avião. Você tem dizen que o que é melhor que avião? Trem? Carro? Navio? Bicicleta? Órgão que vende mídia? Quando a pessoa usa o termo NoSQL eu já sei que ela está só falando de hype e não de algo real.
É verdade que muitos chamam o banco de dados de modelo de documentos como NoSQL. Em geral a comparação é com esse modelo de NoSQL e não os outros (embora alguns modelos de documentos usam SQL).
Em resumo onde NoSQL/documento é bom:
- Você tem um problema muito específico que ele se encaixa perfeitamente (a maioria dos sistemas não são assim, mas tem aplicações importantes de nichoi que podem se beneficiar)
- Você está fazendo uma %$@#!&* qualquer então qualquer porcaria que você usar dá na mesma
- A tecnologia do sistema que está fazendo exige ou se beneficia de um modelo assim. Aí o problema já é a tecnologia que escolheu, então não é o melhor argumento
- Você só conhece NoSQL - péssimo argumento técnico
- Você não sabe o que está fazendo, não entende as deficiências disso e acredita em mentiras contadas por alguns - mais uma vez um argumento ruim
Você precisa da escalabilidade horizontal? Duvido. O Stack Overflow era um dos 30 sites mais acessados do mundo e sempre rodou com um banco de dados SQL e rolava até em apenas um servidor (eles testavam pra ver se aguentava). A Wikipedia precisa de vários servidores de DB, até porque o software é muito ruim, e escala horizontalmente sem problemas, e era um dos 5 sites mais acessados do mundo. Poderia fazer uma lista enorme das maiores big techs que usam relacional em quase tudo, NoSQL em algumas coisas bem específicas.
A pessoas acreditam muito que vão precisar de mais escala do que vão ter. Sabe o que as pessoas acreditam muit também: Que o sistema não vai ficar mais complexo depois e você vai pagar o preço pela escolha pelo simplório.
De qualquer forma a maioria das pessoas não entendem sobre o teorema CAP, então o que um modelo entrega faz perder outra coisa que pode ser aceitável para você ou não. Eu falo sobre isso nos links que passei. Muitas pessoas se ferram muito porque só percebem a besteira que fizeram tarde demais. Tem uma quantidade de anedotas, sobre os problemas de quem fez essa opção sem entender todas as implicações, que assusta.
Se você não precisa de relacionamentos complexos não use em um banco de dados relacional, ele tem várias outras vantagens. Mas se precisar ele tem, o modelo de documento também tem, mas todo mundo recomenda que não deve usar, até porque ele fica uma tragédia, ele não foi feito para trabalhar assim, todo o ganho que a pessoa espera vira problemaço. E no modelo relacional se você adotar uma organiação parecida com o de um documento ele passa ter vantagens que as pessoas não costumam associar a ele porque não usam tanto assim.
Não existe milagre como alguns acham. NoSQL não é mais rápido, ele pode ser mais rápido em certas circunstâncias bem específicas ou quando está comparando NoSQL bom com SQL ruim, o que é o que mais vejo.
Minha experiência chutaria que entre 90 e 99% da adoaçao de NoSQL (especialmente documento) é escolhada errada ou pelo menos desnecessária.
Ouvir influencer, ou o ChatGPT que aprende com esses, só faz tomar a decisão popular (às vezes nem isso), não necessariamente a correta.
O modelo relacional e os produtos que usam SQL costumam atender quase todos os projetos, tem comprovoção e força matemática (talvez seja um dos motivos que alguns não gostem dele, é admissão de incompetência), ainda é mais popular e não está diminuindo de tamanho, é algo bem comprovado, costuma ter produtos mais bem acabados, completos, flexíveis em muitos pontos, em geral possuem recursos para evoluir mais, evita gambiarras (outro motivos que certos tipos de personalidade não gostam), no longo prazo o competente mantém boa produtividade, enquanto que mesmo bom desenvolvedor usando documento começa se perder, mas ele não é tão bom assim porque ele não enxerga o futuro.
Agora vou pedir para confiar em mim. Vai de relacional até que possa provar que um NoSQL vai te beneficiar, é difícil achar quem errou por ter escolhido SQL.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).