NoSQL

Definition - Was bedeutet NoSQL?

NoSQL ist eine Klasse von Datenbankverwaltungssystemen (DBMS), die nicht alle Regeln eines relationalen DBMS befolgen und mit herkömmlichem SQL keine Daten abfragen können. Der Begriff ist etwas irreführend, wenn er als "Kein SQL" interpretiert wird, und die meisten übersetzen ihn als "Nicht nur SQL", da dieser Datenbanktyp im Allgemeinen kein Ersatz ist, sondern eine ergänzende Ergänzung zu RDBMS und SQL.

NoSQL-basierte Systeme werden normalerweise in sehr großen Datenbanken verwendet, die besonders anfällig für Leistungsprobleme sind, die durch die Einschränkungen von SQL und das relationale Modell von Datenbanken verursacht werden. Viele betrachten NoSQL als die moderne Datenbank ihrer Wahl, die mit den Webanforderungen skaliert. Einige bemerkenswerte Implementierungen von NoSQL sind die Cassandra-Datenbank von Facebook, BigTable von Google sowie SimpleDB und Dynamo von Amazon.

Technische.me erklärt NoSQL

Eine NoSQL-Datenbank folgt nicht unbedingt den strengen Regeln, die Transaktionen in relationalen Datenbanken regeln. Diese verletzten Regeln sind unter dem Akronym ACID (Atomicity, Consistency, Integrity, Durability) bekannt. Beispielsweise verwenden NoSQL-Datenbanken keine festen Schemastrukturen und SQL-Joins.

In einem herkömmlichen RDBMS sind die grundlegenden Operationen Lesen und Schreiben. Lesevorgänge können skaliert werden, indem Daten auf mehrere Computer repliziert werden, wodurch Leseanforderungen ausgeglichen werden. Dies wirkt sich jedoch auf Schreibvorgänge aus, da die Datenkonsistenz beibehalten werden muss. Nur Schreibvorgänge können durch Partitionieren der Daten skaliert werden. Dies wirkt sich auf Lesevorgänge aus, da verteilte Verknüpfungen normalerweise langsam und schwer zu implementieren sind. Um die ACID-Eigenschaften beizubehalten, müssen Datenbanken außerdem Daten sperren. Dies bedeutet, dass beim Öffnen eines Datenelements durch einen Benutzer kein anderer Benutzer Änderungen an demselben Element vornehmen kann. Diese Einschränkung hat schwerwiegende Auswirkungen auf die Leistung.

Diese Einschränkungen waren in der Vergangenheit kein großes Problem. Mit dem Aufkommen von sozialen Netzwerken und Big Data mussten jedoch eine Reihe massiver Datenbanken die zehn oder sogar Hunderte Millionen Kunden auf der ganzen Welt mit mehreren tausend Lese- und Schreibvorgängen pro Minute bedienen. Herkömmliche RDBMS erfüllen diese Anforderung einfach nicht, da sie nur die Ressourcen auf einem zentralen Server "skalieren" oder erhöhen können. Andererseits kann eine NoSQL-Implementierung die Datenbanklast "skalieren" oder auf mehrere Server verteilen.

NoSQL-Datenbanken konzentrieren sich auf bestimmte Problemklassen - von der Flexibilität bei gespeicherten Daten (Dokumentenspeicher) über die Ausrichtung auf Anwendungsfälle wie Beziehungen (Diagrammdatenbanken) und das Aggregieren von Daten (Spaltendatenbanken) bis hin zur Vereinfachung der Idee einer Datenbank bis hin zu etwas, das einen Wert speichert (Schlüssel / Wert speichert).

NoSQL-Datenbanken bieten die Vorteile einer schnellen Skalierbarkeit, einer viel besseren Leistung und einer einfacheren Struktur im Vergleich zu RDBMS. Sie leiden jedoch auch unter einer relativ neuen und unbewiesenen Technologie und können die umfassenden Berichts- und Analysefunktionen von RDBMS nicht bereitstellen.

Diese Definition wurde im Kontext der Datenbank geschrieben