SQL (Structured Query Language) is used to query and edit information in relational database systems e.g. Oracle and MySQL databases. NoSQL (Not-only-SQL) databases e.g. MongoDB and HBase are designed for modern web/mobile applications and to address the scale, performance and data distribution challenges faced by relational databases .
In an SQL database, data is stored in rows and columns with individual records in rows e.g. employees and specific information in columns e.g. employee number. There is a fixed schema in SQL so adding any new data item alters the entire database. Databases are scaled vertically, so to handle increased demand, a server must be made more powerful. SQL also uses specific syntax for data manipulation e.g. SELECT statements. In NoSQL databases data is stored in different models and there is a dynamic schema which utilizes some data validation rules. Scaling is done horizontally so addition of more cloud instances or commodity servers adds capacity. Data manipulation occurs through object oriented APIs.
Both databases support transactions though SQL supports complex and nested transactions while NoSQL supports simple transactions. In addition both types of databases can be configured for strong consistency and have open source versions.
NoSQL databases can handle large volumes of rapidly changing data, supports agile development, easily handles geographically distributed architecture and object oriented programming. SQL databases can handle complex/nested transactions, are an ANSI standard, don’t require coding and can extract a large number of records from the database quickly . Disadvantages of SQL are that interfacing is a bit complex while NoSQL has limited expertise since it is a fairly new technology and there are some challenges with installation and maintenance.
SQL RDBMS are used when there are centralized applications and data is primarily structured and coming in from few locations. NoSQL is used when there are decentralized applications, data is structured, semi-structured or unstructured and is coming from many locations.
Works Cited
NoSQL. 2016. 21 02 2016. <http://www.datastax.com/nosql-databases>.
NoSQL Databases Explained. 2016. 21 02 2016. <https://www.mongodb.com/nosql-explained>.
SQL (Structured Query Language). 2016. 21 02 2016. <https://www.ntchosting.com/encyclopedia/databases/structured-query-language/>.