Il ne peut y avoir qu'UNE SEULE clé primaire sur une table, mais elle peut être composée de plusieurs colonnes.
On vérifie alors l'unicité du tuple composé de ces colonnes et non l'unicité de chaque colonne de la clé primaire.
Les tables dont la clé primaire est composée de plusieurs colonnes sont souvent des tables d'association, qui traduisent au niveau du modèle physique ce qui apparait dans le modèle conceptuel comme une relation n-m entre plusieurs tables.
Exemple :
Un élève peut suivre plusieurs cours, chaque cours est suivi par plusieurs élèves.
J'aurai donc trois tables :
Eleve(id_eleve*, description eleve)
Cours(id_cours*, description cours)
Cours_Suivi(id_eleve*, id_cours*) pour l'association entre l'élève et le cours
La table cours_suivi a une clé primaire composée de deux colonnes.
S'il y avait unicité sur l'une de ces deux colonnes, cela signifierait qu'un élève ne peut pas s'inscrire à plusieurs cours ou qu'un cours ne peut pas être suivi par plus d'un élève .
L'unicité sur le tuple signifie qu'un élève ne peut pas être enregistré plusieurs fois pour le même cours.
Partager