The general idea was to cover a database of each of the major varieties: Relational, Column Family, Key/Value, Document, Graph. Then is was a matter of choosing which ones to cover. The thought process went like this:
PosgreSQL as relational DB because it’s mature, and MySQL is already well represented in books. Relational wasn’t chosen as a “normal” comparison - it’s a valid style of database. Note this book is not “Seven NoSQL DBs in Seven Weeks”. I would be remiss to ignore the most popular style that has been going strong for 40 years!
HBase as a columnar db because Jim knows it well, it’s growing in popularity. Cassandra also falls in this style but having two column databases seemed overkill, and besides, we cover the Dynamo style in Riak anyway, so there just wasn’t a place for it in this book.
Redis is an excellent example of a Key/Value store, being fast and full featured. Riak is technically another KV store, but it’s distributed in a Dynamo-style consistent hashing style with all sort of add-ons like map/reduce, secondary indexes, etc. It’s different enough to show how variable KV implementations can be.
Mongo was the first chapter I wrote as my favorite Document datastore at the time. Couch was added later because we were asked what the difference was between Mongo and Couch so often we figured it made sense to add it. It turns out they are much more distinct than the grapevine would have you believe.
Finally, I picked Neo4j as a Graph datastore. I had been following this project for years, and liked the direction it was going. It supports ACID transactions (which really turns many people’s expectations on their heads), it’s fast, and I really liked Gremlin.
I hope this helps,