Inhaltsverzeichnis:
Definition - Was bedeutet NoSQL?
NoSQL ist eine Klasse von Datenbankverwaltungssystemen (DBMS), die nicht allen Regeln eines relationalen DBMS entsprechen und kein herkömmliches SQL zum Abfragen von Daten verwenden 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 Datenbankmodell verursacht werden. Viele halten NoSQL für die moderne Datenbank ihrer Wahl, die sich an die Webanforderungen anpasst. Einige bemerkenswerte Implementierungen von NoSQL sind die Cassandra-Datenbank von Facebook, Googles BigTable sowie die SimpleDB und Dynamo von Amazon.
Techopedia erklärt NoSQL
Eine NoSQL-Datenbank folgt nicht unbedingt den strengen Regeln für Transaktionen in relationalen Datenbanken. 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 Grundoperationen Lesen und Schreiben. Lesevorgänge können skaliert werden, indem Daten auf mehrere Maschinen 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 Joins normalerweise langsam und schwer zu implementieren sind. Um die ACID-Eigenschaften beizubehalten, müssen Datenbanken außerdem Daten sperren. Das heißt, wenn ein Benutzer ein Datenelement öffnet, sollte kein anderer Benutzer in der Lage sein, Änderungen an demselben Element vorzunehmen. Diese Einschränkung hat schwerwiegende Auswirkungen auf die Leistung.
Diese Einschränkungen waren in der Vergangenheit kein großes Problem. Mit dem Aufkommen von Social Networking und Big Data waren jedoch eine Reihe von riesigen Datenbanken gezwungen, die Dutzende oder sogar Hunderte von Millionen Kunden auf der ganzen Welt mit mehreren Tausend Lese- und Schreibvorgängen pro Minute zu 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 auf mehrere Server "skalieren" oder verteilen.
NoSQL-Datenbanken konzentrieren sich auf bestimmte Problemklassen - von flexibler in Bezug auf gespeicherte Daten (Dokumentenspeicher) über das Targeting von Anwendungsfällen wie Beziehungen (Diagrammdatenbanken) und das Aggregieren von Daten (Spaltendatenbanken) bis hin zur Vereinfachung der Datenbankidee 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 sind jedoch auch eine relativ neue und noch nicht erprobte Technologie und können keine umfassenden Berichts- und Analysefunktionen für RDBMS bereitstellen.