Associations réflexives

(Version projecteur)

Une association réflexive (ou unaire) est une association qui relie une entité à elle même.

I- Les différents types d'association réflexives

Une association réflexive peut être de type [n,n], [1,n], ou [1,1].


I-1 Association réflexives [n,n]

Elles peuvent avoir des propriétés et être symétriques ou non symétriques.

I-1-A Association réflexives [n,n] symétriques

Voici par exemple une association réflexive [n,n] symétrique :

Elle est symétrique car, si un pays A est voisin d'un pays B, alors le pays B est nécessairement voisin du pays A.

I-1-B Association réflexives [n,n] non symétriques

Voici à présent une association réflexive [n,n] non symétrique :

Si un matériel A fait partie d'un matériel B, alors B ne peut pas faire partie de A.

Pour une relation réflexive asymétrique, il est d'usage d'indiquer le nom de l'association sur un des traits et le nom de l'association inverse sur l'autre.

I-1-C Association réflexives [n,n] avec propriétés

En voici un exemple non symétrique :

et voici un exemple symétrique :


I-2 Associations réflexives [1,n]

Elles sont nécessairement non symétriques. Exemple :


I-3 Associations réflexives [1,1]

Elles peuvent être symétriques ou non symétriques.

Voici par exemple une association réflexive [1,1] symétrique :

Et voici un exemple d'association réflexive [1,1] asymétrique :

II- Traduction des associations réflexives en relations

Pour les associations réflexives, l'utilisation d'identifiants comme nom de clef étrangère pose problème. Cela impliquerait des relations possédant deux attributs de même nom. Il faut donc procéder autrement.


II- 1 Traduction des associations réflexives [n,n]

Une association reflexive [n,n] sur une entité E est traduite en une relation de même nom avec deux clefs étrangères. L'une d'elles porte le nom de l'identifiant de l'entité et l'autre, le nom de l'association. La clef primaire de cette relation est constituée de ces deux attributs.

Exemple :

sera traduit en :

Voisin_De (#NomPays,#VoisinDe)

II- 2 Traduction des associations réflexives [1,n]

Une association reflexive [1,n] sur une entité est traduite en une clef étrangère dans la relation représentant cette entité. Le nom de cette clef étrangère est celui de l'association si c'est le nom de l'association qui étiquette le trait de cardinalité maximale 1, sinon c'est le nom de l'association réciproque.

Par exemple, les deux schémas suivants:

seront traduit en :

Salarié (Matricule,Nom,Prénom,Fonction,#Encadré_Par)

car le nom qui importe est celui qui figure sur le trait de cardinalité [?,1].


II- 3 Traduction des associations réflexives [1,1]

Une association reflexive [1,1] sur une entité est traduite en une clef étrangère dans la relation représentant cette entité. Le nom de cette clef étrangère est celui de l'association.

Par exemple :

sera traduit en :

Individu (NumInd,Nom,Prénom,#Assis_à_Gauche_De)