Basicamente é isto. Vou destacar:
Dados relacionais existem naturalmente na maioria dos domínios
Consistência importa
Muito mais domínios precisa de consistência
SQL melhorou
Sempre falo isso.
O que ficou de bom do NoSQL
Ou seja, não é o MongoDB
Adicionando meus 2 cents
(vou mandar mais 2 cents para o Oletros)
Vamos acertar um pouco a terminologia. Primeiro, apesar das pessoas usarem muito o termo NoSQL, isso não é um modelo de banco de dados. É uma guarda-chuva para vários modelos, o que por si só é estranho e pior ainda que alguns usam SQL. Mas mesmo não usando, n~çao ter SQL não é a característica que marca esses modelos, é a ausência de relacionamento, pelo menos no uso normal. Algo que mais ou menos eles têm em comum, e as pessoas não costuam falar sobre, é a ausência de consistência.
Então o NoSQL é muito usado onde não deve, e muitas vezes porque a pessoa não quer aprender SQL, o que é um erro de escolha, apesar de nem sempre fazer diferente. Boa parte da adoção de NoSQL é tão pouco importante que tanto faz se usar um banco de dados que usa SQL, possui relacionamento e não tem consistência (eventualmente pode dar um problema, mas passa batido, afinal para a maioria das pessoas basta funcionar, não ser o certo).
Em muitos casos poderia mudar o termo NoSQL para Documentos, porque é isso que está sendo comparado, e a esmagadora maioria da adoção errada é nesse modelo, em geral os outros modelos até costuma ser necessário. E isso se deve à divulgação muito bem feita sobre o MongoDB, o banco de ados que domina esse modelo. Noa parte dos casos onde pode usar MongoDb até o SQLite pode ser usado como banco de dados. Curiosamente o MongoDB existe para ser o oposto, é para ter uma necessidade que praticamente não tem casos. Alguns dos maiores sites do mundo usam bancos de dados relacionais como fonte primária ou até exclusiva.
MongoDB ainda tem muita utilidade em domínios específicos, em geral como satélite de um sistema maior, e em muitos casos que a adoção é marginal, mesmo não sendo o ideal não faz tanta diferença usar PostgreSQL, MariaDb, SQL Server, Oracle e até mesmo o SQLite dão conta do recado.
- https://pt.stackoverflow.com/q/14533/101
- https://pt.stackoverflow.com/q/122452/101
- https://pt.stackoverflow.com/q/96409/101
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).