How do you decide what kind of database to use?
- by Jason Baker
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):
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.
Assume you have the technical infrastructure to support any given database (including available servers and sysadmins who can support said database).
Assume that each database has the best support possible for free.
Assume you have 100% buy-in from management.
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?