Eine als NoSQL bekannte Datenbankverwaltungsstrategie kann mit einer Vielzahl von Datenmodellen arbeiten, darunter Schlüssel–Wert-, Dokument-, Spalten– und Graphenformate. Im Allgemeinen ist eine NoSQL–Datenbank verteilt, nicht–relational, flexibel und skalierbar. Im Gegensatz zur üblichen ACID–Transaktionskonsistenz (Atomizität, Konsistenz, Isolation und Dauerhaftigkeit) relationaler und SQL–Datenbanken sind die Abwesenheit eines Datenbankschemas, Datenclustering, Unterstützung für Replikation und schliesslich Konsistenz weitere häufige Merkmale von NoSQL–Datenbanken. Zahlreiche NoSQL–Datensatzframeworks sind zudem Open Source.
Am Anfang bedeutete der Begriff „NoSQL„, dass SQL nicht als API zum Zugriff auf Daten verwendet wurde. Viele NoSQL–Datenbanken fügten jedoch aufgrund ihrer weit verbreiteten Verwendung und Nutzbarkeit SQL–Unterstützung hinzu. Es ist mittlerweile allgemein bekannt, dass der Akronym „Not Only SQL„ für „NoSQL„ steht.
NoSQL-Datenbanksysteme gibt es in vier gängigen Varianten. Zwischen den einzelnen NoSQL-Typen gibt es erhebliche Unterschiede, die sich aus den verschiedenen Datenmodellen ergeben, die sie verwenden.
Ein „Dokument“ ist die zentrale Idee eines Dokumentenspeichers. Alle dokumentenorientierten Datenbanken gehen davon aus, dass die Daten (oder Informationen) in einigen Standardformaten oder -kodierungen gekapselt und verschlüsselt sind, auch wenn die Einzelheiten dieser Definition je nach Datenbank variieren.XML, YAML und JSON sind gängige Codierungen, ebenso wie Binärformate wie BSON. In der Datenbank wird jedes Dokument durch einen einzigen Schlüssel identifiziert, der dieses Dokument kennzeichnet. Ein weiteres Merkmal einer dokumentorientierten Datenbank ist eine API oder Abfragesprache zum Abrufen von Dokumenten auf der Grundlage ihres Inhalts. Couchbase Server, MongoDB und MarkLogic sind allesamt Beispiele für Dokumentendatenbanken.
Verschiedene Implementierungen bieten unterschiedliche Möglichkeiten, Dokumente zu organisieren und/oder zu gruppieren:
Mit Hilfe von Nodes, die Zeilen in einer relationalen Datenbank ähneln, und Edges, die Verbindungen zwischen Nodes darstellen, werden Daten in Graphendatenspeichern organisiert. Da das Graphensystem die Beziehungen zwischen den Knoten speichert, sind umfassendere Darstellungen der Datenbeziehungen möglich. Ausserdem ist das Graphdatenmodell im Gegensatz zu relationalen Modellen, die auf starren Schemas beruhen, anpassungsfähig an Nutzung und Zeit. Systeme wie Reservierungssysteme, Social-Media-Plattformen und Customer Relationship Management nutzen Graphdatenbanken, um Beziehungen abzubilden. AllegroGraph, IBM Graph und Neo4j sind allesamt Beispiele für Graphdatenbanken.
Hauptmerkmale der Graphdatenbank:
Diese Systeme, die auch als Key-Value-Datenbanken bezeichnet werden, verwenden ein einfaches Datenmodell, um einen eindeutigen Key mit einem zugehörigen Wert zu verknüpfen. Mit Hilfe dieses einfachen Modells können Anwendungen entwickelt werden, die sowohl hoch skalierbar als auch effizient sind. Für die Session-Verwaltung und die Zwischenspeicherung in Webanwendungen, wie z. B. die Verwaltung der Warenkorb-Daten von Online-Shoppern oder die Verwaltung der Sessions von Spielern in Multiplayer-Spielen, sind Key-Value-Datenbanken Die Ausrichtung der Implementierungen für die Arbeit mit RAM, Solid-State-Laufwerken oder Festplattenlaufwerken ist unterschiedlich. Aerospike, DynamoDB, Redis und Riak sind allesamt Beispiele für bekannte Key-Value-Datenbanken.
Ein Key-Value-Store ist wie eine relationale Datenbank mit nur zwei Spalten, nämlich dem Key und dem Value.
Hauptmerkmale des Key-Value-Stores:
Diese Datensätze nutzen natürliche „tables“, „sections“ und „lines“ wie soziale Datensatztabellen, jedoch können die Spaltennamen und die Organisation von einer Spalte zur anderen in einer einzelnen Tabelle variieren. Jede „section“ wird auch einzeln auf einer Ebene gespeichert. Anstelle der üblichen zeilenorientierten Speicherung ist ein Wide-Segment-Speicher optimal, wenn man Daten nach Sektionen abfragt. Typische Anwendungen, in denen Wide-Segment-Stores erfolgreich sein können, sind Empfehlungsmotoren, Inventare, Betrugserkennung und Ereignisprotokollierung. Accumulo, Amazon SimpleDB, Cassandra, HBase und Hypertable sind Beispiele für Wide-Segment-Stores.
Columnar orientierte Datenbanken sind dazu entworfen, Daten effizienter zu lesen und die Daten schneller abzurufen. Eine Spaltenorientierte Datenbank wird verwendets, um eine grosse Menge an Daten zu speichern. Wichtige Merkmale einer spaltenorientierten Datenbank:
SQL-Datenbanken sind weit verbreitet, während NoSQL-Datensätze für bestimmte Anwendungsfälle entworfen wurden. Die grundlegenden Unterschiede zwischen NoSQL und SQL können in den folgenden fünf Kategorien zusammengefasst werden: Programmierschnittstelle, Datenmodell, Musteranforderung, Flexibilität und Datenintegrität. Jeder bietet einen anderen Ansatz für diese Aspekte der Datenspeicherung und -wiederherstellung.
https://www.techtarget.com/searchdatamanagement/definition/NoSQL-Not-Only-SQL
https://www.geeksforgeeks.org/introduction-to-nosql/
https://en.wikipedia.org/wiki/NoSQL
https://matob.web.id/random/technology/nosql/
https://hostingdata.co.uk/nosql-database/