SQL NOSQL and Cloud Computing
The paradigm shift to web 2.0 has led to the enormous popularity of social networking, blogs, articles, and wikis that has resulted into huge knowledge assortment across enterprises.
There are two kinds of data
1) Structured data: Structured data includes a pre-defined data model which fits into relational tables e.g. Databases, XML files, Enterprise systems like CRM, ERP etc.
2) Unstructured data: Unstructured data does not have pre-defined data model and it does not fit into relational models e.g. RSS feeds, Audio files, Video files excel spreadsheets, Word documents, and Emails.
Not only SQL or NoSQL is a type of database management systems that is not based on traditional SQL-based relational database model and is extremely effective while working with a huge quantity of structured or unstructured data. NoSQL databases do not use SQL for data manipulation operations.
Traditional databases focus is mainly on consistency but being relational is not necessary for some specific use cases and can add avoidable overhead. Usage of NoSQL databases open up the scope for massive scalability, low latency, and the ability to grow the capacity of your database on demand and a relatively easier programming model while SQL databases do not provide it in a cost-effective manner.
In traditional SQL databases, data is normalized so that it can provide effective results and prevent isolated records and duplicate data. Normalizing data requires multiple tables, which requires multiple join statements, thus requiring more keys and indexes. A primary disadvantage of SQL Databases is the high abstraction level of SQL Databases. To execute a single Statement, SQL world often requires the data to be processed multiple times which takes time and require high performance e.g. multiple queries are executed on SQL Data when there is a join operation. In addition, RDBMS might not scale out easily but the new breed of NoSQL databases are designed to expand transparently and they are designed with low-cost commodity hardware in mind.
In SQL databases, there is always a schema involved. Requirements may change and the database has to be modified to support this new requirements e.g. application need two extra fields to store data; with SQL Databases this may take some time and thinking; while in case of NoSQL it can be done easily, this allows the database to adopt new business requirements.. Though, SQL Databases have the advantage to have better support for Business Intelligence.
NoSQL Databases are built without relations. NoSQL world is a world without relations, no joins, and pure scalability. NOSQL databases manage data that is not rigorously relational and tabular, so it does not use SQL for the data manipulation. NOSQL databases are usually non-relational, open-source, distributed, and horizontally scalable. A key advantage of NoSQL over SQL databases is its ability to scale an application to new levels. NoSQL databases characteristically highlight horizontal scalability by partitioning and leveraging the elastic provisioning capabilities of the cloud. The NoSQL data services are based on scalable architectures, built for the Cloud environment. It provides freedom to select a data model as per needs and usage of familiar tools.
With NoSQL Databases, data replication can be done more easily then it would be with SQL Databases. As NoSQL databases are build without relations, data need not to be on the same server and can be processed independently which allows better scaling than SQL Databases. Do not forget, scaling is one of the primary characteristic in Cloud computing environments.