A NoSQL (originally referring to "non SQL" or "non relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. NoSQL refers to databases that do not make use of Relation Databases SQL Query Language. NoSQL stands for Not only SQL.
Why NoSQL is required?As the amount of data for an application increased, the Database needs to be scaled to meet this requirement.
Databases can be scaled in two ways- Either vertically or horizontally.
Vertical scaling involves increasing the processing power of the existing Database server. Thus we have a single powerful Database server
In case of Horizontal scaling we add additional new database servers to the existing one. Thus data gets divided among these to be stored. This scaling also involves the concept of replication and sharding.
In case of relational databases it is easy to go for vertical scaling. However it is difficult to achieve horizantal scaling involving replication and sharding with relational database. With the ever increasing data, horizontal scaling with replication and sharding is the need of the hour.
Following are the advantages of NoSQL
- Scales Horizontal - Horizontal scalability can be achieved easily
- No Schema - It does not have schema.It support semi-structured data and volatile data.
- Improved Performance - Read/Write throughput is very high.