Hello everyone, in my last blog “NoSQL” I have just
listed different categories of NoSQL databases. Now let’s see it in details one
by one.
- Key
value store
- Document
store
- Column Family store
- Graph
based
1.
Key
value store:
·
This type of model is the most
simplest and easiest to implement. The main idea here is use of hash table in
which there exist a unique key and a value associated with it.
·
There is no complexity around the key
value store data model as it can be implemented very fast and easily.
·
The key can be synthetic or auto
generated while the value can be string, JSON, BSON etc.
·
It is schema free and your value is stored as
a key eg. In one column you will be having key “Name” and value would be “Kaveri”
and in the second column, it’s not necessary mean that you must have the value
of name again; it could be different kind of data in the same column in
different row.
·
Following table shows the example of
key value store data model :
key
|
Value
|
“India”
|
{“09, Sai Anand App, Gangapur Road,
Nasik 422013 ,India”}
|
“US”
|
{“3975 Fair Ridge Drive. Suite 200
South, Fairfax, VA 22033″}
|
“CA”
|
{“47112,warm
springs blvd #103 Fremont, CA, United States 94539”}
|
·
This key/value type database allow
clients to read and write values using a key as follows:
§ Get(key):
returns the value associated with the provided key.
§ Put(key,
value): associates the value with the key.
§ Multi-get(key1,
key2, .., keyN): returns the list of values associated with the list of keys.
§ Delete(key):
removes the entry for the key from the data store.
·
Example of key value store databases are:
Memcached,
Coherence, Redis ,Riak and Amazon’s
DynamoDB are the most popular key-value store NoSQL databases.
2.
Document
store:
·
These kinds of NoSQL databases are
very interesting because instead of rows and columns data is stored in
documents, this semi structured data is simply stored in JSON, BSON.
·
Document database were inspired by
Lotus and are similar to key value store. The model is basically documents that
are collection of other key value collections.
·
Document databases are next level of
key value. It supports querying more efficiently.
·
Document database would look like,
·
Example of document databases are: Mango,CouchDB,Cloudant.
3.
Column family store:
·
Column family types were created to
store and process very large amount of data distributed over many machines.
·
This type of NoSQL databases are not
schema free. They are kinds of semi structured database which means you need to
specify a group of column in these databases and they are called column
families.
·
There are still keys but they point
to multiple column arranged by column family.
·
A column family database can have
different column on each row so is not relational and doesn’t qualifies in an
RDBMS as a table
·
The implementation of column family
much similar to the Google’s BigTable .
·
Colum family work better with complex
dataset.
·
Example of column family databases
are BigTable,Hbase,Accumulo.
4.
Graph databases:
·
Instead of table of rows and columns
and fixed structure of SQL, a flexible graph model is used which can gain scale
across the multiple machines.
·
Graph structures are used with edges,
nodes and properties which provides index-free adjacency. Data can be easily
transformed from one model to the other using a Graph Base NoSQL database.
·
Graph database takes the document
database to the extreme by introducing the concept of type of relationship
between document and nodes. For example relationship present between the people
on social network such as Facebook.
·
It uses sophisticated shortest path
algorithm to make data querying more efficient.
·
Although it is slower than its other
NoSQL counter paths a graph database can have the most complex structure and
still traverse billions of nodes and relationship with light speed.
·
Example of graph databases are: Neo4j,Sones,
InfiniteGraph,
AllegroGraph,
OrientDB,
InfoGrid