Im IT-Bereich werden die un­ter­schied­lichs­ten Da­ten­ban­ken verwendet. Besonders beliebt sind re­la­tio­na­le Modelle, da sie eine gute Ver­net­zung der In­for­ma­tio­nen er­mög­li­chen. Aber es gibt auch noch andere Typen, die spezielle Vorteile bieten und deshalb in be­stimm­ten Si­tua­tio­nen unter Umständen eine bessere Wahl sind: NoSQL-Da­ten­ban­ken, do­ku­men­ten­ori­en­tier­te Da­ten­ban­ken, spal­ten­ori­en­tier­te Da­ten­ban­ken oder Graph­da­ten­ban­ken. Daneben gibt es aber auch noch die so­ge­nann­te Key-Value-Database: Bei ihnen führt ein simples Prinzip zu enormer Leistung.

Was ist ein Key-Value-Store?

Die Schlüssel-Werte-Datenbank basiert auf einer Tabelle mit nur zwei Spalten: In der einen befindet sich der Wert, die andere be­inhal­tet einen Schlüssel, ein ein­deu­ti­ges Iden­ti­fi­ka­ti­ons­merk­mal. Ein Wert kann un­ter­schied­li­che Formen einnehmen: So sind ganz einfache Werte wie Strings oder Integer möglich, aber auch komplexe Objekte können als Werte in der Datenbank auf­tau­chen. (Die Funktion bzw. den Platz des Wertes kann bei­spiels­wei­se auch ein Dokument einnehmen, wobei man dann von einer do­ku­men­ten­ori­en­tier­ten Datenbank spricht.) Auch Re­fe­ren­zen auf Dateien lassen sich in die Datenbank einfügen. Ebenfalls sind Tupel, also Samm­lun­gen von Werten, umsetzbar.

Die Werte einer Datenbank müssen nicht ein­heit­lich sein. Es ist möglich, un­ter­schied­li­che Objekte in derselben Spalte un­ter­zu­brin­gen. Das gleiche gilt für die Iden­ti­fi­ka­ti­ons­merk­ma­le. In den meisten Fällen wird der Schlüssel ver­mut­lich einem be­stimm­ten Schema folgen. Doch das ist prin­zi­pi­ell nicht nötig. Strings und Integer können auch hier nach be­lie­bi­gen Kriterien aufgebaut sein.

Fakt

Key-Value-Stores kommen als In-Memory-Da­ten­ban­ken (also im Ar­beits­spei­cher) und als On-Disk-Lösungen (also im Fest­plat­ten­spei­cher) vor.

Vorteile und Ein­satz­ge­bie­te der Key-Value-Database

Die Vorteile der Schlüssel-Werte-Da­ten­ban­ken sind die hohe Per­for­manz und die flexible Ska­lier­bar­keit. Beides re­sul­tiert aus der einfachen Struktur des Modells. Da der Key-Value-Store kein ein­heit­li­ches Schema verlangt oder vorgibt, lassen sich Än­de­run­gen an der Datenbank im laufenden Betrieb vornehmen. So kann man ein neues Feld einführen, während gleich­zei­tig Aktionen in anderen Einträgen erfolgen.

Die hohe Ge­schwin­dig­keit er­mög­licht dies Da­ten­bank­mo­dell durch seine einfache Ver­bin­dung von Schlüssel und Wert: Möchte man In­for­ma­tio­nen abrufen, greift man auf den Wert direkt über den spe­zi­fi­schen Schlüssel zu. Die Daten liegen direkt vor. Das ist zugleich aber auch einer der Nachteile des Key-Value-Stores, denn eine andere Zu­griffs­me­tho­de ist ei­gent­lich nicht vor­ge­se­hen. Ins­be­son­de­re re­la­tio­na­le Da­ten­ban­ken lassen hingegen auch komplexe Abfragen zu. Der Inhalt solcher Da­ten­ban­ken kann unter ver­schie­de­nen Aspekten durch­sucht werden. In einem Key-Value-Store ist im Gegensatz dazu nur der Zugriff über den Schlüssel ein­ge­plant. Auf weitere Indizes und Such­mög­lich­kei­ten muss man in der Regel ver­zich­ten.

Ein­satz­ge­bie­te von Key-Value-Stores ergeben sich sowohl aus den Vorteilen als auch den Ein­schrän­kun­gen der Da­ten­ban­ken. Immer dann, wenn schnelle Zu­griffs­zei­ten bei großen Da­ten­men­gen gewünscht sind, kommen Schlüssel-Werte-Da­ten­ban­ken zum Einsatz. Typische Ein­satz­ge­bie­te sind aus diesem Grund Wa­ren­kör­be in On­line­shops oder Session-Daten. In­for­ma­tio­nen sind hierbei klar zu­ge­ord­net und müssen in kürzester Zeit verfügbar sein. Bei großen und bekannten Websites müssen diese Da­ten­ban­ken ständig neue Einträge erstellen und veraltete wieder löschen. Schlüssel-Werte-Da­ten­ban­ken sind dafür perfekt geeignet.

Bekannte Schlüssel-Werte-Da­ten­ban­ken

Es gibt in­zwi­schen ver­schie­de­ne Da­ten­bank­ma­nage­ment­sys­te­me (DBMS), die auf einer Key-Value-Database basieren.

  • Amazon DynamoDB: Das pro­prie­tä­re DBMS gehört zu den Amazon Web Services (AWS) und lässt sich auch als do­ku­men­ten­ori­en­tier­te Datenbank verwenden.
  • Berkeley DB: Dieses DBMS wird von Oracle ent­wi­ckelt und bietet Schnitt­stel­len für un­ter­schied­lichs­te Pro­gram­mier­spra­chen.
  • Redis: Das Open-Source-Projekt Redis ist eines der am häu­figs­ten ein­ge­setz­ten DBMS und wurde bereits in einem frühen Stadium von Instagram und GitHub verwendet.
  • Riak: Das DBMS Riak gibt es in einer Open-Source-Variante, als En­ter­pri­se-Lösung oder in Form eines Cloud-Speichers.
  • Voldemort: Das verteilte DBMS wird unter anderem von LinkedIn verwendet und vor­an­ge­trie­ben.
Zum Hauptmenü