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 avec identification relative


Sujet :

Schéma

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut MCD avec identification relative
    Bonjour,

    Je suis actuellement en train de travailler sur une base de données pour réaliser un programme de gestion de projet.

    Pour résumer, un membre peut créer un projet, il passe alors chef de projet.

    Le projet, peut par la suite et a tout moment être découpée en taches. Donc a ce moment la, utilisation de l'identification relative.

    De même, a tout moment, une tache peut etre séparée en sous tache. Même chose, utilisation de l'identification relative entre table et sous tache.

    Par contre, je bloque depuis plusieurs jours sur le point suivant qui fait que le chef de projet peut a l'infini séparer une sous tache en plusieurs sous taches, et la, je ne vois pas du tout comment gerer ca.

    C'est pourquoi je vous contacte.
    J'espère que vous pourrez m'aider, et me débloquer.

    Merci d'avance,


    AiDuK


    PS : si vous avez besoin d'autres renseignements, je me tiens a votre disposition

  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
    un membre peut créer un projet
    Je dirais plutôt qu'un membre peut créer plusieurs projets un qu'un projet est créé par un seul membre. Non ?
    membre -0,n----créer----1,1- projet

    Le projet, peut par la suite et à tout moment être découpé en tâches.
    projet -0,n----découper----1,1- tache

    Donc a ce moment la, utilisation de l'identification relative.
    Soit, faisons ça :
    projet -0,n----découper----(1,1)- tache

    De même, a tout moment, une tache peut etre séparée en sous tache.
    tache -0,n----diviser----0,1- tache

    Même chose, utilisation de l'identification relative
    Soit, faisons ça :
    tache -0,n----diviser----(0,1)- tache

    A noter qu'avant l'implantation en BDD, vous devriez regarder du côté de la modélisation d'aroborescence.
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Tout d'abord, merci d'avoir prit le temps de répondre a mon problème.

    Citation:
    un membre peut créer un projet
    Je dirais plutôt qu'un membre peut créer plusieurs projets un qu'un projet est créé par un seul membre. Non ?
    membre -0,n----créer----1,1- projet
    Un membre peut créer un ou plusieurs projets, et un projet ne peut être crée que par un et un seul membre. Ça je suis d'accord, mais n'étant pas la base de mon problème, je ne l'avais pas spécifié.

    Citation:
    De même, a tout moment, une tache peut etre séparée en sous tache.
    tache -0,n----diviser----0,1- tache

    Citation:
    Même chose, utilisation de l'identification relative
    Soit, faisons ça :
    tache -0,n----diviser----(0,1)- tache
    Donc utilisation d'association réflexive et d'identification relative pour la séparation de tache en sous tache ? C'est faisable ca ?

    PS : désolé pour les quelques fautes d'orthographe, mais écrivant sur un clavier qwerty, e n'est pas très pratique pour les accents, du coup, je corrige avec le correcteur windows, mais quelques erreurs subsistent.

    Merci,


    AiDuK

  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
    Bonjour AiDuK,


    L’organisation des tâches en sous-tâches correspond à une hiérarchie (vu le contexte Qwerty, nul ne saurait vous tenir rigueur d’écrire « tache »).

    Par ailleurs, vous souhaitez peut-être connecter une tâche (racine) à un projet. Un MCD de ce genre pourrait convenir, dans lequel le terme TACHE désigne aussi bien une tâche (racine) qu’une sous-tâche :



    (Cette représentation a été effectuée avec Power AMC).


    Bien entendu, seule une tâche (racine) est en relation directe avec un projet.

    MLD correspondant :



    N'hésitez pas si vous avez des questions.
    (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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonsoir,

    J'ai relu plusieurs fois votre réponse, et j'avoue que cela n'est pas encore tout a fait limpide pour moi.

    Cela vient du fait que je ne visualise pas correctement les cardinalitées de votre schéma, ainsi que le sens des liaison de l'entité 'hiérarchie'.

    Dans le fonctionnement, l'entité 'hiérarchie' permet de retrouver la tache parente d'une tache précise (par tache, j'entends aussi sous-tache).

    Mais du coup, si l'on a plusieurs projets différents en cours, l'on ne peut identifier directement par sa clé primaire le projet auquel une tache appartient.

    Pardonnez moi si je fais preuve de certaines sottises en la matière, mais mon Merise est un peu rouillé, et j'essaie de faire quelque chose qui dépasse un peu les connaissances que j'avais acquises.

    En tout cas, merci beaucoup de vous pencher sur mon problème et de m'apporter vos connaissances en la matière.

    Cordialement,



    AiDuK

  6. #6
    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
    Je vais essayer de traduire le schéma entité/relation de fsmrel en MCD Merise plus classique...

    Tâche -(1,1)----Affecter----0,n- Projet

    et

    Tâche -0,n----Composer----(1,1)- Hiérarchie
    |------0,1----Etre----------(1,1)------|
    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 !

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    L'entité hiérarchie me pose toujours problème dans la compréhension.
    Don si je comprends bien, c'est une association réflexive.
    Mais ses deux branches : être et composer sont encore mystérieuses pour moi dans leur utilisation et dans les migrations des clé.

  8. #8
    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
    Bonjour,


    Citation Envoyé par CinePhil Voir le message
    Je vais essayer de traduire le schéma entité/relation de fsmrel en MCD Merise plus classique...

    Tâche -(1,1)----Affecter----0,n- Projet

    et

    Tâche -0,n----Composer----(1,1)-- Hiérarchie
    |------0,1----Etre---------(1,1)-----|
    Juste deux petites remarques :

    Selon la représentation graphique que j’ai utilisée (E/R), Tâche n’est pas identifiée relativement à Projet (mais ça reste possible).

    Hiérarchie n’est pas identifiée relativement à Tâche via l’association-type Composer, mais seulement via l’association-type Etre.

    =>

    Tâche -1,1----Affecter----0,n- Projet

    et

    Tâche -0,n----Composer----1,1- Hiérarchie
    |------0,1- ---Etre--------(1,1)------|

    En dessinant de façon traditionnelle :



    Pour en revenir au MLD, celui-ci donne lieu à l’extension suivante :



    Citation Envoyé par AiDuK Voir le message
    si l'on a plusieurs projets différents en cours, l'on ne peut identifier directement par sa clé primaire le projet auquel une tache appartient.
    Selon la table AFFECTATION, les tâches t1 et t2 relèvent du projet p1, tandis que la tâche t3 relève du projet p2.
    (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.

  9. #9
    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
    OK alors on va faire ça avec un exemple de données, à partir du MLD de fsmrel :

    Soit le projet suivant dans la table PROJET :
    ProjetId / ProjetNom
    1 / 'Cours Merise'

    Je crée une tâche dans la table TACHE :
    TacheId / TacheNom
    1 / 'Faire tutoriel'

    J'affecte la tâche au projet 'Cours Merise' dans la table AFFECTATION :
    TacheId / ProjetId
    1 / 1

    Je crée une sous-tâche dans la table TACHE :
    TacheId / TacheNom
    2 / 'Faire exemple MCD'

    J'affecte la sous-tâche au projet 'Cours Merise' dans la table AFFECTATION :
    TacheId / ProjetId
    2 / 1

    Je hiérarchise la tâche et la sous-tâche dans la table HIERARCHIE :
    TacheId / TacheParenteId
    2 / 1
    ==> La tâche 1 est parente de la tâche 2.

    Je constate au passage que mon MCD était légèrement faux par rapport au MLD. La première association serait plutôt celle-ci je pense :
    Tâche -(1,n)----Affecter----0,n- Projet

    Il est supposé ici qu'une tâche peut être affectée à plusieurs projets. Ainsi, la tâche {1, 'Faire tutoriel'} pourrait aussi être affectée au projet {2, 'Cours PHP'}.

    EDIT : Réponse simultanée avec fsmrel.
    Ci-dessus, je me référais au premier MLD comportant une table AFFECTATION alors qu'à mon avis le dernier MCD de fsmrel :
    TACHE -1,1----AFFECTER----1,n- PROJET

    Ne génère pas une table AFFECTATION mais seulement une clé étrangère faisant référence à l'identifiant du projet dans la table TACHE.
    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 !

  10. #10
    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 AiDuK Voir le message
    L'entité hiérarchie me pose toujours problème dans la compréhension.
    Don si je comprends bien, c'est une association réflexive.
    Mais ses deux branches : être et composer sont encore mystérieuses pour moi dans leur utilisation et dans les migrations des clé.
    C’est effectivement une association-type réflexive. J’espère que l’exemple ci-dessus vous aidera dans la compréhension de la représentation.

    Le 1er MCD que j’ai proposé peut paraître hermétique, mais par contraste avec le second, plus classique, il offre l’avantage que nous n’ayons pas à retoucher le MLD pour arriver à celui que j’ai proposé dans mon 1er message.
    (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.

  11. #11
    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
    Ne génère pas une table AFFECTATION mais seulement une clé étrangère faisant référence à l'identifiant du projet dans la table TACHE.
    Ciel ! N’en faites rien !

    En effet, soit vous injectez des redondances à contrôler (chaque sous-tâche devra impérativement faire référence elle aussi au projet référencé par sa maman). Ceci correspond à la représentation Merise classique que j’ai proposée en second, que je n’aime pas, et pour laquelle la cardinalité 1,1 portée par la patte connectant TACHE et AFFECTER devrait être remplacée par 0,1 (ce qui serait plus conforme, mais alors vous passez de Charybde à Scylla, car vous demandez alors au bonhomme NULL de se manifester).

    Si le 1er MCD que j’ai proposé paraît hermétique (tandis que le 2e donne lieu à un MLD infecté par le bonhomme NULL en relation avec la réflexive), voici une représentation alternative, avec mise en œuvre des entités-types AFFECTATION et HIERARCHIE, quitte à bricoler le MLD résultant pour en éliminer les cycles et retrouver ainsi le MLD initial :



    AiDuK, si vous avez besoin de compléments d’explications, n’hésitez pas à poser vos questions.
    (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.

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Encore merci de l'aide que vous m'apportez.

    En ce qui concerne la table 'affectation', je ne comprends pas bien son utilité puisque normalement, le clé primaire de la table projet devrait migrer en clé primaire - étrangère de la table tache (projet 0,N --comporter-- (1,1) tache).

    Pour apporter une clarification, une tache ou sous tache ne peut appartenir qu'a un et un seul projet.

    Et dans ton MCD, je ne vois pas trop le fonctionnement de hiérarchie, si c'est une table ou autre.

    PS : quel logiciel utilisez vous pour faire vos MCD svp ?

  13. #13
    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 AiDuK Voir le message
    quel logiciel utilisez vous pour faire vos MCD svp ?
    Comme je l’ai précisé dans mon 1er message, il s’agit de Power AMC.


    Citation Envoyé par AiDuK Voir le message
    Pour apporter une clarification, une tache ou sous tache ne peut appartenir qu'a un et un seul projet.
    On est bien d’accord, mais si l’on connaît le projet auquel est affectée une tâche, alors par induction, on connaît le projet auquel est affectée une sous-tâche quelconque, sans que celle-ci y fasse explicitement référence.


    Citation Envoyé par AiDuK Voir le message
    En ce qui concerne la table 'affectation', je ne comprends pas bien son utilité puisque normalement, le clé primaire de la table projet devrait migrer en clé primaire - étrangère de la table tache (projet 0,N --comporter-- (1,1) tache).
    Comme je l’ai expliqué dans mon précédent message, modéliser :
    Projet 0,N --comporter-- (1,1) Tache
    signifie que non seulement les tâches, mais les sous-tâches feront explicitement elles aussi référence aux projets (rappel : les tâches t1 et t2 font référence au projet p1, tandis que la tâche t3 fait référence au projet p2), engendrant une redondance néfaste :



    Et si l’on ne surveille pas la cohérence de ce système, rien n’interdit que, par exemple, la sous-tâche t112 fasse référence au projet p2, ce qui serait une erreur.

    Ça c’est pour Charybde. Pour en venir à Scylla, on pourrait modéliser ceci :
    Projet 0,N --comporter-- (0,1) Tache
    la cardinalité minimale 0 permettant alors au bonhomme NULL de se manifester au niveau logique :



    D’où la justification de l’entité-type AFFECTATION, car le bonhomme NULL est interdit de séjour dans la théorie relationnelle (d’aucuns vous diront qu’en SQL il est admis, et tant pis si l’algèbre relationnelle est mise en échec...)


    Citation Envoyé par AiDuK Voir le message
    dans ton MCD, je ne vois pas trop le fonctionnement de hiérarchie, si c'est une table ou autre
    Au niveau du MLD (modèle logique des données), HIERARCHIE est bien une table, sinon on s’enfoncerait encore un peu plus dans le marécage des NULLs comme ci-dessous :




    D’où ma préférence pour un système conforme à la théorie relationnelle :

    (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.

Discussions similaires

  1. [MCD] représentation d'une identification relative
    Par ZDAZZ dans le forum Schéma
    Réponses: 2
    Dernier message: 05/04/2007, 13h49
  2. Aide pour MCD avec clés étrangères
    Par tiger33 dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2006, 16h01
  3. [conception] problème identification relative
    Par mel02 dans le forum Modélisation
    Réponses: 4
    Dernier message: 19/01/2006, 17h00
  4. Variante de TUpDown avec incrément réel
    Par Bernard Grosdoy dans le forum Composants VCL
    Réponses: 6
    Dernier message: 20/10/2004, 16h40
  5. [MaskEditBox] Affecter avec un réel
    Par fikou dans le forum Général VBA
    Réponses: 6
    Dernier message: 16/09/2002, 09h28

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