Formes Normales - PowerPoint PPT Presentation

About This Presentation
Title:

Formes Normales

Description:

Introduire les d pendances fonctionnelles comme outil pour identifier les probl mes de redondance et y apporter des solutions ... – PowerPoint PPT presentation

Number of Views:150
Avg rating:3.0/5.0
Slides: 28
Provided by: RaghuRamak246
Category:

less

Transcript and Presenter's Notes

Title: Formes Normales


1
Formes Normales
  • Chapitre 19

2
Objectifs
  • Illustrer les redondances dans le stockage de
    linformation
  • Introduire les dépendances fonctionnelles comme
    outil pour identifier les problèmes de
    redondance et y apporter des solutions
  • Introduire la décomposition en formes normales
    (normalisation) comme solution aux problèmes de
    redondance de linformation
  • Introduire la normalisation comme une des étapes
    du design des base de données

3
Les problèmes de la Redondance
  • La redondance est à la base de beaucoup de
    problèmes associées avec les schémas
    relationnels
  • Stockage redondant, anomalies dinsertion,
    deffacement et de changement
  • Les contraintes dintégrité, en particulier les
    dépendances fonctionnelles, peuvent être
    utilisées pour identifier les problèmes et
    suggérer des solutions.
  • Solution décomposition (remplacement dune
    relation par des relations plus petites).
  • La décomposition devrait être utilisée
    judicieusement
  • Y-a-t-il une raison valable pour décomposer?
  • Quels problèmes sont causes par la décomposition?

4
Dépendances Fonctionnelles (DFs)
  • Notation
  • R schéma relationnel r instance de R
  • X, Y sous ensemble dattributs de R
  • Il existe une dépendance fonctionnelle entre X et
    Y (X ? Y) sur une relation R si, pour chaque
    instance permise r de R, le fait suivant est
    valide
  • t1 r, t2 r, (t1) (t2)
    implique (t1) (t2)
  • i.e., étant donne deux tuples dans r, si les
    valeurs X sont les mêmes, alors les valeurs Y
    doivent aussi être les mêmes.
  • K est une candidate clé pour une relation R si K
    ? R
  • Cependant K ? R ne requiert pas que K soit
    minimal!
  • Lectures possible pour X ? Y
  • X détermine Y
  • Y dépend fonctionnellement de X

5
Exemple de Dépendance Fonctionnelle
  • Considérez la relation suivante
  • Hourly_Emps (ssn, name, lot, rating, hrly_wages,
    hrs_worked)
  • Notation Cette relation sera notée en donnant
    la liste de ses attributs SNLRWH (En réalité,
    il sagit de lensemble dattributs
    S,N,L,R,W,H).
  • Parfois, nous nous référerons à tous les
    attributs dune relation en utilisant le nom de
    la relation (p.ex. Hourly_Emps au lieu de
    SNLRWH)
  • Quelques DFs sur Hourly_Emps
  • ssn est la clé S SNLRWH
  • rating détermine hrly_wages R W

6
Exemple (Suite)
Wages
Hourly_Emps2
  • Problèmes causés par R ? W
  • Anomalie de modification Peut-on changer W
    juste dans le 1er tuple de SNLRWH?
  • Anomalie dinsertion Toute insertion demployé
    dont on ne connait pas le salaire horaire est
    problématique.
  • Anomalie deffacement Tout effacement de tous
    les employés ayant un niveau 5 entraine la perte
    de linfo sur le salaire associé avec le niveau
    5.
  • Solution introduire 2 tables plus petites

7
Raisonnement avec les DFs
  • Etant données des DFs, on peut inférer dautres
    DFs
  • ssn did, did lot implique ssn
    lot
  • Une DF f est impliquée par un ensemble de DFs F
    si f est valide chaque fois que toutes les DFs
    dans F sont valides.
  • fermeture (closure) de F ensemble de
    toutes les DFs impliquées par F.
  • Axiomes dArmstrong (X, Y, Z sont des ensembles
    dattributs)
  • Réflexivité X Y ? Y X
  • Augmentation X Y ? XZ YZ
    pour tout Z
  • Transitivité If X Y et Y Z ?
    X Z
  • Ces axiomes sont des règles dinférence correctes
    et complètes.

