Professional Documents
Culture Documents
<date/time> <footer> 2
Introduction to NoSQL Databases
A database Management System provides the
mechanism to store and retrieve the data. There are
different kinds of database Management Systems:
1. RDBMS (Relational Database Management Systems)
2. OLAP (Online Analytical Processing)
3. NoSQL (Not only SQL)
<date/time> <footer> 3
What is a NoSQL database?
NoSQL databases are different than relational databases like MySQL. In
relational database you need to create the table, define schema, set the
data types of fields etc before you can actually insert the data. In NoSQL
you don’t have to worry about that, you can insert, update data on the fly.
One of the advantage of NoSQL database is that they are really easy to
scale and they are much faster in most types of operations that we
perform on database.
There are certain situations where you would prefer relational database
over NoSQL, however when you are dealing with huge amount of data
then NoSQL database is your best choice.
<date/time> <footer> 4
The differences between SQL vs NoSQL
SQL databases are relational, NoSQL databases are non-relational.
SQL databases use structured query language and have a predefined
schema. NoSQL databases have dynamic schemas for unstructured data.
SQL databases are vertically scalable, while NoSQL databases are
horizontally scalable.
SQL databases are table-based, while NoSQL databases are document,
key-value, graph, or wide-column stores.
SQL databases are better for multi-row transactions, while NoSQL is better
for unstructured data like documents or JSON.
<date/time> <footer> 5
Types of NoSQL Databases
Four main types of NoSQL databases:
1. Key-value stores
2. Document databases
3. Column-oriented Databases
4. Graph databases
<date/time> <footer> 6
Key-value stores
Its structure consists in pairing keys to values.
When performing a change in a value, the entire value other than the key
must be updated.
It scales well because of the simplicity.
However, it can limit the complexity of the queries and other advanced
features.
Examples:Python Lib (PupDB, PickleDB), Riak, Redis, Dynamo, Azure
Table Storage, BerkeleyDB
<date/time> <footer> 7
Document Databases
The records stored are called documents,
which consist of grouping of key-value pairs.
Values can be nested to arbitrary depths.
Examples: MongoDB, Elastic, Azure
DocumentDB
<date/time> <footer> 8
Column-oriented
Databases/Columnar Databases
While RDBMS store all the data in a particular table’s rows together
on-disk, being able to retrieve a particular row fast
Column-family databases are able to retrieve a large amount of a
specific attribute fast by serializing all the values of a particular
column together on-disk.
This approach is useful for aggregate queries.
Examples: Apache HBase, Apache Cassandra, Amazon Simple DB
<date/time> <footer> 9
Graph Databases
Ideal at dealing with interconnected data.
Their structure consist of connections, or edges, between nodes.
Both nodes and their edges can store additional properties such as key-
value pairs.
The strength of a graph database is in traversing the connections
between the nodes.
Their downside is that they generally require all data to fit on one
machine, limiting their scalability.
Examples: Neo4J, InfiniteGraph, TITAN
<date/time> <footer> 10
<date/time> <footer> 11