We are considering a substantial enterprise application development effort. The application will be multi-tenant, global and highly configurable. Most of our internal team supports SQL. But it would be help to have another perspective, especially if its objective.
There are many factors to consider when thinking about whether you choose a relational database (RDBMS) or NoSQL database.
There are the obvious:
- Cost tradeoffs (NoSQL DBs are usually open source and free, e.g. MongoDB, Cassandra, etc) whereas RDBMSes are often pricey (Microsoft SQL Server, Oracle).
- Performance: NoSQL DBs are often much faster than relational DBs but they are also build targeting a single use-case. Using them outside this use-case can be extra challenging but not impossible.
There are also less obvious tradeoffs such as does the team have experience (or desire to gain experience) with a given NoSQL DB?
Here is a great overview video from Martin Fowler:
And another intro talk (first half) I recently did at a conference in London:
I am not an expert from the programming side, but there are difference from a procurement perspective. This video is a nice overview focused on hardware implications of SQL and NoSQL databases.
If you want to learn more about NoSQL and MongoDB in particular, check out Michael Kennedy's blog. He is a highly rated expert on the subject. I've included a link below.