8
Raisonnement avec DFs (Suite)
  • Règles additionnelles (impliquées par les
    axiomes)
  • Union X Y et X Z ? X
    YZ
  • Décomposition X YZ ? X Y et
    X Z
  • Exemple Contracts(cid,sid,jid,did,pid,qty,valu
    e)
  • C est la clé C CSJDPQV
  • Un projet achète chaque pièce en usant dun seul
    contrat JP C
  • Un département achète tout au plus 1 pièce dun
    fournisseur SD P
  • JP C, C CSJDPQV ? JP
    CSJDPQV (Trans.)
  • SD P ? SDJ JP (Augm.)
  • SDJ JP, JP CSJDPQV ? SDJ
    CSJDPQV (Trans.)

9
Raisonnement avec les DFs (Suite)
  • Calculer la fermeture dun ensemble DFs peut
    couter cher. (La taille de la fermeture est
    exponentielle)
  • Si par contre, nous voulons simplement vérifier
    si une DF donnée X Y est dans la fermeture
    dun ensemble de DFs F, nous pouvons le faire de
    manière efficiente comme suit
  • Calculer la fermeture des attributs de X
    (dénotée par ) par rapport à F
  • Ensemble de tous les attributs A tels que X
    A est dans
  • Il existe un algorithme linéaire pour faire ce
    calcul (Voir page 614)
  • Vérifier si Y est dans
  • F A B, B C, C D E
    impliquent A E?
  • i.e, A E est-elle dans la fermeture de
    ? Ce qui veut dire E est-elle dans ?

10
Formes Normales
  • Lorsque nous avons obtenu un schéma relationnel,
    lon doit décider si ce schéma est un bon design
    ou pas. Si ce nest pas un bon design, une
    décomposition en des schémas plus petits
    simpose.
  • Une telle décomposition permet dévacuer des
    anomalies éventuelles et obtenir un bon design.
  • Certaines forme normales (BCNF, 3NF etc.) sont
    connues comme éliminant ou diminuant certaines
    anomalies spécifiques.
  • Ainsi donc, lon décomposera le schéma
    relationnel en une forme normale selon le type
    danomalie que lon veut éviter.
  • Afin dapprécier le rôle des DFs dans la
    détection des redondances, considérez une
    relation R avec 3 attributs ABC.
  • Si ABC na aucune DF, aucune redondance nest
    possible.
  • Si A ? B plusieurs tuples peuvent avoir la
    même valeur de A et ces dernières auront la même
    valeur de B.

11
Forme Normale de Boyce-Codd (BCNF)
  • Une relation R avec les DFs F est en BCNF si pour
    tous les DFs X A dans
  • A X (DF trivial), ou
  • X contient une clé pour R.
  • En dautres termes, R est en BCNF si les seules
    DFs non-triviales qui sont valides sur R sont
    les contraintes de clé primaire.
  • Supposez que X ? A soit valide sur XYA
  • Si linstance ci-contre est en BCNF, les 2 tuples
  • doivent être identiques (puisque X est la
    clé).
  • Ainsi, y1 y2 et le deuxième tuple aura
  • a comme valeur de A.

12
Troisième Forme Normale (3NF)
  • Une relation R avec les DFs F est en 3NF si pour
    tous les DFs X A dans
  • A X (DF trivial), ou
  • X contient une clé pour R, ou
  • A fait partie dune clé.
  • La contrainte de minimalité de la clé est
    cruciale dans la 3ème condition ci-dessus (Ce
    nest pas suffisant si A fait partie dune
    superclé)!
  • Si R est en BCNF, elle est aussi en 3NF.

13
Troisième Forme Normale (Suite)
  • Si 3NF est violée par X A, cela peut être
    due à lune des raisons suivantes
  • X est un sous-ensemble dune clé K (Dépendance
    partielle).
  • Nous devrons stocker des valeurs (X, A)
    redondantes .
  • Ex. Reserves SBDC, S ? C.
  • X nest pas un sous-ensemble propre dune clé
    (Dépendance transitive).
  • Il y a une chaine de DFs K X A .
  • Nous ne pouvons pas associer une valeur de X avec
    une valeur de K sans en même temps associer une
    valeur de A avec X.
  • Ex. Hourly_Emps SNLRWH, S ? SNLRWH , R ? W.
  • Une relation en 3NF peut toujours avoir des
    problèmes.
  • P.ex., Reserves SBDC, S C, C S
    est en 3NF (car BDC est aussi une clé pour
    Reserves), mais la même paire (S,C) est quand
    même stockée pour toute réservation faite par le
    navigateur S.
  • Ainsi donc 3NF est un compromis par rapport a
    BCNF.

