Olá pessoal, pretendo desenvolver um sistema no modelo SAAS (Software como serviço).
A aplicação em si tem um potencial de ter milhares de clientes(Empresas), gerando uma massa grande de dados, e muitas requisições no servidor.
Para este cenário, me deparei com os bancos de dados NoSQL, mais especificamente o MongoDB, me familiarizei com o modo que ele trabalha sendo Documental e não Relacional, pra mim que foi ótimo pois se assemelha bastante com a Orientação a Objetos.
Mas o meu maior medo é o que ouço falar(leio) em alguns fórums, que bases NoSQL não são confiáveis e que não garantem a consistência dos dados, embora todas as validações e consistência farei na camada de aplicação e meu banco será um mero repositório de dados. O que vocês acham, seria viável eu utilizar o MongoDB neste projeto ?
Qual projeto? Que tipo de negócio ele vai atender? Lembre-se que para ter potencial no mínimo tem que ter uma empresa piloto para atender algo real.
Como não deu detalhes, no geral se precisa garantir a consistência de transações envolvendo principalmente dados críticos, então use banco de dados relacional. Querer tentar garantir essa consistência via aplicação é como se tivesse usando MongoDb por moda, mas precisando das garantias transacionais oferecidas pelo relacional.
Pro programador o banco pode parecer um “mero repositório”, mas para a maioria das empresas sérias é a parte mais importante.
Dá uma pesquisada sobre vantagens e desvantagens de NoSQL x relacional.
nunca usei mongodb em si, mas bancos nosql em geral sao ideais para um cenário onde você não vai usar joins ou transações na sua aplicação, e pode contar com consistência eventual pra escalar sem limites.
Um servidor sql é um sistema monolítico e praticamente impossível de escalar.
ou vc frequenta foruns de má qualidade ou vc entendeu mal as observações.
vc tem diversas familias de bancos de dados NoSQL, de uma lida
quando falamos em consistencia isso esta relacionado ao teorema cap para sistemas distribuidos. vc não precisa distribuir um banco de dados ( e arcar com as consequencias ) porem é totalmente errado dizer que não são confiaveis ou que não garantem consistencia.
Eu uso Redis, Riak e Couchbase no meu dia a dia e movimento muitos gigabytes de dados por dia. Então dizer que não são confiaveis é conversa pra boi dormir.
Agora tudo depende do que vc quer resolver. Eu lido com consistencia eventual pois é mais importante Availability de Partition Tolerance ( AP ) do que consistencia. Não significa que fica tudo zoado, significa que eu aceito/sobrevivo a uma dada % de dados não consistentes.
cabe a vc escolher se vc quer CP ou CA se o seu banco for distribuido.
Agora estamos falando de caracteristicas de sistemas distribuidos pode ser banco NoSQL ou Banco de Dados Relacional que o teorema CAP ainda se aplica e vc ainda vai ter que escolher duas letras.
Se vc tem medo de MongoDB vc pode usar PostgreSQL e salvar json ( documentos ).
eu pessoalmente tive pessimas experiencias com mongodb. mas vc precisa pensar em algumas coisas antes de optar como: quais sao as operacoes, como vc vai buscar dados, etc
Gostei bastante do MongoDB, fiz vários testes e meu agradou bastante, quais foram suas experiências com ele ?
cara anos atras eu mandava salvar e as vezes o documento simplesmente não salvava. ia pro limbo. salvo engano era um problema conhecido e não sei quando foi (ou se foi) corrigido.
dessa lista eu acho que vi o primeiro algumas vezes acontecendo: