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 :

Simplification d'un schéma E/A


Sujet :

Schéma

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut Simplification d'un schéma E/A
    Bonjour.
    Petite question sur un schéma E/A:
    J'ai une entité ESSAI(essai_id,...), une entité TRONCON(troncon_id,...) et pour chaque couple essai/troncon, je veux mettre un seul texte et un nombre indéterminé de valeurs en évitant la redondance.
    J'ai fait le schéma suivant:
    ESSAI-0-N-R(texte)-0-N-TRONCON
    |
    0-N
    |
    R2
    |
    1-1
    |
    VALEURS---1-1--R3---0-N--
    où R, R2, R3 sont des associations et texte est un attribut de l'association R.
    VALEURS a un identifiant que j'appelle valeurs_id. Il faut relier TRONCON à 0-N en bas à droite.
    Je pense que ça marche mais est-ce qu'il n'y a pas mieux?
    Par exemple en utilisant une association ternaire?

    Merci.

  2. #2
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour JCD21,

    En le codifiant autrement, peut-être :

    Entité essai/troncon :
    - Id_essai (PK)
    - Id_troncon (PK)
    ...

    Entité essai/troncon_texte :
    - Id_essai (PK)
    - Id_troncon (PK)
    - Id_texte (PK)
    - Texte
    ...

    Entité essai/troncon_texte_valeurs :
    - Id_essai (PK)
    - Id_troncon (PK)
    - Id_texte (PK)
    - Id_Valeur (PK)
    - Valeur
    ...

    Relations
    essai/troncon ---(0,n)---[possède le texte/est le texte de]---(1,1)--- essai/troncon_texte ;
    essai/troncon_texte ---(0,n)---[possède une des valeurs/est une des valeurs de]---(1,1)--- essai/troncon_texte_valeur.

    Qu'en penses-tu ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  3. #3
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par JCD21 Voir le message
    pour chaque couple essai/troncon, je veux mettre un seul texte et un nombre indéterminé de valeurs en évitant la redondance.

    Par exemple en utilisant une association ternaire?
    Si une occurrence donnée de VALEUR peut être associée à des couples (ESSAI, TRONCON) différents, alors la bonne modélisation est effectivement une ternaire. On conserve bien évidemment l'association binaire "texte".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        +--0,n--------( texte )---------0,n--+
        |                                    |
        |                                    |
    [ ESSAI ]--0,n----( R_ETV )----0,n--[ TRONCON ]
                          |
                          |
                         0,n
                          |
                      [ VALEUR ]
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut
    Bonjour. En fait, une occurence de valeur n'est associée qu'à un seul couple (ESSAI,TRONCON).
    Après quelques essais, je crois que ce que j'ai écrit correspond le plus à ce que je cherche. Merci d'avoir passé du temps pour me répondre.

  5. #5
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour JCD,

    Citation Envoyé par JCD21 Voir le message
    En fait, une occurence de valeur n'est associée qu'à un seul couple (ESSAI,TRONCON).
    Après quelques essais, je crois que ce que j'ai écrit correspond le plus à ce que je cherche. Merci d'avoir passé du temps pour me répondre.
    Dans ce cas, effectivement, ta modélisation est plus proche du besoin. Cependant, elle reste perfectible. En effet, ton modèle autorise l'association d'une VALEUR avec un ESSAI et un TRONCON qui ne forment pas un couple.

    Exemple. Il existe les tronçons A et B et les essais 1, 2 et 3. On crée les couples suivants (tronçon/essai - texte) :
    A/1 - JCD21
    A/3 - Developpez
    B/2 - JPhi33

    Maintenant, nous avons les valeurs X, Y et Z que l'on associe chacune d'une part à un tronçon et d'autre part à un essai :


    X -> A
    X -> 1

    Y -> A
    Y -> 1

    Z -> B
    Z -> 1

    Pour X et Y, tout va bien. Mais la valeur Z, elle, est associé à un couple illégitime (si je puis dire ). Cela implique que pour associer une valeur à un couple, il faut d'abord vérifier l'existence du couple dans l'association "texte". Il existe une manière simple et immédiate de faire cette vérification. Il suffit de modéliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [ ESSAI ]--0,n----( texte )----0,n--[ TRONCON ]
                          |
                         0,n
                          |
                  ( a_pour_valeur )
                          |
                         1,1
                          |
                      [ VALEUR ]
    Le MLD issu de ce MCD :
    ESSAI (id_essai, ...)
    TRONCON (id_tronçon, ...)
    texte (id_essai, id_tronçon, texte)
    VALEUR (id_valeur, ..., id_essai#, id_tronçon#)
    La table VALEUR représentée ci-dessus semble identique à celle issue de ton MCD. En réalité, elle ne l'est pas car les 2 clés étrangères id_essai et id_tronçon référencent la table "texte" alors que dans la table VALEUR issue de ton MCD, ces clé étrangères référencent respectivement les tables ESSAI et TRONCON.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 227
    Points : 77
    Points
    77
    Par défaut
    En fait, j'avais pensé à ce schéma, mais le problème, c'est que le champ texte peut être null alors qu'on peut ajouter des valeurs pour un couple TRONCON/SOUSESSAI donné. Donc si je ne mets pas de texte, il sera impossible de mettre des valeurs, non?

  7. #7
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour à tous,

    Je me permets...

    Citation Envoyé par JCD21
    Donc si je ne mets pas de texte, il sera impossible de mettre des valeurs, non?
    ==> non, puisque :
    Citation Envoyé par JPhi33
    VALEUR (id_valeur, ..., id_essai#, id_tronçon#)
    ==> le lien s'effectue via le couple id_essai#, id_tronçon#, pas par le texte.

    Dans la foulée, dans ma suggestion
    Citation Envoyé par Richard_35
    essai/troncon ---(0,n)---[possède le texte/est le texte de]---(1,1)--- essai/troncon_texte ;
    j'étais parti sur plusieurs textes pour un essai/troncon, ce qui ne correspond pas au cahier des charges. Désolé, pour la boulette.

    Donc, au niveau table, cela donnerait :
    Entité essai/troncon :
    - Id_essai (PK)
    - Id_troncon (PK)
    - Texte
    ...

    Entité essai/troncon_valeurs :
    - Id_essai (PK)
    - Id_troncon (PK)
    - Valeur
    ...

    Relations
    essai/troncon ---(0,n)---[possède les valeurs/est une valeur de]---(1,1)--- essai/troncon_texte_valeur.

    Peut-être, se poser la question d'une table des types de valeurs... ce qui justifierait un Id_Valeur dans la table essai/troncon_valeurs.
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  8. #8
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Bonjour,

    Citation Envoyé par Richard_35 Voir le message
    non, [...] puisque le lien s'effectue via le couple id_essai#, id_tronçon#, pas par le texte.
    Je n'aurais pas dit mieux.


    Citation Envoyé par Richard_35 Voir le message
    Dans la foulée, dans ma suggestion [...]
    Entité essai/troncon :
    - Id_essai (PK)
    - Id_troncon (PK)
    - Texte
    ...
    Cette entité est en réalité l'association "texte". La transformer en entité peut se justifier dans le cas de l'utilisation d'un logiciel de modélisation car celui-ci ne saura pas associer l'association "texte" avec l'entité VALEUR (les logiciels de modélisation ne connaissent pas l'association d'association). On parle dans ce cas d'entité associative. La technique consiste à utiliser l'identification relative de cette entité par rapport aux entités ESSAI et TRONCON. Dans le MCD ci-dessous, les cardinalités entre parenthèses signifient qu'il y a identification relative.

    [ ESSAI ]--0,n----( )---(1,1)-[ ESSAI/TRONCON ]-(1,1)---( )----0,n--[ TRONCON ]

    A noter qu'outre la double identification relative, ESSAI/TRONCON ne doit pas être identifiée par un identifiant propre.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

  9. #9
    Expert confirmé Avatar de Richard_35
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    3 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 3 121
    Points : 4 596
    Points
    4 596
    Par défaut
    Bonjour JPhi33,

    Citation Envoyé par JPhi33
    Cette entité est en réalité l'association "texte". La transformer en entité peut se justifier dans le cas de l'utilisation d'un logiciel de modélisation .../...
    ==> pas seulement. Elle peut se justifier, également, si elle possède des attributs particuliers : par exemple, une date de création du couple id_essai/id_tronçon, une affectation d'un n° de série à ce couple, etc...

    Non ?
    Dis-nous et à bientôt,
    Richard.
    ----------------------------------------------------------------------------------------------
    En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
    et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !

  10. #10
    Membre chevronné
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2007
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2007
    Messages : 797
    Points : 2 060
    Points
    2 060
    Par défaut
    Citation Envoyé par Richard_35 Voir le message
    Bonjour JPhi33,
    Elle peut se justifier, également, si elle possède des attributs particuliers [...]
    Non ?
    Non, toute association peut être porteuse de propriétés.
    N'oubliez pas de consulter les Cours Merise et la F.A.Q. Merise
    _______________________________________________________

    Les Règles du Club Developpez.com
    Vous avez votre réponse ? Merci de cliquer sur

Discussions similaires

  1. [Modélisation] Schéma constellation
    Par senke dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 13/05/2016, 13h27
  2. Réponses: 6
    Dernier message: 20/03/2015, 20h43
  3. Générer automatiquement un schéma entité/association
    Par worldchampion57 dans le forum Outils
    Réponses: 3
    Dernier message: 03/06/2003, 17h11
  4. [Kylix] Simplifications de l'écriture Kylix/Pascal"
    Par Mr Vincent KLEIN dans le forum EDI
    Réponses: 1
    Dernier message: 11/03/2003, 11h07
  5. [Crystal Report 9] Changer de schéma avec Oracle
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2002, 12h19

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