INTRODUCTION
TO NOSQL
VAIBHAV DONDE
WHAT IS NoSQL DB ?
• A NoSQL database(Not only SQL) is a type of database management
• system that provides a mechanism for storing, retrieving and managing
• data that does not follow the traditional relational database model.
• Unlike relational database, NoSQL database are designed to handle
• unstructured, semi-structured data, providing greater flexibility
• and scalability for certain types of application.
Feature of NoSQL
Flexible schemas : it’s faster and iterative development,schemas are flexible
for semi-structured and unstructured data.
Fast queries due to the data model : it’s highly optimized for specific data models
and enable faster data access.
Ease of use for developers : DB are accessible through various programming
languages.
Global Availability : it’s stores data on clouds(distributed servers) which makes
it accessible to anyone, anywhere.
Types of NoSQL DB
1) Document-oriented database.
2)
3) Key-Value stores.
4) Column-oriented database.
5) Graph-based database.
1. Document-oriented database
Data is stored as documents,typically in JSON
or BSON format
Each document is a self-contained unit that may
contain nested structures.
Documents are often organized in collections.
Examples : MongoDB, CouchDB, Elasticsearch.
2. Key-Value Stores
Basic data model with a collection of key-value
pairs.
Data is stored as unstructured values or blobs
associated with a unique key.
Simple and fast retrieval of values based on
keys.
Examples : redis, Amazon DynamoDB, Riak
3. Column-oriented Database
Data is organized into columns instead of
rows.
Columns are grouped into column
families, and each column family can
have a different set of columns.
Well-suited for read and write intensive
workloads.
Example : Apache Cassandra, HBase,
Amazon simpleDB
4. Graph-based database
Designed for handling relationship between
data points.
Data is represented as nodes, edges and
properties
Efficient for traversing and querying complex
networks or graphs.
Example : Neo4j, ArangoDB, Amazon Neptune
Advantages :
Horizontal Scaling: NoSQL databases are designed to scale out by distributing data across
multiple servers, making it easier to handle large volumes of data and high-traffic
applications.
Schema-less Design: NoSQL databases typically use a schema-less or dynamic schema
approach, allowing for more flexible data models. This is particularly useful for applications
where the data structure evolves over time
Replication and Distribution: NoSQL databases often include built-in mechanisms for data
replication and distribution, which can enhance data availability and fault tolerance.
Variety of Data Models: NoSQL databases are well-suited for handling unstructured or
semi-structured data, such as JSON, XML, or binary data.
Disadvantages :
Compatibility: Integrating NoSQL databases with existing systems or data sources can
be more challenging, especially if those systems are designed around relational models.
Less Mature Tools: Compared to relational databases, NoSQL databases may have less
mature tooling and fewer options for monitoring, backup, and performance tuning.
Transactional Support: Many NoSQL databases do not fully support ACID (Atomicity,
Consistency, Isolation, Durability) transactions, which can be a drawback for applications
that require complex transaction management.
Learning Curve: The variety of NoSQL database types and models can be overwhelming,
and each type may have its own complexities and learning curves.