NoSQL is picking up pace and just in case you are planning a new application, choosing the right NoSQL database can largely govern your budget distribution since a wrong move at this point can end up costing you lots of bucks in the coming days.
Instead of beating around the bush, I shall cut to the chase right away. Firstly, this blog is only for readers who have some idea about NOSQL. Secondly, the purpose of this blog is to give you a good idea of different types of NoSQL databases so that when you go for a particular NoSQL database type, someone says to you ‘Excellent Choice Sir’. Lastly, this blog is part of the MEAN stack series I have been working on and I will be taking up MongoDB after I am done with NoSQL database types.
NoSQL is the next big thing in big data. Since the technology is relatively new undergoing innovations every now and then, it is safe to say there are no defined standards related to NoSQL database. In fact, the actual USP of these databases is that they are not confined by strict standards thus giving developers the flexibility to modify databases as per their requirements. In our previous posts we talked about what is NoSQL and why is it important. We also performed a comparative analysis between NoSQL and SQL. Now it’s time to look deeper into different types of NoSQL databases and their uses.
Because there are no fixed standards, categorizing NoSQL databases into different types is a tough challenge. But then deep inside somewhere in our hearts, we are persistent engineers. And we will categorize them anyway.
NoSQL databases most popularly get categorized into the following four types:
- Key-Value Store
- Document-based Store
- Column-based Store
- Graph-based
Key Value Store NoSQL Database
Key Value Store NoSQL databases the simplest of all. The database uses a hashtable to store unique key and pointers to each data value which in turn are stored in a schema less way, in other words data is stored in the form of keys and values, hence the name Key-Value-Store databases.
From the perspective of database ‘value’ is just meaningless data that database just stores, without caring or knowing what’s inside. For the database it is the responsibility of the application to understand what was stored. There are no complex relations thus implementation is very easy, and since these databases only use a single primary key as access, they give great performance and can be very easily scaled.
However they are not the ideal choice for every case-
- Since there are no column type relations in databases, updating a part of value or querying the database for a specific information is a not as easy and fast as compared to SQL databases.
- The database model is not designed to provide consistency when multiple transactions are executed. Ultimately, it is the responsibility of the app developer to make sure its consistency.
2. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Choosing the Right NoSQL Database
NoSQL is picking up pace and
just in case you are planning a
new application, choosing the
right NoSQL database can
largely govern your budget
distribution since a wrong
move at this point can end up
costing you lots of bucks in the
coming days.
3. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Choosing the Right NoSQL Database
Which is the right NoSQL Database?
4. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Choosing the Right NoSQL Database
NoSQL technology is relatively new
undergoing innovations every now and
then, it is safe to say there are no defined
standards related to NoSQL database.
DataBase Launch Date
MongoDB 2009
Cassandra 2008
CouchDB 2008
Redis 2009
Neo4J 2007
Riak 2009
5. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Choosing the Right NoSQL Database
But we will
categorize them
anyway.
6. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Choosing the Right NoSQL Database
NoSQL databases most popularly get
categorized into four types
Key-Value Store Document-Based Store
Column-Based Store Graph-Based
7. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Key Value Store
NoSQL Database
8. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Key-Value Store NoSQL Database
Key Value Store NoSQL databases
uses a hashtable to store unique key
and pointers to each data value...
... which in turn are stored in a
schema less way...
...in other words data is stored in the
form of keys and values...
...hence the name Key-Value-Store
databases.
9. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Key-Value Store NoSQL Database
From the perspective of database, ‘value’ is just meaningless data
that database just stores, without caring or knowing what’s inside.
There are no complex relations thus implementation is very easy,
and since these databases only use a single primary key as access,
they give great performance and can be very easily scaled.
10. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Key-Value Store NoSQL Database
Key-value databases are best utilized in the situations involving:
➔ Storing user session data
➔ Maintaining schema-less user profiles
➔ Storing user preferences
➔ Storing shopping cart data
11. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Key-Value Store NoSQL Database
We generally avoid Key-Value Databases if
➔ we have to query the database by specific data value,
➔ we need relationships between data values
➔ we need to operate on multiple unique keys
14. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Document Store NoSQL Database
Imagine a Key-value Store database in
which instead of storing ‘value’ we are
storing entire documents.
If you can imagine it then you
have grasped the crux of
Document Store database.
15. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Document Store NoSQL Database
These documents are mainly stored in common notation formats like XML,
JSON, BSON etc, therefore they give greater flexibility in querying .
Document Store database embeds attribute metadata related to
the stored content with each document because of which you
can search data by primary key and the value in documents
16. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Document Store NoSQL Database
Document Store databases are useful when you have to implement
➔ Content management systems
➔ Blogging platforms
➔ Analytics platforms
➔ E-commerce platforms
17. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Document Store NoSQL Database
App developers avoid Document Store if
➔ They have to run complex search queries
➔ Their application requires complex multiple-
operation transactions.
➔ The information stored inside the document need to
queries and matched very frequently.
20. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Column Store NoSQL Database
Column-family databases are row-
based databases. In this type of
database data is stored in rows that
have a unique row id, and the data is
stored in form of flexible columns.
Because of its similarity to SQL
databases, column store are easier to
query. But they are not as flexible in
storing random information.
21. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Column Store NoSQL Database
The key difference between
Column Store and SQL
database is that in Column-
store you don’t have to
maintain consistent column
numbers. You can add a new
column to any row without
having to add them in all the
rows of the database.
22. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Column Store NoSQL Database
Developers mainly use Column Store Databases in
➔ Content management systems
➔ Blogging platforms
➔ Systems that maintain counters
➔ Services that have expiring usage
➔ Systems that require heavy write requests
(like log aggregators)
23. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Column Store NoSQL Database
We generally avoid Column Store databases if
➔ We have to use complex querying
➔ Our querying patterns have to be changed regularly
➔ You don’t have established database requirements
➔ Need to store arbitrary data very fast.
26. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Graph Base NoSQL Database
Graph Base databases are all about edge-nodes and graph relations. You store
data entities and allow users to add relations to these database entities.
However the database neither
knows nor care what is stored
in data entities or how it is
stored.
27. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Document Store NoSQL Database
The database uses complex graph structures complete with the ability to define
edges, nodes and node properties.
This not only gives greater abilities
in querying relational data but also
provide index-free searches, a
problem that plagues previously
mentioned NoSQL types.
28. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Graph Base NoSQL Database
Graph based databases are enormously useful in
applications that have connected data, such as
➔ social networks,
➔ routing infocenters,
➔ recommendation engine applications, spatial data
and mapping applications
➔ and other applications requiring unique key
relations.
29. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Graph Base NoSQL Database
App developers avoid document store if
➔ They have to run complex search queries on values
➔ Some data have to be stored that have no defines
relations
➔ Require careful handling so that database does not
become inconsistent on scaling
32. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
The Combination Solutions
Though there are various types of databases, it is not advisable nor is it the
norm to opt for a single database. More popularly, and as much sensibly, it’s
the idea of using more than one database which does the trick.
33. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
The Combination Solutions
For example in a social network app
it is best to use a Graph Database to
manage connections and Document
Database for managing profile and
post data.
34. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
The Combination Solution EXPERTS
To know more which combination is the best for your
application, let the database experts study your case and
come up with the best suggestions for your model.
35. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
Snehesh Mitra
Author
Director
Mobile Technologies
Snehesh is leading the mobility business
development function, mobility strategy and
consulting practice at Algoworks. He is an expert
of all mobile technologies and has experience in
managing teams involved in the development of
custom iPhone/iPad/Android apps. He has
special interest in mobile industry and cross
platform technologies. In the past, Snehesh
founded reality technology company to connect
buyers and real estate builders and brokers. He
holds a graduate degree in Electronics and
Electrical Engineering from the Indian Institute of
Technology, Kharagpur.
36. sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028
THANK YOU
Learn about how Algoworks can help your business!
Call us at : +1-877-284-1028
Mail us at: sales@algoworks.com
support@algoworks.com
Official : Blog Link