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

PowerAMC Discussion :

Passage MCD vers MLD. Créer la table jointure.


Sujet :

PowerAMC

  1. #1
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut Passage MCD vers MLD. Créer la table jointure.
    Bonjour,

    J'utilise PowerAMC 15.1 (version d'évaluation).

    J'ai par exemple deux entités comme ceci:
    Espace -- 0,N ---------(Réserver)----------- 0,1 -- EvènementPlanning

    Lors du passage au MLD, PowerAMC me génère ceci:
    Espace(esp_id, esp_nom)
    EvènementPlanning(eve_id, eve_date, esp_id)

    La clé étrangère esp_id étant NULLABLE.

    Or je ne veux pas de la clé étrangère, je préfèrerai une table jointure:
    Espace(esp_id, esp_nom)
    EvènementPlanning(eve_id, eve_date)
    Réserver(esp_id, eve_id)

    Est-ce que je peux faire cela dans les options de PowerAMC, quelque part ?
    Ou bien je change ma cardinalité 0,1 en 0,N ?

    Merci

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut Correction cardinalité : (1,1) devient 1,1 pour R1
    Bonsoir,

    Citation Envoyé par Oishiiii Voir le message
    Est-ce que je peux faire cela dans les options de PowerAMC, quelque part ?
    Yes Sir ! Mais ça se mérite...

    Dans ce qui suit, j’utilise Power AMC V11, vous aurez donc peut-être des aménagements techniques à effectuer, mais dans l’esprit il ne devrait pas y avoir de différence.

    Vous pouvez procéder ainsi :

    De l’association-type Reserver faire une entité-type (ben oui...), il suffit de demander à l’outil (poliment, il est susceptible...) d'effectuer lui-même la transformation (et remplacer soi-même la cardinalité (1,1) en 1,1 dans le cas de l'association-type R1) :




    A signaler que l’outil n’aime pas que l’entité-type Reserver ne comporte pas d’attribut (il n’a va vu que, grâce à l’identification relative, la table qui sera dérivée comportera deux attributs, mais bon, passons). Voici l’injure à laquelle vous avez droit quand vous demandez la vérification du modèle :



    Qu’à cela ne tienne, vous demandez la vérification du modèle et à cette occasion, vous décochez la case « Existence d’attributs » :




    Ceci fait, vous demandez la génération du MLD (MPD avec la V11). Avec ma vieille version, j’obtiens une représentation graphique comportant un cycle qu’il faudra rompre :



    Pas difficile, on clique sur la patte parasite et on la supprime :

    (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
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    PowerAmc 15 me pose le même problème avec un exemple de mcd:


  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir dxerty,

    Citation Envoyé par dxerty Voir le message
    PowerAmc 15 me pose le même problème
    Vous pouvez transformer les associations-types StructureTelephoner et PersonneTelephoner en entités-types et faire comme je l’ai indiqué ci-dessus.
    (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
    Invité
    Invité(e)
    Par défaut
    On obtient le même résultat avec des cardinalités de 0,n sur chaque pattes.

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut 0,N et 0,1 ça n'est pas la même chose...
    Citation Envoyé par dxerty Voir le message
    On obtient le même résultat avec des cardinalités de 0,n sur chaque pattes.
    Faux. Voyez par exemple la réponse d’Oishiiii dans son message du 24/03/2010, 21h49.


    Si le modèle Entité/Relation ne vous effraie pas, vous pourrez procéder ainsi :
    Options du modèle > Paramètres du modèle >
    Case Notation : choisissez « Entité/Relation » ou le panaché (ce que je fais volontiers) « E/R+Merise » :




    Le MCD E/R suivant est équivalent au MCD Merise, mais avec la possibilité de définir un rôle dominant qui permettra de demander à l’outil de ne pas générer de cycle :



    Pour définir un rôle dominant :

    (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
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Merci fsmrel, j'y suis arrivé.

    Citation Envoyé par dxerty Voir le message
    On obtient le même résultat avec des cardinalités de 0,n sur chaque pattes.
    C'est ce que je pensais également lorsque j'ai posé ma question, je voulais créer une table "jointure" dont la clé primaire serait composée des deux clés étrangères, comme lorsque l'on a des cardinalités X,N sur chaque pattes de l'association.

    Mais comme on peut le voir sur le MPD d'fsmrel, la clé primaire de la table créée n'est pas composée des deux colonnes.
    L'identifiant de l'entité coté X,N ne fait pas parti de la clé primaire.
    C'est normal, puisque du fait de la cardinalité 0,1 du côté de l'entité EvènementPlanning dans mon cas, l'identifiant de l'évènenement ne pourra se trouver qu'au maximum une fois dans la table Réserver.

    Donc il préférable d'utiliser la solution d'fsmrel, car au final elle correspond au MCD initial, ce qui n'aurait pas était le cas en passant la cardinalité de 0,1 à 0,N.

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

Discussions similaires

  1. [MCD] mcd vers mld
    Par le sportif dans le forum Schéma
    Réponses: 4
    Dernier message: 09/01/2013, 00h19
  2. MCD vers MLD - association 1-N
    Par koktel_dfr dans le forum Merise
    Réponses: 6
    Dernier message: 03/12/2010, 14h42
  3. [MLD] Passage mcd au mld: 2 associations pour 2 entités
    Par kaso54 dans le forum Schéma
    Réponses: 4
    Dernier message: 10/10/2009, 11h59
  4. Réponses: 1
    Dernier message: 07/12/2008, 14h38
  5. Passage MCD complexe à MLD, conseil pour le MCD
    Par Kalion dans le forum Schéma
    Réponses: 9
    Dernier message: 22/10/2008, 13h41

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