NoSql

Definition - What does NoSql mean?

NoSql refers to a class of database management systems (DBMSs) that do not follow all the rules of a Relational DBMS, and cannot use traditional SQL to query data. The term actually stands for 'Not Only SQL', and these databases are generally not a replacement, but rather a complementary addition to RDBMSs and SQL.

NoSQL-based systems are typically used in very large databases which are particularly prone to the performance problems caused by the limitations of SQL and the relational model of databases. Some notable implementations of NoSQL are Facebook's Cassandra database, Google's Bigtable, and Amazon's SimpleDB and Dynamo.

Techopedia explains NoSql

A NoSQL database does not necessarily follow the strict rules governing transactions in relational databases. These violated rules are known by the acronym ACID (Atomicity, Consistency, Integrity, Durability). For instance, NoSQL databases do not use fixed schema structures and SQL joins.

In traditional RDBMSs, the basic operations are reads and writes. Reads can be scaled by replicating data to multiple machines,thus load-balancing read requests. However, this affects writes because data consistency needs to be maintained. Writes can be scaled only by partitioning the data. This affects reads as distributed joins are usually slow and hard to implement. Additionally, to maintain ACID properties, databases need to lock data, that is, when one user opens a data item, no other user should be able to make changes to the same item. This restriction has serious implications on performance.

These limitations have not been a major problem in the past. However, with the advent of Web 2.0-type sites, there arose a number of giant databases who were forced to serve the tens or even hundreds of millions of clients throughout the world with several thousand reads and writes every minute. Traditional RDBMSs will simply not meet this need, because they can only 'scale up', ie increase the resources on a central server. A NoSQL implementation, on the other hand, can 'scale out', ie distribute the database load across more servers.

NoSQL databases are focussed on particular classes of problems; from being more flexible about stored data (document stores) to targeting use cases like relationships (graph databases) and aggregating data (column databases) or just simplifying the idea of a database down to something that stores a value (key/value stores).

NoSQL databases offer the advantages of rapid scalability, much better performance, and a simpler structure compared to RDBMS's. However, they also suffer from being an unproven technology, and they cannot provide the rich reporting and analytical functionality of RDBMSs.
This definition was written in the context of Database.

Popular White Papers

Techopedia Newsletter Sign-Up

Get Techopedia delivered to your inbox!