Key Value Store : comment les bases de données clés-valeurs fonctionnent-elles ?

Le domaine informatique utilise des bases de données très variées. Les modèles relationnels sont particulièrement appréciés, car ils permettent une bonne mise en réseau des informations. Mais il existe également d'autres modèles qui offrent des avantages particuliers et constituent donc une meilleure alternative dans des cas bien précis selon certaines circonstances : base de données NoSQL, bases de données orientées document, bases de données en colonnes ou bases de données orientées graphe. En outre, il existe par ailleurs ce que l'on appelle les Key Value Databases (bases de données clé-valeur) dont le principe simple offre une performance colossale.

Qu'est-ce qu'une Key Value Store ?

La base de données clé-valeur repose sur un tableau comportant seulement deux colonnes : l'une contenant la valeur, l'autre une clé, un signe d'identification clair. Une valeur peut supporter différents formats, des valeurs simples comme des chaînes ou des entiers, mais aussi des objets complexes qui peuvent apparaître comme valeurs dans la base de données. (La fonction ou l'emplacement de la valeur peut inclure un document par exemple, auquel cas on parle de base de données orientée document.) Il est également possible d'ajouter des références à des fichiers dans la base de données. Des tuples, à savoir des groupes de valeurs, peuvent aussi être appliqués.

Il n’est pas obligatoire que les valeurs d'une base de données soient homogènes. Il est possible d'intégrer différents objets dans la même colonne. Il en va de même pour les signes d'identification.

La plupart du temps, la clé suivra vraisemblablement un schéma spécifique. Mais en principe, ce n'est pas nécessaire. Les chaînes et les entiers peuvent également être disposés selon n'importe quels critères.

Remarque

Les Key Value Stores figurent comme bases de données incluses dans la mémoire (ainsi que dans la mémoire centrale) et comme solutions sur le disque (et sur l'espace disque dur).

Avantages et domaines d'application de la Key Value Database

Des performances élevées et la flexibilité offerte par la modularité des Key Value Stores comptent parmi ses avantages. Ces deux qualités résultent de la simplicité de la structure du modèle. Comme la base de données clé-valeur n'exige ni n'impose aucun schéma homogène, il est possible de procéder à des modifications de la base de données lors de l'exploitation. Un nouveau champ peut être inséré tout en procédant simultanément à des actions sur d'autres entrées.

C'est grâce à la vitesse élevée de ce modèle de base de données et à sa liaison simple des clés et des valeurs : si l'on souhaite consulter des informations, il suffit de saisir la valeur directement sur la clé spécifique. Les données sont directement accessibles. Mais c'est à la fois l'un des inconvénients des Key Value Stores, car aucune autre méthode d'accès n'est véritablement prévue. En revanche, les bases de données relationnelles permettent des requêtes complexes. Le contenu de ces bases de données peut être parcouru selon différents éléments. À l'inverse, une Key Value Store prévoit seulement l'accès à l'aide de la clé. Il faut généralement renoncer à d'autres indices et possibilités de recherche.

Les domaines d'application des Key Value Stores découlent à la fois des avantages ainsi que des contraintes des bases de données. Aussi, lorsque des temps d'accès rapides sont souhaités pour des quantités conséquentes de données, on utilise les bases de données clé-valeur. C'est la raison pour laquelle les domaines d'application classiques sont par exemple les paniers dans les boutiques en ligne ou les données de session. Les informations sont ainsi classées de manière claire et doivent être disponibles dans les plus brefs délais. Pour les grands sites Web très connus, ces bases de données doivent constamment produire de nouvelles entrées et supprimer celles devenues obsolètes. Les bases de données clé-valeur conviennent parfaitement à cette utilisation.

Bases de données clé-valeur connues

Il existe différents systèmes de gestion de base de données (SGBD), reposant sur une Key Value Database.

  • Amazon DynamoDB : le SGBD propriétaire appartient à Amazon Web Services (AWS) et s'utilise également comme base de données orientée document.
  • Berkeley DB : ce SGBD est développé par Oracle et offre des interfaces pour divers langages de programmation.
  • Redis : le projet Open-Source Redis est l'un des SGBD les plus répandus et était déjà utilisé lors d'un stade antérieur de développement d'Instagram et de GitHub.
  • Riak : le SGBD Riak existe en version Open-Source, comme solution professionnelle ou sous la forme de stockage dans le Cloud.
  • Voldemort : le SGBD partagé est utilisé et exploité entre autres par LinkedIn.