Clé naturelle ou clé technique
Une clé naturelle vient du métier (ISBN, code pays) ; une clé technique est un numéro sans signification attribué par le système. Le bon choix dépend de la stabilité de la donnée.
- clé de substitution
- surrogate
- UUID
- auto-incrément
- clé naturelle
Syntaxe
Clé naturelle : livre(isbn PK, titre)Clé technique : client(id_client PK, email, nom) + email UNIQUE id_client = entier auto-incrémenté ou UUIDExemple
client(id_client PK, email, nom) avec email UNIQUE id_client | email | nom 1 | lea.martin@exemple.fr | Martin 2 | k.diallo@exemple.fr | DialloLéa change d'e-mail : une seule cellule modifiée, et lescommandes qui pointent vers id_client = 1 ne bougent pas.Avec email en clé primaire, il faudrait aussi modifiertoutes les clés étrangères qui le recopient.À retenir
- Gardez une clé naturelle quand elle est stable, courte et attribuée par une autorité : ISBN, code ISO d'un pays, code IATA d'un aéroport.
- Un entier auto-incrémenté est compact et rapide à indexer, mais il révèle le volume et l'ordre de création s'il apparaît dans une URL.
- Un UUID se génère partout sans coordination (applications mobiles, systèmes distribués) ; préférez un UUID v7, ordonné dans le temps, à un v4 aléatoire qui disperse les insertions dans l'index.
- Piège : adopter une clé technique en oubliant l'unicité métier. Déclarez toujours UNIQUE sur la clé naturelle (e-mail, numéro SIRET), sinon les doublons passent.
Voir aussi
- Clé primaire (PK)La clé primaire est la colonne, ou le groupe de colonnes, qui identifie chaque ligne sans ambiguïté. Elle vient de l'identifiant du MCD et ne peut être ni vide ni dupliquée.
- Contraintes d'intégritéNOT NULL, UNIQUE, CHECK et les clés étrangères traduisent les règles de gestion dans le SGBD, qui refuse alors les données incohérentes quelle que soit l'application qui les écrit.
- Identifiant relatif → MLDUne entité faible devient une table dont la clé primaire est composée de la clé étrangère vers l'entité forte et de l'identifiant local. Cette clé étrangère ne peut donc jamais être vide.