Informatique


Associations particulières

Aller à

L'association plurielle

Il est tout à fait possible que deux entités soient reliées à la fois par plus d'une relation.

Une telle possibilité n'a rien d'absurde, et correspond à beaucoup de situations de la vie réelle.

Imaginons, par exemple, que nous ayons à modéliser les relations entre une population et des livres. Nous aurons deux entités : l'une qui identifiera les différents individus (et dont les propriétés seront leurs noms, prénoms, n° de sécurité sociale, etc.). L'autre entité recensera les différents livres (n° ISBN, titre). Or, il est clair que la relation d'un individu avec un livre peut être de plusieurs natures différentes, qui sont très largement indépendantes les unes des autres :

  • il peut en être l'auteur
  • il peut en être le co-auteur
  • il peut en être critique
  • il peut en être le relieur
  • etc.
Imaginons que nous voulions modéliser les auteurs et les critiques des livres:

MCD

MLD

personne: id_per, numsec_per, nom_per, preno_per

livre: id_liv, isbn_liv, titre_liv

ecrit: id_per,id_liv

critique: id_per,id_liv


L'association réflexive

L'association réflexive (n-n) symétrique

En effet, si la belgique est voisine de la France, alors la France est voisine de la Belgique.

Passage au MLD: l'association devient une table dont la clé concaténée est l'id du premier pays et l'id du deuxième pays que l'on renomme avec le nom de l'association.

Voisin_De: (NomPays, Voisin_De)

Renommer la clé du deuxième pays mis en relation est impératif car on ne peut pas avoir dans une table deux champs de même nom.

L'association réflexive (n-n) non symétrique

Convention: nom de l'association sur un trait et de l'association inverse sur l'autre.

En effet,un matériel peut être composé d'autres matériels, et certains matériels composent des matériels.

Le béton est un matériel composé des matériaels ciment, sable, fines pierres et d'eau.

Passage au MLD: l'association devient une table dont la clé concaténée est l'id du matériel et l'id d'un des matériels qui le compose que l'on renomme avec le nom de l'association.

Compose_de: (idMat, Compose_De)

L'association réflexive (1-n)

Un même salarié peut à la fois être chef et avoir un chef.
Tutu peut être chef de titi et de toto et d'autres salariés, mais il n'a qu'un seul chef au maximum.
toto peut être le chef de coco et avoir pour chef tutu.

Passage au MLD: on est dans le cas d'une clé étrangère, on utiliser le nom de l'association qui étiquette le trait de cardinalité Max 1.

Salarie: Matricule, Nom, Prenom, Fonction, Encadre_par

On peut constater que le PDG, est un salarié comm les autres, mais il n'est encadré par personne, une occurence ayant une clé représentant le PDG et une clé étrangère représentant un autre employé est donc impossible, c'est ce que matérialise le 0 dans la branche 0,1.



L'association réflexive (1-1) symétrique

Passage au MLD: on est dans le cas d'une clé étrangère, on utilise le nom de l'association pour la clé étrangère.

Individu: NomH, Nom, Prenom, Sexe, Paxe_avec

L'association réflexive (1-1) non symétrique

Passage au MLD: on est dans le cas d'une clé étrangère, on utilise le nom de l'association pour la clé étrangère.

Individu: NomInd, Nom, Prenom, Assis_a_gauche_de


L'association n-aire

Ce type d'association met en relation n entités. Même s’il n’y a, en principe, pas de limite sur l’arité d’une association, dans la pratique on ne va que rarement au-delà de trois.
Les associations de degré supérieur à deux sont plus difficiles à manipuler et à interpréter, notamment au niveau des cardinalités.

Mais cela n'est pas un problème, on peut tout à fait manipuler des associations n-aires dans un projet.

L'association ternaire "Contient" associant les entités "Facture", "Produit" et "Client" est inappropriée puisqu’une facture donnée est toujours adressée au même client. En effet, cette modélisation implique pour les associations Contient une répétition du numéro de client pour chaque produit d’une même facture!

La solution consiste à éclater l'association ternaire Contient en deux associations binaires

Il est toujours possible de s’affranchir d’une association n-aire (n>2) en se ramenant à des associations binaires de la manière suivante :

  1. On remplace l'association n-aire par une entité et on lui attribut un identifiant.
  2. On crée des associations binaires entre la nouvelle entité et toutes les entités de la collection de l’ancienne association n-aire.
  3. La cardinalité de chacune des associations binaires créés est 1,1 du côté de l'entité créée (celle qui remplace l'association n-aire), et 0,n ou 1,n du côté des entités de la collection de l’ancienne association n-aire.