Database Reference
In-Depth Information
Dans l'autre table d'association, la clé primaire
id_coll
permettra de s'assurer qu'un colla-
borateur ne puisse être affecté à plusieurs projets.
Ce.principe.de.transformation.est.idéal.lorsque.les.multiplicités.de.vos.associations.sont.sus-
ceptibles.de.changer.avec. le. temps. (dans.notre.exemple,. le. fait.qu'un.collaborateur.puisse.
diriger.plusieurs.projets.ou.participer.à.différents.projets)..En.ce.cas,.et.même.avec.des.données.
en.base,.il.suffira.d'activer.ou.de.désactiver.telle.contrainte.ou.telle.clé.
Ainsi, pour l'association universelle de type un-à-un, il faut choisir la clé primaire de
la table de jointure qui peut venir indifféremment de l'une ou l'autre des entités. Mon
conseil est donc le suivant : prenez toujours celle de l'entité qui existe avant l'autre. Dans
l'exemple proposé, la table de jointure
diriger
se voit dotée d'une clé primaire venant
de l'entité
Projet
. C'est à mon sens une erreur, car il me semble dificile qu'un projet
existe dans votre entreprise, si vous n'avez aucun collaborateur !
Les transformations à éviter
Je vais encore dire du mal des associations
n
-aires, mais la plupart d'entre elles le méritent.
Considérons à nouveau le premier exemple de la section « Les associations
n-
aires » du cha-
pitre 1, l'association
n
-aire
Installer
exprimait le fait que des
logiciels
soient installés sur
des
serveurs
par des
départements
.
La transformation de toute association
n
-aire entraîne l'apparition d'une nouvelle relation. Si
les multiplicités sont toutes de type
plusieurs-à-plusieurs
, la clé primaire de la nouvelle rela-
tion sera composée des clés de toutes les relations connectées. Si la multiplicité d'un lien de
l'association
n
-aire vaut 1, le degré de la clé primaire est réduit d'une colonne.
Figure 2-19
. Une transformation à éviter
Cette transformation est à éviter, car la table d'association qu'on obtiendra ne permettra aucun
contrôle de cohérence. Ainsi, avec ce schéma, il est possible d'installer un logiciel qui n'est pas
compatible avec un serveur ou qu'un département ne détient pas par exemple.