• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 20/10/2020

Créez du lien entre vos relations grâce aux clés étrangères

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Nous avons pour le moment une relation qui contient des pommes. C'est bien, mais sachez que dans une base de données, il est très rare de ne trouver qu'une seule table ! Les applications informatiques qui utilisent des bases de données sont en général complexes et nécessitent de nombreuses tables.

Réfléchissons...

En général, les tables d'une base de données ne sont pas indépendantes entre elles, elles sont liées.

Je décide par exemple d'avoir une relation pomme, et également une seconde relation variété destinée à répertorier les différentes variétés de pommes connues. Ces deux relations sont liées entre elles, car une pomme est d'une certaine variété. Il y a donc un lien entre la pomme et sa variété.

Dans le contexte d'un magasin de fruits, on peut dire que le prix d'une pomme dépend de sa variété. Le prix au kilogramme est donc une caractéristique propre à la variété. On aura donc dans la relation variété un attribut prix_au_kilo :

Variete

libellé

prix_au_kilo

maturation

goût

Ariane

3.19

tardive

sucré/acidulé

Gala

3.49

précoce

sucré

Reinette

3.19

mi-saison

sucré

Boskoop

2.99

mi-saison

acidulé

[...]

[...]

[...]

[...]

Si je prends une pomme, et que je veux connaître son prix au kilo, il faudra d'abord que je connaisse sa variété. Ensuite, à partir de sa variété, il faudra que je retrouve dans la table variété la ligne correspondante pour connaître le prix.

Retrouver une ligne dans une table ?!? Ce n'est pas justement le rôle des clés ?

Tout à fait ! Cette question nous amène au paragraphe suivant :

Les clés étrangères

Dans notre relation variété, il y a une clé candidate : l'attribut libellé. Ainsi, si pour chaque ligne de la table pomme nous renseignons le nom de la variété dans une colonne, alors il sera possible, grâce à cette clé, de retrouver le prix au kilo. Voici à quoi pourrait ressembler notre nouvelle table pomme :

Pomme

identifiant

masse

diamètre

couleur

nom_variété

14

142 g

7.3 cm

rouge

Ariane

25

182 g

7.5 cm

rouge

Gala

16

140 g

7.9 cm

rouge

Ariane

[...]

[...]

[...]

[...]

[...]

Dans la table pomme, la colonne nom_variété n'est pas une clé candidate. Cependant, cette colonne fait quand même référence à la clé primaire d'une autre table (la table variété). On dit donc que :

La colonne nom_variété est une clé étrangère référençant la colonne libellé de la table variété.

Vous savez maintenant lier des tables grâce à des clés étrangères !

"nom_varieté" est une clé étrangère qui référence la colonne "libellé" de la table variété.

En résumé

  • Une clé étrangère sert à lier des relations (= des tables) entre elles.

  • On dit qu'une clé étrangère d'une table A référence la clé primaire d'une table B.

  • Une clé étrangère se dit en anglais foreign key (FK)

Exemple de certificat de réussite
Exemple de certificat de réussite