Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I really dislike the name "NoSQL", because it isn't very descriptive. It tells me what the databases aren't where I'm more interested in what the databases are. I really think that this category really encompasses several categories of database. I'm just trying to get a general idea of what job each particular database is the best tool for.

A few assumptions I'd like to make (and would ask you to make):

  1. Assume that you have the capability to hire any number of brilliant engineers who are equally experienced with every database technology that has ever existed.
  2. Assume you have the technical infrastructure to support any given database (including available servers and sysadmins who can support said database).
  3. Assume that each database has the best support possible for free.
  4. Assume you have 100% buy-in from management.
  5. Assume you have an infinite amount of money to throw at the problem.

Now, I realize that the above assumptions eliminate a lot of valid considerations that are involved in choosing a database, but my focus is on figuring out what database is best for the job on a purely technical level. So, given the above assumptions, the question is: what jobs are each database (including both SQL and NoSQL) the best tool for and why?

share|improve this question
add comment

4 Answers

There is some very good info on this in this article: Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison :

While SQL databases are insanely useful tools, their monopoly of ~15 years is coming to an end. And it was just time: I can't even count the things that were forced into relational databases, but never really fitted them.
But the differences between NoSQL databases are much bigger than it ever was between one SQL database and another. This means that it is a bigger responsibility on software architects to choose the appropriate one for a project right at the beginning.
In this light, here is a comparison of Cassandra, Mongodb, CouchDB, Redis, Riak, Membase, Neo4j and HBase [...]

share|improve this answer
add comment

Relational databases (SQL) are great for data that the underlying model remains stable. Many implementations have been around for a while (Oracle, DB2, SqlServer) and are stable and secure. Also, it's very easy to find experienced people to administrate them - and database admins are a must! The programmers should not have to deal with permissions, setup, and tuning. They should be able to concentrate on programming, and let the administrators worry about keeping the database up. Relational databases are also relatively easy to query, and there are many tools out there to assist with finding data from them.

share|improve this answer
add comment

SQL

Relational object. Stable servers with fine grain control over permissions.

NoSQL

Flexible storage. High scalability and sharding abilities.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.