NoSQL

Typ von Datenbanken Aus Wikipedia, der freien Enzyklopädie

NoSQL (englisch für Not only SQL deutsch: „Nicht nur SQL“) bezeichnet Datenbanken, die einen nicht-relationalen Ansatz verfolgen und damit mit der langen Geschichte relationaler Datenbanken brechen. Diese Datenspeicher benötigen keine festgelegten Tabellenschemata und versuchen Joins zu vermeiden. Sie skalieren dabei horizontal. Im akademischen Umfeld werden sie häufig als „strukturierte Datenspeicher“ (engl. structured storage) bezeichnet.[1][2][3][4]

Bekannte Implementierungen sind Riak, Apache Cassandra, CouchDB, MongoDB und Redis.

Geschichte

Zusammenfassung
Kontext

Der Begriff NoSQL, noch im Sinne von no SQL, wurde erstmals für eine 1998 erschienene einfache Open-Source-Datenbank verwendet, die keine SQL-Zugriffsmöglichkeit bereitstellte. Carlo Strozzi, der Entwickler dieser Datenbank, unterscheidet allerdings die NoSQL-Datenbank von der NoSQL-Bewegung insofern, als erstere eine Datenbank ist, welche auf die Verwendung der Sprache SQL verzichtet, während letztere ein Konzept ist, das vom relationalen Modell Abstand nimmt.[5]

Der Begriff NoSQL im Sinne von Not only SQL wurde Anfang 2009 von Johan Oskarsson für ein Treffen über verteilte strukturierte Datenspeicher neu eingeführt.[6] Der Name war ein Versuch einer gemeinsamen Begriffsfindung für die wachsende Zahl an nicht relationalen, verteilten Datenspeichersystemen, die meist auch auf ACID-Eigenschaften verzichteten.

Dieses Thema ist nicht ganz neu. Die Bestrebung, Daten ohne die Einschränkungen des relationalen Modells zu speichern, war bereits früher unter dem Titel dokumentenorientierte Datenbank bekannt. Insofern sind alle Vertreter dieser Thematik auch als NoSQL-Systeme zu betrachten.

Obwohl sich NoSQL-Systeme kontinuierlich verbreiten, wird der Markt nach wie vor deutlich von relationalen Systemen dominiert (Stand 2025).[7]

Architektur

Relationale Datenbanken leiden üblicherweise unter Leistungsproblemen bei datenintensiven Applikationen wie Indexierung großer Dokumentmengen, Webseiten mit hohen Lastaufkommen sowie Streaming-Media-Applikationen. Relationale Datenbanken sind nur dann effizient, wenn sie für häufige, aber kleine Transaktionen oder für große Batch-Transaktionen mit seltenen Schreibzugriffen optimiert sind. Sie können aber schlecht mit gleichzeitig hohen Datenanforderungen und häufigen Datenänderungen umgehen.[8] NoSQL dagegen kann mit vielen Schreib-/Leseanfragen umgehen.[9]

NoSQL-Architekturen bieten meist nur schwache Garantien hinsichtlich Konsistenz wie beispielsweise eventual consistency oder auf einzelne Datensätze eingeschränkte Transaktionen. Einige Systeme unterstützen auch ACID, beispielsweise durch Hinzufügung spezieller Middleware wie CloudTPS.[10]

Viele NoSQL-Implementierungen unterstützen verteilte Datenbanken mit redundanter Datenhaltung auf vielen Servern, beispielsweise unter Nutzung einer verteilten Hashtabelle. Damit können die Systeme einfach erweitert werden sowie Ausfälle einzelner Server überstehen.[11]

Unterscheidung nach Datenmodell

NoSQL-Implementierungen können folgendermaßen gegliedert werden:

Weitere Informationen Merkmal, Beispiele ...
MerkmalBeispiele
Dokumentenorientierte DatenbankenApache Jackrabbit, BaseX, CouchDB, eXist, HCL Notes, MongoDB, OrientDB
GraphdatenbankenGenerischNeo4j, OrientDB, Amazon Neptune, InfoGrid, HyperGraphDB, Core Data, DEX, Gremlin
RDF-ZentriertAllegroGraph, 4store
Verteilte ACID-DatenbankenMySQL Cluster
Key-Value-DatenbankenFestplattenspeicherChordless, Google BigTable, GT.M, InterSystems Caché, etcd
Caches im RAMMembase, memcached, Redis, Aerospike
Eventually-consistente SpeicherAmazon Dynamo, Project Voldemort, Riak
Sortierte Key-Value-SpeicherBerkeley DB, memcached
Multivalue-DatenbankenOpenQM, Rocket U2
ObjektdatenbankenDb4o, ZODB, Objectivity/DB
Spaltenorientierte DatenbankenApache Cassandra, Google BigTable, HBase, SimpleDB, Scylla
DatenstromApache Kafka, RethinkDB, PipelineDB
Schließen

Leistung

Nach Ben Scofield kann die Leistung von NoSQL-Datenbanken wie folgt bewertet werden:[12]

Weitere Informationen Datenmodell, Leistung ...
DatenmodellLeistungSkalierbarkeitFlexibilitätKomplexitätFunktionalität
Key–Valuehochhochhochkeineunterschiedlich (keine)
Spaltenorientierthochhochmittelgeringminimal
Dokumentenorientierthochunterschiedlich (hoch)hochgeringunterschiedlich (gering)
GraphbasiertunterschiedlichunterschiedlichhochhochGraphentheorie
RelationalunterschiedlichunterschiedlichgeringmittelRelationale Algebra
Schließen

Literatur

  • Stefan Edlich, Achim Friedland, Jens Hampe, Benjamin Brauer, Markus Brückner: NoSQL: Einstieg in die Welt nichtrelationaler Web 2.0 Datenbanken. 2., aktualisierte und erweiterte Auflage. Hanser Verlag, München 2011, ISBN 978-3-446-42753-2.
  • Pramodkumar J. Sadalage, Martin Fowler: NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley, Amsterdam 2012, ISBN 978-0-321-82662-6 (englisch).

Einzelnachweise

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.