• 8 hours
  • Medium

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 11/13/23

Transformez vos compositions et vos classes d'associations

Transformez vos compositions

Une composition, c’est un cas particulier d’association un-à-plusieurs. Comme nous l’avons vu précédemment, il faut donc ajouter une clé étrangère dans la table qui est du côté « plusieurs »,  cette clé étrangère référence la clé primaire de la table qui est du côté « un ».

Mais vous le savez désormais, ce qui différencie une composition d’une simple association un-à-plusieurs, c’est que le composant ne peut exister sans son composite. Ainsi, on identifie un composant à partir de son composite. C’est-à-dire que la clé primaire du composant inclut/comprend obligatoirement  le composite.

C’est le cas entre une œuvre et sa société de production. Car comme vous l’avez vu précédemment, une œuvre se définit par son titre ET par la société qui l’a produite (car il arrive que deux œuvres aient le même titre).

Maintenant que nous avons ajouté une clé étrangèresociete_proddans oeuvre , qui référence societe_de_production, il est donc possible d’identifier chaque œuvre par son titre et sa société.

Vous avez donc trouvé la dernière des clés primaires de votre modèle relationnel : celle de la table oeuvre . 😎 La voici : (titre, societe_prod).

Maintenant que vous avez la clé primaire de oeuvre, il faut actualiser la table  assoc_oeuvre_real avec cette nouvelle clé. Voici le résultat :

Représentation graphique avec la table

Transformez vos classes d'associations

Vous l’avez vu dans ce cours, une classe d’association sert à donner des caractéristiques à une association entre deux classes. C’est le cas par exemple pour la classe d’association tournage  ,  qui caractérise le lien entre une œuvre et un lieu grâce à une date de début et de fin de tournage :

La classe d’association tournage est reliée à Lieu et oeuvre par une ligne pointillée
La classe d’association « Tournage »

Jusqu’à maintenant, notre table tournage n’avait que deux attributs. Seules, ces deux dates ne veulent rien dire : il faut pouvoir les lier à l’œuvre et au lieu correspondants. Vous vous en doutez peut-être : il va falloir utiliser des clés étrangères !

Classe d’association sur une relation plusieurs-à-plusieurs

La relation entreoeuvre et lieuest de type plusieurs-à-plusieurs.

Vous savez déjà comment traduire une telle relation : en ajoutant une nouvelle table qui contient deux clés étrangères référençant les deux tables de part et d’autre de l’association. Voici ce que cela donnerait :

Représentation graphique d’une association plusieurs-à-plusieurs
Représentation graphique d’une association plusieurs-à-plusieurs

Mais en plus, il faut ajouter les attributs qui caractérisent cette association. Il suffit d’ajouter ces attributs à notre nouvelle table !

Mais cette nouvelle table dont on parle, c’est notre table tournage, non ?

Oui, tout à fait, bravo !

Voici donc le résultat final :

Traduction d’une classe d’association en une nouvelle table tournage
Traduction d’une classe d’association en une nouvelle table « tournage »
Traduction d’une classe d’association en une nouvelle table
Traduction d’une classe d’association en une nouvelle table

Clé primaire

Nous n’avons toujours pas trouvé la clé primaire detournage!

Effectivement, vous aviez vu au chapitre précédent que les deux dates, à elles seules, ne suffisaient pas à garantir la contrainte d’unicité (deux œuvres peuvent être tournées sur une même période). Mais avec les clés étrangères que nous avons ajoutées, c’est maintenant faisable !

Vous avez vu que par défaut, la clé primaire d’une table issue d’une association plusieurs-à-plusieurs est composée des deux clés étrangères référençant les deux tables de part et d’autre de l’association.

Ici, vous êtes donc sûr que le groupe (titreoeuvre, loc_scene, code_postal) fait partie de la clé primaire de tournage  . Cependant, selon le cas, il faudra parfois ajouter d’autres attributs à la clé. Dans notre cas, il est clairement possible qu’une œuvre soit tournée plusieurs fois au même endroit.

Voici donc une clé primaire possible :   (titre_oeuvre, loc_scene, code_postal, date_de_debut). En effet, on ne peut pas avoir 2 lignes de tournage  relatives au même film, au même endroit, et commençant le même jour. Si c’est le cas, cela signifie que ces deux lignes correspondent en fait à une seule et unique session de tournage.

Classe d’association sur une relation un-à-plusieurs

Classe d’association sur une association un-à-plusieurs
Classe d’association sur une association un-à-plusieurs
Traduction de la classe d’association un-à-plusieurs
Traduction de la classe d’association un-à-plusieurs

Classe d’association sur une relation un-à-un

Classe d’association sur une association un-à-un
Classe d’association sur une association un-à-un
Traduction de la classe d’association un-à-un
Même traduction de la classe d’association un-à-un, que le visuel précédent pour que vous l'ayez facilement sous les yeux !

En résumé

  • Une composition est traduite de la même manière qu’une association un-à-plusieurs ; mais en plus, on ajoute, à la clé primaire de la table composant, la clé étrangère vers la table composite.

  • Une classe d’association sur une association plusieurs-à-plusieurs se traduit en une nouvelle table. Cette table contient tous les attributs de la classe d’association, ainsi que deux clés étrangères référençant les deux tables de part et d’autre de l’association.

La seconde étape de traduction de votre diagramme UML en modèle relationnel est terminée. Bravo ! Vous avez transformé vos compositions et vos classes d'associations. Voyons, au chapitre suivant, comment transformer vos relations d'héritage. 

Example of certificate of achievement
Example of certificate of achievement