Auch genannt: nichtrelationale Datenbank, „Not only SQL“
NoSQL bezeichnet eine Familie nichtrelationaler Datenbanksysteme. Der Begriff ist keine Bezeichnung für ein einheitliches Produkt oder eine einzelne Abfragesprache. Gemeinsam ist den Systemen, dass sie Daten nicht primär als streng tabellarisches, relationales Schema organisieren. Je nach Modell arbeiten sie mit Schlüssel-Wert-Paaren, Dokumenten, breiten Spalten oder Graphen. SQL bleibt dabei nicht ausgeschlossen: Manche NoSQL-Systeme bieten eigene deklarative Abfragen oder Schnittstellen; „Not only SQL“ beschreibt diesen Umstand treffender als „kein SQL“.Oracle: What is NoSQL?
Eine relationale Datenbank zerlegt Informationen häufig in Tabellen und verbindet sie über Schlüssel. Für ein Buch könnten Titel, Autorinnen und Autoren sowie Ausgaben in getrennten Tabellen liegen. Ein NoSQL-Dokument kann dieselben Informationen, abhängig vom gewählten Datenmodell, gemeinsam als Attribute eines Dokuments speichern. Das ersetzt kein allgemeines Prinzip guter Datenmodellierung, sondern verschiebt die Entscheidung: Daten werden stärker entlang der Zugriffe und der Anwendung strukturiert.AWS: What is NoSQL?
NoSQL ist daher kein Synonym für „ungeordnet“ oder „ohne Regeln“. Flexible Schemata bedeuten, dass Felder nicht zwingend für jeden Datensatz vorab gleich festgelegt sein müssen. Anwendungen müssen trotzdem festlegen, welche Daten sie speichern, wie sie validieren und welche Abfragen sie unterstützen. Besonders bei sich ändernden, halbstrukturierten Daten kann diese Flexibilität hilfreich sein; bei stabilen, eng verknüpften Geschäftsdaten kann ein relationales Modell weiterhin die passendere Wahl sein.Oracle: What is NoSQL?
Die vier verbreiteten Modellfamilien haben unterschiedliche Stärken. Schlüssel-Wert-Speicher ordnen einem eindeutigen Schlüssel einen Wert zu. Dokumentdatenbanken speichern feldbasierte Dokumente, oft in JSON-ähnlicher Form. Wide-Column-Systeme organisieren Daten in Tabellen, Zeilen und dynamischen Spalten. Graphdatenbanken modellieren Knoten und Kanten, also Dinge und ihre Beziehungen. Ein System sollte nach dem Zugriffsmuster ausgewählt werden: Beziehungen untersuchen, einzelne Objekte nach Schlüssel laden oder viele ähnliche Ereignisse speichern sind unterschiedliche Aufgaben.MongoDB: What Is NoSQL?
Bei einer Dokumentdatenbank ist das Dokument die zentrale Einheit. MongoDB speichert Datensätze als BSON-Dokumente; sie bestehen aus Feld-Wert-Paaren und können verschachtelte Dokumente sowie Arrays enthalten. Für ein Benutzerprofil könnten Name, Kontaktwege und Interessen deshalb zusammen in einem Dokument liegen. Eine Abfrage kann dann gezielt auf ein verschachteltes Feld zugreifen. Welche Felder zusammen abgelegt werden, sollte jedoch dem tatsächlichen Lese- und Änderungsverhalten folgen, nicht bloß der Bequemlichkeit.MongoDB Docs: Documents
Viele NoSQL-Angebote sind für verteilte Cluster und horizontale Skalierung ausgelegt: Statt einen einzelnen Rechner leistungsfähiger zu machen, werden weitere Knoten hinzugefügt. AWS beschreibt solche Systeme als auf bestimmte Datenmodelle und Zugriffsmuster optimiert; flexible Schemata und Verteilung können für große Datenmengen oder niedrige Antwortzeiten sinnvoll sein.AWS: What is NoSQL?
Daraus folgt aber nicht automatisch mehr Leistung oder Verfügbarkeit für jede Anwendung. Verteilung verlangt Entscheidungen über Partitionierung, Replikation, Schlüssel und Fehlerszenarien. Auch Konsistenz bleibt eine Anforderungsfrage. Werden Informationen aus Gründen schnellerer Zugriffe in mehreren Dokumenten dupliziert, muss die Anwendung festlegen, wie diese Kopien aktuell gehalten werden. MongoDB nennt dafür unter anderem atomare Aktualisierungen, eingebettete Daten und asynchrone Trigger; bei letzterem können Leserinnen und Leser kurzzeitig ältere Werte sehen.MongoDB Docs: Data Consistency
Ein Online-Shop verwaltet Produkte, deren Eigenschaften je nach Kategorie stark variieren: Ein Schuh hat Größe und Material, ein Laptop Arbeitsspeicher und Anschlüsse, ein Buch ISBN und Ausgabe. In einer Dokumentdatenbank kann jedes Produkt als Dokument mit gemeinsamen Grundfeldern wie Kennung, Titel und Preis sowie passenden kategoriespezifischen Feldern abgelegt werden. Ein Katalogdienst kann das vollständige Produktdokument laden, ohne für jede Anzeige mehrere Tabellen zusammenzuführen.
Dieses Modell passt nur, wenn die Zugriffe dazu passen. Werden etwa Lagerbestände und Preise aus mehreren Diensten sehr häufig geändert, müssen Aktualisierungen, Indizes und Regeln gegen widersprüchliche Daten bewusst gestaltet werden. Das Praxisbeispiel ist deshalb kein Beleg dafür, dass Dokumente grundsätzlich besser sind; es zeigt, wie eine Datenform für einen bestimmten Lese- und Änderungsweg gewählt werden kann. AWS nennt Kataloge, Nutzerprofile und Content-Management-Systeme als typische Einsatzfelder für Dokumentmodelle.AWS: What is NoSQL?
SQL ist eine Sprache zum Abfragen und Bearbeiten von Daten; NoSQL bezeichnet einen Datenbankansatz beziehungsweise verschiedene Datenmodelle. „SQL gegen NoSQL“ verkürzt die Entscheidung daher zu stark. Relationale Datenbanken sind besonders stark, wenn Tabellenbeziehungen, referenzielle Integrität und komplexe Abfragen über viele Datensätze im Zentrum stehen. Oracle weist darauf hin, dass klassische Backoffice-Anwendungen etwa in Finanzwesen, Buchhaltung oder ERP oft auf stark normalisierte Daten angewiesen sind.Oracle: What is NoSQL?
NoSQL-Systeme können dagegen geeignet sein, wenn ein Zugriffsmuster klar ist, Datenstrukturen sich entwickeln oder Verteilung ein wichtiger Teil der Architektur ist. Häufig ist eine Kombination sinnvoll: Ein Dienst nutzt etwa eine relationale Datenbank für verbindliche Geschäftsvorgänge und eine Dokument- oder Schlüssel-Wert-Datenbank für einen Katalog, Sitzungen oder eine schnelle Ansicht. Die Wahl ist eine Architekturentscheidung mit Anforderungen an Datenmodell, Abfragen, Konsistenz, Betrieb und Kosten – kein Glaubenssatz.
Datenbank ist der Oberbegriff für Systeme zur Speicherung und Abfrage von Daten; NoSQL ist eine Gruppe darunter. Dokumentdatenbank ist nur eine NoSQL-Modellfamilie, nicht gleichbedeutend mit allen NoSQL-Systemen. Schemafrei bedeutet nicht, dass Daten ohne Struktur oder Validierung auskommen. Horizontale Skalierung beschreibt das Verteilen auf zusätzliche Rechner; sie ist kein Versprechen, dass jedes System ohne Entwurfsarbeit skaliert. Und SQL ist keine Gegenbezeichnung für eine einzelne Datenbank, sondern eine Abfragesprache, die vor allem mit relationalen Systemen verbunden ist.