NoSQL steht für “Not Only SQL” und umfasst eine Klasse von Datenbanksystemen, die sich durch flexible Datenmodelle, horizontale Skalierbarkeit und hohe Performance auszeichnen. Sie wurden entwickelt, um den Anforderungen moderner Web-Anwendungen und Big-Data-Szenarien gerecht zu werden, bei denen relationale Datenbanken oft an ihre Grenzen stoßen.
Daten werden in Dokumenten gespeichert, häufig im JSON- oder BSON-Format. Jedes Dokument ist eigenständig und kann eine andere Struktur aufweisen. Dies ermöglicht flexible Datenmodelle und die einfache Speicherung komplexer Hierarchien. Beispiele: MongoDB, CouchDB.
Daten werden spaltenweise gespeichert, wodurch sie besonders effizient für analytische Abfragen und große Datenmengen sind. Vorteile umfassen schnelle Aggregationen und bessere Komprimierungsmöglichkeiten. Nachteile liegen in der Eignung für transaktionale Workloads oder häufige Schreiboperationen. Beispiele: Cassandra, HBase.
Diese Systeme speichern Daten als einfache Schlüssel-Wert-Paare, ideal für Anwendungen mit schnellen Lese- und Schreiboperationen. Beispiele: Redis, Riak.
Spezialisiert auf die Modellierung und Abfrage von Beziehungen, eignen sich Graphdatenbanken für soziale Netzwerke, Empfehlungsdienste oder Netzwerkanalysen. Beispiele: Neo4j, OrientDB.
NoSQL-Datenbanken sind besonders geeignet, wenn große Datenmengen, verteilte Systeme oder flexible Datenmodelle erforderlich sind. Für transaktionale Anwendungen oder Fälle, die eine strikte Datenintegrität erfordern, bleiben relationale Datenbanken oft die bessere Wahl.