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

Schéma Discussion :

Lier une Association et une Entité par une Association ? [MCD]


Sujet :

Schéma

  1. #1
    Futur Membre du Club Avatar de CDuv-Fr
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Lier une Association et une Entité par une Association ?
    Bonjour,

    Je suis conscient que le titre risque d'attirer la foudre de certain mais je souhaiterais résoudre le problème suivant :

    Soit 3 entités :
    Utilisateur : USR_ID, USR_NOM
    Catégorie : CAT_ID, CAT_NOM
    Note : NOT_ID, NOT_TITRE, NOT_CORPS

    Les Notes sont de simples "mémos" ayant un titre et leur texte principal.

    Les Utilisateurs catégorisent ces Notes (association "Catégorisation de la note" entre Catégorie, Note et Utilisateur).

    Les Utilisateurs peuvent évaluer la pertinence de la catégorisation (de la leur ou de celle d'un autre) d'une note : c'est là que j'aimerais creer une association entre Utilisateur et l'association "Catégorisation de la note" mais, bien évidemment, le logiciel (PowerDesigner) m'en empêche.

    Je sais qu'une fois passé en modèle physique, l'association "Catégorisation de la note" sera devenue une Table que je pourrais lier à "Utilisateur" via une référence, alors pourquoi ne pas pouvoir le faire dès le MCD ?

    Vous trouverez ci-joint un schéma explicatif où j'ai indiqué, en rouge, l'association impossible.

    Merci de votre aide.
    Images attachées Images attachées  

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Il faut donc transformer "Catégorisation de la note" en entité.

    Règles de gestion :
    1) Une catégorisation est faite par un seul utilisateur et un utilisateur peut faire plusieurs catégorisations.
    2) Une catégorisation concerne une note et une note peut être concernée par plusieurs catégorisations.
    3) Une catégorisation est classée dans une catégorie et une catégorie peut classer plusieurs catégorisations.

    MCD :
    Utilisateur -0,n----Faire----1,1- Catégorisation
    Note -0,n----Concerner----1,1--------|
    Catégorie -0,n----Classer----1,1-----|

    Il faut ajouter une contrainte d'unicité sur le triplet {Utilisateur, Note, Catégorie} ou faire une identification relative de ces trois entités dans Catégorisation (cardinalités 1,1 entre parenthèses dans le MCD).

    Dès lors il est facile d'étendre le MCD à l'évaluation des catégorisations.
    Utilisateur -0,n----Evaluer----0,n- Catégorisation

    A noter qu'une association n - m n'est rien d'autre qu'un couple d'associations 1 - n :
    L'extension de MCD à la catégorisation peut aussi s'écrire :
    Utilisateur -0,n----Evaluer----1,1- Evaluation -1,1----Etre évaluée----0,n- Catégorisation

    D'ailleurs, quand on a le schéma type suivant dans son MCD :
    EntitéA -0,n----Association1----1,1- EntitéB -1,1----Association2----0,n- EntitéC
    Il faut se poser la question de savoir si on peut transformer l'entité B en association de type n - m.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Futur Membre du Club Avatar de CDuv-Fr
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    A noter qu'une association n - m n'est rien d'autre qu'un couple d'associations 1 - n :
    De ce point de vue la...
    Je vais donc appliquer ta solution et transformer mon Association en Entité (juste dommage que mon logiciel ne puisse pas le faire tout seul )

    En fait, on pourrait n'autoriser que des associations de cardinalité 0,1 ou 1,1 et forcer ainsi la création d'Entité dès que l'on veut plus.

  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 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Citation Envoyé par CDuv-Fr Voir le message
    Je suis conscient que le titre risque d'attirer la foudre de certain
    Pas de tous en tout cas. Pour ma part, établir une relation entre une entité-type et une association-type est parfaitement légitime. En cela je me range à l’avis de Ted Codd pour qui (il y a trente ans) ce que nous appelons association-type est une entité-type associative (appréciez la nuance), et peut être associée à toute entité-type. On gagne en puissance.

    Selon l’ouvrage de Gardarin, Bouzeghoub et Valduriez « OBJETS - Du C++ à Merise Objet » (paru en 1994), on peut associer une association-type à une association-type, voire la spécialiser : barrières et tabous sont tombés (un peu tard, hélas...)

    Diagramme extrait de l’ouvrage cité, qui décrit OOM (Orientation Objet dans Merise) :




    Citation Envoyé par CDuv-Fr Voir le message
    Les Utilisateurs peuvent évaluer la pertinence de la catégorisation (de la leur ou de celle d'un autre) d'une note : c'est là que j'aimerais creer une association entre Utilisateur et l'association "Catégorisation de la note" mais, bien évidemment, le logiciel (PowerDesigner) m'en empêche.
    Je n’utilise pas PowerDesigner, mais PowerAMC, qui me permet de modéliser les choses ainsi au niveau conceptuel :



    Dans les options du modèle : Onglet :Outils \Options du Modèle\
    Choisir Notation :Entité/Relation.

    PowerDesigner offre vraisemblablement l’équivalent.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  5. #5
    Futur Membre du Club Avatar de CDuv-Fr
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Petit effet désagréable de cette "astuce" de transformer l'Association en Entité (dans le MCD) : Quid d'une association ne portant aucune information ?
    Dans mon exemple cela donnerait : Que se passe-t-il si l'association "Catégorisation de la note" n'a ni l'attribut "Raison" ni l'attribut "Pertinence".
    Vouloir la transformer en Entité revient à faire une Entité sans attributs : encore une chose que le logiciel de modélisation n'aime pas du tout

  6. #6
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par CDuv-Fr Voir le message
    Petit effet désagréable de cette "astuce" de transformer l'Association en Entité (dans le MCD) : Quid d'une association ne portant aucune information ?
    Dans mon exemple cela donnerait : Que se passe-t-il si l'association "Catégorisation de la note" n'a ni l'attribut "Raison" ni l'attribut "Pertinence".
    Vouloir la transformer en Entité revient à faire une Entité sans attributs : encore une chose que le logiciel de modélisation n'aime pas du tout
    L’entité-type Categorisation est associative, elle hérite de trois attributs, à savoir, ceux qui constituent les identifiants des entités-types qu’elle met en relation : Categorie, Utilisateur, Note. Simplement, au niveau MCD, ceci est implicite et n’est donc pas représenté dans le diagramme. Ça n’est qu’au niveau du MLD que cela devient explicite.
    Pour reprendre le MCD que je vous ai fourni, le passage au MLD donne le résultat suivant :

    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  7. #7
    Futur Membre du Club Avatar de CDuv-Fr
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Ça n’est qu’au niveau du MLD que cela devient explicite.
    Pour reprendre le MCD que je vous ai fourni, le passage au MLD donne le résultat suivant :

    Je comprends bien, mais comme j'utilise le MCD pour générer le MLD (automatiquement), le problème de l'entité "Catégorisation" n'ayant pas d'attributs me bloque (mon logiciel ne me laissant pas passer outre).

  8. #8
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par CDuv-Fr Voir le message
    j'utilise le MCD pour générer le MLD (automatiquement), le problème de l'entité "Catégorisation" n'ayant pas d'attributs me bloque (mon logiciel ne me laissant pas passer outre).
    Le MLD que je vous ai fourni a été produit de façon automatique. L'AGL (Power AMC) ronronne parce que, même si je ne fournis aucun attribut pour Catégorisation, j'utilise l'identification relative pour le MCD, et donc il comprend que les attributs sont implicites (car participant à l'identifiant de Catégorisation).

    Pouvez-vous fournir une image de votre MCD ?
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  9. #9
    Futur Membre du Club Avatar de CDuv-Fr
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    J'avais bien utilisé l'identification relative (cardinalité : (1,1)).

    Mais il semble que le problème que j'avais n'était que le résultat d'un bug de PowerDesigner (n'ayant pas intégré correctement les différentes modification suite au passage de l'Association à l'Entité).

    En effet, en le lançant à l'instant pour faire une capture j'ai, par acquis de conscience, relancé la génération : celle-ci s'est déroulée sans soucis.

    Encore merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/11/2014, 16h44
  2. [Source][VBA-E] Remplir une zone de liste Excel par une requête Access
    Par cafeine dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/01/2007, 13h26
  3. Réponses: 3
    Dernier message: 02/01/2007, 13h53
  4. [.NET 2.0] Changer une ancienne version des rapports par une nouvelle
    Par onouiri dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 22/11/2006, 15h27
  5. [Conception] Faire une somme de valeurs définies par une boucle
    Par fixbraun dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 25/09/2006, 23h46

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