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 :

notion d'agrégat -normalisation d'une association


Sujet :

Schéma

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    958
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 958
    Points : 141
    Points
    141
    Par défaut notion d'agrégat -normalisation d'une association
    Bonjour,

    Le cas évoqué est celui de la normalisation d'une association à 3 pattes qui est en 2 FN mais pas en 3 FN (car il existe une Df entre les deux propriétés portées pat l'association).

    La réponse reçue concernant la normalisation d'une telle association est la suivante :

    " Concernant le cas évoqué de l'agrégat, avec les entités E1(a),
    E2(b),E3(c),reliées par une association R porteuse de données (d et e).

    S'il existe la Df d->e, je dois créer une nouvelle entité E4(d,e).

    La question poséé est la suivante :La cardinalité qui relie E4 aux autres entités est elle (1,n) (ou (0,n)) et non pas (1,1) (ou (0,1))?*

    Si elle n'est pas (1,n) (ou (0,n)) mais (1,1)( ou (0,1)) alors peut on
    dire que l'on est dans le cas d'une CIF entre quatre entités ( d'après ce
    que je sais une CIF existe entre deux entités uniquement) avec la
    cardinalité maximale 1 d'un côté de l'association??


    Si la cardinalité qui relie E4 aux autres entités est bien (1,n) ou
    (0,n), alors l'identifiant de l' association R est maintenant (a,b,c,d)
    avec (a,b,c,d) clés étrangères.

    Or la réponse reçue est que abc devient clé primaire et abcd devient clé
    étrangère(au niveau du MLD).

    On modifie alors le Mcd par le fait que R sera reliée à E4 par un agrégat.

    Je ne m'y retrouve plus.

    Je ne compends pas la réponse " abc devient clé primaire et abcd
    devient clé étrangère(au niveau du MLD)."

    Pouvez vous m'aider à comprendre et à corriger ce qui doit l'être?

    Merci beaucoup à vous.

    Cordialement.

    Nathalie Harbonne
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. [SHADOKS]

  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 002
    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 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Tiens ? Revoilà Nathalie avec ses soucis fonctionnels...

    Citation Envoyé par Harbonne
    d'après ce que je sais une CIF existe entre deux entités uniquement
    Ça serait bien réducteur...

    Pour ma part, je n’hésite pas à mettre en œuvre une CIF entre plusieurs entités-types participant à la même association-type, quitte à parler simplement de contrainte d’unicité.

    Dans votre cas, vous avez 4 entités-types, E1, E2, E3, E4 (identifiées respectivement par a, b, c, d) participant à une association-type R. La propriété e est portée par E4. Les cardinalités sont toutes à x,N, y-compris côté E4.

    E1, E2, E3 constituent la source de la contrainte, E4 la cible et R la portée.

    Au niveau MLD, les tables sont alors les suivantes (les attributs constituant les clés sont soulignés) :
    E1 {a, ...} ;
    E2 {b, ...} ;
    E3 {c, ...} ;
    E4 {d, e} ;
    R {a, b, c, d} ;
    Du fait de la CIF, l’attribut d ne participe pas à la clé de R.
    Les attributs a, b, c, d de R donnent lieu évidemment à autant de clés étrangères en relation respectivement avec E1, E2, E3, E4 :
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Create Table E1
    (a ..., 
     Primary Key (a)
    )  ;
    Create Table E2
    (b ..., 
     Primary Key (b)
    )  ;
    
    Create Table E3
    (c ..., 
     Primary Key (c)
    )  ;
    
    Create Table E4
    (d ..., 
     e ...,
     Primary Key (d)
    )  ;
    
    Create Table R
    (a ...,
     b ..., 
     c ..., 
     d ..., 
     Primary Key (a, b, c),
     Foreign Key (a) References E1,
     Foreign Key (b) References E2,
     Foreign Key (c) References E3,
     Foreign Key (d) References E4
    )  ;
    (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. clé primaire ds une association
    Par progima dans le forum Schéma
    Réponses: 1
    Dernier message: 03/11/2005, 17h41
  2. [CSS] - notion placer en arrière-plan une div?
    Par 10-nice dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 30/08/2005, 15h56
  3. Combien demander en "défraiements" pour une association
    Par Anne1969 dans le forum Association
    Réponses: 9
    Dernier message: 21/09/2004, 12h01
  4. Mailleure facon de realiser une association infini-infini
    Par remi_phbc dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 15/07/2004, 12h31
  5. [merise]traduire en sql une association réflexive
    Par omega dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/03/2004, 18h10

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