NoSQL-Datenbank

Zuletzt bearbeitet am 4. August 2023 Gepostet am 28. Mai 2023
Allgemein

NoSQL-Datenbanken (not only SQL) sind eine Gruppe von Datenbanken, die nicht auf dem relationalen Modell basieren und in der Regel besser für unstrukturierte und unregelmäßige Daten geeignet sind. NoSQL-Datenbanken sind flexibler, skalierbarer und leistungsstärker als relationale Datenbanken. Wie der Name „NoSQL“ bereits impliziert, benötigt man für die Verwaltung und Bearbeitung von NoSQL-Datenbanken nicht unbedingt eine SQL-spezifische Zugriffssprache. Zu NoSQL-Datenbanken zählen unter anderem:

  • Key-Value Datenbanken
  • Dokumentenbasierte Datenbanken
  • Graph-Datenbanken

Es gibt noch weitere NoSQL-Datenbanken, die oben aufgezählten werden allerdings am häufigsten verwendet. Im folgenden Text bekommst du nun eine kleine Übersicht darüber, wie diese NoSQL-Datenbanken aufgebaut sind.

Key-Value Datenbanken

In Key-Value Datenbanken werden Daten, wie der Name bereits vermuten lässt, als Schlüssel-Wert-Paare abgespeichert. Jeder Datensatz hat also einen eindeutig zuweisbaren Schlüssel.

Im oben angegebenen Beispiel werden wieder Kunden und deren Bestellungen gespeichert. Im Fall der Key-Value Datenbank können die Informationen beispielsweise so gespeichert werden, dass die jeweiligen Bestellungen direkt im Value des Kunden stehen. Wie genau Du eine Key-Value Datenbank gestalten und aufbauen sollst, lernst Du im Unterricht.

Dokumentenbasierte Datenbanken

In Dokumentenorientierten Datenbanken werden anstelle von Tabellen Dokumente verwendet, um Daten zu speichern. In jedem Dokument sind alle relevanten Informationen zum jeweiligen Datensatz gespeichert. Das Format der Dokumente ist meist JSON (JavaScript Object Notation) oder BSON (Binary JSON).

Im Gegensatz zu relationalen Datenbanken erfordern dokumentenbasierte Datenbanken kein festes Schema und ermöglichen eine flexible Datenmodellierung, da Dokumente leicht geändert oder erweitert werden können, ohne die gesamte Datenbankstruktur zu ändern. Dies kann insbesondere für Anwendungen von Vorteil sein, die sich häufig ändern oder in denen es schwierig ist, ein festes Datenmodell im Voraus zu planen.

Manch einer könnte vermuten, dass Key-Value Datenbanken und dokumentenbasierte Datenbanken die Daten auf die selbe Art und Weise speichern. Es gibt jedoch einige, feine Unterschiede, die sich auf Performance und Zugriff auswirken. Key-Value-Datenbanken speichern Daten z.B. als Schlüssel-Wert-Paare, während dokumentenbasierte Datenbanken Daten als Dokumente speichern. Key-Value-Datenbanken eignen sich daher am besten für schnellen Zugriff auf einfache, strukturierte Daten, während dokumentenbasierte Datenbanken besser für halbstrukturierte oder unstrukturierte Daten geeignet sind.

Möchte man allerdings mehrere komplexe Beziehungen zwischen Daten abbilden, sind dokumentenbasierte Datenbanken nicht wirklich geeignet. In diesen Fällen kann man z.B. auf eine Graph-Datenbank umsteigen.

Graph-Datenbanken

In Graph-Datenbanken werden die gespeicherten Daten als Knoten und Kanten dargestellt. Die Knoten stehen dabei für Objekte oder Dokumente, wohingegen Kanten die verschiedenen Beziehungen zwischen den Objekten oder Dokumenten darstellen, welche in beide Richtungen verlaufen können (z.B. „hat gekauft“, „kennt“, „besitzt“).

Mit Graph-Datenbanken können komplexe Beziehungen zwischen Daten effektiv modelliert und Abfragen dadurch optimiert werden. Dies ist vor allem nützlich für Anwendungen, in denen in erster Linie die Beziehungen zwischen Daten wichtig sind, wie z.B. soziale Netzwerke, Wissensmanagement und E-Commerce-Plattformen.

Im Bezug auf die Bestellungen der Kunden werden die Kunden sowie die Bestellungen nun als Knoten dargestellt. Die Kanten stellen dar, welche Bestellung von welchem Kunden/welcher Kundin bestellt wurde. In diesem einfachen Beispiel ist es nicht wirklich ersichtlich, warum Graph-Datenbanken so hilfreich sind beim Abbilden von komplexen Beziehungen, jedoch soll hier auch nur ein grober Überblick geschaffen werden.

WordPress Cookie Plugin von Real Cookie Banner