Database Reference
In-Depth Information
●
Le « 1 » au minimum du côté
Mails
de l'association
contacts
n'est pas sujet à discus-
sion, car c'est l'expression du fait qu'un actionnaire dispose obligatoirement d'un e-mail.
Une contrainte
NOT NULL
sera générée pour implémenter ce contrôle. En affectant « 0 » à
cette multiplicité, la contrainte ne sera pas générée.
●
Le « 1 » au minimum du côté
Actionnaires
de l'association
contacts
peut être sujet
à discussion. Il s'agit de savoir si la base de données peut stocker des e-mails anonymes.
En théorie, il faudrait assurer un tel contrôle au niveau de la programmation. En affectant
« 0 » à cette multiplicité, vous relâchez ce contrôle.
●
Le « 0 » au minimum du côté
SARL
de l'association
participation
peut être sujet à
discussion. Il s'agit de savoir si la base de données peut stocker des actionnaires qui ne
participent à aucune SARL. Ici aucune contrainte n'est à mettre en œuvre. Le fait de choisir
« 1 » pour cette multiplicité nécessite, en théorie, la mise en œuvre de ce contrôle par
programmation (transaction ou déclencheur).
●
Le « 2 » au minimum du côté
Actionnaires
de l'association
participation
n'est
pas sujet à discussion, c'est l'expression d'une règle métier. Une simple contrainte
CHECK
ne sufit pas et du code SQL doit implémenter cette règle (transactions et déclencheurs).
Ce code se chargera également de vériier le non-dépassement du nombre maximal de la
multiplicité (10).
Si. vous. hésitez. entre. 0. et. 1. pour. une.multiplicité.minimale,. choisissez 0. de. sorte. à.moins.
contraindre. le. schéma. SQL.. Vous. pourrez. toujours. ensuite. programmer. une. nouvelle.
contrainte.
Rélexivité
Une association binaire (
un-à-un, un-à-plusieurs, plusieurs-à-plusieurs
) qui relie une classe à
elle-même est dite rélexive.
Bien que séduisant par sa sémantique, le concept de rélexivité produit des schémas relation-
nels plus complexes (en particulier avec des associations
plusieurs-à-plusieurs
) et induit une
programmation ardue qui peut s'avérer moins performante (requêtes récursives).
Ain de pallier ces problèmes potentiels, nous verrons qu'une association rélexive peut se
représenter, dans certains cas, à l'aide de plusieurs associations binaires non rélexives.
Le diagramme suivant décrit l'association
un-à-plusieurs
de parrainage qui relie (éventuel-
lement) un client à ses illeuls qui sont aussi des clients (
0..*
). Un illeul peut n'être associé à
aucun parrain (
0..1
), ce qui exprime qu'un client peut être ni parrain, ni illeul.