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

UML Discussion :

mulitiplicité plusieurs vers plusieurs


Sujet :

UML

  1. #1
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut mulitiplicité plusieurs vers plusieurs
    Bonjour,
    Une petite question concernant les multiplicités.
    J’ai deux classes A et B avec une association 0..* et 1..*.
    On aura donc deux tables A et B, puis une table de liaison C dans laquelle on aura une clé primaire composée de id_A et id_B. Sachant Qu’elles sont au même temps clés primaires et étrangères, elles ne peuvent être nulles. Ainsi, dans cette table C, on ne peut pas avoir de valeur nulle en supposant que cette dernière n’est constituée que de deux champs.
    J’en déduis que la multiplicité 0..* (notamment le 0)n’est pas représentée !
    comment faire dans ce cas ?
    Merci à vous
    L'immortalité existe, elle s'appelle connaissance

  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 089
    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 089
    Points : 31 346
    Points
    31 346
    Billets dans le blog
    16
    Par défaut Contrainte de base de données (surjection)
    Bonsoir wafiwafi,


    Citation Envoyé par wafiwafi Voir le message
    J’en déduis que la multiplicité 0..* (notamment le 0) n’est pas représentée ! comment faire dans ce cas ?
    Déduction curieuse, c'est plutôt la multiplicité 1..* qui n'est pas prise automatiquement en compte au niveau relationnel...

    Traduite au niveau relationnel, la multiplicité (qui, en passant, veut dire très grand nombre !) 0..* dit qu’une valeur de l’attribut id_A de la table A n’est pas forcément présente dans la table C (on a une application de C dans A) tandis que selon la multiplicité 1..* chaque valeur de l’attribut id_B de la table B est au moins présente une fois dans la table C (on a cette fois-ci une surjection).

    Pour traduire la cardinalité 1..* au niveau tabulaire, il faut mettre en oeuvre une contrainte de base de données, du genre :

    Code D : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CONSTRAINT nom_de_contrainte 
        COUNT (C{Id_B}) = COUNT (B{Id_B}) ;

    Où B{Id_B} et C{Id_B}) représentent respectivement la projection (au sens de la théorie relationnelle) de B et C sur Id_B.

    Contrainte qui ne vaut évidemment pas dans le cas 0..*.
    (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
    Membre averti
    Avatar de wafiwafi
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 500
    Points : 328
    Points
    328
    Par défaut
    Bonjour fsmrel,
    J'avais déjà prévu ma contrainte sur le "1" du 1..*.

    0..* dit qu’une valeur de l’attribut id_A de la table A n’est pas forcément présente dans la table C
    Merci pour cet éclairage. J'ai fais une petite erreur d'interprétation du "0" de la multiplicité 0..*; la mémoire me fait des tours.
    Merci à toi
    L'immortalité existe, elle s'appelle connaissance

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2007, 08h03
  2. [hibernate] probleme de mapping un-vers-plusieurs
    Par Elmilouse dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/04/2006, 13h37
  3. Redirection vers plusieurs sites web
    Par oligig dans le forum Apache
    Réponses: 9
    Dernier message: 21/03/2006, 17h04
  4. Drag and Drop vers plusieurs Edit
    Par greg778 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/05/2005, 08h50
  5. [Mapping]relation plusieurs-vers-plusieurs
    Par berret dans le forum Hibernate
    Réponses: 2
    Dernier message: 21/01/2005, 18h44

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