NoSQL (not only SQL)

NoSQL (Not-only SQL) ist ein Sammelbegriff für Datenbanken ohne relationale Struktur. Der Begriff wurde 1998 zum ersten Mal verwendet.


NoSQL-Datenbanken, viele davon sind Opensource-Projekte, ermöglichen eine nicht-relationale Datenspeicherung mit flexiblen Tabellenformaten oder mit grafischen Knotenstrukturen. Da zusätzliche Server durch Scale-out hinzugefügt werden können, bieten sie eine besonders hohe Skalierbarkeit. Neben einer günstigen Verarbeitung großer Datenmengen erhält der Anwender auch eine hohe Ausfallsicherheit und Systemverfügbarkeit.

Zu den Varianten der NoSQL-Datenbanken gehören Key-Value-Datenbanken, Large-Column-Datenbanken, dokumentenorientierte und Graph-Datenbanken.

Key-Value-Datenbanken speichern Daten unter einem Schlüssel. Obwohl hoch zu skalieren, bieten diese Datenbanken nur eingeschränkte Suchmöglichkeiten. Dagegen bietet das In-Memory Computing (IMC) eine hohe Rechengeschwindigkeit durch die ständige Datenhaltung im Arbeitsspeicher, während die On-Disc-Versionen die Daten vor der Verarbeitung auf einem Datenspeicher ablegen.

Large-Column-Datenbanken verfügen über mehrere Tabellen mit vielen Spalten und lassen sich hoch skalieren, allerdings werden keine Beziehungen zwischen den Tabellen hergestellt.

Dokumentenorientierte Datenbanken wie Apache CouchDB speichern Dokumente in Javascript Object Notation (JSON), allerdings ohne Datenschema und in einer beliebigen Struktur. Die Einträge von beliebiger Länge lassen sich auf Basis der Dokumenteninhalte aufrufen.

Graph-Datenbanken wie Neo4j bilden die Daten nicht in Tabellen, sondern als Graphen ab und ermöglichen Zugriff darauf. Während eine SQL-Datenbank die Beziehung zwischen verschiedenen Elementen nur mit hohem Aufwand errechnen kann, stellen Graph-Datenbanken die gespeicherten Daten als Knotenpunkte sowie die Beziehungen zwischen diesen Knoten dar.

Während relationale Datenbanken mehrere Tabellen und Datensätze übergreifend verarbeiten, bieten NoSQL-Lösungen vor allem eine hohe Skalierbarkeit. NoSQL bedeutet keine Abkehr vom relationale Datenmodell der Structured Query Language (SQL), sondern eine Ergänzung in Abhängigkeit vom Anwendungsumfeld. Dabei empfehlen sich NoSQL-Systeme zum flexiblen Umgang mit variablen Daten, zum Abbilden von Beziehungen oder zur Reduktion einer Datenbank auf einen Behälter für die Schlüsselwerte.

Informationen zum Artikel
Deutsch:
Englisch: not only SQL - NoSQL
Veröffentlicht: 28.04.2019
Wörter: 305
Tags: #Datenbanken
Links: Apache, ASP (Arbeitsspeicher), Aufwand, Ausfallsicherheit, Daten