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?