Je suis un peu confus quant à la signification exacte d'une «clé» en informatique. Je comprends les paires clé-valeur, clés primaires, etc ... Mais je ne trouve pas de définition de ce que le terme "clé" signifie par lui-même.
Pour autant que je sache, cela signifie simplement une donnée. Dans CLRS, les données associées aux nœuds d'arbre sont appelées «clés». Les données pour rechercher une table de hachage sont appelées «clés». Est-ce cela une «clé»?
terminology
TheMax
la source
la source
Réponses:
Dans le sens le plus général, une clé est un élément d'information requis pour récupérer certaines données. Cependant, cette signification se joue différemment selon exactement la situation à laquelle vous faites face.
Dans les contextes que vous mentionnez, une clé est un identifiant unique pour les données complètes utilisées pour les récupérer à partir d'un emplacement dans la structure. Chaque clé est associée à un seul élément, elle peut donc être utilisée pour rechercher un ensemble particulier de données. La structure des données sera généralement organisée de manière à ce que la recherche de la clé soit beaucoup plus efficace qu'une recherche linéaire dans toutes les données. Parfois, la clé fait en fait partie des données et est stockée avec elle (comme les clés primaires dans la base de données); d'autres fois, il est séparé des données elles-mêmes (comme dans une carte de hachage). La structure de données effectuera également souvent un traitement supplémentaire sur la clé (et uniquement la clé) pour prendre en charge son algorithme de recherche efficace (comme dans une carte de hachage, la clé est convertie en code de hachage, ou une base de données indexera les clés primaires à l'aide de un arbre B).
En cryptographie, une clé est utilisée dans un sens plus proche des clés physiques utilisées sur les verrous. Ce sont des éléments de données nécessaires pour obtenir l'original à partir des données chiffrées (pour "déverrouiller" les données, pour ainsi dire).
la source
Une clé dans le contexte des structures de données (comme dans le livre CLRS) est une valeur (souvent un entier) qui est utilisée pour identifier un certain composant d'une structure de données. Souvent, les clés déterminent comment les données sous-jacentes sont stockées ou manipulées. Par exemple, dans les arbres de recherche binaires, nous avons que pour chaque nœud, la clé de ce nœud est plus grande que les clés du sous-arbre de gauche et plus petite que celles du sous-arbre de droite. Cette propriété facilite la recherche d'une clé donnée (ou détermine qu'il n'y a pas de nœud avec une telle clé).
Dans la pratique, nos données «réelles» ne sont souvent pas une clé, mais quelque chose de plus grand et de plus pertinent qu'un seul chiffre. Ces données sont appelées données satellites et peuvent être la plupart du temps ignorées lors des manipulations sur les structures de données, tant que les données satellites se déplacent chaque fois que la clé est déplacée (sinon, vous perdez la trace de vos données).
Le concept de clé est similaire dans le contexte des bases de données, mais il est souvent nécessaire qu'une clé soit unique . Une clé primaire doit être unique, par exemple. Cette exigence est souvent nécessaire dans le contexte des structures de données, mais est parfois faite pour des raisons de simplicité.
En cryptographie, une clé fait généralement référence à un paramètre (souvent secret, mais pas toujours!) Qui est nécessaire pour chiffrer ou déchiffrer avec un algorithme de déchiffrement ou de déchiffrement donné. Les clés utilisées pour chiffrer et déchiffrer doivent être «liées» (en cryptographie symétrique, la nécessité d'être les mêmes) pour que le processus de chiffrement ou de déchiffrement réussisse.
la source