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 :

Tables de référence dans un MCD


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut [RESOLU]Tables de référence dans un MCD
    Bonjour.

    J'ai, dans ma base de données, plusieurs tables de référence utilisées par de nombreuses entités (elle contiennent par exemple, pour un type de produit, ses démoninations dans plusieurs langues).
    Après lecture de la définition d'une entité dans Merise, je n'ai pas l'impression que ces tables peuvent être représentées en tant que tel.

    Travaillant actuellement avec powerAMC pour générer les MCD / MPD, j'aurais voulu savoir à quel endroit je dois définir ces objets.

    Merci d'avance.

    JC

  2. #2
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    Je ne sais pas si j'ai bien compris ton pb.
    Apparemment tu as un MCD Merise que tu essaies de transformer en tables relationnelles pour ta base de données.
    Je te rappelle que ce n'est pas possible a partir d'un MCD qui n'est qu'une vue conceptuelle de ton architecture. Il faut d'abord transformer le MCD en MLD (Modèle Logique de Données) permettant d'établir la structure en tables. Exemple de MLD :

    - Table1 (Col1 Type1,Col2 Type2, ...)
    - Table2 (Col1 Type1,Col2 Type2, ...)
    ...

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci pour ta réponse.

    Mon problème est plutôt de savoir si l'objet auquel je pense peut-être considéré comme une entité, et donc s'il doit apparaître sur le MCD.

    Petit exemple pour clarifier :

    il y a dans mon modéle une entité voiture, une entité roue, une entité pot d'échappement, liées entre elles par des relations (par exemple, voiture possède 1-n roues...). Chacune de ces entités va posséder une propriété "code couleur".
    Comme j'ai besoin d'identifier le nom de la couleur en fonction de la langue de l'utilisateur qui accèdera à l'appli, j'ai une table (dans ma base de donnée, pas dans le mcd) du type "code couleur | langue | nom de la couleur dans cette langue" (appelons la couleur_langue).

    Cette table (dans la base) a-t-elle une existence en tant qu'entité dans le modèle conceptuel ou non ?
    Si ce n'est pas le cas, à quel stade l'ajoutè-je dans mon modèle AMC (au niveau du MPD, dans un autre modèle).

    J'espère que j'ai rendu mon problème un peu plus compréhensible

    NB : je parle de la table car la base de donnée existe déjà, mais pour répondre aux besoins du clients, je dois produire les MCD / MPD / Scripts de génération en passant par PowerAMC

  4. #4
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    Bon je vais etre tres franc avec toi, j'ai pas fait d'analyse Merise depuis très lgtps. Je prefere rien te dire que dire une connerie.

    Bonne chance pour ton pb.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci quand même

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 113
    Points : 488
    Points
    488
    Par défaut
    Si je comprend bien, il s'agit du problème dit des propriétés à valeurs codées dans le MCD, qui deviennent des tables de référence au niveau du MLD.
    En général, ces propriétés ont une valeur codée à laquelle correspond un libellé significatif (et éventuellement quelques autres infos).
    Code couleur, type produit, etc... relèvent a priori de ce problème.

    L'exemple classique est Civilité (généralement affecté à une Personne)avec:
    1 : Monsieur
    2 : Madame
    3: Mademoiselle
    etc...

    Au niveau MCD, l'entité Personne se justifie pleinement. Par contre modéliser Civilité comme une entité ne correspond absolument pas à l'esprit d'un MCD, et est même considéré par la plupart des spécialistes Merise comme une erreur.

    Par contre, au niveau MLD/MPD, Civilité doit devenir un table référencée par Personne, avec Civilité comme clé étrangère dans Personne.

    Alors comment faire ?
    1/ Au niveau MCD, rattacher "normalement" Civilité à Personne; ce qui est tout à fait naturel conceptuellement. Indiquer que cette propriété est de nature "valeur codée".
    Lors de la transformation en relationnel, reprendre ces valeurs codées (éventuellement partagées par plusieurs entités...) et en faire des tables "de référence" avec code, libellé, etc..., et les relier aux tables (ex-entités) d'origine. Le code deviendra une clé étrangère.
    Certains outils (mais pas AMC...) proposent ce mécanisme et générent automatiquement ces tables de référence.

    2/ Si l'on travaille avec un outil que ne gère pas ce comportement,
    soit on modélise un MCD "correct" et l'on est obligé de rajouter ces tables "de référence" au niveau MLD,
    soit on "logicalise" le MCD en introduisant ces notions dès le MCD pour bénéficier de la transformation automatique, avec des pertes; en effet, ces valeurs codées n'apparaissent plus dans la description de l'entité.

    MCD


    MLD
    Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément.
    L'Art poétique - Nicolas Boileau (1636-1711)

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    C'était tout à fait le problème !

    Je vous remercie beaucoup pour votre réponse très détaillée.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/08/2014, 20h03
  2. Réponses: 4
    Dernier message: 06/05/2009, 19h15
  3. Réponses: 18
    Dernier message: 10/01/2009, 14h02
  4. Réponses: 6
    Dernier message: 29/06/2006, 10h36
  5. modifier la table de référence dans un état
    Par floune dans le forum Access
    Réponses: 3
    Dernier message: 20/11/2005, 16h51

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