Paul Graham showed an interesting way to compare programming languages: to describe each in terms of the problem it fixes. I have found out that this also works well for databases:
Oracle's DB: There are no enterprise databases
MySQL: Oracle isn't open-source.
MariaDB: We like MySQL but Oracle is evil.
PostgreSQL: MySQL doesn't have enough options.
SQLite: Let's just embed everything. Also, 4 datatypes should be enough for everyone.
MongoDB: Why do we need joins and schemas?
CouchDB: Why do we need collections?
Redis: Why do we need documents?
Memcached: Why do we need harddrives?
Neo4j: SQL doesn't have enough relations.
Bigtable: MongoDB isn't webscale enough.
Hbase: Bigtable isn't open-source.
Cassandra: Bigtable wasn't made at Facebook.
Riak: Cassandra wasn't written in Erlang.
OrientDB: Let's include everything in the same database!