Relational Databases, Object Databases, Key-Value Stores, Document Stores, and Extensible Record Stores: A Comparison
January 11, 2010 (revised February 2010 and December 2010) Abstract: Traditionally, the obvious platform for most database applications has been a relational DBMS. You might use a specialized parallel relational DBMS if you required high throughput for “data warehousing”, or an object database system if your application had unusual functionality or performance requirements, e.g. for in-memory caching or fast relationship traversal. However, an RDBMS like Oracle or MySQL has usually been the answer. This has changed somewhat recently. There is now recognition in database research that “one size does not fit all”, for example in the widely-referenced paper by Stonebraker and colleagues. And in the Web 2.0 industry, many companies have abandoned traditional RDBMSs for so-called “NoSQL” data stores that provide much higher scalability, or they have built a distributed caching layer on top of RDBMSs. More scalable RDBMSs are also coming to market; I will comment on their prospects as well.