The term NoSql was used the first time in 2009 by Johan Oskarsson during an meetup. It stands for “Not only Sql”.1)
“Data” has changed its meaning during the last years. Especially the world wide web offers a large amount of new possibilities but also increased the amount and type of data which is collected every day/hour/minute those days. Historical dimensional database models often don't fulfill the requirements like scale-ability and feature to save a huge amount of unstructured data. Those features are needed for, so called, “Big Data”-datamodels, so new concepts like NoSql are needed. NoSql are, compared to those classical DBMS, more scale-able and are able to react much more agile, therefor they pass on the “ACID”-concept the most time.2) This behavior is described as “BASE”. It stands for:
(B)asically (A)vailable: The system is the most time available and if single nodes fail, the entire data layer stays operational, the system does guarantee availability.
(S)oft State: The systems structure may change over time, even if there is no input. This behavior is because of the eventually consistency model.
(E)ventually consistent: In the end, the system will eventually becomes consistent, related to the input it gets.
There are a few different types of NoSql-Systems, the following are just an overview about often-used concepts.
The data-model of a Key-Value database is very simple. The only items which are stored, are key-value pairs. A value can consist of any type of data, like chars or even video files. You can compare them to a associative array or an dictionary. As the key is unique, data can be looked up very fast, very scale-able and very easy to handle as there is no structure or relation between those pairs. Key-Value dbms are often used for storing information very quick. 3)
Opposed to the concept of an Relational database management system, a column-oriented database you predefine a column-family, not a single column. A family is data, which is a set of columns logical grouped together. This data-layout leads to a higher effectivity in aggregating over many rows and less columns because unlike in Relational database management system, you wont have to read the whole row. 4)
Document-oriented databases are used to store unstructured data like social media posts and multimedia in an efficient way. They can be spread across multiple servers easily, compared to normal rdbms. They can be compared to column-based databases with the difference, that they store more complex structures and allow a very deeper nesting of data. Typically, the data is described in language like Json, which offer a highly precision in displaying the structure of related documents. 5)
Graph database are constructed like related tree-structures with node and edges connecting each other. They offer a very effective way of collecting and saving complex and large-scaled data which is related to its own components. On a graph database you are able to build and query those structures very native and fast. 6)
As every type of NoSql database has it own specific benefits, it is very useful to combine those concepts. Hybrid databases like OrientDB offer the possibility to handle the advantages of document and key-value databases in one solution. 7)