Chaque table dans une base de données relationnelle a besoin d'un moyen d'identifier chaque ligne de façon unique. Sans identifiant fiable, vous ne pouvez pas lier des tables, mettre à jour le bon enregistrement ou prévenir les doublons. Cette leçon explique les clés primaires et pourquoi les choisir soigneusement est important.
Qu'est-ce qu'une clé primaire?
Une clé primaire est une colonne (ou combinaison de colonnes) dont la valeur identifie de façon unique chaque ligne dans une table. Deux lignes ne peuvent pas avoir la même valeur de clé primaire, et une colonne de clé primaire ne peut pas être nulle.
La base de données applique cela automatiquement. Si vous essayez d'insérer une ligne avec une valeur de clé primaire qui existe déjà, la base de données la rejette.
Pourquoi les identifiants uniques sont importants
Considérez une table participants. Si deux participants s'appellent tous les deux "Marie Tremblay", comment les distinguer? Si vous mettez à jour un enregistrement, comment savez-vous que vous avez mis à jour le bon? Un identifiant unique résout ce problème.
Clés naturelles vs clés de substitution
Une clé naturelle est un identifiant qui existe déjà dans le monde réel — un numéro d'employé, une plaque d'immatriculation, un code produit. Les clés naturelles fonctionnent bien quand elles sont vraiment uniques, stables et ne changeront jamais.
Une clé de substitution est un identifiant créé par la base de données uniquement à des fins d'identification — généralement un entier auto-incrémenté (1, 2, 3…) ou un code unique généré. Les clés de substitution sont souvent préférées car :
- Elles ne changent jamais, même si les attributs réels de l'enregistrement changent
- Elles ne sont pas liées à des informations sensibles
- Elles sont compactes et efficaces pour lier des tables
Pourquoi les noms sont de mauvais identifiants
Les noms changent. Les personnes se marient, divorcent ou changent légalement de nom. Deux personnes peuvent partager le même nom. Un nom est une description d'une personne, pas un identifiant stable d'un enregistrement de base de données.
Il en va de même pour les adresses, les adresses courriel et les numéros de téléphone — tous peuvent changer avec le temps.
Clés composites
Parfois, aucune colonne unique n'identifie une ligne, mais une combinaison de colonnes le fait. Par exemple, dans une table inscriptions, la combinaison de participant_id et programme_id pourrait identifier de façon unique chaque inscription. C'est ce qu'on appelle une clé composite.
Protéger la signification des identifiants
Les clés primaires sont des identifiants internes de base de données. Elles ne doivent pas être exposées au public. N'utilisez pas d'identifiants émis par le gouvernement (comme les numéros d'assurance sociale) comme clés primaires. Ce sont des informations personnelles sensibles qui ne doivent être stockées que lorsque la loi l'exige, avec des contrôles d'accès appropriés.
Une clé primaire identifie un enregistrement de base de données. Ce n'est pas la même chose que l'identité d'une personne, un identifiant commercial ou un code public. Gardez ces concepts séparés dans votre conception.
Points à retenir
- Une clé primaire identifie de façon unique chaque ligne dans une table et ne peut pas être nulle.
- Les noms, adresses et courriels sont de mauvaises clés primaires car ils changent.
- Les clés de substitution (entiers auto-générés) sont stables, compactes et n'exposent pas d'informations sensibles.
- Les clés composites utilisent plusieurs colonnes ensemble pour former un identifiant unique.
- N'utilisez pas d'identifiants gouvernementaux sensibles comme clés primaires.
- clé primaire base de données expliquée
- clé naturelle versus clé de substitution
- identifiant unique conception base de données
- clé primaire composite SQL