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 :

MCD/MLD : Attribut qui est une clé étrangère et fait partie de la clé primaire


Sujet :

Merise

  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut MCD/MLD : Attribut qui est une clé étrangère et fait partie de la clé primaire
    Bonjour,

    Je voudrais concevoir un MCD et MLD qui modélisent le besoin suivant :
    1. une entité Account avec un numéro (PK)
    2. une entité SubAccount avec un numéro et une référence sur un Account qui sont la clé primaire composée. Le numéro du subAccount n'est pas forcément unique

    Autant au niveau MLD, on a :
    Account(AccountNum)
    SubAccount(SubAccountNum, #AccountNum)

    Mais au niveau MCD, je vois mal comment je dois représenter. Des suggestions ?

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


    Avant de traiter du comment, il est important de s'intéresser au pourquoi... On peut subodorer qu’un sous-compte n’est qu’une propriété multivaluée d’un compte : le sous-compte n’est pas autonome, il n’a de sens que par le compte qui le porte.

    Cela dit, au niveau MCD vous êtes en plein dans le sujet de l’identification relative, évoqué dans le document de référence défini par le groupe 135 de l’AFCET (Journée du 15 novembre 1990 - Le formalisme de données Merise : extensions du pouvoir d’expression) :



    Ainsi, Une chambre d’hôtel n’a de sens qu’en fonction de l’hôtel auquel elle appartient, tout un une sous-compte n’a de sens qu’en fonction du compte auquel il appartient.

    Quand à la façon de représenter la chose au niveau conceptuel, chaque AGL a son propre formalisme. Pour ceux que je connais :

    Avec IEF (Information Engineering Facility) :




    Avec WinDesign :



    Avec DB-MAIN :




    Avec PowerAMC, façon Merise :




    Avec PowerAMC, dans son style « E/R » :




    Avec Open ModelSphere :





    A vous de choisir...
    (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
    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
    Bonjour atha2,

    Pour compléter la réponse de fsmrel, je ferais une petite remarque sur ce que vous avez écrit :
    SubAccount(SubAccountNum, #AccountNum)
    Je mettrais les deux colonnes dans l'ordre inverse, de manière à avoir l'index de clé primaire dans le bon sens : (#AccountNum, SubAccountNum).
    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 !

  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
    Citation Envoyé par CinePhil Voir le message
    Je mettrais les deux colonnes dans l'ordre inverse, de manière à avoir l'index de clé primaire dans le bon sens.
    Saint Éloi aurait dit exactement la même chose ^^
    (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
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    @fsmrel : merci pour tous ces détailles, je comprend mieux pourquoi je ne trouvais pas de solution simple avec mon outil Merise (AnalyseSI), il est probablement trop simpliste. Connaissez-vous un outil gratuit disponible sous Linux ?
    Sinon j'ai fait un peu de recherche sur les identifiants relatifs mais je n'ai pas réussi à trouver de résultat en anglais. La traduction est bien : relative identifier ?

    [HS]je cherche comment l'implémenter ce truc en JEE mais pour l'instant => FAIL [/HS]

    Sinon pour la raison de la non unicité d'un numéro de sous de sous compte, c'est juste que pour l'instant je n'ai aucune info la dessus. Donc je pars du principe que le ce numéro n'est pas unique et quoiqu'il arrive mon modèle restera valide (//TODO optimiser plus tard ).

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


    En gratuit sous Linux, il y a Open ModelSphere et DB-MAIN. Maintenant, si cela ne vous gêne pas de modéliser directement au niveau logique, MySQL Workbench est un bon produit.

    Tant qu’on reste au niveau conceptuel, Open ModelSphere est très bon, mais au niveau logique, c’est à vous rendre schizophrène, un truc à donner envie de balancer son micro par la fenêtre... Quoi qu’il en soit, pour l’installer, voyez le billet de CinePhil.

    DB-MAIN est excellent et généralement plus puissant que les autres, mais un peu déroutant au départ, il est préférable de s’en servir avec la doc à portée de main.


    Pour les identifiants relatifs, cherchez plutôt du côté de « Identifying relationship », ici tant qu’à faire .
    (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é
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    merci pour ces infos complémentaires.

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

Discussions similaires

  1. [XPATH] Compter le nombre d'attributs qui ont une valeur donné
    Par doozor dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 26/05/2008, 10h06
  2. Réponses: 2
    Dernier message: 22/02/2008, 10h54
  3. [MySQL] Savoir si un champ est une clé étrangère
    Par mattyeux dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/01/2008, 22h22
  4. Réponses: 6
    Dernier message: 26/06/2007, 18h36
  5. Réponses: 1
    Dernier message: 15/05/2007, 10h40

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