Définition - Que signifie la clé candidate ?
Une clé candidate est un type spécifique de champ dans une base de données relationnelle qui peut identifier chaque enregistrement unique indépendamment de toute autre donnée.
Les experts décrivent une clé candidate comme n'ayant "aucun attribut redondant" et étant une "représentation minimale d'un tuple" dans une table de base de données relationnelle.
L'une des questions les plus courantes concernant l'utilisation d'une clé candidate est de savoir comment la clé candidate est liée aux super clés et aux clés primaires dans la conception de bases de données.
Definir Tech explique la clé candidate
Clés candidates et clés primaires
La relation entre la clé candidate et la clé primaire est plus facile à expliquer- en gros, une base de données relationnelle peut avoir plus d'une clé candidate, mais une seule de ces clés candidates sera la clé primaire qui sera principalement utilisée pour identifier chaque enregistrement de manière unique.
La meilleure façon de définir des clés candidates est d'utiliser un exemple : la base de données d'une banque est en cours de conception. Pour définir de manière unique le compte de chaque client, une combinaison de la date de naissance du client et d'un numéro séquentiel pour chacun de ses comptes peut être utilisée.
Ainsi, le compte courant de M. Andrew Smith peut être numéroté 120344-1 et son compte d'épargne 120344-2. Une clé candidate vient d'être créée.
Cela peut poser des problèmes.
Que faire si plusieurs personnes ayant la même date de naissance souhaitent ouvrir un compte auprès de la banque ?
En raison de ces pièges potentiels, une option fréquemment utilisée consiste à créer une clé candidate unique. Dans ce cas, la base de données de la banque peut émettre des numéros de compte uniques garantissant d'éviter le problème qui vient d'être mis en évidence. Pour faire bonne mesure, ces numéros de compte peuvent avoir une logique intégrée.
Par exemple, les comptes chèques peuvent commencer par un "C", suivi de l'année et du mois de création, et dans ce mois, d'un numéro séquentiel. Ainsi, le compte courant d'Andrew Smith peut désormais être C-200805-22.
Même sans se référer ailleurs, un caissier peut identifier qu'il s'agissait du 22e compte courant créé en mai 2008. Les comptes d'épargne suivent la même logique, mais avec un "E" au lieu de "C".
Ainsi, si une table de base de données a deux identifiants uniques ou plus, l'administrateur de la base de données ou l'ingénieur en choisira l'un comme clé primaire.
Super clés et clés candidates
L'utilisation de super clés et de clés candidates est plus compliquée.
Essentiellement, une super clé est composée d'un ensemble d'attributs (et par proxy, souvent un ensemble de colonnes de table) qui identifient un enregistrement unique.
La clé candidate identifie également un enregistrement unique, mais est composée d'un champ ou d'une colonne individuelle.
Vous verrez souvent la clé candidate qualifiée de "minimale" d'une super clé.
Par exemple, considérons une installation de fabrication avec deux terminaux, où un seul produit peut être construit sur un terminal donné à un moment donné.
Lorsque la base de données enregistre la création des produits sur une table, en référençant l'heure et le terminal, la super clé, la combinaison de l'heure et du terminal, sera unique pour chaque enregistrement individuel. Cependant, l'heure et le terminal des colonnes individuelles auront des redondances.
Si l'ingénieur de base de données attache une clé candidate à la table composée d'une entrée alphanumérique arbitraire, cette clé candidate fera la même chose que la combinaison d'attributs de super clé de temps et de terminal, avec une seule colonne.
En gardant tout cela à l'esprit, l'utilisation d'une clé candidate peut déterminer le mode d'accès aux enregistrements et la manière dont les sujets de ces enregistrements sont identifiés.
Comme d'autres types de contenu de base de données, les clés candidates peuvent être traitées avec un cryptage par hachage afin d'augmenter la cybersécurité. Le hachage consiste à prendre un champ de chaîne d'origine et à en faire une chaîne plus courte afin de l'abstraire et de le cacher de la vue pour limiter les accès non autorisés.
Les ingénieurs doivent évaluer la possibilité de collisions de hachage et d'autres facteurs limitants dans la façon de hacher ces données - comment remplacer une chaîne plus courte pour un ensemble de données donné afin de rendre le contenu de la table de la base de données moins accessible aux pirates.
L'idée de hachage peut être efficace dans ces conceptions de bases de données relationnelles traditionnelles. Pendant ce temps, la clé candidate agit comme un identifiant unique et un objectif principal de SQL et d'autres requêtes.