Startseite » Datenbank Lexikon » Key/Value-Datenbanksysteme

Key/Value-Datenbanksysteme

Key/Value-Datenbanksysteme gehören zu den sogenannten NoSQL-Datenbanken. Sie sind bereits seit den 1970-er Jahren im Einsatz und zählen zu den ältesten NoSQL-Datenbanken.

In der Unix-Welt existieren sie seit jeher als traditionelle Embedded-Datenbanken. Key/Value-Datenbanksysteme erfahren im Cloud- und Web 2.0-Zeitalter einen regelrechten Aufschwung.

Dies liegt daran, dass die Datenmengen, vor allem im Hinblick auf soziale Medien und große Online-Datenbanken, extrem ansteigen und im Fokus der Abfrage-Schnelligkeit auf verschiedene Rechnerinstanzen verteilt werden müssen.

Für dieses Szenario eignen sich NoSQL-Datenbanksysteme besonders gut.

Datenmodell einer Key/Value-Datenbank

Das Datenmodell einer Key/Value-Datenbank basiert auf einfachen Schlüssel- und Werteschemata. Jeder Wert (auch Value genannt) enthält Strings, Listen, Sets oder Hashes und wird einem bestimmten Schlüssel zugeordnet. Dieser Schlüssel kann sowohl aus willkürlichen, wie auch aus strukturierten Zeichenketten bestehen.

Hashes funktionieren als Key/Value-Paare. Unter einem Key (Schlüssel) wird ein Hash und ein Value (Wert) gespeichert. Der Hash besteht somit aus zusammengesetzten Werten. Zum Beispiel lautet ein Hash namens „Personendaten“ folgendermaßen:

  • Name – Müller
  • Alter – 26
  • Haarfarbe – blond

Ein Set besteht aus einer Liste von Keys. Zum Beispiel bilden die Keys „Wert1“, „Wert2“, „Wert3“, usw. die Liste „Wertliste“. Innerhalb dieser Liste können die Werte jederzeit ausgetauscht werden. Ein Set lässt keine doppelten Werte zu, Listen hingegen schon.

Vorteile eines Key/Value-Datenbanksystems

Die größten Vorteile sind die Skalierbarkeit und die effiziente und sehr schnelle Datenverarbeitung. Dies ist dem einfach gehaltenem Schema des Datenbanksystems zu verdanken. Systeme ohne Schema oder mit relativ schwachen Schema-Anforderungen werden vermehrt in der Entwicklung benötigt.

Das kommt daher, dass das Schema relationaler Datenbanksysteme, die große Datenmengen im Tera- bis Petabyte-Bereich verwalten, nicht ohne Gefahren verändert werden kann. Eine solche Datenbank müsste für einige Stunden oder länger vom Netz genommen werden.

Das Key/Value System übernimmt einen Teil der Schema-Verantwortung. Im Änderungsfall muss die Datenbank nicht vom Netz genommen werden, es wird stattdessen auf das Modell der Datenversionierung gesetzt. Dies bedeutet, dass zum Beispiel ein neues Feld eingefügt werden kann, während im Hintergrund ein Prozess die Daten konvertiert und in der neuen Feldversion speichert.

Die Benutzer bekommen von dieser Änderung zunächst nichts mit, machen weiterhin ihre Eingaben und sehen das veränderte Schema erst bei der erneuten Anmeldung. Die von ihnen eingetragenen Daten sind im neuen Schema enthalten.

Nachteile eines Key/Value-Datenbanksystems

Da der Zugriff auf einen Datensatz lediglich über einen Schlüssel erfolgt, ist ein bedeutender Nachteil von Key/Value-Datenbanksystemen die eingeschränkte Abfragemöglichkeit.

Um eine schnelle Schreib- und Lesegeschwindigkeit gewährleisten zu können, verzichten viele Key/Value-Systeme auf Indizes und komplexe Suchalgorithmen. Umfangreiche Abfragen können nicht mehr selbst geschrieben werden, hier muss auf die API zurückgegriffen werden.

Dieser Umstand schränkt Entwickler in ihren Möglichkeiten ein.

Weiterführende Artikel

Autor: Markus
3 Bewertungen 1 Stern2 Sterne3 Sterne4 Sterne5 Sterne
Loading...
0