14
Décomposition dun Schéma Relationnel
  • Supposez que la relation R contient les attributs
    A1 ... An. Une décomposition de R consiste en un
    remplacement de R par 2 ou plusieurs relations
    telles que
  • Chaque nouvelle relation contient un
    sous-ensemble des attributs de R (et ne contient
    aucun attributs napparaissant pas dans R).
  • Chaque attribut de R apparait comme un attribut
    de lune des nouvelles relations.
  • Intuitivement, décomposer R signifie stocker des
    instances des relations produites par la
    décomposition en lieu et place de linstance de
    R.
  • Exemple SNLRWH gt SNLRH et RW.

15
Exemple de Décomposition
  • Nutiliser les décompositions quen cas de
    nécessité.
  • SNLRWH avec les DFs S SNLRWH et R
    W
  • La 2ème DF cause une violation de la 3NF les
    valeurs de W sont associées avec R de manière
    répétée. Solution créer une nouvelle relation
    RW pour stocker ces associations et enlever W du
    schéma principal
  • i.e., décomposer SNLRWH en SNLRH et RW
  • Linformation originale à stocker consiste en des
    tuples de SNLRWH.
  • Si nous ne stockons maintenant que des
    projections des tuples de SNLRWH sur SNLRH et
    RW, quelles nouveaux problèmes apparaissent ?

16
Problèmes Causés par les Décompositions
  • Trois problèmes potentiels sont à considérer
  • (1) Certaines requêtes deviennent trop chères.
  • P.ex. Combien dargent le navigateur Joe a-t-il
    gagné? (salary WH)
  • (2) Etant donné des instances des relations
    décomposées, nous pourrions ne pas être en mesure
    de reconstruire les instances correspondantes
    originales de la relation!
  • Lexemple SNLRWH na pas ce problème.
  • (3) Vérifier certaines DFs pourrait requérir de
    faire un join des instances des relations
    décomposées.
  • Lexemple SNLRWH na pas ce problème.
  • Compromis Considérer ces problèmes en rapport
    avec la redondance.

17
Décomposition à Join sans Perte
  • Une décomposition de R en X et Y est dite à join
    sans perte (lossless-join ) par rapport à un
    ensemble F de DFs si pour toute instance r qui
    satisfait F
  • (r) (r) r
  • Il est toujours vrai que r (r)
    (r)
  • En général, lautre direction nest pas toujours
    satisfaite! Si elle lest, alors la
    décomposition est dite à join sans perte.
  • Il est essentiel que toutes les décompositions
    utilisées pour traiter la redondance aient cette
    propriété! (Lon évite ainsi le problème (2) au
    transparent précédent.)

18
Décomposition à Join sans Perte (Suite)
  • La décomposition de R en X et Y est à join sans
    perte par rapport à F ssi la fermeture de F
    contient
  • X Y X, ou
  • X Y Y
  • I.e. lintersection contient une clé de lune des
    2 relations X et Y.
  • Ex. SNLRWH R ? W gt
  • SNLRH RW R ? W
  • Si U V est valide sur R et lintersection
    de U et V est vide, la décomposition de R en UV
    et R - V est à join sans perte.

19
Décomposition Préservant les Dépendances
  • Ex. CSJDPQV, C est une clé, JP C et SD
    P.
  • Décomposition en BCNF CSJDQV et SDP
  • Problème JP C requiert un join!
  • Décomposition préservant les dépendances
    (Intuition)
  • Si R est décomposée en X, Y et Z, et nous devons
    nous assurer que les DFs qui sont valident sur X,
    Y et Z séparément fassent en sorte que toutes les
    DFs qui étaient valides sur R le soient toujours.
    (Lon évite ainsi le Problème (3).)
  • Projection des DFs de F sur X Si R est
    décomposée en X, ..., la projection de F sur X
    (dénotée FX ) est lensemble des DFs U
    V dans F telles que tous les attributs de U et V
    sont dans X.

20
Décomposition Préservant les Dépendances (Suite)
  • La décomposition de R en X et Y préserve les
    dépendances si (FX union FY ) F
  • i.e., si nous ne considérons que les dépendances
    dans la fermeture de F qui peuvent être
    vérifiées dans X sans considérer Y et dans Y
    sans considérer X, ces dernières implique
    toutes les dépendances dans F .
  • Ci-haut, il est important de considérer F , pas
    F
  • ABC, A B, B C, C A, décomposée
    en AB et BC.
  • Préserve-t-on les dépendances ici? C A
    est-elle préservée ?????
  • La préservation de la dépendance nimplique pas
    la propriété de join sans perte Voir exemple
    ci-haut.
  • Et vice-versa!

