Base de données clé-valeur
Une base de données clé-valeur est une base de données NoSQL qui utilise une méthode clé-valeur pour stocker des données.

Une base de données clé-valeur est un type de base de données NoSQL qui stocke les données sous forme de paires clé-valeur.
Une base de données clé-valeur est un type de NoSQL base de données qui stocke les données sous forme d'une collection de paires clé-valeur où chaque clé unique est associée à une valeur de données spécifique. La vitesse et l'efficacité des bases de données clé-valeur en font un bon choix pour les besoins simples de stockage et de récupération de données lorsque l'accent est mis sur des performances élevées. Leur structure sans schéma permet une flexibilité dans la représentation des données, ce qui les rend adaptées à une grande variété d'applications, des systèmes de mise en cache à l'analyse en temps réel.
Cette page couvre :
- Comment fonctionnent les bases de données clé-valeur
- Fonctionnalités de base de données clé-valeur
- Cas d'utilisation des bases de données clé-valeur
- Avantages et inconvénients des bases de données clé-valeur
- Exemples de bases de données clé-valeur
- Couchbase et le magasin clé-valeur
- Conclusion
Comment fonctionnent les bases de données clé-valeur
Pour illustrer le fonctionnement d'une base de données clé-valeur, nous utiliserons un exemple simple de la base de données clé-valeur Couchbase. Couchbase stocke les données sous forme de documents tels que celui ci-dessous, qui est un document JSON. Le JSON est un format de données populaire car il est facile à lire et à écrire pour les humains comme pour les machines, il est léger et il est bien connu avec un large support.

