NoSQL (Not only SQL) ist ein Datenbank-Typ, der einem nicht relationalen Ansatz folgt, im Gegenteil zu SQL (Structured Query Language). 
Bei SQL-Datenbanken werden Informationen in Tabellenform mit logischem Schema gespeichert und anhand spezifischer Suchanfragen (Querys) abgerufen. 
Nicht-relationale Datenbanken besitzen hingegen eine eigene Struktur und sind nach keinem vorgeschriebenen Schema aufgebaut.  
 
NoSQL ist eine Alternative und Ergänzung zu traditionellen Datenbanken, um der Komplexität und den Anforderungen der modernen Anwendungsentwicklung gerecht zu werden. 
Nicht-relationale Datenbanken überzeugen durch ihre horizontale Skalierbarkeit (Scale-Out) und die Speicherung großer Datenmengen. 
Dazu gehören unstrukturierte und unbekannte Daten, die auf virtuellen Servern verteilt liegen und laufend erweitert werden könnten. Dieses Konzept macht NoSQL für Big-Data-Projekte empfehlenswert und ist mit relationalen Datenbanken undenkbar.  
 
NoSQL-Datenbanken lassen sich anhand ihrer Art der Datenspeicherung in Bereiche unterscheiden:

Dokumentorientiert

Texte beliebiger Länge werden formlos in einem Dokument gespeichert. Bekannte Vertreter sind CouchDB, MongoDB und Lotus Notes.

Key-Value-orientiert

In einer Hash-Tabelle zeigt ein Schlüssel mit einem Zeiger auf einen Datensatz.  
Bekannte Schlüssel-Werte-Datenbanken sind Amazon Dynamo, Google BigTable und Project Voldemort.

Spaltenorientiert

Daten werden nicht zeilenweise, sondern spaltenweise gespeichert. Die Ausgabe unerwünschter Daten entfällt, weil die relevanten in einer Spalte untereinander stehen und abrufbar sind. Die bekanntesten Datenbanken dieser Art sind Apache Cassandra und Apache HBase.  

Graphenorientiert (Graphdatenbank)

Knoten und Verbindungen stellen komplexe Beziehungen wie in sozialen Netzwerken dar. Beispiele dieser Art sind FlockDB und Neo4j