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 :

Passage du MCD au MLD d'une relation N-N [MCD]


Sujet :

Schéma

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 84
    Points : 69
    Points
    69
    Par défaut Passage du MCD au MLD d'une relation N-N
    Bonjour,

    J'aimerai juste une confirmation que les choses sont bien faîtes en suivant cette logique (MCD):

    Un membre peut posséder 0,N Images et une Images est posséder par un unique membre, soit :
    (1)User (0,N) ----- [ posséder ] ----- (1, 1)Images

    Un image peut être commenter par 0,N User, sois :
    (2)User (0,N) ---- [ commenter ] ---- (0,N) Images

    Le passage au MLD entre la table avec les commentaires me pose quelques problème :
    (1)La table image prend une clé étrangère id_user qui pointe vers la table User.

    (2)La relation créer une troisième table user_comment_img qui est consitutée de d'une clé primaire {id_user, id_images}, dont chaque id est une clé étrangère pointant vers les tables User et Image.
    Cependant, ainsi un utilisateur ne pourra commenter qu'une seule fois une image (ce qui n'est pas le but), donc j'ai penser à modifier la clé primaire ainsi : {id_user_comment_img, id_user, id_images } OU {id_user} (pour les performances ?)
    Cependant cela ne viole-t-il pas les "règles" du passage du MCD au MLD ?

    Merci pour vos avis.

  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 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
    Bonsoir sbill,


    Si vous voulez qu’un utilisateur puisse commenter plus d’une fois la même image, alors en Merise vous devrez modéliser quelque chose comme ceci :





    L’entité-type FOIS donnera lieu à une table FOIS, mais n’offrant aucune espèce d’intérêt, au contraire. Il faudra donc : soit la supprimer manuellement, soit (cas de PowerAMC) demander à l’AGL de ne pas générer cette table :






    Mais si vous utilisez DB-MAIN (gratuit), vous pouvez lui signifier que l’identifiant de l’association COMMENTER n’est pas la paire {UTILISATEUR, IMAGE}, mais le triplet {UTILISATEUR, IMAGE, Fois} dans lequel l’attribut Fois est lui aussi partie prenante, auquel cas le MLD produit sera identique au précédent, sans intervention de votre part :






    Dans cette affaire, la performance n’est pas concernée, c’est le choix (au niveau physique, dans la soute) de l’index cluster (au sens DB2 ou PostgreSQL du terme, voire MySQL, etc.) qui interviendra.
    (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.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Merci pour votre réponse.
    Cependant entre temps, j'ai trouver une solution qui règle mon problème, pourriez-vous me donner votre avis en la comparant avec votre dernière proposition svp.

    User (0,N) ----- [ posséder ] ----- (1, 1)Images
    User (0,N) ----- [ post ] ---- (1,1)Commentaire
    Images (0,N) ---- [ a ] ---- (1,1) Commentaire

    Au final l'entité Commentaire aura comme clé primaire id_commentaire et deux clé étrangères id_user & id_image.

    Dans cette affaire, la performance n’est pas concernée, c’est le choix (au niveau physique, dans la soute) de l’index cluster (au sens DB2 ou PostgreSQL du terme, voire MySQL, etc.) qui interviendra.
    Dois-je comprendre qu'il faut conçevoir le MCD sans penser au performance ?

    Merci

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Mais ou es passé Monsieur fsmrel ?

  5. #5
    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
    Bonsoir sbill,


    Citation Envoyé par sbill
    Mais ou es passé Monsieur fsmrel ?
    Il arrive à M. fsmrel d’avoir des obligations qui l’éloignent pendant une semaine...



    Citation Envoyé par sbill
    Dois-je comprendre qu'il faut concevoir le MCD sans penser au performance ?
    Quand on réalise un MCD on n’a pas à penser aux performances, parce qu’on modélise en se préoccupant seulement du quoi et pas du comment, parce qu’on établit une séparation radicale entre le logique et le physique (8e des 12 règles de Codd).

    Cela dit, quand on a fini de modéliser, on bâtit un prototype pour mesurer les performances, disons celles des requêtes qu’on aura à mettre en oeuvre et jugées les plus sensibles. En cas de mauvaise performance, encore faut-il être capable d’en diagnostiquer les causes. Ainsi, l’exemple de la banque d'une ville méridionale où il fait bon vivre est significatif : fallait-il modifier la structure des tables et violer la troisième forme normale ? Réponse négative, alors que les responsables de la base de données étaient prêts à le faire...

    Supposons que l’on adopte votre modélisation. Si votre prototype des performances met en évidence une performance médiocre de telle ou telle requête, il faudra voir ce que donne un aménagement de la structure, avec une clé primaire {id_user, id_commentaire}, ou {id_image, id_commentaire}, ou {{id_user, id_image, id_commentaire}, etc. Ou bien, si vous utilisiez DB2 vérifier s’il suffit de remplacer l’index cluster (id_image} par exemple par {id_user}, sans toucher à la structure de la clé primaire (c’est quelque chose qu’on peut faire avec DB2 mais par exemple pas avec MySQL, pour lequel index primaire = index cluster, avec vraisemblablement une conception différente de la notion d’index cluster, mais je connais mal MySQL).

    Maintenant, il y a des précautions à prendre. Ainsi, il faut éviter de dériver l’entité-type COMPTEUR si elle est présente dans le MCD, car en SQL sa présence sous forme de table peut nuire aux performances (histoire vécue avec l’entité-type DATE devenue table).
    (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.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2014
    Messages : 84
    Points : 69
    Points
    69
    Par défaut
    Merci pour vos explications

    Sujet résolu, bonne soirée

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

Discussions similaires

  1. Réponses: 29
    Dernier message: 20/09/2010, 18h02
  2. Réponses: 1
    Dernier message: 07/12/2008, 14h38
  3. passage du MCD AU MLD
    Par stef51 dans le forum Schéma
    Réponses: 2
    Dernier message: 12/06/2007, 08h31
  4. [merise] passage de MCD a MLD
    Par dj_cue dans le forum Schéma
    Réponses: 9
    Dernier message: 31/03/2006, 23h06
  5. Passage du MCD en MLD en MPD
    Par shinshon dans le forum Schéma
    Réponses: 3
    Dernier message: 02/11/2005, 15h42

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