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 :

[MCD] modéliser une double réflexivité


Sujet :

Schéma

  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut [MCD] modéliser une double réflexivité
    bonjour,
    j'ai une table personne qui est reliée à deux associations réflexives parent et frère comment on peut modéliser ce schémas en modèle relationnel tout en respectant les formes normales?

  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 906
    Points
    30 906
    Billets dans le blog
    16
    Par défaut
    Bonjour mehdiing,

    Tel qu’il est, votre MCD ne pose pas de problème particulier quant à la dérivation en MLD, avec respect de la 5e (voire 6e) forme normale.

    Le MLD revient à ceci :

    Personne (PsnId, Nom, Prenom, Adresse)
    , Constraint Psn_CK1 Primary Key (PsnId)

    Filiation (PsnId, ParentId)
    , Constraint Fil_CK1 Primary Key (PsnId, ParentId)
    , Constraint Fil_FK1 Foreign Key (PsnId) References Personne
    , Constraint Fil_FK2 Foreign Key (ParentId) References Personne
    , Constraint Fil_CX1 Check (PsnId <> ParentId)

    Fratrie (PsnId, FrereId)
    , Constraint Fra_CK1 Primary Key PsnId, FrereId)
    , Constraint Fra_FK1 Foreign Key (PsnId) References Personne
    , Constraint Fra_FK2 Foreign Key (FrereId) References Personne
    , Constraint Fra_CX1 Check (PsnId <> FrereId)

    Toutefois, pour respecter la cardinalité minimale 1 associée au rôle Parent, vous devrez prévoir une procédure pour garantir que, quelle que soit la personne, celle-ci est parente d’une autre personne. Mais, dans un monde réel, cette cardinalité n’est pas très pertinente...

    De même, vous devrez prévoir un trigger garantissant qu’une personne n’a jamais plus de deux parents.

    Quant à la fratrie, selon votre MCD, rien n’interdit que les frères d’une personne aient des parents qui ne soient pas les mêmes.

    Pour rester dans un contexte traditionnel, dans lequel une personne (sauf Adam et Ève) est née d’une relation entre un père et une mère, au niveau relationnel, on peut aussi représenter ainsi les choses :

    Personne (PsnId, Nom, Prenom, Adresse)
    Constraint Psn_CK1 Primary Key (PsnId)

    Couple (CoupleId, LuiId, ElleId)
    , Constraint Cou_CK1 Primary Key (CoupleId)
    , Constraint Cou_FK1 Foreign Key (LuiId) References Personne
    , Constraint Cou_FK2 Foreign Key (ElleId) References Personne
    , Constraint Cou_CX1 Check (LuiId <> ElleId)

    Enfant (PsnId, CoupleId)
    , Constraint Enf_CK1 Primary Key (PsnId)
    , Constraint Enf_FK1 Foreign Key (PsnId) References Personne
    , Constraint Enf_FK2 Foreign Key (CoupleId) References Couple

    On admettra que les couples se font, se défont, se refont...
    Et n’oubliez pas de prévoir que les géniteurs soient de sexe opposé...
    (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
    Inscrit en
    Mai 2006
    Messages
    423
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 423
    Points : 303
    Points
    303
    Par défaut
    Bonjour,
    merci fsmrel pour la réponse.

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

Discussions similaires

  1. Réponses: 32
    Dernier message: 28/10/2013, 14h07
  2. [MCD]Modéliser une Composition et une Inclusion
    Par Neolight dans le forum Schéma
    Réponses: 5
    Dernier message: 15/03/2008, 13h07
  3. [MCD] Modéliser l'organigramme d'une PME
    Par wade dans le forum Schéma
    Réponses: 3
    Dernier message: 12/02/2008, 08h45
  4. [MCD]Modéliser une carte géographique
    Par hammoutiGI dans le forum Schéma
    Réponses: 1
    Dernier message: 18/11/2007, 17h14
  5. [MCD] Modéliser une propriété dans une relation
    Par korrigan dans le forum PowerAMC
    Réponses: 4
    Dernier message: 04/09/2007, 15h33

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