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 :

La relation ternaire [MCD]


Sujet :

Schéma

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 65
    Points : 52
    Points
    52
    Par défaut La relation ternaire
    Bonjour,

    J’ai une question à propos de la relation ternaire.

    Pour avoir ce type de relation, les cardinalités doivent être 1-n, 1-n, 1-n pour chaque relation ? Ou alors il est possible d’avoir 1-n, 1-n, 1-1 ?

    Je n’ai jamais vu cette dernière possibilité mais on m’affirme que cela est possible.

    Voila

    Merci

    Philippe

  2. #2
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Bonsoir Philippe,


    Un grand de Merise, à savoir Yves Tabourier, parle du « manque d’intérêt des cardinalités maximum à 1 pour les relations à plus de deux pattes » dans son ouvrage "De l’autre côté de MERISE (Les Éditions d’organisation, 1986)". Et il est d’usage d’éviter de genre d’associations-types.

    Ainsi, de la représentation (1) :





    On passe habituellement à celle-ci (2) :




    Toutefois, la représentation (1) peut se justifier si une valeur de A31 implique une paire de valeurs particulière (A11,A21). Sinon, selon la représentation (2), A31 peut être associé à n’importe quel A11 et n’importe quel A21.

    Évidemment, il faudra voir ce que votre outil de modélisation génère comme MLD si vous conservez la représentation (1).
    (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
    Expert éminent sénior

    Avatar de Siguillaume
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2007
    Messages
    6 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2007
    Messages : 6 180
    Points : 25 358
    Points
    25 358
    Par défaut
    Bonjour, en clair, je resumerai pour dire qu'il faut au maximum éviter les relations n-aires(n>2). On peut toujours revenir à une relation binaire.
    Surtout que dans l'évolution des choses, les manipulations avec les requêtes, et les mises à jour des données sont plus faciles.
    Vous avez envie de contribuer au sein du Club Developpez.com ? Contactez-nous maintenant !
    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  4. #4
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par Danjos Voir le message
    Bonjour, en clair, je resumerai pour dire qu'il faut au maximum éviter les relations n-aires(n>2). On peut toujours revenir à une relation binaire.
    Surtout que dans l'évolution des choses, les manipulations avec les requêtes, et les mises à jour des données sont plus faciles.
    Ce que vous dites n’est recevable qu'en partie. Dans le cas de la cardinalité maximale 1, on a vu que la remarque de Tabourier n'est pas toujours applicable, par exemple quand une valeur de A31 implique une paire de valeurs particulière (A11,A21).

    Cas de la cardinalité maximale N :

    Si la cardinalité maximale est N, vous n’échapperez guère à la ternaire. Considérez l’exemple suivant :

    Des représentants de commerce proposent des produits distribués par des entreprises et perçoivent en conséquence une commission.



    Certes, concernant la représentation graphique, on peut s'arranger pour n’avoir que des associations-types binaires, mais les choses deviennent plus compliquées, sans contrepartie valable qui saute aux yeux.

    Par exemple (avec Power AMC) :



    Au lieu de trois entités-types, on en a maintenant quatre, et au lieu d’une seule association-type, on en a trois, en notant que l'association-type Proposer est toujours présente.

    Disons que pratiquement le seul cas dans lequel cette représentation aurait un sens correspondrait à la situation suivante :

    On sait quelles entreprises distribuent quels produits, mais on ne connaît pas encore les VRP qui seront parties prenantes : on pourra saisir les paires Entreprise-Produit, et différer la saisie des VRP.

    Maintenant, l’affaire se corse (chef-lieu Ajaccio, dixit Pierre Dac), si l’on sait par ailleurs que tels VRP représentent telles entreprises, sans savoir simultanément quels sont les produits proposés. Et bien sûr, si l’on sait quels produits sont proposés par quels VRP, sans savoir simultanément quelles sont les entreprises correspondantes.


    Au niveau SQL :

    Le deuxième MCD donne lieu à un MLD composé de cinq tables au lieu de quatre, quatre contraintes d’intégrité référentielle au lieu de trois, des index en plus, et la table Proposer est toujours présente, égale à elle-même : les requêtes et les opérations de mise à jour ne seront certes pas rendues plus faciles.
    (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
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    Bonjour,
    Il me semble que si au lieu de cardinalités (0,n), (0,n), (1,1) on a (0,n), (0,n), (0,1), la ternaire est cette fois encore plus justifiée, surtout si le nombre de fois où l'association entre en jeu pour l'entité qui a la cardinalité (0,1) est faible proportionnellement au nombre d'instances de cette entité.
    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
    Membre habitué
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Points : 156
    Points
    156
    Par défaut
    Bonsoir,

    Je n'ai pas d'exemple sous la main mais il me semble avoir vu une relation à "trois pattes" ou plus au cours pour représenter une relation où des entités sont optionelles (donc qu'on pourrais avoir 0 occurences) par rapport à une entité "centrale".

    Je ne sais pas si c'est une bonne pratique. J'ai toujours gardé cette idée de medecin qui procéde à une opération sur un patient pour ce genre de relation et ce nouveau cas de figure m'avais frappé.

    Sinon, je vais retenir la transformation proposée par Yves Tabourier. Ca me seras sans doute utile à l'avenir.
    Développeur en devenir.

    A la recherche de toute source approfondissant Merise, UML, Java, l'objet, les design patterns hors GOF et le développement en général.

    Recherche également des informations sur les techniques de développement et les bonnes pratiques en terme de programmation en entreprise.

    "On en apprends beaucoup plus par la confrontation que par la conciliation"

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 301
    Points
    301
    Par défaut Conserver l'association ternaire ?
    Bonsoir,


    fsmrel :
    représentation (1) :



    la représentation (1) peut se justifier si une valeur de A31 implique une paire de valeurs particulière (A11,A21). Sinon, selon la représentation (2), A31 peut être associé à n’importe quel A11 et n’importe quel A21.
    Qu'entendez-vous par "valeurs particulière" ?

    Dois-je comprendre :

    A31 A11 A21
    1 8 4
    2 2 1
    3 7 7
    4 2 1

    Pour la dernière occurrence, les valeurs (2-1) ne sont pas "particulières" car ce couple (2-1) a déjà été utilisé ?

    Si c'est cela, cela se traduit plus simplement par une dépendance fonctionnelle A11+A21 -----> A31 ou mieux peut-être, par une CIF dans le MCD (une flèche sur la patte 1,1)

    mais tout cela ne m'explique pas pourquoi dans ce cas il est souhaitable de conserver l'association ternaire.

    Merci pour votre éclairage.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 793
    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 793
    Points : 34 024
    Points
    34 024
    Billets dans le blog
    14
    Par défaut
    C'est la même chose que dans l'autre discussion plus récente à laquelle nous venons de participer. Notamment dans ce message.
    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 !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 176
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    Il me semble que le détail que j'aborde ici est un peu différent de l'autre sujet, même s'il est vrai que nous avons 2 topic sur les relations ternaires.

    Dans l'autre sujet, nous parlons d'une association-type potentiellement vide déguisée en entité-type, tandis qu'ici je cherche à comprendre l'intérêt de conserver une association ternaire malgré les recommandations de Yves Tabourier pour ce cas précis.

    Mais si je me trompe et que ces sujets sont les mêmes, je veux bien déplacer mon post dans l'autre sujet de discussion pour plus de cohérence.

    Cordialement,
    MacFly

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    7 965
    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 : 7 965
    Points : 30 774
    Points
    30 774
    Billets dans le blog
    16
    Par défaut
    Le sujet ouvert par Philou029 étant résolu, je réponds ici (discussion ouverte par dimix77).
    (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. Réponses: 18
    Dernier message: 26/11/2007, 16h43
  2. [DC] Relation ternaire
    Par Yann39 dans le forum Diagrammes de Classes
    Réponses: 19
    Dernier message: 21/11/2007, 12h09
  3. Question sur une relation ternaire dans un MCD
    Par sylsau dans le forum Schéma
    Réponses: 5
    Dernier message: 05/03/2006, 21h00
  4. Conception relation ternaire
    Par mezoo dans le forum Schéma
    Réponses: 7
    Dernier message: 12/01/2006, 19h21
  5. Relation ternaire
    Par le Daoud dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 24/11/2004, 21h54

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