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

 SGBD Discussion :

Comprendre la notion de multiplicité


Sujet :

SGBD

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Points : 156
    Points
    156
    Par défaut Comprendre la notion de multiplicité
    bonjour

    Nom : base.png
Affichages : 414
Taille : 5,7 Ko

    sur cette figure, la relation est plusieurs à plusieur car un article peut avoir plusieurs composants et un composant peut appartenir à plusieur articles suivant une quantité.
    ce que je comprend pas est que si on prend un composant dont le code = 10 par exemple, est ce qu'on va le trouver dans plusieur article comme le montre la figure ?
    normalement la réponse est non car ce composant de code 10ne peut pas se trouver sur 2 articles ou plus au méme temps. est ce que alors la multiplicité est fausse ?

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Il ne faut pas confondre le type d'entité Merise ou classe d'entité UML (le composant) et l'occurrence d'entité (non matérialisé au niveau conceptuel, mais qui fera l'objet d'une ligne dans la table de la base de données).

    Prenons un exemple :

    Pour fabriquer un gâteau "quatre quarts", j'ai besoin de farine, de sucre, d'oeufs et de beurre, je vous laisse deviner dans quelles proportions

    Pour fabriquer une pâte brisée, j'ai également besoin de farine et de beurre

    Il va sans dire que la farine et le beurre que j'ai utilisés pour le quatre quarts ne serviront pas à fabriquer la pâte, mais c'est bien la même farine et le même beurre, au sens "les mêmes composants" qui serviront.

    Cela étant dit, la pâte brisée ainsi fabriquée (c'est donc un article qui comprend des composants) est elle même le composant d'autres recettes : tarte aux pommes, tarte aux abricots...

    C'est pourquoi il ne faut pas modéliser deux types d'entité distincts [article] et [composant] mais un seul type d'entité, qu'on appelera au choix [article] ou [composant] et une association reflexive.

    Ce qui donne, selon la modélisation Merise :

    Nom : Sans titre.png
Affichages : 421
Taille : 49,9 Ko

    Et selon la modélisation UML :

    Nom : Sans titre.png
Affichages : 389
Taille : 57,9 Ko

    Et donc le script DDL suivant (ici décliné pour SQL server) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE AR_article(
       AR_ident INT IDENTITY,
       AR_reference CHAR(8) NOT NULL,
       AR_designation VARCHAR(50) NOT NULL,
       PRIMARY KEY(AR_ident),
       UNIQUE(AR_reference)
    );
     
    CREATE TABLE CO_composer(
       AR_ident_compose INT,
       AR_ident_composant INT,
       CO_quantite DECIMAL(15,2) NOT NULL,
       PRIMARY KEY(AR_ident_compose, AR_ident_composant),
       FOREIGN KEY(AR_ident_compose) REFERENCES AR_article(AR_ident),
       FOREIGN KEY(AR_ident_composant) REFERENCES AR_article(AR_ident)
    );

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Points : 156
    Points
    156
    Par défaut
    merci pour votre réponse,
    est ce que je peux modéliser ce modéle par une relation refléxive ?

    Nom : base.png
Affichages : 423
Taille : 26,4 Ko

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Pour des vêtements, je ne pense pas qu'une association réflexive soit le bon modèle : il n'y a pas de récursivité.
    Selon les attributs communs ou spécifiques aux pantalons, jupes, pulls et autres vêtements, on créera soit une entité-type unique, soit des sous-types.
    Pour les matériaux (tissus, fil, boutons...) on aura probablement une entité-type unique, avec des attributs tels que l'unité de mesure de la quantité (mètre linéaire pour le fil, mètre carré pour les tissus, centaine pour les boutons, pièce pour les fermetures éclair...) associée à un typage (type de matériau)

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2010
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2010
    Messages : 146
    Points : 156
    Points
    156
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    Pour des vêtements, je ne pense pas qu'une association réflexive soit le bon modèle : il n'y a pas de récursivité.
    Selon les attributs communs ou spécifiques aux pantalons, jupes, pulls et autres vêtements, on créera soit une entité-type unique, soit des sous-types.
    Pour les matériaux (tissus, fil, boutons...) on aura probablement une entité-type unique, avec des attributs tels que l'unité de mesure de la quantité (mètre linéaire pour le fil, mètre carré pour les tissus, centaine pour les boutons, pièce pour les fermetures éclair...) associée à un typage (type de matériau)
    bonjour et merci pour votre réponse,
    pouvez vous m'aider avec un shcéma pour que ca soit plus clair pour moi
    merci

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 : 10 136
    Points : 38 561
    Points
    38 561
    Billets dans le blog
    9
    Par défaut
    Les étapes préalables à la modélisation sont la définition du dictionnaire de données puis la rédaction des règles de gestion.
    Le tout devant être validé par la maîtrise d'ouvrage.

    Comme vous n'avez rien communiqué de cet ordre, partons sur un exemple

    Dictionnaire de données
    MODELE : article commercialisé par l'entreprise et possédant une référence unique.
    TAILLE : dimensions d'un modèle. Un modèle peut être décliné en plusieurs tailles
    COULEUR : couleurs proposées pour une taille d'un modèle. Il peut y avoir plusieurs couleurs, et, facultativement, une couleur dominante.
    Etc.
    Dans la vraie vie, le dictionnaire de données contient tous les attributs (qui deviendront les colonnes des tables) avec leurs caractéristiques (type, longueur, nombre de décimales, exemples de contenu...)

    Règles de gestion
    R001 : un modèle se décline en au moins une taille et une taille est la déclinaison d'un et un seul modèle
    R002 : une taille d'un modèle est proposée en au moins une couleur et une couleur peut être proposée pour plusieurs tailles
    R003 : etc.

    À partir de là, on peut établir le modèle conceptuel, ici j'ai utilisé l'excellent Looping, très complet, facile d'utilisation et, ce qui ne gâche rien, gratuit.

    Ce qui donne le MCD suivant :

    Nom : Sans titre.png
Affichages : 390
Taille : 165,2 Ko

Discussions similaires

  1. Comprendre la notion de pooling
    Par alassanediakite dans le forum Débuter
    Réponses: 4
    Dernier message: 19/02/2013, 11h08
  2. Cherche à comprendre la notion de l'instance SQL Server 200x
    Par berceker united dans le forum Administration
    Réponses: 2
    Dernier message: 20/12/2012, 10h42
  3. Réponses: 0
    Dernier message: 04/11/2008, 11h22
  4. Réponses: 8
    Dernier message: 15/10/2007, 11h33
  5. Comprendre certaines notions de struts
    Par gentil dans le forum Struts 1
    Réponses: 5
    Dernier message: 30/03/2007, 10h28

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