Exemple de choix pour une relation 1:1

Exemple

  • Soit deux entités, "homme" et "femme" et une association "mariage" de cardinalité 1..1:1..1 entre ces deux entités (hommes et femmes sont donc obligatoirement mariés).

  • Les entités "homme" et "femme" sont identifiées par un attribut "nom" (dans ce modèle chaque personne a un nom unique, on pourrait remplacer le nom par un identifiant comme le numéro de sécurité social ou par une clé artificielle pour être plus proche de la réalité).

Bien que de type 1..1:1..1, le choix de la fusion n'est pas très opportun car il s'agit bien d'objets distincts que l'on veut modéliser.

  • On choisira donc plutôt la représentation avec deux relations.

  • La clé étrangère pourra être du côté "homme" ou "femme", même si la pratique dominante nous incite à la mettre du côté femme.

  • On pourra également décider de prendre la clé étrangère comme clé primaire.

1
homme (#nom)
2
femme (#mariage=>homme, nom) avec nom KEY
3
Contrainte : PROJ(homme,nom) = PROJ(femme,mariage)

Exemple

Si l'association avait été de cardinalité 0..1:0..1 (certains hommes et femmes ne sont pas mariés), un choix similaire se serait imposé, avec l'impossibilité de choisir la clé étrangère comme clé primaire, celle-ci pouvant être nulle et n'étant donc plus candidate.

1
homme (#nom)
2
femme (#nom, mariage=>homme) avec mariage UNIQUE