Erik Meijer’s paper Your Mouse is a Database has an interesting illustration of “The Big Data Cube” using three axes to classify databases.
The volume axis is big vs. small, or perhaps better, open vs. closed. Relational databases can be large, and non-relational databases can be small. But the relational database model is closed in the sense that “it assumes a closed world that is under full control by the database.”
The velocity axis is (synchronous) pull vs. (asynchronous) push. The variety axis captures whether data is stored by foreign-key/primary-key relations or key-value pairs.
Here are the corners identified by the paper:
- Traditional RDBMS (small, pull, fk/pk)
- Hadoop HBase (big, pull, fk/pk)
- Object/relational mappers (small, pull, k/v)
- LINQ to Objects (big, pull, k/v)
- Reactive Extensions (big, push, k/v)
How would you fill in the three corners not listed above?