Toutes les colonnes ne jouent pas le même rôle dans une table
Il faut être en mesure de désigner de manière univoque une ligne décrivant une entité
On appelle identifiant de la table la colonne qui l’identifie de manière unique
L’identifiant est aussi appelé clé primaire
Reprenons notre exemple précédent en colorant les identifiants (clés primaires) en rouge
Clients
numero
nom
email
rue
codePostal
ville
telephone
1
Zoé Prevost
prevost@noos.fr
27, avenue Susan Guillou
90385
Chevalier
0776059929
2
Vincent Bouvier
bouvier@noos.fr
53, rue Emmanuelle Monnier
02510
Lombard-sur-Leleu
+33 1 44 68 49 74
3
Stéphane Bonneau
bonneau@gmail.com
39, chemin de Petitjean
91007
Becker
+33 6 75 56 96 18
4
Gabriel Lemoine
lemoine@wanadoo.fr
56, chemin de Perrier
67557
Deschamps-la-Forêt
0568740044
5
Alphonse Boutin
boutin@tele2.fr
66, rue Barbe
05229
DupontVille
+33 3 30 60 12 99
Commandes
numero
numeroClient
dateCommande
statut
1
4
2024-07-16
annulée
2
1
2024-09-08
annulée
3
2
2024-08-05
livrée
4
2
2024-07-06
livrée
5
2
2024-07-29
en cours
Produits
numero
nom
prix
stock
1
T-shirt
42
403
2
Pantalon
50
439
3
Chaussures
46
195
4
Casquette
18
437
5
Sac à dos
48
499
Details
numeroCommande
numeroProduit
quantite
2
3
1
2
4
3
2
5
3
3
1
3
3
2
3
4
1
3
4
3
2
5
1
2
5
3
1
5
4
2
Le terme anglais de clé primaire est primary key, souvent écrit PK
Toutes les tables possèdent un identifiant primaire qui peut être composite (plusieurs colonnes)
Toutes les entités d’une table possèdent au moins un identifiant
Pour jouer son rôle d’identification, l’identifiant doit être unique
Cette propriété s’appelle contrainte d’unicité
Elle est garantie par le SGBD au moment des ajouts dans la table
Les identifiants doivent être renseignés (non nuls)
Les clés étrangères
Exemples (PK en rouge, FK en vert) :
Commandes
numero
numeroClient
dateCommande
statut
1
4
2024-07-16
annulée
2
1
2024-09-08
annulée
3
2
2024-08-05
livrée
4
2
2024-07-06
livrée
5
2
2024-07-29
en cours
Details
numeroCommande
numeroProduit
quantite
3
1
3
2
5
3
5
3
1
2
3
1
5
1
2
4
3
2
4
1
3
5
4
2
2
4
3
3
2
3
Dans la table Détails, les colonnes numeroCommande et numeroProduit font références aux tables Commandes et Produits
Ces deux colonnes forment aussi la clé primaire de la table Détails.
Contrainte référentielle
Il est nécessaire que l’ensemble des valeurs d’une clé étrangère soit un sous-ensemble des valeurs de l’identifiant cible (autrement dit de la clé primaire ciblée par la clé étrangère)
Cette contrainte s’appelle contrainte référentielle
Par exemple, on ne pourrait pas créer une commande pour un numero de client qui n’existe pas
Conclusions
Les clés primaires et étrangères permettent d’assurer l’intégrité des bases de données relationnelles
Elles définissent des contraintes d’intégrité, qui permettront aux SGBD de détecter des erreurs lors des opérations sur la base
Ce sont ces clés qui permettent de créer des relations entre les tables
Les clés étrangères font référence aux clés primaires d’autres tables