NOSQL DATABASE OVERVIEW – Part 2

In this post we will discuss different type of data model which are available for NOSQL databases.

NoSQL databases differ from relational databases in their data model. There are four new different types of data stores in NoSQL

a) Key value Store: This store is a combination of two things that is key and a value. Key value stores are similar to maps or dictionaries where data is addressed by a unique key. Key value stores are useful for simple operations, which are

based on key attributes. Key should not be repeated if one used that it is not duplicate in nature. Value is a kind of data that is pointed by a key. Most key value stores hold their dataset in memory, they are oftentimes used for caching of

more time intensive SQL queries. Some of the popular used Key Value Store NOSQL databases are Redis, DynamoDB and Voldemort etc. Below mentioned are the business usecases in which key value will be best suited:

USECASESKEY VALUE
Application requiring Simple Schema less design.YES
Application Retrieving data using Key-Value Pair is best suited for this type of database.YES
Application requiring High velocity read/write with no frequent updates.YES
Application which doesn’t require any complex queries or joins operation.YES

b) Document Store: This database is higher version of key-value stores. Here values are saved as documents which are data in the form of complex structures (like JSON). This type of database store unstructured (text) or semi-structured (XML) documents which are usually hierarchal in nature. Here each document consists of a set of keys and values which are almost same as there in the Key Value databases. Each database residing in the document stores points to its fields using pointers as it uses the technique of hashing. Document Stores Databases are schema free and are not fixed in nature. Storing new documents can be easily done by adding new attributes to existing documents at runtime. Some popular used Document Store NOSQL Databases are MongoDB, CouchDB and SimpleDB etc. Below mentioned are the business usecases in which Document Store will be best suited:

USECASESDOCUMENT STORE
Application that require Flexible schema along with flexible data modeling capabilities.YES
Such applications where data need to be store as documents.YES
Application requiring fast and efficient queries capabilities.YES
Application wanting to leverage complex Indexes (multikey, geospatial, full text search etc.) features.YES

c)Columnar Store: Columnar Store data is stored in the form of sections of columns of data. Column-oriented data stores are defined as being non-relational, it can be argued that they are the equivalent of Big Data for relational data. Due to their tabular storage format, column family stores have a similarity compared to relational databases. Columns can be grouped to column families, which is especially important for data organization and partitioning. Columns and rows can be added very flexibly at runtime, but column families have to be predefined oftentimes, which leads to less flexibility than key value stores and document stores offer. Some popular used Columnar Store NOSQL databases are Cassandra, HBASE and Bigtable etc. Below mentioned are the business usecases in which Columnar Store are best suited:

USECASESCOLUMNAR STORE
Application requiring less amount of data to be loaded from disk and willing to use columnar storage features.YES
Can be used for creating consistent and Fault tolerant application.YES
Application dealing with huge amount of data stored on various large cluster.YES
Application trying to use data compression and improving performance by leveraging partitioning features.YES

d)Graph Databases: Graph databases are based on the graph theory. It represents data in graph structures as nodes and edges, which represent relationships between nodes. Applications based on data with many relationships are more suited for graph databases, since cost intensive operations like recursive joins can be replaced by efficient traversals. There are few Graph databases which are ACID compliance just like RDBMS.Graph databases supports data replication in a master-slave fashion which ensures fault tolerance against server failures. Some popular used Graph database are Neo4j, GraphDB and OrientDB etc. Below mentioned are the use cases in which Graph Databases are best suited:

USECASESGRAPH DATABASES
Applications requiring traversal between two data points.YES
Application requiring to store properties of each data point as well as relationship between themYES
Application requiring Pattern detection between two data pointsYES
Application requires rollback support and need to be ACID ComplianceYES