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] Utilité d'une table supp en association ternaire ?


Sujet :

Schéma

  1. #1
    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 [MCD] Utilité d'une table supp en association ternaire ?
    Bonjour,
    J'analyse une application utilisant des bases de données MySQL et qui a été conçue et développée par des non-informaticiens, dans le but de l'améliorer, notamment sur le plan conceptuel.

    Il y a des utilisateurs qui peuvent créer des indicateurs seulement à l'intérieur de projets.

    Aujourd'hui, j'ai les propriétés "indicreateur" et "indiprojet" dans la table "indicateur".

    A l'analyse du fonctionnement de l'application, je constate que (désolé, je n'ai pas de schéma informatisé) :
    - un utilisateur peut créer 0,n indicateur(s) ;
    - un projet peut contenir 0,n indicateurs(s) ;
    - un indicateur est forcément créé dans un seul projet par un seul utilisateur.

    Si je ne me trompe pas, j'ai donc, conceptuellement, une association ternaire entre les entités utilisateur, projet et indicateur. Cette association devrait me donner une nouvelle table qui pourrait s'appeler "CreerIndicateur".

    Je ne vois, pour le moment, pas d'intérêt à cette table pour l'application. L'association n'est pas porteuse d'autres données, la date de création de lindicateur pouvant très bien rester dans la table indicateur car elle n'est là qu'à titre informatif et n'est pas "gérée" par l'application.

    Quelqu'un peut-il me donner une justification claire de la création d'une table issue d'une association ternaire ?
    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 !

  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 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par CinePhil
    désolé, je n'ai pas de schéma informatisé) :
    - un utilisateur peut créer 0,n indicateur(s) ;
    - un projet peut contenir 0,n indicateurs(s) ;
    - un indicateur est forcément créé dans un seul projet par un seul utilisateur.
    Si je ne me trompe pas, j'ai donc, conceptuellement, une association ternaire entre les entités utilisateur, projet et indicateur
    1) Il peut tout aussi bien s’agir d’une relation binaire entre Utilisateur et Projet, relation porteuse d’une propriété Indicateur, traduisant la contrainte : Pour un couple (Utilisateur, Projet), il existe un et un seul indicateur.

    2) Il peut encore s’agir d’une relation binaire entre Utilisateur et Projet, telle que pour un couple (Utilisateur, Projet) on puisse avoir plusieurs indicateurs, mais avec la contrainte que chacun de ces indicateurs ne fasse référence qu’à ce couple (on parle alors d’agrégation).

    3) Il peut encore s’agir d’une relation binaire entre Indicateur et Utilisateur, doublée d’une relation binaire entre Indicateur et Projet, telles qu’un indicateur fasse référence à un seul utilisateur et que cet indicateur fasse référence à un seul projet, sans que l’on ait à se préoccuper de relations préalables entre utilisateurs et projets.

    Bref, votre formulation est faite en français, donc sujette à plus d’une interprétation (il en va du reste de même pour mes propres formulations...) Le formalisme Merise (ou Entité/Association ou autre) permet de lever cette ambiguïté et d’éviter les quiproquos : merci donc d’utiliser un tel formalisme...

    => Votre constat "désolé, je n'ai pas de schéma informatisé" est le constat d’une lacune, mais de ce qui précède, il ressort clairement que vous devez combler celle-ci.

    Bien sûr, nous sommes ici plusieurs à pouvoir vous aider, mais de votre côté, le mieux est de commencer par le commencement, à savoir compléter vos connaissances relatives à la modélisation des données à l'aide des tutoriels du forum Merise.
    (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
    Tout d'abord, j'ai été un peu heurté par le ton de la réponse, notamment par :
    => Votre constat "désolé, je n'ai pas de schéma informatisé" est le constat d’une lacune, mais de ce qui précède, il ressort clairement que vous devez combler celle-ci.

    Bien sûr, nous sommes ici plusieurs à pouvoir vous aider, mais de votre côté, le mieux est de commencer par le commencement, à savoir compléter vos connaissances relatives à la modélisation des données à l'aide des tutoriels du forum Merise.
    Je n'ai pas de schéma informatisé mais je l'ai bien sûr dessiné sur une feuille avec un crayon.

    Bref, passons...

    Je suis allé cherché sur les tutoriels Merise fourni par ce site et j'ai quand même trouvé de l'aide, donc merci.

    J'ai utilisé la technique conseillée : "faire le schéma seulement avec des associations binaires" et j'ai tenu compte de l'association de "indicateur" avec une autre entité non citée dans ma question parce qu'elle n'entrait pas dans la relation ternaire qui me préoccupait : l'entité "variables" (les variables utilisées par l'indicateur).

    En fait, en associations binaires on a :
    - utilisateur --0,n--Créer--1,1-- indicateur
    - projet --0,n--Référencer--1,n indicateur (parce qu'un indicateur est créé dans un seul projet mais peut être référencé dans plusieurs projets)

    De plus, il y a aussi :
    - variable --0,n--Utiliser--1,n-- indicateur (un indicateur utilise au moins une variable)

    Donc, comme je n'ai pas la cardinalité (1,1) partout du côté de "indicateur", je n'ai pas d'association ternaire (encore moins quaternaire avec "variable").

    Je n'ai pas obéi à Einstein, j'ai voulu trop simplifier mon schéma.
    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
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Je n'ai pas de schéma informatisé mais je l'ai bien sûr dessiné sur une feuille avec un crayon.
    Le plus simple est d'utiliser un modeleur, ou, si vous n'en avez pas, un logiciel de dessin, Visio, Dia, etc.. Il y en a de grande quantités.
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  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
    Visio est en cours de commande.
    Je n'ai pas trouvé Dia très pratique.
    J'ai préféré Kivio (sous Linux / KDE) mais pas dispo là où je fais mon stage.

    J'ai aussi essayé :
    - dbDesigner mais représentation non standard Merise (les losanges sont moins clairs que ce que je connais)
    - analyseSI mais trop strict sur le dictionnaire de données alors que je pars de données existantes (rétroconception)
    - dbMain mais j'ai pas trouvé comment bouger les objets sur le graphique, du coup avec deux associations entre les mêmes deux entités, elles sont supperposées ! Pas pratique à lire et à utiliser.

    Donc en attendant d'avoir Visio que je maîtrise assez bien, je continue au papier/crayon.

    PS : Je cherche aussi un modeleur de MCT et c'est encore moins facile à trouver. En outil gratuit j'ai pas trouvé.
    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 !

  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 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par CinePhil
    Je n'ai pas de schéma informatisé mais je l'ai bien sûr dessiné sur une feuille avec un crayon
    Vous auriez pu nous en avertir et nous présenter ce schéma. De mon côté, après un voyage de 800 km en voiture, j’ai pris la peine de passer une heure à analyser votre formulation faite en français et vous en fournir quelques interprétations possibles. Si vous nous aviez transmis votre schéma, vous nous auriez fait gagner du temps.

    Tant qu'à faire, vous auriez pu à tout le moins utiliser un outil de modélisation gratuit, style DBDesigner, même si les losanges de cet outil de modélisation (et non pas de dessin) ne trouvent pas grâce à vos yeux : la représentation formelle permet de lever certaines ambiguïtés inhérentes à toute description textuelle (voire déceler des anomalies).

    Ainsi je viens de passer un quart d’heure sur une représentation possible, à l’aide de l’outil de modélisation (et non pas de dessin) Toad Data Modeler (gratuit). Quelle que soit la validité de la représentation graphique ci-dessous, au moins on dispose d’une base de discussion, modeste certes, mais permettant de gagner du temps et d’éviter des quiproquos, même s’il s’agit ici d’un MLD (tables) plus que d’un MCD (entités-types et associations-types).



    Citation Envoyé par CinePhil
    Donc en attendant d'avoir Visio que je maîtrise assez bien, je continue au papier/crayon.
    Soit. Mais Visio vous permettra-il de détecter des anomalies de modélisation ? Est-il capable de produire un MLD à partir d’un MCD ? J’ai utilisé Visio il y a plus de dix ans et, entre temps, peut-être a-t-il évolué dans ce sens ?
    Maintenant, il y a des ateliers de modélisation (payants) comme Win’Design et PowerAMC qui sont incontournables pour modéliser les données d’un projet de quelque importance (sans aller quand même jusqu’à Cool:gen).

    Citation Envoyé par CinePhil
    j'ai été un peu heurté par le ton de la réponse
    Soit. Ambiguïté de ma prose : je ne trouve pas anormal que vos prédécesseurs non-informaticiens méconnaissent les outils de modélisation et j’ai voulu signifier qu’en héritant du bébé, vous héritiez des lacunes inhérentes. Manifestement, il ne vous en faut pas beaucoup pour être heurté. Mais il faut aussi savoir accepter quelques remarques et conseils de la part des anciens (personnellement : 35 ans de conception de bases de données, réalisation, accompagnement en production, audit, formation, sauvetage, etc. et ce, dans tous les secteurs d’activité). Comprenez que je sois un peu choqué que vous soyez un peu heurté, surtout après vous avoir fait observer que nous étions prêts à vous aider.

    Je vous salue.
    (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
    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
    J'avais dit : "Bref, passons..."
    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 !

  8. #8
    Membre actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Points : 228
    Points
    228
    Par défaut
    Non mais quand fsmrel est lancé apparemment on peut plus l'arrêter. Mais cela dit il a raison sur les points de modélisation.

    Amicalement Thibaud

  9. #9
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    quand fsmrel est lancé apparemment on peut plus l'arrêter
    Certes Thibaud, les vieux baroudeurs c'est comme ça... D'autant que je suis plutôt bavard.

    Sans rancune, et amicalement à mon tour
    (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.

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

Discussions similaires

  1. une table associative son equivalance dans merise pour le MCD
    Par samarqand dans le forum Diagrammes de Classes
    Réponses: 0
    Dernier message: 10/07/2014, 17h18
  2. Parser les valeurs d'une table et array associative
    Par Shirraz dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 09/06/2010, 01h59
  3. [MySQL] Prendre la valeur d'une table et l'associer à la valeur d'une autre
    Par gandolfi dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/02/2008, 08h04
  4. hiérarchie sur une table et contrainte associée
    Par rock'roll dans le forum Débuter
    Réponses: 2
    Dernier message: 21/01/2008, 09h08
  5. [MCD] Utilité d'une entité "Adresse" dans mon MCD ?
    Par korrigan dans le forum Schéma
    Réponses: 1
    Dernier message: 05/09/2007, 11h41

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