21
Normalisation Décomposition en BCNF
  • Considérer la relation R avec les DFs F. Si X
    Y viole BCNF, décomposer R en R - Y et XY.
  • Répéter lapplication de cette idée jusqua
    lobtention dune collection de relations qui
    sont en BCNF
  • Garantie de décomposition à join sans perte et de
    terminaison.
  • Ex. CSJDPQV, cle C, JP C, SD P,
    J S
  • Pour traiter SD P, décomposer en SDP,
    CSJDQV.
  • Pour traiter J S, décomposer CSJDQV en JS
    et CJDQV
  • En général, plusieurs dépendances peuvent causer
    des violations de BCNF. Lordre de traitement
    conduit à des résultats différents.

22
BCNF et Préservation des Dépendances
  • En général, une décomposition en BCNF qui
    préserve les dépendances nest pas toujours
    possible.
  • Ex. SBD, SB D, D B
  • SBD nest pas en BCNF car D nest pas une clé
    Une décomposition éventuelle ne préserverait pas
    SB ? D.
  • De même, la décomposition de CSJDQV en SDP, JS et
    CJDQV ne préserve pas les dépendances
    (Avec les DFs JP
    C, SD P and J S).
    Cependant, elle est à join sans perte.
  • Dans ce cas, ajouter JPC à la collection des
    relations nous donnera une décomposition qui
    préserve la dépendance.

23
Normalisation Décomposition en 3NF
  • En principe, lalgorithme pour la décomposition
    en BCNF vu plus haut pourrait être utilisé pour
    obtenir une décomposition en 3NF garantissant la
    propriété de join sans perte (On stoppera souvent
    plutôt de toute évidence).
  • Cette approche ne garantie cependant pas la
    préservation de la dépendance.
  • Solution Utiliser la couverture minimale de F
    au lieu de F.

24
Couverture Minimale dun Ensemble de DFs
  • G est une Couverture Minimale de lensemble F de
    DFs ssi
  • Fermeture de F Fermeture de G.
  • Toute DF de G est de la forme X?A (A est un
    attribut).
  • Tout effacement dune DF de G change la fermeture
    de G.
  • Intuitivement, chaque DF dans G est nécessaire et
    est aussi petit que possible pour obtenir la
    même fermeture que F.
  • Ex. A B, ABCD E, EF GH,
    ACDF EG a la couverture minimal suivante
  • A B, ACD E, EF G et EF
    H
  • Couverture minimale ? join sans perte et
    préservation des dépendances.

25
Algorithme de transformation en 3NF
  • Algorithme
  • Input une relation R, un ensemble F de DFs
  • Transformer F en une Couverture Minimale G en
    utilisant lalgorithme en page 626 du livre RG.
  • Utiliser lalgorithme donné au transparent 21
    avec G et R comme input pour obtenir une
    décomposition à join sans perte de R en une
    collection de relations R1, , Rn qui sont toutes
    en 3NF.
  • Pour chaque FD X?A qui nest pas préservée, créer
    une relation XA et lajouter a la collection des
    relations R1, , Rn.

26
Exemple de transformation en 3NF
  • Relation CSJDPQV DFs JP?C, SD?P, J?S
  • (0) Lensemble des DFs est déjà une couverture
    minimale.
  • (1) Puisque SD?P viole 3NF, décomposer CSJDPQV en
    CSJDQV et SDP en utilisant SD?P.
  • (2) Puisque CSJDQV nest pas en 3NF et que cela
    est due à J?S, décomposer CSJDQV en CJDQV et JS
    en utilisant J?S.
  • (3) Remplacer CSJDPQV par SDP, JS et CJDQV qui
    sont toutes en 3NF et sont toutes à join sans
    perte.
  • (4) SDP, JS et CJDQV ne préservent cependant pas
    la DF JP?C. On ajoute JPC a notre collection
    obtenue a létape (3) ci-dessus.
  • (5) Le résultat final est SDP, JS, CJDQV, JPC.

27
Résumé
  • Une relation qui est BCNF est exempte de toute
    redondance détectable via les DFs. Doù, il est
    désirable de transformer toutes les relations en
    BCNF.
  • Si une relation nest pas en BCNF, nous pouvons
    essayer de la décomposer en une collection de
    relations en BCNF.
  • On doit sassurer que toutes les DFs sont
    préservées. Si une décomposition en BCNF qui est
    à join sans perte et qui préserve les dépendances
    nest pas possible (ou nest pas souhaitable à
    cause des requêtes typiques existantes), lon
    devrait considérer une décomposition en 3NF.
  • Les décompositions devraient être faites en ayant
    les exigences de performance (des requêtes) a
    lesprit.
Write a Comment
User Comments (0)
About PowerShow.com