Database – How to decide what kind of database to use

databasenosqlsql

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?

Best Answer

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.

Related Topic