Datenbanken

NoSQL-Datenbanken

Illustration eines Laptops mit "NoSQL" auf dem Bildschirm, umgeben von Datenbank-Symbolen, die NoSQL-Datenbanken in einem globalen Netzwerkkontext symbolisieren.

Was sind NoSQL-Datenbanken?

Eine NoSQL-Datenbank (Not Only SQL) speichert Daten auf eine andere Weise als die in relationalen Datenbanken verwendeten tabellarischen Beziehungen. Stattdessen werden in NoSQL-Datenbanken Daten in einer Datenstruktur gespeichert. Beispiele für NoSQL-Datenbankmodelle sind Schlüssel-Wert-Paare, dokumentenorientierte, spaltenorientierte, graphenbasierte, zeitserien- und objektorientierte Datenbanken.

Warum sind NoSQL-Datenbanken wichtig?

Im Gegensatz zu herkömmlichen relationalen Datenbanken benötigen NoSQL-Datenbanken kein festes Schema, was ihnen die Flexibilität und scalability verleiht, große Mengen an unstrukturierten, halbstrukturierten und strukturierten Daten zu verarbeiten. Diese Datenbanken eignen sich gut für Anwendungsfälle, in denen die Datenanforderungen nicht genau definiert sind oder sich die Daten ständig ändern. NoSQL-Datenbanken werden häufig in Webanwendungen, bei der Verarbeitung von big data in Echtzeit und in anderen Szenarien eingesetzt, in denen Flexibilität, scalability und Leistung entscheidend sind.

Wie NoSQL-Datenbanken funktionieren

NoSQL-Datenbanken sind in einzigartiger Weise auf ihre Arbeitsumgebungen zugeschnitten, so dass sie eine Vielzahl unterschiedlicher Stile und Arbeitsabläufe aufweisen können. Sie haben jedoch einige Eigenschaften gemeinsam. Sie lassen sich horizontal skalieren, was bei einer relationalen Datenbank viel schwieriger zu bewerkstelligen ist. NoSQL-Datenbanken sind besonders nützlich, wenn es um operative oder transaktionale Daten geht, und wurden entwickelt, um Arbeitsabläufe zu optimieren und die Benutzerfreundlichkeit zu erhöhen.

Arten von NoSQL-Datenbanken

Im Folgenden finden Sie eine Liste der verschiedenen Arten von NoSQL-Datenbanken und ihrer Verwendung:

Schlüssel-Werte-Paar-Datenbanken

Die Daten werden als Schlüssel und Wertfeld pro Aufzeichnung gespeichert. ZEN ist ein Beispiel für eine Key-Value-Store-Datenbank. Die Anwendungen übermitteln der Datenbank einen Schlüssel, der den entsprechenden Wert des Datenspeichers zurückgibt. Der Wertteil des Aufzeichnung kann ein oder mehrere Attribute oder Felder enthalten, ist also nicht so starr definiert wie Datensätze in einer relationalen Datenbank. Da der Wertteil der Aufzeichnung keinen spezifischen Datentyp hat, kann er flexibel eine durch Kommata getrennte Wertefolge speichern. Diese Einfachheit des Designs macht Key-Value-Datenbanken sehr kompakt, was ideal für eingebettet und IoT ist. Die ZEN Core-Datenbank hat einen Speicherplatz von nur 2 MB.

Dokument-orientierte Datenbanken

Dokumentorientierte Datenbanken verwenden Zeichenketten zum Speichern von Schlüsseln. Der entsprechende Wert ist mit Objekten wie JSON-Strings, XML-Dokumenten, PDF-Dateien, Bildern oder Textdokumenten verknüpft. Dokumente in einer dokumentenorientierten Datenbank können verschachtelte Strukturen, Arrays und Schlüssel-Wert-Paare enthalten, was ein flexibles und dynamisches Schema ermöglicht. Dokumentorientierte Datenbanken werden häufig in Anwendungen wie Content-Management-Systemen, E-Commerce-Plattformen und Anwendungen, die mit Nutzer Inhalten arbeiten, eingesetzt.

Spaltenorientierte Datenbanken

Traditionelle relationale Datenbanken speichern jede Zeile einer Tabelle als komplette Zeile. Spaltenorientierte Datenbanken verwenden einen Spaltenspeicher, so dass jede logische Aufzeichnung als eindeutiger Schlüsselwert und zugehöriges Einzelfeld einer Aufzeichnung gespeichert wird. Eine Aufzeichnung mit drei Feldern, einschließlich des Primärschlüssels, wird als drei verschiedene Spalten gespeichert. Vector von Actian ist ein Beispiel für eine Datenbank, die einen Spaltenspeicher verwendet. Der wichtigste Grund für die Verwendung einer spaltenorientierten Datenbank ist die Leistung.

