Anybody not living in a cave knows that NOSQL is a current hot topic
amount technology solutions. One sadly missing piece is some sort of
guide on how to determine if NOSQL or a more traditional RDBMS is a
To start with, I'll say you should assume that an RDBMS is probably the
safest bet. Almost anything you can do with a document store can be
done with an RDBMS, with the exception that it may not scale and/or
perform as well as NOSQL solution. The big advantages of RDBMS
solutions is that they have an enormous ecosystem of tools,
documentation, and skilled administrators.
Given the above, why would anyone ever even look at a NOSQL solution?
Here are a couple indicators that a NOSQL solution might be a better fit
for your problem:
#1 You are storing simple key/value pairs. If your RDBMS "solution"
ends up being a single table with a couple key fields and a CLOB with
XML in it... you're probably using the wrong tool for the job.
#2 You are storing complex data structures that are non-relational. If
you store hierarchal data structures that each "master" has different
children on it, you're going to run into problems with an RDBMS.
#3 You need massive scaleability and distribution, and the economics of
scaling are important to you. Many RDBMS solutions offer partitioning
schemes that offer very good scalability, but the cost (licensing and
runtime overhead) of that scalability is often an order of magnitude
higher than with a NOSQL solution.