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 :

[MLD] Cabinet Médical - Workbench


Sujet :

Schéma

  1. #1
    Futur Membre du Club
    [MLD] Cabinet Médical - Workbench
    Bonjour à toutes et à tous,

    Débutant sur Workbench, j'ai du mal à représenter les cardinalités de type (O,N) - (0,N). Je m'explique , plusieurs patients peuvent avoir 0 ou plusieurs affection et inversement. Ce qui nous donne Patient (0,N) - souffre - (O,N) Affection.
    Voir schéma ci-dessous au cas où cela ne serait pas très parlant.



    Cordialement,

    Azier

  2. #2
    Modérateur

    Bonjour,

    Vous sélectionnez le lien "n:m Identifing relationship" et vous cliquez successivement sur chaque table en jeu dans l'association. Ça crée automatiquement une table associative que vous pouvez ensuite renommer, renommer ses colonnes, ses index, ses clés étrangères...
    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
    azier,

    Vous pouvez consulter l’article que j'ai rédigé à propos de MySQL Workbench. La réponse à votre question est fournie au paragraphe 4.2.
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  4. #4
    Expert éminent sénior
    azier,

    Quand on regarde de près votre schéma, on constate que la table CONSULTATION a pour clé primaire {dateConsultation}, ce qui veut dire qu’à une date donnée, il n’y a qu’un seul médecin qui puisse recevoir des patients et un seul patient qui puisse être reçu au cabinet... A défaut d’une règle de gestion précise, la clé primaire de CONSULTATION est la paire {codeMedecin, numPatient}.

    En supposant qu’il existe la règle selon laquelle à une date donnée, un patient ne peut consulter qu’une fois tandis qu’un médecin peut recevoir plusieurs patients, alors la clé primaire est la paire {numPatient, dateConsultation}.

    Exemple :

    codeMedecin    numPatient   dateConsultation
    m01            p01          d1
    m01            p01          d2
    m01            p02          d1
    m02            p01          d3
    m02            p01          d4
    m02            p03          d1
    
    Question : quelles sont vos règles de gestion des données ?

     
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  5. #5
    Futur Membre du Club
    Citation Envoyé par fsmrel Voir le message
    azier,

    Quand on regarde de près votre schéma, on constate que la table CONSULTATION a pour clé primaire {dateConsultation}, ce qui veut dire qu’à une date donnée, il n’y a qu’un seul médecin qui puisse recevoir des patients et un seul patient qui puisse être reçu au cabinet... A défaut d’une règle de gestion précise, la clé primaire de CONSULTATION est la paire {codeMedecin, numPatient}.

    En supposant qu’il existe la règle selon laquelle à une date donnée, un patient ne peut consulter qu’une fois tandis qu’un médecin peut recevoir plusieurs patients, alors la clé primaire est la paire {numPatient, dateConsultation}.

    Exemple :

    codeMedecin    numPatient   dateConsultation
    m01            p01          d1
    m01            p01          d2
    m01            p02          d1
    m02            p01          d3
    m02            p01          d4
    m02            p03          d1
    
    Question : quelles sont vos règles de gestion des données ?

     
    Bonsoir,

    Merci pour le lien, ça va bien m'aider.
    Aucune règle de gestion, nous devons partir d'un texte et concevoir le MCD et MLD.

  6. #6
    Expert éminent sénior
    azier,

    Citation Envoyé par azier Voir le message
    Aucune règle de gestion, nous devons partir d'un texte et concevoir le MCD et MLD.
    Le texte qu’on vous a proposé contient forcément les règles de gestion des données, sous forme plus ou moins littéraire. A vous de les débusquer et les mettre en forme, avant de bâtir le MCD (pour sa part, le MLD n’est qu’une conséquence, une traduction du MCD selon un autre formalisme).


    En attendant, voici le schéma correspondant attendu en fonction de la règle de gestion que je vous ai proposée :



    Maintenant, il y a une différence entre la modélisation d’un MCD (modèle conceptuel des données) et celle d’un MLD (modèle logique des données). Dans le 1er cas il n’y a pas redondance des attributs, contrairement au 2e cas (MySQL Workbench) où l’on est à mi-chemin entre le conceptuel et SQL.

    Pour bien débuter, vous devriez commencer par faire le MCD, par exemple avec l’excellent Looping, gracieusement proposé par le professeur Patrick Bergougnoux (merci Paprick !) :



    Vous pouvez constater que cette fois-ci, dateConsultation participe à l’identification de CONSULTATION : la patte connectant CONSULTATION et Asso_2 est porteuse d’une cardinalité 1,1(R) où la lettre « R » symbolise l’identification de CONSULTATION relativement à PATIENT, ce qui se traduit au niveau MLD par la clé primaire {numPatient, dateConsultation}.


    Citation Envoyé par azier Voir le message
    Merci pour le lien, ça va bien m'aider.

    Alors n’hésitez pas à liker les réponses qui vous éclairent.


     
    Faites simple, mais pas plus simple ! (A. Einstein)
    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 »)

    Je ne réponds pas aux questions techniques par MP. Les forums sont là pout ça.
    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench

  7. #7
    Futur Membre du Club
    Je vous remercie encore une fois pour toutes ces explications. Effectivement mon MCD à été réalisé avec lucidchart. Maintenant, je m'essaie à la reproduction de ce dernier sur Workbench.

    Cordialement,

    Azier

  8. #8
    Membre confirmé
    Bonsoir,
    Citation Envoyé par azier Voir le message
    Je vous remercie encore une fois pour toutes ces explications. Effectivement mon MCD à été réalisé avec lucidchart. Maintenant, je m'essaie à la reproduction de ce dernier sur Workbench.Azier
    Vous devriez utiliser un outil dédié à la réalisation des MCD (Wind'Design, PowerAMD, Looping, ...) qui vous permettra de faire une bonne modélisation et de demander ensuite la génération automatique du MLD correspondant, et du schéma relationnel pour n'importe quel SGBD.

    Bon courage !
    Patrick Bergougnoux - Professeur des Universités au Département Informatique de l'IUT de Toulouse III
    La simplicité est la sophistication suprême (Léonard de Vinci)
    LIVRE : Modélisation Conceptuelle de Données - Une Démarche Pragmatique
    Looping - Logiciel de modélisation gratuit et libre d'utilisation

  9. #9
    Expert éminent sénior
    Citation Envoyé par fsmrel Voir le message
    azier,

    Le texte qu’on vous a proposé contient forcément les règles de gestion des données, sous forme plus ou moins littéraire. A vous de les débusquer et les mettre en forme, avant de bâtir le MCD (pour sa part, le MLD n’est qu’une conséquence, une traduction du MCD selon un autre formalisme).
    Je plussoie avec énergie
    Ce texte contient aussi sans doute des points d'ombre, voire, comme souvent, des contradictions.
    On ressort rarement de la lecture de l'expression de besoins sans une bonne liste de questions et propositions
    Reformuler ce texte sous forme de règles de gestion permet de vérifier qu'on en a bien compris le contenu et de faire valider ces règles par les gens du métier.

    Etape indispensable avant de commencer à dessiner le MCD, MCD lui aussi indispensable ou en tout cas fortement recommandé, avant de se lancer dans le modèle tabulaire