Key Value Database

Key Value Database (zu Deutsch Schlüssel-Werte-Datenbank) ist die Bezeichnung für eine besondere Form der Datenverwaltung in Computersystemen. Sie ist bereits seit den 1970er Jahren im Einsatz und zählt zu den ältesten NoSQL Systemen. Anfänglich führte diese Technologie lange Zeit ein Nischendasein. Doch seit dem Durchbruch der Cloud, Errungenschaften wie Web 2.0 sowie der Big Data Revolution erlebt sie aktuell einen enormen Aufschwung.

Eine herkömmliche relationale Datenbank speichert die Daten in Tabellen. Dabei haben diese eine vordefinierte Datenstruktur. Dadurch ist es nur möglich, Daten eines Gewissen Typs (zum Beispiel einen Text, eine Zahl oder eine Gleitkommazahl) in das entsprechende Feld zu speichern. Dies ermöglicht es die Tabelle für die einzelnen spezifischen Datentypen zu optimieren. Dagegen ist eine Änderung dieser Struktur extrem aufwändig und erfordert im Normalfall, dass man die gesamte Datenbank für Wartungszwecke vom Netz nehmen muss.

Schlüssel und Werte der Key Value Database

Eine Key Value Database verfolgt einen gänzlich anderen Ansatz. Folglich ist bei Schlüssel- und Werteschema der Typ der einzelnen Daten nicht strikt festgelegt. Stattdessen erhält jeder Datensatz einen Hash. Anders ausgedrückt handelt es sich dabei um einen möglichst eindeutigen Schlüssel und einen Wert oder eine Werteliste, die damit verbunden ist. Beispielsweise könnte ein solches Paar der Name als Schlüssel und die Telefonnummer als Wert sein, ähnlich einem Telefonbuch. Ein anderes Beispiel aus der Praxis hierzu wäre die Sozialversicherungsnummer als Schlüssel. Als Werte könnten hierbei Daten wie Name, Anschrift und Telefonnummer stehen.

Skalierbarkeit und Einschränkungen

Der größte Vorteil dieser Technik ist die Skalierbarkeit und die effiziente und sehr schnelle Datenverarbeitung. Folglich ist dies auch der Grund, warum diese Technologie im Big Data Umfeld eine Renaissance erlebt.

Allerdings ist ein Nachteil der Key Value Database ihre eingeschränkte Abfragemöglichkeit. Aufgrund der relativen Unstrukturiertheit der Daten sind Zugriffe auf bestimmte Daten meist sehr aufwändig zu formulieren. Überdies sind im Gegensatz zu herkömmlichen Datenbanken die fehlenden Indizes zur Zugriffsoptimierung ein weiteres Problem. Doch viele dieser Nachteile werden heute aktiv in Angriff genommen. Deshalb stehen bereits etablierte Lösungen zur Verfügung, wie etwa Hive.