Thursday, July 7, 2011

Deciding on NOSQL vs RDMS

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 better solution.

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.

2 comments:

Gail Gardner said...

Hello,

I followed a comment you made in a debate about databases from another blog. Bloggers need a database of bloggers searchable by niche and by location.

Unfortunately, databases are not my area of expertise so I am seeking a professional opinion on what kind of database expert I should be seeking out to build what we need.

This comment links to a post that contains the data we want to capture. I would truly appreciate your input. Thank you for your time.

me said...

I'm not sure what link you're talking about, but I do appreciate your comment and I have the same frustration with the state of "blog searching". Google is great for general web content, but trying to find topical content in blogs and limiting it to current events is almost impossible.

I think I see an application that needs to be written...