Une association réflexive est une association qui associe une classe avec elle-même.
L'explicitation des associations est souvent utile dans le cas des associations réflexives non symétrique (ou chaque objet ne joue pas le même rôle).
Une instance peut être associée avec elle-même dans le cas de d'une association réflexive.
Si l'on souhaite exprimer le contraire (une instance peut être associée avec d'autres instances de la même classe, mais pas avec elle-même) :
on ajoute une contrainte en UML (par exemple {les personnes ne se marient pas avec elles-mêmes}) ;
que l'on traduira en relationnel par une contrainte du type AVEC pk ≠ fk
;
que l'on traduira en SQL par une clause du type CHECK pk != fk
.