Ceci est une ancienne révision du document !
La relation d'agrégation est une forme particulière de relation one-to-many. C'est une composition sans appartenance : la suppression d'une instance de la classe regroupant les agrégats n'entraine pas la suppression des agrégats.
Un exemple de relation d'agrégation dans le diagramme UML ci-dessous :
Le symbole UML de l'agrégation
. On place le symbole du côté de la classe qui regroupe les agrégats.
Un entrepôt (Warehouse) peut stocker plusieurs colis (Packet), et un colis est entreposé dans un seul entrepôt : cela définit bien une relation un à plusieurs (one to many).
En définissant une relation de type agréation, on fait le choix de conserver les colis dans notre base de données même si on supprime notre entrepôt.
Pour pouvoir traduire cette relation d'agrégation il va falloir créer les contraintes appropriées lors de l'étape de traduction vers les MLD/MPD.
Avec SQLAlchemy, il nous faudra définir la relation et un cascade update
Ci-dessous une application minimale Flask définissant le modèle de données