NoSQL (Not only SQL) is a type of database that follows a non-relational approach, as opposed to SQL (Structured Query Language). 
With SQL databases, information is stored in table form with a logical schema and retrieved using specific search queries (queries). 
Non-relational databases, on the other hand, have their own structure and are not built according to any prescribed schema.  
 
NoSQL is an alternative and complement to traditional databases to meet the complexity and requirements of modern application development. 
Non-relational databases convince with their horizontal scalability (scale-out) and the storage of large amounts of data. 
This includes unstructured and unknown data that is distributed on virtual servers and could be continuously expanded. This concept makes NoSQL recommendable for Big Data projects and is unthinkable with relational databases.  
 
NoSQL databases can be divided into areas based on the way they store data:

Document-oriented

Texts of any length are stored informally in a document. Known representatives are CouchDB, MongoDB and Lotus Notes.

Key-value oriented

In a hash table, a key with a pointer points to a record.  
Known key-value databases are Amazon DynamoGoogle BigTable and Project Voldemort.

Column-oriented

Data is not stored row by row, but column by column. There is no need to output unwanted data because the relevant data is stored in one column below the other and can be retrieved. The best-known databases of this type are Apache Cassandra and Apache HBase.  

Graph-oriented (graph database)

Nodes and connections represent complex relationships like in social networks. Examples of this kind are FlockDB and Neo4j