Aller au contenu

UGA - MIASHS - S7 - BDD - Pierre Blarre

Identifiants et clés étrangères

Icône Présentation
1 / 1

Identifiants

  • 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
numeronomemailruecodePostalvilletelephone
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
numeronumeroClientdateCommandestatut
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
numeronomprixstock
1 T-shirt 42 403
2 Pantalon 50 439
3 Chaussures 46 195
4 Casquette 18 437
5 Sac à dos 48 499
Details
numeroCommandenumeroProduitquantite
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
numeronumeroClientdateCommandestatut
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
numeroCommandenumeroProduitquantite
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
  • Les lignes d’une table sont distinctes