274
Chapitre 11 • Production du schéma de la base de données
• Dans ces trois cas, la nouvelle colonne est déclarée obligatoire.
• Si R est facultatif pour A et B, on procède comme ci-dessus : une clé étrangère
est ajoutée indifféremment à TA ou TB. La nouvelle colonne sera déclarée
facultative.
• Dans tous les cas, la nouvelle colonne (ou les nouvelles colonnes) constitue en
outre un identifiant supplémentaire pour sa table.
La figure 11.5 illustre la représentation du type d’associations un-à-un dirige. On
observe que la clé étrangère a été associée à la table DEPARTEMENT (du côté où
dirige est obligatoire), qu’elle constitue un identifiant secondaire pour sa table et
qu’on a donné à la nouvelle colonne le nom du rôle que joue l’employé par rapport
au département, soit DIRECTEUR.
Figure 11.5 - Représentation d’un type d’associations un-à-un par une clé étrangère
identifiante
Cet exemple nous permet de justifier les règles proposées ci-dessus. Supposons
qu’on représente dirige par une colonne DIRECTEUR_DE ajoutée à la table
EMPLOYE, déclarée clé étrangère vers DEPARTEMENT. Ce choix présente quelques inconvénients non négligeables par rapport à la solution standard :
• d’une part, nous introduisons une colonne facultative, dont on sait qu’elle sera
plus délicate à manipuler (section 6.10);
• nous définissons aussi un identifiant facultatif, qui peut poser des problèmes de
mise en oeuvre dans certains SGBD (section 6.10);
• enfin, cette clé étrangère doit être soumise à une contrainte très difficile à
contrôler : à chaque ligne de DEPARTEMENT doit correspondre une ligne
d’EMPLOYE dont les valeurs de NOMDEPEART et DIRECTEUR_DE sont
égales. SQL est incapable de prendre en charge une telle contrainte, comme
nous en discuterons à la section 11.10.2.
⇒
0-1
1-1
dirige
EMPLOYE
Matricule
Nom
Fonction
id: Matricule
DEPARTEMENT
NomDépart
Localisation
id: NomDépart
EMPLOYE
MATRICULE
NOM
FONCTION
id: MATRICULE
DEPARTEMENT
NOMDEPART
LOCALISATION
DIRECTEUR
id: NOMDEPART
id': DIRECTEUR
ref
Chapitre 11 • Production du schéma de la base de données
• Dans ces trois cas, la nouvelle colonne est déclarée obligatoire.
• Si R est facultatif pour A et B, on procède comme ci-dessus : une clé étrangère
est ajoutée indifféremment à TA ou TB. La nouvelle colonne sera déclarée
facultative.
• Dans tous les cas, la nouvelle colonne (ou les nouvelles colonnes) constitue en
outre un identifiant supplémentaire pour sa table.
La figure 11.5 illustre la représentation du type d’associations un-à-un dirige. On
observe que la clé étrangère a été associée à la table DEPARTEMENT (du côté où
dirige est obligatoire), qu’elle constitue un identifiant secondaire pour sa table et
qu’on a donné à la nouvelle colonne le nom du rôle que joue l’employé par rapport
au département, soit DIRECTEUR.
Figure 11.5 - Représentation d’un type d’associations un-à-un par une clé étrangère
identifiante
Cet exemple nous permet de justifier les règles proposées ci-dessus. Supposons
qu’on représente dirige par une colonne DIRECTEUR_DE ajoutée à la table
EMPLOYE, déclarée clé étrangère vers DEPARTEMENT. Ce choix présente quelques inconvénients non négligeables par rapport à la solution standard :
• d’une part, nous introduisons une colonne facultative, dont on sait qu’elle sera
plus délicate à manipuler (section 6.10);
• nous définissons aussi un identifiant facultatif, qui peut poser des problèmes de
mise en oeuvre dans certains SGBD (section 6.10);
• enfin, cette clé étrangère doit être soumise à une contrainte très difficile à
contrôler : à chaque ligne de DEPARTEMENT doit correspondre une ligne
d’EMPLOYE dont les valeurs de NOMDEPEART et DIRECTEUR_DE sont
égales. SQL est incapable de prendre en charge une telle contrainte, comme
nous en discuterons à la section 11.10.2.
⇒
0-1
1-1
dirige
EMPLOYE
Matricule
Nom
Fonction
id: Matricule
DEPARTEMENT
NomDépart
Localisation
id: NomDépart
EMPLOYE
MATRICULE
NOM
FONCTION
id: MATRICULE
DEPARTEMENT
NOMDEPART
LOCALISATION
DIRECTEUR
id: NOMDEPART
id': DIRECTEUR
ref
