NoSQL Database

NoSQL is a buzzword and does not necessarily have a broadly agreed definition

  • It does not follow a relational model
  • Schema-less

The term NoSQL stands for Not Only Sql.  Meaning that there may be SQL capabilities, but you are not confined to this. SQL is simply a language shared by all databases as a means of querying and finding or manipulating the data within them.

Types of NoSQL database include:

Key Value stores

Simple and very powerful stores that ape the way humans best remember and recall information. Any system can store any piece of information the “Value” by adding a unique “Key”. Nothing can retrieve data quite so quickly making them excellent for high volume scenarios.

Document stores

These are virtually the same as the Key value stores above except that they only store documents as values . these documents are generally in the form of JSON, XML and BSON which themselves can be queried further to get to a specific piece of data within the document

Wide Column stores

This concept emerged form data warehousing. A relational database RDBMS was invented in an era we=hen data storage was expensive and the idea of related tables broke doe=wn the data so that it could be stored once and linked to from a SQL query. So One customer has made 50 purchase . You dont have to store the customer name and address 50 times, you store it once and link to it.
The problem with relational design RDBMS is that it uses a lot more processing power and takes longer to follow all those links and search vertically through each index. The wide column store would in that instance store the customer data 50 times and as a result the time for retrieval would be much quicker. This matters when you need analyse a very deep column of data maybe in many billions of rows.

Graph stores

The work by storing data in adjacent locations so that semantically connected data can be found logically. The concept is close to that of Ontology and even to neural networks.
Querying a graph store requires a special language such as SparQL.

Graph database

A common way to build these databases is using RDF triplets