Qu’est-ce que la clé primaire ?
Une clé primaire est une colonne (ou une combinaison de colonnes) spéciale d’une table de base de données relationnelle désignée pour identifier de manière unique chaque enregistrement de la table.
Une clé primaire est utilisée comme identifiant unique pour analyser rapidement les données d’une table. Une table ne peut pas avoir plus d’une clé primaire.
Les principales caractéristiques d’une clé primaire sont les suivantes
- Il doit contenir une valeur unique pour chaque ligne de données.
- Il ne peut pas contenir de valeurs nulles.
- Chaque ligne doit avoir une valeur de clé primaire.
Une clé primaire peut utiliser un ou plusieurs champs déjà présents dans le modèle de données sous-jacent, ou un champ supplémentaire spécifique peut être créé pour être la clé primaire.
Techopedia explique la clé primaire
Le concept de clé primaire est essentiel à l’efficacité d’une base de données relationnelle. Sans la clé primaire et les concepts étroitement liés de clé étrangère, les bases de données relationnelles ne fonctionneraient pas.
En fait, comme une table peut facilement contenir des milliers d’enregistrements (y compris des doublons), une clé primaire est nécessaire pour garantir qu’un enregistrement de la table puisse toujours être identifié de manière unique.
Toutes les clés qui proviennent d’observables et d’attributs réels sont appelées clés primaires naturelles, par opposition aux clés primaires de substitution qui sont, elles, attribuées arbitrairement à chaque enregistrement.
Dans la vie de tous les jours, presque tout le monde a affaire à des clés primaires naturelles, fréquemment mais sans le savoir.
Par exemple, les étudiants se voient régulièrement attribuer un numéro d’identification unique, et tous les citoyens américains ont un numéro de sécurité sociale attribué par le gouvernement et identifiable de manière unique. Les adresses de rue ou les numéros de permis de conduire sont des exemples de clés primaires utilisées pour identifier de manière unique (respectivement) des lieux ou des voitures.
Autre exemple, une base de données doit contenir toutes les données stockées par une banque commerciale. Deux des tables de la base de données sont CUSTOMER_MASTER, qui stocke les données de base et statiques des clients (nom, date de naissance, adresse, numéro de sécurité sociale, etc.) et ACCOUNTS_MASTER, qui stocke diverses données relatives aux comptes bancaires (date de création du compte, type de compte, limites de retrait ou informations correspondantes sur le compte, etc.)
Pour identifier les clients de manière unique, une colonne ou une combinaison de colonnes est sélectionnée pour garantir que deux clients n’ont jamais la même valeur unique. Ainsi, certaines colonnes sont immédiatement éliminées, par exemple le nom de famille et la date de naissance.
La colonne destinée à contenir les numéros de sécurité sociale est un bon candidat pour la clé primaire. Toutefois, certains titulaires de comptes peuvent ne pas avoir de numéro de sécurité sociale, de sorte que la candidature de cette colonne est éliminée.
L’option logique suivante consiste à utiliser une combinaison de colonnes, par exemple en ajoutant le nom de famille à la date de naissance et à l’adresse électronique, ce qui donne une clé primaire longue et encombrante.
La meilleure solution consiste à créer une clé primaire distincte dans une nouvelle colonne nommée CUSTOMER_ID. La base de données génère alors automatiquement un numéro unique chaque fois qu’un client est ajouté, ce qui garantit une identification unique.
Lorsque cette clé est créée, la colonne est désignée comme clé primaire dans le script SQL qui crée la table, et toutes les valeurs nulles sont automatiquement rejetées.
Le numéro de compte associé à chaque CUSTOMER_ID permet de traiter en toute sécurité les requêtes des clients et d’effectuer des recherches rapides (comme pour toute table indexée).
Par exemple, un client peut être invité à indiquer son nom de famille lorsqu’il effectue une recherche auprès d’une banque. Une requête portant sur un nom de famille courant (tel que Smith) est susceptible de renvoyer plusieurs résultats.
Lors de l’interrogation des données, l’utilisation de l’unicité de la clé primaire garantit un seul résultat.