RDBMS is a great approach. It keeps data consistent, is good for OLTP (http://en.wikipedia.org/wiki/Online_transaction_processing), provides access to good grammar, and manipulates data supported by all the popular programming languages. It was tremendously successful for the last 40 years (the relational data model in its first avatar: Codd, E.F. (1970), A Relational Model of Data for Large Shared Data Banks). However, in the early 2000s, big companies, such as Google (BigTable, http://research.google.com/archive/bigtable.html) and Amazon that have gigantic load on their databases to serve, started to feel bottlenecked with RDBMS.
If you ever used an RDBMS for a non-trivial web application, you must have faced problems, such as slow queries due to complex joins, expensive vertical scaling, and problems in horizontal scaling. Due to these problems, indexing takes a long time. At some point you choose to replicate the data, there is still some locking, and this...