2. Overview of The Presentation
Categories of NoSQL databases
Comparison of different NoSQL databases.
A term which stands for
4. NoSQL (Beginning)
First used by Carlo Strozzi in 1998.
Reintroduced by Eric Evan in 2009.
5. NoSQL(What is NoSQL?)
NoSQL doesn’t mean to stop using SQL. OR
SQL won’t be used.
The term refers to those databases that differ
from relational databases.
Simply Non-relational databases.
6. Some terms we must know…
ACID (Atomicity, Consistency, Isolation,
CAP (Consistency, Availability, Partition
Atomicity. All of the operations in the transaction
will complete, or none will.
Consistency. The database will be in a consistent
state when the transaction begins and ends.
Isolation. The transaction will behave as if it is the
only operation being performed upon the database.
(No interference of transaction)
Durability. Upon completion of the transaction,
the operation will not be reversed.
Consistency. No contradiction b/w data.
Availability. Every operation must terminate in an
Partition tolerance. Operations will complete, even if
individual components are unavailable
NoSQL are based on CAP…
9. CAP (For NoSQL)
10. Why NoSQL?
NoSQL didn’t come because of the shortfalls of
11. Why NoSQL (Features)
Easy replication support
12. Why NoSQL (Features)
NoSQL databases are eventually consistent / CAP (not
To maintain performance.
To increase the no-of machines but maintaining
To add more resources to your single machine to
14. Open source
Most of the NoSQL Projects are Open source. So any one
can use, modify it, like
Cassandra by facebook.
Couch and MongoDB.
Bigtable by google but only allowed for Google
15. Schema freeness
NoSQL databases doesn’t use any fixed schema like
External schema etc
The original intention of NoSQL is the modern web-scale
16. Easy replication support
The use of redundant resources to improve:
17. Why NoSQL (Benefits)
RDBs weren’t easy to scale out.
On the other hand NoSQL DBs are specially designed to
18. Why NoSQL (Benefits)
2. Big data
Single RDBMS is almost unable to handle today’s
huge amount of data and the transaction on that
Non-Relational databases are specially designed to
handle big data.
19. Why NoSQL (Benefits)
3. Needs no Expert DBAs
Although RDMS vendors claim that RDBMS provide
management facilities but it still need an expert DBA to
In contrast NoSQL DBs don’t need expert DBAs, as it
provides automatic repair, data distribution, and simpler
data models, which lead to lower administration.
20. Why NoSQL (Benefits)
RDBMS requires expensive components for providing
NoSQL uses cheap commodity servers to manage the same
amount of data for which RDBMS needs expensive server.
so NoSQL is economical as well.
21. Why NoSQL (Benefits)
5. Flexibility of data models
There can occur changes in the requirements of an
organization with the passage of time…
Changes in RDBMS after its deployment creates many
problems and also affects its services or some time it’s even
almost impossible to make changes.
NoSQL database can be changed at any instance, i-e
existing columns can be altered and new can be added.
22. Categories of NoSQL databases
1) Key Value stores
Don’t have any schema
Fast lookups facility
Can be use in a forum software where user’s statistic and
messages are recorded. User’s id will serve as a key and
will retrieve a string that represents all the relevant info of
the user. And a background process recalculates the
information and writes to the store independently after fixed
interval of time.
Redis : Redis is an open source, advanced key-
value store. It is often referred to as a data
structure server since keys (data types) can
contain strings, hashes, lists, sets and sorted
23. Categories (cont…)
API: Tons of languages, Written in: C,
Concurrency: in memory and saves asynchronous disk after a
2) Document databases
tolerance of incomplete data
low query performance
no standard query syntax
Used when we don’t have complete data about all the
entities of database but we still need to create database.
CouchDB: API: JSON, Protocol: REST, Query Method:
Master, Written in: Erlang.
24. Categories (cont…)
MongoDBMongoDB: API: BSON, Protocol: lots of langs,: API: BSON, Protocol: lots of langs,
Query Method: dynamic object-based language,Query Method: dynamic object-based language,
Replication: Master Slave, Written in: C++.Replication: Master Slave, Written in: C++.
3) Graph databases
Social networkingSocial networking
graph algorithms, connectedness, degree of relationshipsgraph algorithms, connectedness, degree of relationships
has to traverse the entire graph to get definitive answer.has to traverse the entire graph to get definitive answer.
not easy to cluster.not easy to cluster.
used in a situation where we want to analyze the on goingused in a situation where we want to analyze the on going
trends and take decision on the basis of those trends.trends and take decision on the basis of those trends.
25. Categories (cont…)
Neo4J:Neo4J: API: lots of langs, Protocol: Java embedded / API: lots of langs, Protocol: Java embedded /
REST, Query Method: SparQL, nativeJavaAPI, JRuby,REST, Query Method: SparQL, nativeJavaAPI, JRuby,
Replication: typical MySQL style master/slave, Written in:Replication: typical MySQL style master/slave, Written in:
Java, Concurrency: non-block reads, writes locks involvedJava, Concurrency: non-block reads, writes locks involved
nodes/relationships until commit, Misc: ACID possiblenodes/relationships until commit, Misc: ACID possible
4) XML databases
mature search technologies
re-writing is easier than updating
26. Categories (cont…)
Used in a situation where one wants to produce documents
of articles etc from a huge amount of documents but the
format of those article doesn’t allow the publisher to perform
search on it. Those articles are converted into xml database
and wrap it in a readable-URL web service for the document
5) Distributed Peer Stores
distributed file systems
Good distributed storage of data
Very low level API
Best for voting system. In such a situation one store/user
and one store/piece of content is created. The user store
will hold all the votes they have ever casted and the
content will store a copy of the content on which vote
27. Categories (cont…)
Cassandra:Cassandra: API: many Thrift languages, Query Method:API: many Thrift languages, Query Method:
MapReduce, Written in: Java, Concurrency: eventuallyMapReduce, Written in: Java, Concurrency: eventually
consistent , Misc: like "Big-Table on Amazon Dynamoconsistent , Misc: like "Big-Table on Amazon Dynamo
alike", initiated by Facebook.alike", initiated by Facebook.