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!
The SQLite database engine
With library for most popular languages
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:
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.
Source: Stackoverflow.com