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 :

du mal à comprendre la 3FN et la BCNF [Normalisation]


Sujet :

Schéma

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut du mal à comprendre la 3FN et la BCNF
    Bonjour,

    j'avais déjà fait appel à vos lumières pour m'aider à comprendre un corrigé, mais à présent, si j'ai bien compris une bonne partie des formes normales, je suis étonné du corrigé de deux exercices du professeur. Quelqu'un pourrait-il m'éclairer?

    D'après ce que j'ai compris:

    - en 2FN, la relation doit être en 1FN et tout élément non clé doit être en dépendance totale avec la clef, et
    -en 3 FN, la relation doit être en 2 FN et tout élément non clé ne doit pas dépendre d'un autre élément non clé

    Mais du coup, je ne comprends pas ce qui va suivre:

    Exercice 14: On nous demande de trouver des décompositions en relations qui sont en 3FN, décompositions qui préservent les dépendances et qui sont sans perte d'information.

    Schéma 1: R(ABCD)
    {A->B, B->C, A->D, D->C}

    schéma 2: R(CPHSEN)
    {C->P, HS->C, HP->S, CE->N, HE->S}

    schéma 3: R(FANP)
    {F->A, FN->P}

    schéma 4: R(MADR)
    {MA->D, MD->R}

    schéma 5: R(ABCD)
    {ABC->D}

    schéma 6: R(ABCD)
    {A->B, A->C, A->D}

    schéma 7: R(ABCD)
    {A->B}

    schéma 8: R(ABCD)
    {A->B, B->A, B->D}

    Schéma 1 :
    La clé A incluse dans :
    (AB, BC, AD, DC).
    Les relations (AB),(AD) sont remplacées par (ABD). Donc la bonne
    décomposition est :
    (ABD) A -> B, A -> D
    (BC) B -> C
    (DC) D -> C

    Je comprends la décomposition. Je ne comprends pas pourquoi la relation est en 3FN, puisqu'on a un élément non clé (C) qui est dépendant d'un autre élément non clé (D). Ou alors, cela n'est pas grave car en réalisant la fermeture de A, on retrouve R?

    Schéma 2 :
    La clé unique EH incluse dans : EHS. Donc la bonne décomposition est :
    (CP) C -> P
    (HSC) HS -> C
    (HPS) HP -> S
    (CEN) CE -> N
    (EHS) HE -> S

    De même, je ne comprends pas. N dépend de CE. Mais CE n'est pas la clef ni une surclé. Pourquoi est-on en 3FN?

    Schéma 3 :
    La clé FN incluse dans : FNP. Donc la bonne décomposition est :
    (FA) F -> A
    (FNP) FN -> P


    Schéma 4 :
    La clé MA incluse dans : MAD. Donc la bonne décomposition est :
    (MAD) MA -> D
    (MDR) MD -> R

    Schéma 5 :
    La relation est déjà en 3FN (elle est même en BCNF), ce n'est pas la peine
    de la décomposer.

    Schéma 6 :
    Idem

    Schéma 7 :
    La clé est ACD. La relation n'est pas en 3FN. Le schéma (AB) est obtenu de
    la dépendance A -> B. On rajoute aussi le schéma (ACD) pour la clé. Donc la
    bonne décomposition est :
    (AB) A -> B
    (ACD) (pas de dépendance)

    Schéma 8 :
    Les clés sont AC et BC. La relation n'est pas en 3FN. Le schéma (AB) est
    obtenu des dépendances A -> B et B -> A. Le schéma (BD) est obtenu de la
    dépendance B -> D. On rajoute aussi le schéma (AC) pour la clé et on
    remplace (BD) par (ABD). Donc la bonne décomposition est :
    (ABD) A -> B, B -> A et B -> D
    (AC) (pas de dépendance)
    Pour chaque exercice, je ne saisis donc pas pourquoi on est à chaque fois en 3FN


    De même, pour l'exercice 16, je ne comprends pas la correction. Pourquoi est-on en BCNF?

    Parmi les schémas obtenus après la décomposition des schémas suivantes,
    trouver les décompositions en relations qui sont en BCNF.
    Schéma 1 :
    R(ABCD)
    F={A -> B, B -> C, A -> D, D ->C}

    Schéma 2 :
    R(CPHSEN)
    F={C -> P, HS -> C, HP -> S, CE -> N, HE -> S}

    Schéma 3 :
    R(MADR)
    F={MA -> D, MD -> R}

    Schéma 4 :
    R(ABCD)
    F={ABC -> D}

    Schéma 5 :
    R(ABCD)
    F={A -> B}

    Solution:
    Toutes les relations obtenues après la décomposition des schémas données
    sont en BCNF. Prenons par exemple le schéma R(MADR).
    La clé MA incluse dans : MAD. Donc la bonne décomposition est :
    (MAD) MA -> D
    (MDR) MD -> R
    La relation (MAD) a pour clé MA qui est la partie gauche de la seule D.F.
    qui convienne. De même pour la relation (MDR). Donc la décomposition
    obtenue est en BCNF.
    Pour moi, nous ne sommes pas en 3FN. Je ne comprends donc pas comment on peut être en BCNF.

    Merci à ceux qui pourront m'aider.
    Johnny3

  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 001
    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 001
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bonsoir,

    Citation Envoyé par johnny3 Voir le message
    Schéma 1 :
    La clé A incluse dans :
    (AB, BC, AD, DC).
    Les relations (AB),(AD) sont remplacées par (ABD). Donc la bonne
    décomposition est :
    (ABD) A -> B, A -> D
    (BC) B -> C
    (DC) D -> C

    Je comprends la décomposition. Je ne comprends pas pourquoi la relation est en 3FN, puisqu'on a un élément non clé (C) qui est dépendant d'un autre élément non clé (D). Ou alor{DC}.s, cela n'est pas grave car en réalisant la fermeture de A, on retrouve R?
    Est-ce la relation R {A, B, C, D} que vous dites être en 3NF ? En réalité, cette relation a pour clé le singleton {A}. Elle viole deux fois la 3NF du fait des DF {B}→{C} et {D}→{C}, c’est pourquoi il faut la décomposer.

    Après décomposition, on obtient 3 relations (clés soulignées) :
    • R1 {A, B, D}
      qui a pour seule clé candidate le singleton {A}. Comme les seules DF non triviales sont {A}→{B} et {A}→{D}, R1 vérifie la 3NF.
    • R2 {B, C}
      qui a pour seule clé candidate le singleton {B} et vérifie la 3NF.
    • R3 {D, C}
      qui a pour seule clé candidate le singleton {D} et vérifie la 3NF.

    La décomposition de R est sans perte, car la jointure naturelle de R1, R2 et R3 est égale à R (application du théorème de Heath).



    Citation Envoyé par johnny3 Voir le message
    Schéma 2 :
    La clé unique EH incluse dans : EHS. Donc la bonne décomposition est :
    (CP) C -> P
    (HSC) HS -> C
    (HPS) HP -> S
    (CEN) CE -> N
    (EHS) HE -> S

    De même, je ne comprends pas. N dépend de CE. Mais CE n'est pas la clef ni une surclé. Pourquoi est-on en 3FN?
    Comme ci-dessus, la relation R {C, P, H, S, E, N} n’est pas normalisée, mais ses décompositions le sont (clés soulignées), à savoir :
    R1 {C, P}

    R2 {H, S, C}

    R3 {H, P, S}

    R4 {C, E, N}

    R5 {H, E, S}
    Quand vous dites que {C, E} n'est ni clé (sous-entendu candidate) ni surclé, vous avez raison concernant R, mais vous avez tort concernant R4. En effet, une clé candidate est un sous-ensemble d’attributs K de l’en-tête d’une relation, vérifiant les contraintes suivantes :
    — Unicité : Deux n-uplets distincts de la relation ne peuvent avoir même valeur de K.

    — Irréductibilité (ou minimalité) : Il n’existe pas de sous-ensemble strict de K garantissant la règle d’unicité.
    Or dans R4, la DF {C, E}→{N} garantit l’unicité. Comme par ailleurs, {C, E} n’est pas décomposable puisqu’il n’existe pas de DF {C}→{N} ou {E}→{N}, l’irréductibilité est vérifiée : {C, E} est clé candidate de R4.

    Etc.
    (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 régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    Je comprends mieux, merci. En fait, je n'avais pas saisi le principe. En 3FN, on sépare les relations pour qu'un élément non clef dépende d'un autre élément non clef, mais dans une relation à part, comme R2 {B, C}. En fait, ce ne serait pas bon si on avait {A,B,C}, car b dépendrait de C, ce qui demanderait à couper la relation en deux.

    Je comprends mieux, merci.

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

Discussions similaires

  1. Index, clé primaire et clé étrangère, j'ai du mal à comprendre
    Par sliderman dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 19/02/2008, 12h30
  2. [PEAR :: Auth ] j'ai du mal à comprendre
    Par draho dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2006, 12h30
  3. [Caml] Du mal à comprendre comment cela fonctionne...
    Par Sir Caedes dans le forum Caml
    Réponses: 16
    Dernier message: 05/01/2006, 11h52
  4. du mal à comprendre la fonction strtok
    Par thierry_b dans le forum C
    Réponses: 2
    Dernier message: 25/11/2005, 10h37

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