This era is significant in terms of the number of databases that have made their way into the enterprise data centers:
1. Column Based
Column Based Databases are not different from RDBMS on a structural point of view, but they do allow columns to be created on the fly unlike RDBMS (it’s bit relaxed). if you define a table with 2 columns and store a record with 3 columns, you will see three columns inserted even though the 3rd column wasn’t defined.
Solutions: Cassandra, etc.
* Partially schema less.
* No ACID properties.
* Supports CQL (similar to SQL syntax, for SQL users :) )
2. Graph or Hierarchy
Graph databases store data in the form of Vertex and edges, vertices are connected by edges. In a typical world where you want to define relational data, Graph database would fit in well.
Ex: Company -> employee -> family -> etc.
* Works with multiple storage options, Titan works well with Cassandra.
* Very effective in navigating from one node to another, you can visualize like navigating from friends to friends in a social media.
Solutions: TitanDB, Neo4J, etc.
The data is stored as a JSON document. It’s easy to serialize & de-serialize when you store it as a document, and especially for java development environments, JSON saves lot of boiler plate code.
Solutions: MongoDB, CouchDB etc.
4. KeyValue Store
This category is a filler for everything else that talks about being NoSQL and fits into the above.
Solutions: Redis, MemcacheDB, HazelCast etc.
5. RDBMS++ &--
This is a new trend where you can get the benefits of both worlds (RDBMS & NoSQL).
Ex: ACID property, Security & so on.
Solutions: NuoDB, etc.
The more choices you have, the more the complications in choosing the right fit.
I am no exception :) , Good luck with it.