Nehmen wir eine Aufzeichnung mit 100 Feldern; die Anwendung benötigt hauptsächlich die erste und die letzte Spalte. In diesem Fall muss die zeilenorientierte Datenbank die gesamte Aufzeichnung scannen oder lesen, um zum letzten Feld zu gelangen. Die spaltenorientierte Datenbank holt nur das erste und das letzte Feld der Anfrage ab. Dies erfordert weit weniger Hardwareressourcen. Die Vorteile gehen jedoch weit über das erste Lesen hinaus.

Die meisten Datenbanken zwischenspeichern die am häufigsten angeforderten Datensätze im Speicher in Erwartung weiterer ähnlicher Anfragen. Ein herkömmliches RDBMS müsste die gesamte Zeile der aktiven Aufzeichnung zwischenspeichern. Da die gesamte Zeile relativ groß ist, ist es unwahrscheinlich, dass sie den CPU nutzt, der 100-mal schneller arbeiten kann als RAM. Diese Fähigkeit, den CPU effektiv zu nutzen, ist einer der Hauptgründe, warum spaltenorientierte Datenbanken aus Leistungsgründen gewählt werden.

Graph-basierte Datenbanken

Graphbasierte Datenbanken verwenden ein Datenmodell, das aus Objekten (Knoten) und Beziehungen (Kanten) zu anderen Objekten besteht. Metadaten (Eigenschaften) können weitere Ähnlichkeiten zwischen Objekten aufzeigen und werden oft verwendet, um Entscheidungen über die gemeinsame Speicherung ähnlicher Objekte zu treffen. Einige Graphdatenbanken speichern Knoten, ihre Kanten (Beziehungen) und Eigenschaften (Tags) als JSON-Dokumente.

Graphdatenbanken gibt es vor allem deshalb, weil sie schnell komplexe Beziehungen visualisieren oder grafisch darstellen können, die sich in einer Anfrage kaum ausdrücken lassen. Eine Graphdatenbank könnte beispielsweise aktuelle Filme aufzeichnen und die Zusammenhänge nach Genre, Schauspielern, Studios, Produzenten und anderen Attributen visualisieren. Ähnliche Filme würden auf der Grundlage von Ähnlichkeiten geclustert und mit denselben Beziehungen oder Assoziationen verknüpft werden.

Zeitreihen-Datenbanken

Zeitseriendatenbanken sind eine Klasse von NoSQL-Datenbanken, die für die Erfassung großer Mengen von Aktivitäten konzipiert sind, die abwärts abgetastet und gespeichert werden können. Anwendungen, die verfolgen, wo sich Lieferungen in einer Echtzeit-Logistikumgebung befinden, würden sich gut für eine Zeitseriendatenbank eignen. Jede Aufzeichnung wird aufgezeichnet, mit einem Zeitstempel versehen und zusammen mit zugehörigen Attributen gespeichert, die für Abfragen verwendet werden. Mit einer Zeitseriendatenbank kann eine Anwendung entwickelt werden, die dem Nutzer genau mitteilt, wo sich eine bestimmte Lieferung innerhalb eines einminütigen Zeitfensters befand.

Objektorientierte Datenbanken

Ein objektorientiertes Datenbankmanagementsystem (OODBMS) basiert auf den Grundsätzen der objektorientierten Programmierung. Die Daten werden in Form von Objekten erstellt, modelliert und gespeichert. Dabei handelt es sich um in sich geschlossene Einheiten, die sowohl Daten als auch die Operationen oder Methoden enthalten, die mit diesen Daten durchgeführt werden können. Ein OODBMS eignet sich am besten für Anwendungen mit komplexen Datenbeziehungen, die Persistenz, Unterstützung für verschiedene Datentypen und häufige Schemaänderungen erfordern.

Vor- und Nachteile von NoSQL-Datenbanken

Da NoSQL-Datenbanken auf die Speicherung von Daten Cloud ausgerichtet sind, bieten sie zahlreiche Vorteile. Allerdings gibt es unter bestimmten Umständen potenzielle Nachteile, so dass
relationale Datenbanken besser geeignet sind. Wir haben eine kurze Tabelle mit den Vor- und Nachteilen von NoSQL-Datenbanken zusammengestellt, damit Sie verstehen, wie Ihre Daten behandelt werden sollten.

 

Profis Nachteile
Einfach zu entwickelndes Datenmodell und Schema Weniger Entwickler, Tools und Produkte
Widerstandsfähig gegen Ausfälle und Unterbrechungen Möglicherweise fehlen robuste Sicherheitsmaßnahmen
Optimiert für schnelle Abfragen Nicht geeignet für hochkomplexe Abfragen

Actian und NoSQL-Datenbanken

Actian bietet eine große Auswahl an NoSQL-Datenbanken, um Ihre Bedürfnisse kennenlernen . Erfahren Sie mehr über ZEN, eine führende Wahl für eingebettet und IoT . Vector ist eine spaltenorientierte Datenbank, die Kernkomponente der Actian Data Platform, die vor Ort und in der Cloud läuft. NoSQL ist eine OODBM, die außergewöhnliche Leistung, scalability, Verfügbarkeit und Zuverlässigkeit bietet.

Wichtigste Erkenntnisse

Nosql-Datenbanken