1. #1
    Membre confirmé Avatar de saymoneu
    Homme Profil pro
    Développeur Web
    Inscrit en
    avril 2010
    Messages
    248
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : avril 2010
    Messages : 248
    Points : 510
    Points
    510

    Par défaut Éclaircissement cardinalités MCD

    Bonjour,

    Je me retrouve confronté à un petit soucis : Je dois représenter une base de données que j'ai créé sous forme d'un MCD.
    Tout allait bien jusqu'à ce que je sois confronté au soucis suivant :

    Dans ma BDD il y a une table Boisson liée à une table Edulcorant. Les ID des édulcorants d'une boisson sont stockées dans la table "Boisson" dans une colonne "édulcorants" et je me sers sur le site de cette liste d'identifiants pour charger les données de chaque édulcorant depuis la table édulcorant qui contient par exemple un nom, une formule. Comment modéliser ça? Voilà ce que j'ai fait pour le moment.

    Nom : Sans titre.png
Affichages : 45
Taille : 4,4 Ko

    Je n'arrive pas à voir comment faire au niveau des cardinalités. Peut-on vraiment dire qu'il y a un lien entre les entités vu la manière dont la base de donnée est faite?

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 2 611
    Points : 5 796
    Points
    5 796

    Par défaut

    Bonjour,

    Si je comprends bien, vous essayez de refaire le MCD à partir d'une base de données existante ?

    Donc vous avez deux entité-types BOISSON et EDULCORANT représentées par les rectangles de votre schéma
    Ces deux entités type, lors de la génération du MLD, deviennent des tables
    Vous constatez que dans la table issue de l'ET BOISSON, on trouve non seulement les attributs issus de l'ET BOISSON, mais aussi l'identifiant de l'ET EDULCORANT (l'attribut "ID_Edulcorant" et non "Edulcorants" comme vous l'avez écrit)
    Celà signifie que pour une boisson, il y a au plus un édulcorant (maxi 1)
    Si dans la table BOISSON, cette clef étrangères (ID_Edulcorant) est nullable, alors il peut n'y avoir aucun édulcorant (mini zéro), si elle est "not null" alors toute boisson possède un édulcorant

    Comme un même édulcorant peut être utilisé pour plusieurs boissons, le maxi est donc n
    On peut supposer que certains édulcorants ne sont pas utilisés dans des boissons d'où un mini zéro

    Ce qui donne pour votre schéma : BOISSON 0,1 --- Contenir --- 0,n EDULCORANT ou alors BOISSON 1,1 --- Contenir --- 0,n EDULCORANT selon que la clef étrangère est nullable ou non dans la table BOISSON

  3. #3
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    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 : 14 743
    Points : 28 270
    Points
    28 270
    Billets dans le blog
    1

    Par défaut

    Cher Escartefigue, j'ai l'impression que les bonnes cardinalités sont plutôt 0,n - 0,n !
    Citation Envoyé par saymoneu
    Les ID des édulcorants d'une boisson
    Ce que je comprends de cette phrase, c'est que saymoneu a essayé de mettre tous les édulcorants d'une boisson dans une seule colonne de la table boisson, ce qui constitue une grave erreur de modélisation.

    Reprenons...

    Saymoneu, je déduis de votre description la règle de gestion suivante :
    Une boisson peut contenir plusieurs édulcorants et un édulcorant peut être contenu dans plusieurs boissons.

    On en déduit alors le MCD suivant :
    Boisson -0,n----contenir----0,n- Edulcorant

    Ce qui donnera les tables suivantes :
    te_boisson_bsn (bsn_id, bsn_nom...)
    te_edulcorant_edu (edu_id, edu_nom, edu_formule...)
    tj_bsn_contenir_edu_bce (bce_id_boisson, bce_id_edulcorant...)

    Pour plus d'information sur les cardinalités et sur la manière de faire les MCD, voir mes deux articles :
    - Règle de gestion bien écrite => modélisation des données facile ;
    - Quand faut-il une table associative ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP...
    « 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
    Expert confirmé
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    2 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 2 611
    Points : 5 796
    Points
    5 796

    Par défaut

    Citation Envoyé par CinePhil Voir le message
    Cher Escartefigue, j'ai l'impression que les bonnes cardinalités sont plutôt 0,n - 0,n !

    Ce que je comprends de cette phrase, c'est que saymoneu a essayé de mettre tous les édulcorants d'une boisson dans une seule colonne de la table boisson, ce qui constitue une grave erreur de modélisation.
    Si tel est bien le cas alors on a effectivement 0,n - 0,n et une énoooorme erreur de modélisation, à corriger d'urgence
    En relisant le post initial, je crains que vous ayez raison CinePhil, car l'attribut Edlucorants serait bien en ce cas une liste de valeurs et non une faute de frappe comme je le supposais

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

Discussions similaires

  1. Compréhension cardinalité MCD
    Par cl3ms dans le forum Schéma
    Réponses: 2
    Dernier message: 04/06/2012, 13h26
  2. [MCD] Question cardinalités MCD
    Par vivicente dans le forum Schéma
    Réponses: 5
    Dernier message: 14/02/2010, 13h01
  3. MCD/MLD Cardinalités minimum
    Par dpk99 dans le forum Schéma
    Réponses: 3
    Dernier message: 07/01/2007, 14h22
  4. [MCD] Probleme de cardinalité
    Par fredangel dans le forum Schéma
    Réponses: 16
    Dernier message: 18/05/2006, 21h39
  5. Probleme de cardinalité dans mon mcd/mpd
    Par bluecurve dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 02/03/2006, 08h12

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