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 :

mcd vers mld


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 133
    Points : 18
    Points
    18
    Par défaut mcd vers mld
    bonjour,
    je veux savoir pourquoi est ce que les clès primaires migrent des entités de cardinalités fortes vers les entités de cardinalités faibles ?
    en fait comment est ce qu'on peut expliquer cette règle du passage du mcd vers le mld ?
    merci beaucoup d'avance pour toute réponse

  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
    Qu'entendez-vous par "cardinalités fortes" ou "faibles" ?

    Sur mon blog, je donne tous les cas de cardinalités entre deux entités types et leurs conséquences pour l'implémentation des tables dans la BDD, donc les clés étrangères dans le MLD.
    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
    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 902
    Points
    30 902
    Billets dans le blog
    16
    Par défaut Au sujet de l'identification relative
    Bonsoir,


    Considérez le bordereau de saisie des commandes ci-dessous :




    Fin des années soixante-dix, avec Merise (1re génération) on modélisait les lignes de commande au moyen d’une association (Commander dans l’exemple) :




    Ou en appelant un chat, un chat :



    Sémantiquement parlant, la ligne de commande peut être néanmoins considérée non pas comme une association entre la commande et le produit, mais, à l’image de ce qu’on perçoit dans le bordereau de saisie, plutôt comme une propriété multivaluée de la commande : LigneCommande est une entité-type faible (weak entity-type) au sens de Chen, Codd et tutti. Avec Merise 2e génération, on a eu la possibilité d’utiliser l’identification relative pour implémenter cela. Avec PowerAMC :




    Avec WinDesign (noter la dépendance fonctionnelle merisienne LigneCommande -> Commande) :




    Les AGL transforment ainsi le MCD en MLD :




    La clé de la table est la paire {CommandeId, NoLigne}. L’attribut CommandeId de la table LigneCommande est par construction hérité de l’attribut CommandeId de la table Commande. Par convention (mais ça n’est pas un impératif), pour une valeur C de l’attribut CommandeId de la table LigneCommande, si la commande C comporte Nc lignes de commande, l’attribut NoLigne est numéroté de 1 à N, ligne de commande par ligne de commande. Même principe pour chaque commande.

    Mais attention, pour une commande et un produit donnés il n’y a qu’une quantité et un montant (ce qui est garanti quand la ligne de commande fait l’objet d’une association, comme dans les exemples ci-dessus faisant référence à Merise 1re génération). Il faut donc définir une contrainte sous forme de clé alternative {CommandeId, ProduitId} pour la table LigneCommande :




    Quoi qu’il en soit, Pour mettre en œuvre la numérotation des lignes de commande (attribut NoLigne), voyez le billet Trigger pour incrémentation relative proposé par CinePhil.
    (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.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 133
    Points : 18
    Points
    18
    Par défaut
    Merci à tous pour les réponse mais ma question n'est pas "comment passer du mcd au mld ?" je metrise la méthode mais
    ma question est pourquoi si on a d'une part (1,n) et de l'autre (1,1) la clès de la première sera inscrite dans la table de la seconde ?
    merci d'avance pour toute réponse

  5. #5
    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
    Ben tu as la réponse dans mon billet de blog !

    pourquoi si on a d'une part (1,n) et de l'autre (1,1) la clès de la première sera inscrite dans la table de la seconde ?
    Tu as l'association suivante :
    A -1,n----associer----1,1- B

    Elle est issue de la règle de gestion suivante :
    Un A est associé à un à plusieurs B et un B est associé à un seul A.

    Le MLD détermine la composition des tables de la future BDD. Et dans un SGBDR, les tables sont associées par des clés étrangères référençant les clés primaires d'autres tables.

    Dans le cas de cette association, si je mets dans la table A une clé étrangère référençant B, je ne pourrai au maximum référencer qu'un seul B pour un A, ce qui est contraire à la règle de gestion et aux cardinalités 1,n du MCD. Par contre, en mettant dans B une clé étrangère référençant A, j'obéis bien à la règle de gestion et aux cardinalités 1,1 du MCD et je n'interdit nullement qu'un A soit référencé par plusieurs B.

    Pour respecter totalement la règle de gestion et le MCD, il faudra tout de même prévoir, dans le SGBD, un processus, trigger ou procédure, pour que, lors de la création d'un A, au moins un B lui soit immédiatement associé. Et comme le B en question ne peut être associé qu'à un seul A, il faut donc créer le B en même temps que le A.
    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 !

Discussions similaires

  1. MCD vers MLD - association 1-N
    Par koktel_dfr dans le forum Merise
    Réponses: 6
    Dernier message: 03/12/2010, 14h42
  2. Passage MCD vers MLD. Créer la table jointure.
    Par Oishiiii dans le forum PowerAMC
    Réponses: 6
    Dernier message: 24/03/2010, 21h49
  3. Réponses: 1
    Dernier message: 07/12/2008, 14h38
  4. pb de passage d'une agrégation d'1 MCD vers le MLD
    Par Angelseb dans le forum Schéma
    Réponses: 5
    Dernier message: 23/01/2007, 02h53
  5. du MCD au MLD
    Par pit9.76 dans le forum Schéma
    Réponses: 7
    Dernier message: 09/06/2006, 12h55

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