Dans une base de données clé-valeur, chaque document dans son intégralité est une valeur et possède une clé. C'est ce système de stockage qui fait d'une base de données une base de données clé-valeur. Dans cet exemple, « airline_10 » est la clé et le JSON est la valeur. Les données contenues dans un document peuvent prendre la forme de paires clé-valeur (comme dans cet exemple), mais ce n'est pas obligatoire. Par exemple, les données peuvent être au format XML, binaires ou prendre de nombreuses autres formes de données structurées, semi-structurées ou non structurées.
Fonctionnalités de base de données clé-valeur
Bien que chaque base de données clé-valeur soit unique, elles partagent de nombreuses caractéristiques qui en font, dans l'ensemble, un choix particulièrement intéressant pour de nombreux cas d'utilisation modernes. Parmi les caractéristiques les plus importantes, on peut citer :
Conception sans schéma – L'absence de schéma fixe permet une représentation flexible des données. Les bases de données clé-valeur prennent en charge diverses structures de données au sein d'une même base, ce qui vous permet de faire évoluer facilement vos structures de données au fil du temps.
Modèle de données simple – Grâce à un modèle de données simple, les bases de données clé-valeur sont faciles à utiliser pour répondre à des besoins de base. Les méthodes d'accès aux données sont également assez simples (par exemple : get, replace, remove).
Prise en charge des types de données complexes – Vous pouvez stocker des structures de données complexes et imbriquées en tant que valeurs. Cette fonctionnalité vous permet de représenter divers types de données au sein d'une seule paire clé-valeur, pour une modélisation complète des données.
Prise en charge des clés secondaires – Les clés secondaires vous permettent d'accéder à des valeurs à l'aide de plusieurs clés. Cette fonctionnalité offre une plus grande souplesse dans la récupération des données en élargissant les capacités de requête de votre application et en facilitant la mise en œuvre de modèles d'accès plus variés.
Partitionnement et sharding – La prise en charge du partitionnement et du sharding de données peut améliorer le traitement parallèle, l'équilibrage de charge et la scalabilité. Les bases de données clé-valeur les plus avancées prennent en charge la distribution automatique de votre base de données sur plusieurs centres de données. Couchbase base de données distribuée, par exemple, fournit ce support via le partitionnement automatique.
Réplication – La réplication des données sur plusieurs nœuds garantit la redondance, la haute disponibilité et la tolérance aux pannes, ce qui permet de réduire le risque de perte de données ou d'interruption de service.
Prise en charge d'ACID – ACID (atomicité, cohérence, isolation, durabilité) pour les transactions est un pilier des bases de données relationnelles, garantissant l'intégrité et la fiabilité des données même en cas de défaillances ou d'erreurs du système. Historiquement, ACID a mis du temps à s'imposer dans les bases de données NoSQL car il va à l'encontre de l'avantage de vitesses plus rapides, mais il devient de plus en plus courant. Couchbase, par exemple, prend en charge transactions ACID distribuées sur plusieurs documents à l'échelle sans sacrifier la flexibilité ou la haute disponibilité.
Cas d'utilisation des bases de données clé-valeur
La polyvalence des bases de données clé-valeur en fait une solution idéale pour répondre à un large éventail d'exigences des applications modernes, alliant simplicité, rapidité et évolutivité. Les bases de données clé-valeur sont souvent choisies pour :
Mise en cache
Les bases de données clé-valeur excellent dans les scénarios de mise en cache où l'accès rapide aux données fréquemment utilisées est crucial pour l'optimisation des performances.
Profils d'utilisateurs
Les bases de données clé-valeur constituent une solution rapide et évolutive pour le stockage et la gestion des informations relatives aux utilisateurs, telles que le nom d'utilisateur, l'adresse e-mail et les préférences de l'utilisateur.
Stockage de la session
Les bases de données clé-valeur sont efficaces pour gérer les données de session car elles garantissent un accès et des mises à jour rapides pour les connexions, les authentifications et les interactions.
Analyse en temps réel
Grâce à leur accès rapide aux données, les bases de données clé-valeur sont particulièrement adaptées aux scénarios d'analyse où la rapidité de récupération des données est essentielle. Citons notamment la tarification dynamique, les offres marketing personnalisées et les cotes de crédit en temps réel.
Catalogues de produits
Les bases de données clé-valeur offrent un moyen simple et efficace de gérer les catalogues de produits, en particulier lorsque ceux-ci présentent une grande variété d'attributs différents. La représentation des informations sur les produits sous forme de paires clé-valeur permet des mises à jour flexibles et une consultation rapide pour les applications de commerce électronique.
Avantages et inconvénients des bases de données clé-valeur
Les bases de données relationnelles traditionnelles sont les plus répandues et utilisent le langage de requête le plus courant, le SQL. Les avantages et inconvénients des bases de données clé-valeur sont donc présentés ci-dessous : comparaison avec les bases de données relationnelles et SQL.
Avantages
Simplicité – Les bases de données clé-valeur ont un modèle de données simple qui réduit la complexité de la conception de la base de données et des opérations de requête. Cette simplicité améliore la facilité d'utilisation et de développement.
Haute performance – Les bases de données clé-valeur sont optimisées pour des opérations de lecture et d'écriture rapides, ce qui permet un accès rapide aux données stockées. Cette optimisation est un facteur clé pour offrir des performances globales élevées aux applications ayant des exigences de vitesse strictes.
Évolutivité – Les bases de données clé-valeur offrent évolutivité horizontale en permettant l'ajout de nœuds pour gérer l'augmentation du volume de données et du trafic. Cette évolutivité horizontale facilite et rend plus abordable l'extension d'un système afin de s'adapter à l'évolution des besoins. Couchbase utilise un partitionnement automatique basé sur des clés pour répartir les données de manière homogène au sein d'un cluster, ce qui évite aux développeurs d'avoir à se soucier de la configuration des clés de partitionnement, du partitionnement lui-même ou des points de congestion.
Flexibilité – Une conception sans schéma permet de prendre en charge diverses structures de données au sein d'une même base de données et s'adapte facilement à l'évolution de ces structures. Ces fonctionnalités sont particulièrement utiles lorsque les modèles de données doivent évoluer au fil du temps.
Mise en cache efficace – Les bases de données clé-valeur sont très efficaces pour mise en cache car leur structure simple permet un accès rapide et direct aux données sans structures relationnelles complexes. Les performances globales du système sont améliorées en réduisant la nécessité de récupérer à plusieurs reprises les mêmes données à partir de systèmes de stockage plus lents.
Inconvénients
Capacités de requête limitées – Les bases de données clé-valeur manquent de capacités d'interrogation avancées par rapport aux bases de données relationnelles, ce qui les rend moins adaptées aux scénarios complexes d'interrogation et d'analyse impliquant plusieurs jointures et relations. Couchbase résout ce problème en utilisant SQL++ pour prendre en charge des syntaxes sophistiquées telles que les jointures et les sous-requêtes, et il offre également un accès innovant aux fonctionnalités JSON telles que les objets et tableaux imbriqués.
Défis d'intégrité des données – Garantir l'intégrité des données peut être difficile dans les bases de données clé-valeur, en particulier dans les environnements distribués. Beaucoup n'imposent pas le même niveau de cohérence et d'intégrité référentielle que les bases de données relationnelles traditionnelles. Une approche différente de la modélisation des données, telle que la modélisation de données JSON, peut atténuer ces défis. Voir également notre discussion sur le support ACID dans la section des fonctionnalités ci-dessus.
Courbe d'apprentissage du paradigme NoSQL – S'adapter à NoSQL peut représenter une courbe d'apprentissage intimidante pour les développeurs habitués à SQL et aux modèles de bases de données relationnelles. Couchbase utilise SQL++ afin que les développeurs puissent mettre à profit leurs compétences existantes en SQL pour créer des applications modernes bénéficiant de tous les avantages du format JSON.
Exemples de bases de données clé-valeur
- Redis est une base de données clé-valeur open source fonctionnant entièrement en mémoire, réputée pour sa rapidité et sa polyvalence. Elle prend en charge diverses structures de données telles que les chaînes de caractères, les hachages, les listes et les ensembles. En tant que base de données entièrement en mémoire, Redis est souvent utilisée comme cache en complément d'une autre base de données.
- Amazon DynamoDB est un service de base de données clé-valeur et de documents entièrement géré, fourni par Amazon Web Services (AWS). Il est couramment utilisé pour les applications présentant des charges de travail dynamiques et s'intègre à l'écosystème AWS, ce qui le rend particulièrement adapté aux applications basées sur le cloud.
- Couchbase Il offre une structure de documents JSON flexible qui facilite le stockage et la récupération de données complexes. Il est reconnu pour sa facilité d'évolutivité et l'efficacité de sa distribution des données. Parmi ses fonctionnalités uniques, on peut citer son langage de requête SQL++ et sa capacité à fonctionner à la fois comme base de données de documents, magasin clé-valeur et cache.
Couchbase et le magasin clé-valeur
Couchbase est une base de données NoSQL qui fonctionne à la fois comme un magasin clé-valeur et comme une base de données orientée documents. Son langage de requête basé sur SQL, SQL++, permet aux développeurs de passer facilement des bases de données traditionnelles à Couchbase et de tirer parti de la flexibilité du format JSON pour alimenter les applications modernes de leur entreprise.
Pour le stockage des données, Couchbase organise les données sous forme de paires clé-valeur, et le modèle orienté document de Couchbase permet aux valeurs d'être des documents JSON complexes. Les documents au format JSON peuvent être indexés dans des index secondaires, qui sont des index sur n'importe quelle clé-valeur ou clé de document. Cette flexibilité permet de traiter des données structurées, semi-structurées et non structurées.
Couchbase est optimisé pour hautes performances en lecture et en écriture, ce qui le rend particulièrement adapté aux situations où un accès rapide aux données est essentiel. Il prend en charge l'évolutivité horizontale et gère efficacement l'augmentation du volume de données et du trafic en répartissant les données sur plusieurs nœuds.
Ceci article de blog vous guide à travers un exemple de jeu de données pour vous montrer comment fonctionne le magasin clé-valeur Couchbase.
Conclusion
Les bases de données clé-valeur constituent une alternative moderne aux bases de données relationnelles traditionnelles ; elles offrent de meilleures performances, une meilleure évolutivité et une plus grande flexibilité pour de nombreux cas d'utilisation. Leur conception sans schéma permet d'utiliser des structures de données variées et facilite l'évolution de ces structures au fil du temps. Un modèle de données simple les rend conviviales, tandis que leurs fonctionnalités avancées leur permettent de répondre aux exigences élevées des entreprises.
Bien que les bases de données clé-valeur présentent certains inconvénients par rapport aux bases de données relationnelles, les solutions les plus avancées deviennent rapidement plus sophistiquées et ajoutent des fonctionnalités pour remédier aux limitations antérieures. Couchbase est un exemple de base de données cloud NoSQL distribuée et de magasin clé-valeur leader qui offre polyvalence, performance, évolutivité et valeur pour les applications cloud, mobiles, d'IA et de périphérie.
Pour en savoir plus sur les bases de données clé-valeur et les technologies associées, consultez ces ressources:
Types de bases de données
6 types de modèles de données
Qu'est-ce que Couchbase ?
Comment Couchbase stocke les données
Comprendre le service de données Couchbase
Opérations clé-valeur dans Couchbase
Opérations clé-valeur avec Python
Opérations clé-valeur avec PHP
Opérations CRUD de type clé-valeur dans Couchbase
En savoir plus sur le magasin clé-valeur Couchbase