• 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 5/13/24

Transformez les associations de votre diagramme de classes UML

Bonne nouvelle ! Maintenant que vous maîtrisez les clés primaires et étrangères, vous avez toutes les clés en main pour à présent traduire votre diagramme UML en un modèle relationnel.

Vous verrez, la traduction est automatique : il n’y a qu’à appliquer quelques règles, et le tour est joué !

L’association un-à-plusieurs

Reprenez votre diagramme UML, et regardez l’association entre Oeuvreet   SocieteDeProduction.

Elle est de type un-à-plusieurs. Certes, c’est aussi une composition. Mais une composition est un cas particulier de un-à-plusieurs. Si vous le voulez bien, oublions donc l’aspect composition pour le moment, pour nous concentrer sur l’aspect un-à-plusieurs :

L’association entre oeuvre et produit
L’association entre « Oeuvre » et « SocieteDeProduction »

Comme une société de production produit PLUSIEURS oeuvres, il faut ajouter une clé étrangère dans oeuvrequi référence la clé primaire desociete_de_production:

Ajout de la clé étrangère à societe_prod
Ajout de la clé étrangère « societe_prod »
Représentation graphique de la clé étrangère
Représentation graphique de la clé étrangère

Comme l’associationoeuvre - societe_de_production est une composition, elle respecte la règle citée ci-dessus, mais elle a une particularité en plus que je vous explique un peu plus bas. 😉

L’association plusieurs-à-plusieurs

Prenez maintenant l’association oeuvre - realisateur_ice, qui est de type plusieurs-à-plusieurs.

Si vous essayez de mettre une clé étrangère dansoeuvreréférençant la clé primaire de   realisateur_ice, alors vous verrez qu’une œuvre ne peut avoir qu’un réalisateur : ce n’est pas ce que vous voulez. Si inversement vous mettez une clé étrangère dans realisateur_ice, alors vous ne pourrez avoir qu’une œuvre par réalisateur.

Pour mieux visualiser ce problème, je vous conseille cette très bonne vidéo sur Openclassrooms

Il faut donc trouver une autre solution. 🤓

Ajout de la troisième table supplémentaire
Ajout de la troisième table supplémentaire « assoc_oeuvre_real »

Vous voyez ici qu’une œuvre peut avoir plusieurs réalisateurs, et qu’un réalisateur peut avoir réalisé plusieurs œuvres.

Représentation graphique des tables avec leurs clés primaires et étrangères
Représentation graphique des tables avec leurs clés primaires et étrangères

L’association un-à-un

L’association un-à-un des tables
L’association un-à-un des tables « cinema » et « adresse »

Mais, c’est la même chose que pour l’association un-à-plusieurs, non ?

Oui, mais il y a un petit détail en plus. 😉 Selon le graphique ci-dessus, un cinéma ne peut avoir qu’une adresse, mais deux cinémas peuvent avoir la même adresse : ce n’est pas ce que l’on veut.

Pour spécifier qu’une adresse ne peut accueillir qu’un seul cinéma, il faut ajouter une contrainte d’unicité sur l’attribut adresse . Ainsi, la colonne adresse ne pourra pas contenir deux fois la même valeur. Ce qui signifie que adresse ne pourra pas contenir deux fois la même référence vers une adresse donnée. Autrement dit, une adresse ne pourra pas accueillir plus d’un cinéma.

En résumé

  • Une association un-à-plusieurs se traduit en ajoutant 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 ».

  • Une association plusieurs-à-plusieurs se traduit en ajoutant une nouvelle table. La clé primaire de cette nouvelle table sera composée des deux clés étrangères référençant les deux tables à associer.

  • Pour une association un-à-un entre une tableAet une table B, on utilise aussi une clé étrangère. La clé étrangère est placée dans Aet elle référence la clé primaire de B.

La première étape de traduction de votre diagramme UML en modèle relationnel est terminée. Bravo ! Vous avez transformé les associations de votre diagramme de classe UML. Voyons, au chapitre suivant comme transformer vos compositions et vos classes d'associations.

Example of certificate of achievement
Example of certificate of achievement