• 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 03/09/2019

Comprendre les clés primaires

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

Dans le chapitre précédent, vous avez vu comment définir des relations entre les instances de différentes classes.

Vous vous rappelez sûrement qu'à une instance de classe correspond un tuple (une ligne) dans la table.

Afin de pouvoir relier ces tuples, il faut bien les identifier de manière unique.

Si je reprends la table contenant les informations sur un groupe d'amis que je vous donnais en exemple dans le premier chapitre :

prenom

nom

couleur_yeux

Chandler

Bing

bleu

Phoebe

Buffay

vert

Monica

Geller

bleu

Ross

Geller

marron

Rachel

Green

bleu

Joey

Tribbiani

marron

Phoebe

Abbott

bleu

Vous remarquez que pour identifier un tuple, je ne peux me baser :

  • ni sur le prénom : Phoebe Buffay et Phoebe Abbott ont le même prénom

  • ni sur le nom : Monica Geller et Ross Geller ont le même nom

  • et encore moins sur la couleur des yeux... !

L'attribut id

Dans ce cas, afin de vous assurer de pouvoir identifier un tuple de manière unique, il y a deux solutions :

  1. identifier un tuple par le nom  ET le prénom

  2. ajouter un attribut (une colonne) réservé à accueillir un identifiant unique

J'ajoute donc un attribut spécifique id dans la table Ami :

id

prenom

nom

couleur_yeux

1

Chandler

Bing

bleu

2

Phoebe

Buffay

vert

3

Monica

Geller

bleu

4

Ross

Geller

marron

5

Rachel

Green

bleu

6

Joey

Tribbiani

marron

7

Phoebe

Abbott

bleu

Cet attribut ne représente rien de concret, il ne sert que d'identifiant unique. Vous pouvez l'appeler comme vous le souhaitez, mais en général, il est nommé id ou code. Parfois, on ajoute le nom de la table en préfixe (ami_id).

Je n'ai désormais plus de problème pour identifier à coup sûr un ami de manière unique !

Lors de la création de la table dans la base de données, cet attribut spécifique sera indiqué comme l'identifiant des tuples de la table : c'est la clé primaire, ou primary key (PK) en anglais.

Grâce à cette configuration, la base de données veillera à ce qu'il n'y ait aucun doublon dans cette colonne. Il me sera impossible d'ajouter deux tuples ayant la même valeur dans l'attribut id.

La clé primaire (PK)

Dans le modèle physique de données (MPD), la clé primaire est située dans la partie du milieu et porte l'indication PK :

Modèle physique de données ‒ Table « ami »
Modèle physique de données ‒ Table « ami »

Unique et constante

Afin d'assurer la cohérence du modèle relationnel, la clé primaire, doit ‒ vous l'aurez compris ‒ être unique mais elle doit aussi ne jamais changer.

Une colonne unique signifie que la base de données ne vous laissera pas créer de doublon dans cette colonne : aucun tuple ne peut avoir la même valeur qu'un autre tuple pour l'attribut contenu dans cette colonne.

Ainsi, un attribut email dans une table utilisateur est unique, mais l'adresse email peut aussi changer au cours de temps. Cet attribut ne devra donc pas être utilisé en tant que clé primaire.

Servant de référence

La clé primaire (PK) sert d'identifiant pour chaque tuple.

À quoi va bien servir cet identifiant ?

Rappelez-vous, au début de ce chapitre, je vous disais qu'avant de faire un lien entre les tuples de différentes tables (ou instances de classes), il fallait pouvoir les identifier de manière unique et certaine.

C'est ce que fait la clé primaire.

Et c'est cette clé qui va servir de référence pour relier les tuples de la table à ceux d'une autre table !

Tout se tient, et nous allons voir ça ensemble dans le chapitre suivant.

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