NoSQL DATABASE
Presented by
Sruthi Radhakrishnan
Tania Mary
Thekkan Alin Shaju
Vandana babu
Vishnu Raj
INTRODUCTION
NO SQL OR Non-relational
A database that provides the mechanism for storage
and retrieval of database
Used in real time web applications and big data
Also called “Not Only SQL” to emphasize the fact that
they may support SQL like query languages
o Simplicity of design
o Quickly retrieved
o Mongo DB
o Document Oriented
o Used when relationship between data stored is not
important
HISTORY
1998 • Carlo Strozzi use the term NoSQL for his lightweight, open-
source relational database
2000 • Graph database Neo4j is launched
2004 • Google BigTable is launched
2005 • CouchDB is launched
2007 • The research paper on Amazon Dynamo is released
2008 • Facebooks open sources the Cassandra project
2009 • The term NoSQL was reintroduced
FEATURES OF NOSQL
NON-RELATIONAL
• Never follow the relational model
• Never provide tables with flat fixed-column records
• Work with self-contained aggregates
• Doesn't require object-relational mapping
• No complex features
SCHEMA-FREE
• Either schema-free or have relaxed schemas
• Do not require any sort of definition of the schema of the data
• Offers heterogeneous structures of data in the same domain
ADVANTAGES OF NOSQL
Affordable
Avoids complexity
Large data volumes
Easy
Frequent changes
Non relational
Database models
Database administrator
TYPES OF NO SQL DATABASES
Key-value Pair Based
Column-oriented Graph
Graphs based
Document-oriented
Key Value Pair Based
Data is stored in key/value pairs.
It is designed in such a way to handle lots of data and heavy load.
Data is stored in key/value pairs. It is designed in such a way to handle
lots of data and heavy load.
This kind of NoSQL database is used as a collection, dictionaries,
associative arrays, etc.
Key value stores help the developer to store schema-less data.
Column-based
Column-oriented databases work on columns and are based on
BigTable paper by Google.
Every column is treated separately.
Values of single column databases are stored contiguously.
They deliver high performance on aggregation queries like SUM,
COUNT, AVG, MIN etc. as the data is readily available in a column.
Column-based NoSQL databases are widely used to manage data
warehouses, business intelligence, CRM, Library card catalogs etc.
Document-Oriented
Document-Oriented NoSQL DB stores and retrieves data
as a key value pair but the value part is stored as a
document.
The document is stored in JSON or XML formats.
The value is understood by the DB and can be queried.
The document type is mostly used for CMS systems,
blogging platforms, real-time analytics & e-commerce
applications.
It should not use for complex transactions which require
multiple operations or queries against varying
aggregate structures.
Amazon SimpleDB, CouchDB, MongoDB, Riak, Lotus
Notes, MongoDB, are popular Document originated
DBMS systems.
Graph-Based
A graph type database stores entities as well the relations
amongst those entities.
The entity is stored as a node with the relationship as edges.
An edge gives a relationship between nodes.
Every node and edge has a unique identifier.
Compared to a relational database where tables are loosely
connected, a Graph database is a multi-relational in nature.
Traversing relationship is fast as they are already
captured into the DB, and there is no need to calculate
them.
Graph base database mostly used for social networks,
logistics, spatial data.
Neo4J, Infinite Graph, OrientDB, FlockDB are some
popular graph-based databases.
ACID vs. BASE Model
ACID-is a standard for RDBMS
Base-is a model of many NoSQL systems
Base Acid
Availability is the most Strong consistency
important thing.
Weaker Consistency Less availability
Best Effort Complex
Simple and fast
When use SQL?
SQL is the easiest language used to communicate with the RDBMS
It allows you to store and gets data from the database quickly
Preferred when you want to use joins and execute complex queries
When use NoSQL?
When ACID support is not needed
When Traditional RDBMS model is not enough
Data which need a flexible schema
Constraints and validations logic not required to be implemented in database
It should be used to store temporary data like shopping carts, wish list and session
data
Summary
NoSQL databases are primarily called Non-relational or distributed
database
NoSQL databases can be document based, key-value pairs, graph
databases
NOSQL should be used when Traditional RDBMS model is not
enough
There is no standard query language.
Most of the controls are implemented at the application layer.
Massive Data Stores.
Data Consistency