Une contrainte d'intégrité : la clé
Concernant les contraintes d'intégrité, le principe de base est la clé d'une table.
Définition : Clé primaire
La clé primaire d'une table est un ensemble d'attributs (souvent un seul attribut). Une combinaison de valeurs de ces attributs détermine au plus un n-uplet de la table. En d'autres termes, deux n-uplets de la table ne peuvent avoir la même projection sur ces attributs. Une table peut avoir plusieurs clés. On dira d'une clé d'une table T qu'elle est une clé primaire si elle est utilisée dans d'autres tables pour identifier des n-uplets de T. (Les autres clés seront dites clés candidates.)
Définition : Clé étrangère
On appelle clé étrangère un ensemble d'attributs d'une table \(T_2\) faisant référence à la clé primaire de \(T_1\).
Exemple :
Si on se réfère à l'exemple de schéma donné ci-dessous, on voit que la table Coordonnées a comme clé primaire l'attribut Salle. Cet attribut devient une clé étrangère dans la table Séance, référençant la table Coordonnées. Il faut noter que contrairement à ce qu'on pourrait penser, l'attribut Titre n'est pas une clé primaire de la table Film, puisque sa valuation n'est pas unique sur l'ensemble des n-uplets de la table. Ainsi l'attribut Titre de la table Séance n'est pas une clé étrangère non plus.
Titre | Directeur | Acteur |
---|---|---|
Mais qui a tué Harry ? | Hitchcock | Gwenn |
Mais qui a tué Harry ? | Hitchcock | Forsythe |
Mais qui a tué Harry ? | Hitchcock | MacLaine |
Mais qui a tué Harry ? | Hitchcock | Hitchcock |
... | ||
Cris et chuchotements | Bergman | Andersson |
Cris et chuchotements | Bergman | Sylwan |
Cris et chuchotements | Bergman | Thulin |
Cris et chuchotements | Bergman | Ullman |
Salle | Adresse | Telephone |
---|---|---|
Gaumont Opéra | 31, bd des Italiens | 01 47 42 60 33 |
Saint André des Arts | 30, rue Saint André des Arts | 01 43 26 48 18 |
Le Champo | 51, rue des Ecoles | 01 43 54 51 60 |
... | ||
Georges V | 144, av. des Champs Elysées | 01 45 62 41 46 |
Les 7 Parnassiens | 98, bd du Montparnasse | 01 43 20 32 20 |
Salle | Titre | Horaire |
---|---|---|
Gaumont Opéra | Cris et chuchotements | 20 : 30 |
Saint André des Arts | Mais qui à tué Harry ? | 20 : 15 |
Georges V | Cris et chuchotements | 22 : 15 |
... | ||
Les 7 Parnassiens | Cris et chuchotements | 20 : 45 |
Remarque :
Notons qu'il serait possible de normaliser le schéma, pour obliger toutes les tables à avoir une clé primaire. Cette opération est hors programme, mais nous allons donner un exemple un peu plus bas de transformations de ces relations pour créer des tables avec des clés primaires.