Choosing the Right NoSQL Database Type: Tips and Solutions

Post on 12-Jul-2015

6,088 views 1 download

Tags:

transcript

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Powered by Algoworks

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 andjust in case you are planning anew application, choosing theright NoSQL database canlargely govern your budgetdistribution since a wrongmove at this point can end upcosting you lots of bucks in thecoming days.

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?

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

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.

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

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Key Value Store NoSQL Database

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 databasesuses 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.

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.

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

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

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Key-Value Store NoSQL Database

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Document Store NoSQL Database

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.

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

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

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.

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Document Store NoSQL Database

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Column Store NoSQL Database

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.

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Column Store NoSQL Database

The key difference betweenColumn Store and SQLdatabase is that in Column-store you don’t have tomaintain consistent columnnumbers. You can add a newcolumn to any row withouthaving to add them in all therows of the database.

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)

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.

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Column Store NoSQL Database

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Graph Base NoSQL Database

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.

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.

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.

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

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Graph Base NoSQL Database

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

The Combination Solutions

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.

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 appit is best to use a Graph Database tomanage connections and DocumentDatabase for managing profile andpost data.

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.

sales@algoworks.com Toll Free : +1-877-284-1028sales@algoworks.com Toll Free : +1-877-284-1028

Snehesh Mitra

AuthorDirector

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.

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.comsupport@algoworks.com

Official : Blog Link