IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Merise Discussion :

Contrainte d'inclusion MERISE MCD


Sujet :

Merise

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Contrainte d'inclusion MERISE MCD
    *Bonjour*

    Je voudrais savoir s'il est possible d'inclure une relation ternaire dans une relation binaire comme ceci

    Nom : inclusion_ternaire_binaire.jpg
Affichages : 5414
Taille : 111,6 Ko.

    En effet, sur certains tutos trouvés sur le net il est mentionné que les associations doivent être de même structure pour que les contraintes ensemblistes puissent appliquées. Si cette règle doit être vérifiée, ma modélisation respecte t-elle la dite règle ?

    Merci de me situer.

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 127
    Points : 31 667
    Points
    31 667
    Billets dans le blog
    16
    Par défaut Ah ! les tutos, les tutos, les tutos....
    Bonsoir assss,


    Je voudrais savoir s'il est possible d'inclure une relation ternaire dans une relation binaire comme ceci.
    Au sens de la théorie des ensembles, la binaire peut effectivement être vue comme un sous-ensemble de la ternaire.

    Dans le contexte de Merise, le document de référence en matière de contraintes dans les MCD est le 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.

    Où il est écrit :




    Dans votre cas, cet énoncé traitant de la contrainte d’inclusion se lit ainsi :

    La relation Relation3 est soumise à une "inclusion" dans la relation FairePartie vis à vis de la liste (SPORTIF, EQUIPE) d’entités-types communes appelée "pivot" de la contrainte, si et seulement si aucune occurrence de (SPORTIF X EQUIPE) ne peut participer à Relation3 sans participer à FairePartie. La relation Relation3 est appelée la "portée", la relation FairePartie la "cible" de la contrainte.
    Comme le pivot (SPORTIF, EQUIPE) contient l’ensemble des entités-types participant à la contrainte, à savoir SPORTIF et EQUIPE, il est implicite, il est inutile de faire figurer les pointillés évoqués dans la définition du terme PIVOT.

    Vous remarquerez que l’entité-type MATCH n’est pas partie prenante dans cette affaire, puisque seules le sont les entités-types communes à Relation3 et FairePartie, c'est-à-dire SPORTIF et EQUIPE. En vertu de quoi, que l’association Relation3 soit ternaire ou pas n’a aucune importance.

    Dans votre diagramme, conformément à la référence Afcet, ajoutez si possible la pointe de la flèche qui atteint la cible...


    Sur certains tutos trouvés sur le net il est mentionné que les associations doivent être de même structure pour que les contraintes ensemblistes puissent appliquées.
    Les auteurs (dont j’espère ne pas faire partie !) de ces tutos ont dû mal lire le document de référence (dont les auteurs sont cette fois-ci des épées), où l’on voit que, dans l’exemple retenu, la portée Enseigne est une association ternaire, tandis que la cible SaitEnseigner est une binaire. Ces gens s’imposent des contraintes non justifiées, ce sont des bourriques, vous leur collerez un mauvais point ! Du point de vue ensembliste, disons au niveau de la théorie relationnelle, la contrainte se lit ainsi :

    Code D : Sélectionner tout - Visualiser dans une fenêtre à part
    Relation3{NumLicence, NumEquipe}  FairePartie ;

    Où Relation3 et FairePartie sont des relvars (variables relationnelles) et où Relation3{NumLicence, NumEquipe} représente la projection de Relation3 sur les attributs NumLicence et NumEquipe.


    Au niveau MLD, vous devrez avoir le diagramme suivant, selon lequel la contrainte d’inclusion est garantie d’office :




    Et au niveau SQL :


    TABLE EQUIPE
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE EQUIPE 
    (
       NuumEquipe           INT NOT NULL,
       CONSTRAINT EQUIPE_PK PRIMARY KEY (NuumEquipe)
    ) ;

    TABLE SPORTIF
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE SPORTIF 
    (
       NumLicence           INT NOT NULL,
       CONSTRAINT SPORTIF_PK PRIMARY KEY (NumLicence)
    ) ;

    TABLE FAIRE_PARTIE
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TABLE FAIRE_PARTIE 
    (
       NumLicence           INT NOT NULL,
       NuumEquipe           INT NOT NULL,
       CONSTRAINT FAIRE_PARTIE_PK PRIMARY KEY (NumLicence, NuumEquipe),
       CONSTRAINT FAIRE_PARTIE_SPORTIF_FK FOREIGN KEY (NumLicence)
          REFERENCES SPORTIF,
       CONSTRAINT FAIRE_PARTIE_EQUIPE_FK FOREIGN KEY (NuumEquipe)
          REFERENCES EQUIPE
    ) ;

    TABLE MATCH
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE MATCH 
    (
       NumLicence           INT NOT NULL,
       NuumEquipe           INT NOT NULL,
       NumMatch             INT NOT NULL,
       CONSTRAINT MATCH_PK PRIMARY KEY (NumLicence, NuumEquipe, NumMatch),
       CONSTRAINT MATCH_FAIRE_PARTIE_FK FOREIGN KEY (NumLicence, NuumEquipe)
          REFERENCES FAIRE_PARTIE
    ) ;


    J’espère que vous voilà un peu plus rassuré...

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Points : 4
    Points
    4
    Par défaut MERCI
    Merci pour vos lumières.

    En fait le Nom de la relation 3 est JOUER. J'ai oublié de le mentionner sur la représentation (effectuée avec JMerise 0.3.9.4).

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 127
    Points : 31 667
    Points
    31 667
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par assss Voir le message
    En fait le Nom de la relation 3 est JOUER.
    Ce qui n'a eu aucune incidence sur le MLD et le code SQL

    Bon courage pour la suite, et en cas de problème, n'hésitez pas à revenir, vous serez toujours le bienvenu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MCD] Représenter 1 contrainte d'inclusion avec Merise 2
    Par Anonymouse dans le forum Schéma
    Réponses: 5
    Dernier message: 22/04/2009, 14h32
  2. [MCD]contrainte d'inclusion
    Par StiriX dans le forum Schéma
    Réponses: 3
    Dernier message: 10/05/2008, 17h31
  3. Réponses: 2
    Dernier message: 27/02/2007, 14h50
  4. [MCD]Contrainte d'inclusion
    Par >__|< dans le forum Schéma
    Réponses: 4
    Dernier message: 19/01/2007, 23h26
  5. [BEST_PRACTICE][Merise] MCD & gestion de date
    Par Seb7 dans le forum Schéma
    Réponses: 4
    Dernier message: 16/04/2003, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo