© Ozz Design/Shutterstock.com
Teil 1: Dokumentenbasierte Datenbanken im Überblick: Konzepte und Funktionsweise

Unstrukturiert mit Struktur: NoSQL


Relationale Datenbanken haben lange Zeit den Bereich der Datenverarbeitung dominiert. Die immer weiter steigenden Mengen digital gespeicherter Informationen haben jedoch dazu geführt, dass eine relationale Datenbank für einige Bereiche nicht mehr die optimale Lösung ist. Insbesondere für unstrukturierte Daten sind NoSQL-Datenbanken besser geeignet. Wir geben einen Überblick über Datenmodelle jenseits der Tabellenstruktur.

Denkt man an Daten, assoziiert man damit auch sehr oft eine Speicherung in Tabellenform. Daten gleichen Typs, lediglich mit unterschiedlichen Werten (Inhalten), werden als Datensätze gespeichert und in Tabellen abgelegt. Stehen die Tabellen untereinander über ein Schlüsselkonzept in Beziehung und sind die Tabellenstrukturen normalisiert, haben wir es mit einer relationalen Datenbank zu tun. Tabellen wiederum bestehen aus Spalten und Zeilen für die Datenspeicherung. Diese Form der Datenspeicherung ist ideal, wenn die zu speichernden Daten sich in eine genaue Struktur und Form bringen lassen. Typische Beispiele sind Kundendaten (Name, Vorname, Anschrift, Geburtsdatum, …), Produktdaten (Artikelnummer, Bezeichnung, Preis, …) oder Bestelldaten (Produktnummer, Kundennummer, Anzahl, …). Ähnliche Beispiele lassen sich massenhaft finden. Relationale Datenbanken sind damit für die Speicherung strukturierter Daten ideal. Es wird wenig Speicherplatz benötigt (Vermeidung von Redundanz), und der Zugriff auf einen einzelnen Datensatz ist über einen Primärschlüssel sehr schnell möglich (Kasten: „Relationale Datenbank“).

Die Anforderungen an die Datenhaltung unterliegen jedoch einem Wandel. Im Zeitalter von Mobile Computing, Big Data (Kasten: „Big Data“) und Cloud-Computing haben wir es mit einem immer größer werdenden Aufkommen an Daten zu tun (Abb. 1).

krypczyk_bochkor_unstrukturiert_1.tif_fmt1.jpgAbb. 1: Explosion der Datenmengen als Folge der Digitalisierung [1]

Eine solche Speicherung von Massendaten muss bewältigt werden. Hinzu kommt der Umstand, dass nur ein Bruchteil der vorliegenden Daten in strukturierter Form (Tabellen) vorliegt oder in eine solche Form gebracht werden kann. Die meisten Daten werden vielmehr in unstrukturierter oder semistrukturierter Form vorliegen (Abb. 2).

krypczyk_bochkor_unstrukturiert_2.tif_fmt1.jpgAbb. 2: Strukturierte, semistrukturierte und unstrukturierte Daten

Auch für diese Datenformate muss es einen Weg geben, mit ihnen zu arbeiten, d. h. sie zu speichern, zu lesen, zu ändern und schnell auf sie zuzugreifen. Beispiele für unstrukturierte Daten sind zum Beispiel Texte.

Da die Datenbanksprache SQL (Structured Query Language) eng mit der Arbeitsweise von relationalen Datenbanken verbunden ist, werden andere Datenbankentypen zunächst einmal unter dem Begriff NoSQL-Datenbanken zusammengefasst. Letztere benötigen kein festgelegtes Tabellenschema, vermeiden Joins (Zusammenhänge zwischen Tabellen) und skalieren horizontal. Wann ist es besser eine NoSQL-Datenbank zu verwenden? Gibt es unterschiedliche Ansätze für diese Form der Datenbank? In unserer zweiteiligen Artikelserie gehen wir diesem Thema in Theorie und Praxis auf den Grund. Dieser erste Teil widmet sich der notwendigen Theorie von NoSQL-Datenbanken. In Teil 2 blicken wir dann in die Praxis. Wie kann man mit einer solchen Datenbank arbeiten? Wie funktioniert der Datenzugriff aus PHP?

NoSQL und Datenmodell im Überblick

Der Begriff NoSQL ist ein wenig irreführend, denn das „No“ in NoSQL steht für „Not only SQL“ und nicht für „Not SQL“. Das bedeutet also nicht das Ende der Abfragesprache SQL. Gemeint sind dabei alle Arten von Datenspeicherung, die nicht den relationalen Datenbanken zuzuordnen sind. Durchaus kann im Einzelfall mit der Abfragesprache SQL oder einem ähnlichen Dialekt gearbeitet werden. Ursprünglich stammt der Begriff aus dem Jahr 1998 und wurde durch Carlo Strozzi (IBM) geprägt. Damals bezeichnete der Begriff der NoSQL-Datenbank zwar eine relationale Datenbank, aber eine ohne SQL API. Erst seit dem Jahr 2009 steht NoSQL für „Not only SQL“ und wird für Datenbankkonzepte verwendet, die eine Alternative zum relationalen Modell bilden.

NoSQL-Datenbanken nutzen beispielsweise Objekte, Dokumente, Wertepaare oder Listen und Reihen für die Organisation der Daten. Es existieren keine festgelegten Tabellenschemata. Im Vergleich zu den relationalen Datenbanken sind NoSQL-Datenbanken sehr flexibel einsetzbar und für große Datenmengen gut geeignet. Oft werden die NoSQL-Datenbanken auch als „strukturierte Datenspeicher“ (Structured Storage) bezeichnet. Da NoSQL für mehrere Arten von Datenbanktechnologien steht, kann man diese Art von Datenbanksystemen nach unterschiedlichsten Kriterien klassifizieren. Eine sinnvolle Einteilung ist die Unterscheidung nach dem Datenbankmodell. Die wichtigsten Datenbankmodelle von NoSQL-Datenbanken sind Key-Value-Datenbanksysteme, dokumentenorientierte Datenbanksysteme, Column-Family-Datenbanksysteme und Graphdatenbanken. Wir sehen uns diese Varianten jetzt genauer an.

Key-Value-Datenbanksysteme

In Key-Value-Datenbanksystemen werden die Daten in Paaren gespeichert, die sich aus einem eindeutigen Schlüssel (Key) und einem zugeordneten Wert (Value) zusammensetzen. Die Eindeutigkeit des Schlüssels kann sich auf eine ganze Datenbank oder einen bestimmten Namensraum (Key Space) beziehen. Sowohl beliebig strukturierte als auch semistrukturierte und unstrukturierte Daten können im Value gespeichert werden. Das Datenformat kann ebenso beliebig sein, beispielsweise XML, Textdaten usw. Key-Value-Paare werden durch die Angabe eines Keys oder eines Key-Bereichs aus der Datenbank gelesen. Ein Zugriff innerhalb des Values ist in der Regel nicht möglich, da das Datenbanksystem über keine expliziten Informationen über den Inhalt des Values verfügt. Geeignet sind solche Datenbanksysteme für Anwendungen, bei denen Daten über einen Key aus einer Datenmenge selektiert oder gespeichert werden müssen. Nicht geeignet sind diese Systeme für alle diejenigen Anwendungen, bei denen der Zugriff auf den I...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang