Bonjour Quentin,
Envoyé par
Draquent22
Imaginons que ce soit pour les deux cas une contrainte d'inclusion.
Les auteurs n’ont pas tous la même façon de représenter les contraintes. Néanmoins, la recommandation est de se conformer au document de référence suivant :
Afcet - Le formalisme de données Merise - Extensions du pouvoir d’expression - Journée d’étude organisée par le Groupe de Travail 135 « Conception des systèmes d’information » (Collège AFCET-GID) - Jeudi 15 novembre 1990, Paris.
Il y est écrit :
Exclusion :
Ainsi, les contraintes sont-elles explicitement symbolisées par des liens entre associations plutôt qu’entre pattes. A noter le rôle joué par les pivots, permettant de préciser exactement les entités-types parties prenantes dans les contraintes. C’est ce concept de pivot qui fait défaut dans l'ouvrage de Michel Diviné : Parlez-vous Merise ?, gratuit et téléchargeable (Merci Michel !)
Reportez-vous à la FAQ Merise, dans laquelle Dominique Nanci donne un bon exemple.
A signaler que dans la série des AGL gratuits, DB-MAIN (du professeur Jean-Luc Hainaut) permet de modéliser l’inclusion sans problème, comme on le voit dans le document du Pr Hainaut Computer-Aided Database Engineering - Volume 1: Database Models :
Au sujet de l’identification des associations
Envoyé par
Draquent2
Dans mon cours, il est écrit que l'identifiant d'une association est la concaténation des identifiants des entités qui participent à cette relation.
Sur la base de cette définition, un identifiant d’association a-t-il vraiment un sens, disons d’un point de vue ontologique ? Pour ne pas faire de peine aux merisiens, disons que si identification d’association il y a, elle est implicite. Cette identification aurait un sens si elle était pouvait être explicite : (1) toutes les entités-types pouvant ne pas y participer, (2) les attributs portés par l’association pouvant y participer : voyez le paragraphe 5.11 « Relationship types with identifier(s) » de l’ouvrage du Pr Hainaut, mentionné ci-dessus, beaucoup plus rigoureux et pertinent quant à l’identification des associations (à partir duquel on peut conclure, incidemment et sans état d’âme, que l’on n’a rien à f... de l’entité-type DATE qui est une conséquence de la définition courante de l’association et nous empoisonne la vie quand nous produisons des MCD, tandis qu’elle ne fera pas l’objet de table au stade du MLD).
Cette définition courante et propagée depuis l’origine (Ministère de l'Industrie - Mission à l'informatique - Centre technique informatique - Méthode de définition d'un système d'informations - Fascicule 4, guide pratique pour l'élaboration des modèles de données et de traitements - juin 1979, page 9) est sujette à contre-exemples. Considérons le schéma suivant :
Où les entités-types E et F ont respectivement {E1} et {F1} pour identifiants (les accolades sont là pour rappeler qu’il s’agit d’ensembles au sens de la théorie des ensembles).
A supposer que le terme « concaténation » soit synonyme de liste ou plutôt d’ensemble (dans son ouvrage Ingénierie des systèmes d'information : Merise Deuxième Génération, Dominique Nanci utilise le terme « conjonction »), l’identifiant de R est-il la paire {E1, F1} ? Certainement pas ! E1 doit dégager puisqu’il existe la dépendance fonctionnelle {F1} -> {E1}.
Autre exemple au sujet de la concaténation :
Dans l’exemple suivant, que concatène-t-on pour l’association R ? E1 avec E1 ? Au moins avec le terme « conjonction » utilisé par D. Nanci, et pris au sens de la logique ou de l’algèbre de Boole, est-on plus proche de la vérité, puisque l’identifiant de R se réduira à {E1} :
Mais si on remplace la cardinalité 0,1 par 0,N, c’est le terme « concaténation » qui devient pertinent... Au moins l’identification vue par le Pr Hainaut permet-elle d’éviter les écueils.
Et apparemment, d'après ce que je comprends, les contraintes sur les associations utilisent ces identifiants, alors que les contraintes sur les rôles utilisent l'identifiant d'une seule de l’entité. Mais je peux me tromper.
D’après les définitions données par Groupe de Travail 135, les identifiants ne jouent pas de rôle explicite. Même chose dans l’exemple du Pr Hainaut, où il est seulement dit que l’ensemble incl{SUPPLIER, ITEM} est inclus dans l’ensemble gr{SUPPLIER, ITEM}, indépendamment des « identifiants implicites » des associations.
Partager