DATABASE: SQL vs NoSQL
With the advent of huge amount of data in technological era, SQL and NoSQL databases are majorly used. SQL stands for Structured Query Language which is used mainly for relational database management system and NoSQL refers to Not Only SQL which is a collection of non-relational data storage systems.
There are different types of RDBMS such as MS Access, Oracle, MySQL, Informix, SQL Server, Sybase which uses SQL as their standard database query language. Today SQL databases become an unavoidable part of IT department of any organization. MySQL is a Relational Database based SQL implementation for the web which is now being used in very large-scale websites such as Facebook etc.
There is relaxation of one or more of the ACID properties in NoSQL. Some of the NoSQL databases are Cassandra, CouchDB, Hadoop & Hbase, MongoDB, StupidDB. The aim of this blog is to compare these two SQL & NOSQL databases and tries to figure out which is better in terms of their performance & scalability.
It is a well known fact that SQL databases have taken over the world of data technologies and have been the primary source of data storage over decades. SQL databases are generally for accessing the relational databases.
Soon enough data started growing exponentially and scalability became a major issue, at that time NoSQL rolled in to save the day.NoSQL databases existed since 1960, but recently they have gained more popularity especially for providing the scaling feature.
The major difference between MongoDB and SQL Databases is the way of handling the data. In SQL databases, data is stored in tabular form of two-dimensional row-column structure while in MongoDB document model is followed, which allows storage of any type of data.
Following are the major differences between SQL and NoSQL databases :
SQL Database
|
NoSQL Database (MongoDB)
|
Purely relational database
|
Non-relational database
|
Supports SQL query language
|
Supports JSON query language
|
2-dimension Table based
|
Collection and key-value pair based
|
Row & Column based
|
Document & Field based
|
Data storage requires predefined structure
|
Stores data in flexible manner
|
Support triggers & foreign key
|
Doesn’t support triggers foreign key
|
Contains predefined schema
|
Contains dynamic schema
|
Not for hierarchical data storage
|
Best for hierarchical data storage
|
Vertically scalable (increasing RAM)
|
Horizontally scalable (add more servers)
|
Follows ACID properties (Atomicity, Consistency, Isolation and Durability)
|
Follows CAP theorem (Consistency, Availability and Partition tolerance)
|
MongoDB Documents makes it easy for developers to map the data used in the application to its associated document in the database. While in SQL Database, creating a table with columns mapped to the object’s attributes in programming language is a little tedious.
When it comes to choosing a database, one of the biggest decisions is selecting a relational (SQL) or non-relational (NoSQL) data type structure. While both options are viable, but still there are certain key differences between the two and user chooses the option according to his requirements.
great blog
ReplyDeletegreat
ReplyDelete