There was a time we only understood the relational database. But with relational database we did not full fill our all types of requirements. Every time relational database is not the best solutions. That’s why different solutions have come. NoSQL is one of them. It is a database management mechanism which does not use relational tables. This article describes the introduction to NoSQL or basic overview of NoSQL. Summary of the article:
- What is NoSQL?
- History of NoSQL
- Why NoSQL?
- Taxonomy of SQL or NoSQL Database Types
- NoSQL vs SQL
- Limitation of NoSQL
What is NoSQL?
NoSQL stand for Not Relational SQL or Not Only SQL. Many people think that NoSQL means there is No SQL. But it is not true. Sound is same but the meaning is totally different.
NoSQL or Not Only SQL is a database management system. Like traditional RDMS (Relational Database Management System) it doesn’t use string based SQL queries to fetch data. It is not built on tables and does not use SQL to manipulate data. It provides a simple, lightweight mechanism to store and retrieve data that provides higher scalability and availability than RDMS. It uses looser consistency models to achieve horizontal scaling and higher availability. Consistency models are used in distributed systems like distributed shared memory systems or distributed data store.
This system is useful for huge quantity of data especially for Big Data.
History of NoSQL
At first Carlo Strozzi used the term NoSQL in 1998. Strozzi used it to name his lightweight and open-source relational database. In 2009 Eric Evans reintroduced NoSQL.
A traditional RDMS usually deals with structured data. Currently we may have data in SMS, wave files, photos and video format. It is difficult to manage them by using traditional RDMS. NoSQL can handle structured, unstructured, unorganized and unpredictable data based on our requirements.
The performance of NoSQL database is high and its availability is also high.
Taxonomy of SQL or NoSQL Database Types
Most NoSQL database store data using one of the following models:
- Column -Hbase, Cassandra, Accumulo
- Document -MongoDB, Couchbase, Raven
- Key-value -Dynamo, Riak, Azure, Redis, Cache, GT.m
- Graph -Neo4J, Allegro, Virtuoso, Bigdata
NoSQL vs SQL
We should have clear understanding about NoSQL and SQL. Because both are not exactly same. Their exists some differences. Some primary differences between NoSQL and SQL are given bellow:
- SQL is developed in 1970
- SQL databases are mainly called as relational databases
- SQL databases are table based database
- SQL databases have predefined schema
- SQL databases are vertically scalable
- SQL databases use SQL (structured query language) to manipulate data. SQL is not varies from database to database
- SQL database examples: MS-SQL ,MySql, Oracle etc
- SQL databases are good for complex queries
- SQL database are either open-source or close-sourced (commercial)
- NoSQL is developed in 1998
- NoSQL database are mainly called as non-relational database or distributed database
- NoSQL databases are document based, key-value pairs, graph databases or wide-column stores
- NoSQL databases have dynamic schema for unstructured data
- NoSQL databases are horizontally scalable
- NoSQL database does not use SQL. Every database uses its own query and it varies from database to database. We may call it
- UnQL (Unstructured Query Language)
- NoSQL database examples: MongoDB, Redis , BigTable etc
- NoSQL databases are not good complex queries
- NoSQL database are open-source
Limitation of NoSQL
All SQL database vendors provide excellent support. There are also a lot of independent consultations for large scale deployments. But for NoSQl there is limited experts and support.
Day by day NoSQL databases are becoming an increasingly important part of the database. When used appropriately it can offer real benefits. However, we should proceed with caution with full awareness of the limitations and issues that are associated with NoSQL databases.