Open Source NoSQL Databases
The NoSQL movement can be defined by a simple principle: Use the solution which is a best fit for the problem and suits the objectives. Use key value pair database if the data structure is more appropriately accessed through key-value pairs. If you have you have connected data such as social networking or financial transaction graphs then it is appropriate to use graph databases.
Many cloud web applications have expanded beyond relational database technologies since they require demand availability, speed, and fault tolerance over consistency.
Tabular / Columnar Data Stores
Tabular / Columnar Data Stores look similar to traditional tabular databases. Their primary data retrieval paradigm utilizes column filters by leveraging hand-coded map-reduce algorithms.
The main concept of a document stores is the a document. Document-oriented databases are designed to store, retrieve, and manage document oriented structured (i.e. XML files – XML data sources leverage XQuery), or semi structured (i.e. Text files – Text documents are indexed, facilitating keyword search-like retrieval) data. Each document-oriented database encapsulate and encode data in some standard formats or encodings such as XML, YAML, and JSON as well as binary forms such as BSON, PDF and Microsoft Office documents.
Graph databases store graph oriented data with nodes – entities such as people, businesses, and accounts, edges – connect nodes to nodes or nodes to properties and they represent the relationship, and properties – information that relate to nodes where every element hold a direct pointer to its neighboring element and no index lookups are required. They are commonly used to store associations in social networks. Graph databases are often faster for associative data sets than traditional databases. Graph databases can scale logically to large data sets as they do not usually require costly join operations. Graph databases are a powerful tool for graph-like queries such as computing the shortest path between two nodes in the graph.
Key Value stores store simple key-value pairs similar to a traditional hash table. Data retrieval paradigm is simple in key/value stores; given a key they return the value.