[database] A full list of all the new/popular databases and their uses?

Recently I have found that there are many new databases popping up all around my radar, and I would like to make a list of what they do and perhaps what their advantages/disadvantages are. I'll seed the list with some names and perhaps someone with more knowledge can chip in with some information about each and how they stack up. I hope this will fast become a comprehensive list of all the available database so that developers can leverage the right one for the job at hand!

Relational Databases:

Established:

New:

Key-value stores:

Document oriented Stores:

Graph DataBases:

  • Neo4j
  • AWS Neptune
  • Sesame
  • AllegroGraph
  • different RDF/triplestores

This question is related to database openedge

The answer is


The SQLite database engine

With library for most popular languages

  • .Net
  • perl
  • Feel free to edit this and add more links

There are graph databases like:

A graph database stores data as nodes and relationships/edges.This is a good fit for semi-structured data, interconnected information and domains with deep relationships/traversal, for example social networks and knowledge representation. The data model is highly flexible and "whiteboard friendly". The underlying data model of the semantic web, RDF, is also a (labeled, directed multi-)graph.

Other stackoverflow threads with information on graph databases:


What about CassandraDB, Project Voldemort, TokyoCabinet?


I doubt I'd use it in a mission-critical system, but Derby has always been very interesting to me.


Martin Fowler did an interesting blog post last year about non-relational databases starting to gain traction. He mentions:

  • Drizzle (a "bare bones" relational database)
  • CouchDB (a document-oriented database)
  • GemStone (an object-oriented database)

There is also Google's BigTable which is described as "a sparse, distributed multi-dimensional sorted map".

I have been working with GemStone for a number of years now and the productivity gains is amazing - having the database store your objects directly removes the need to constantly marshall back and forth between tables and objects.


To file under both 'established' and 'key-value store': Berkeley DB.

Has transactions and replication. Usually linked as a lib (no standalone server, although you may write one). Values and keys are just binary strings, you can provide a custom sorting function for them (where applicable).

Does not prevent from shooting yourself in the foot. Switch off locking/transaction support, access the db from two threads at once, end up with a corrupt file.