1 Normalisation relationnelle Witold Litwin
2 Modélisation du monde réel H Une base est un modèle d'une entreprise (ANSI-SPARC) H Innombrable méthodes d'aide à la conception (intégré) d'une base: –empiriques –semi-empiriques (E-R) –formelles normalisation relationnelle –OO
3 Base S-P (Exemple canon) S P SP
4 Pourquoi ce schéma pour S-P ? H Autres schémas sont possibles H Une table par fournisseur IBM (S#, STATUT, CITY, P#, PNAME; QTY) HP (S#; STATUT, CONTACT, CITY, P#, PNAME, QTY) …. H Une seule table (universelle) S-P (S#, SNAME,STATUS,CITY,P#,QTY,PNAME,COLOR,WEIG HT,PCITY) H Autres intermédiaires SP’ (S#, SNAME, STATUS, CITY, P#, QTY ), P (P#…) Alors pourquoi le schéma S,SP,P ?
5 Normalisation H Processus de création formelle d'une base relationnelle (Codd) H Un remplacement de relations avec des anomalies par une ou plusieurs relations "meilleures" H Traditionnellement, le remplacement appelé aussi décomposition sans perte est basé en général sur la notion de –dépendances fonctionnelles –dépendances multivaluées Pour 1-O NF, le remplacement est un regroupement au lieu de la décomposition
6 Normalisation Attributs (rel. universelle) Couverture de Dépendances (FDs, MDs, IDs...) Base
7 Normalisation Cuverture minimale (FDs, MDs, IDs...) Base table en 1 NF Base en 1-O NF
8 Normalisation Cuverture minimale (FDs, MDs, IDs...) Base
9 Normalisation Cuverture minimale (FDs, MDs, IDs...) Base etc jusqu'à n 7 fois (5NF)
10 Normalisation H Une de plus belles pièces de la théorie des BDs H Mais, d'un intérêt discutable en pratique H Notamment, car on proscrit les valeurs nulles H L'idée première: séparation de torchons et de serviettes mélangées dans une même relation R –en deux ou plus relations- projections, séparant les torchons de serviettes et telles que –si besoin, la jointure de ces projections donne de nouveau R H Très à la mode il y a 20 ans H Peu de nouveautés depuis sauf: –1-O NF (1991) –Théorème de Date & Fagin sur l'équivalence de 3 NF et n NF n > 3 (1993)
11 Formes normales connues H 1-O NF (Ketabchi, Krishnamourthy, Litwin, 1991) H 1 NF (Codd, 1971) 2 NF (Codd, 1971) 3 NF (Codd, 1971) BCNF (Boyce, Codd, 1971) 4 NF (Fagin, 1977) 5 NF (Fagin, 1979) 1-O NF est une forme d'une base, toute autre est une forme d'une relation Une relation en n > 1 NF ou en BCNF est toujours en n-1 NF ou BCNF. Relation en 5 NF est en 4 NF et en BCNF et en 3NF… Une relation à clé atomique et en 3 NF est en BCNF et en 4 et 5 NF.
12 Dépendances Fonctionnelles H Un attribut B d'une table R est fonctionnellement dépendant sur A de R ; A -> B ; ssi, pour tout tuple t de toute extension de R: t [a 1 ] = t [a 2 ] t [b 1 ] = t [b 2 ] H A et B peuvent être composites H DFs sont des propriétés sémantiques (du schéma de R), donc s'appliquent à toute extension (légale) de R H Une DF d'une extension de R n'est pas nécessairement une DF de R H Pour tout B non-clé et tout A clé, on a: A -> B `
13 H S: S# -> SNAME ; S# -> STATUS ; S# -> CITY STATUS -> CITY ? S: S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY} Combien y a-t-il de DFs dans S ? Et en général dans une R n-aire avec une clé atomique ? ? SP : S# -> P# ; P# -> QTY S P SP
14 Règles d'inférence de DFs (i) X Y Þ X -> Y* Réflexivité (ii) X Y Þ XZ -> YZ* Augmentation (iii) X Y, Y Z Þ X -> Z* Transitivité H Si F est un ensemble de DFs sur R, (couverture fonctionnelle de R), une DF X -> Y est inférée (déduite) de F si X -> Y est valide pour tout tuple d'une extension légale de R (donc respectant F). H On note F Þ X -> Y H F: {S# -> SNAME ; S# -> STATUS ; S# -> CITY} Þ S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY} H Règles d'inférence des DFs (Armstrong,1974) –X, Y, Z sont des attributs de R
15 F+ Règles d'inférence de DFs H Il est prouvé que les règles d'Armstrong sont fondées (sound) et complètes –Toute DF inférée en utilisant (i) à (iii) est une DF inférée –Toute DF qui peut être inférée de F, peut être inférée en utilisant seulement (i) à (iii) H Fermeture F + de F: l'ensemble des DFs qui peuvent être inférées de F F
16 Règles additionnelles X YZ Þ X -> Y* Projection X Y, X Z Þ X -> YZ* Union (addition) X Y, WY Z Þ WX -> Z* Pseudo-transitivité X YZ Þ X -> Y, X -> Z * Décomposition X X * Auto-détermination -X -> Y, V -> Z Þ XV -> YZ * Composition X Y Þ XW -> Y * Augmentation à gauche Prouver ces règles
17 Fermeture d'un attribut sous F H Fermeture X + (ou X + ( F) ) d'un attribut X par rapport à F: l'ensemble des attributs fonctionnellement dépendant de X sous la couverture fonctionnelle F X peut-être composé S# + = {S#, SNAME, CITY, STATUS} dans S H Algorithme pour trouver : H Algorithme pour trouver X + : X + := X ; répète: vieuxX + := X + pour tout FD Y -> Z dans F fait: si Z X + alors X + := X + jusqu'à (vieuxX + = X +) ;
18 Exemple H Employes et leurs projets EP = ( SS#, ENom, P#, PNom, Loc, Temps) F = { SS# -> ENom ; P# -> { PNom, Loc } ; { SS#, P# } -> Temps } H SS# + = { SS#, ENom } H P# + = { P#, PNom, Loc } H { SS#, P# } + = { SS#, P#, ENom, PNom, Loc, Temps } H R (X1, X2, X3... X55) F = { X i -> X i+1 } i = 1,2..54 H X3 + = ?
19 Recouvrement de couvertures de DFs H Une couverture F couvre une couverture E si toute FD de E est dans F + –Toute FD dans E peut être inférée de F E F Donc, E+ F+ (facile à prouver) F+ E+ H F couvre E si: –pour toute FD X -> Y dans E, X + ( F) inclue tous les attributs composant Y ceci est un algorithme
20 Exercices H Est-ce que F couvre E ? H E = { S# -> S# } F = { S# -> S#, S# -> CITY } H E = { S# -> S# } F = { S# -> CITY } H E = { S# -> SNAME } F = { S# -> CITY, SNAME } H E = { S# -> CITY, STATUS } F = { S# -> CITY, SNAME }
21 Equivalence de couvertures E et F sont équivalentes ; E F ; si F + = E + E F F+ E+
22 Couverture minimale H Un ensemble F de DFs est minimal si: Pour tout f: X -> Y dans F, Y est atomique f F, F \ f n'est pas équivalent à F f F, A X, F \ f Y n'est pas équivalent à F H Une couverture minimale de F est l'ensemble minimal F min équivalent to F H En général, il existe plusieurs F min pour F H En général, on peut aisément trouver au moins une couverture minimale de R, mais....
23 H L'on ne connaît pas d'algo simple et général pour trouver tout F min ni même un F min La couverture minimale est aussi appelée irréductible F min avec tous les DFs X -> Y, X -> Z... unionées en une DF unique X -> YZ.. est appelée canonique F min (P) dans la base S-P ? Couverture minimale
24 Clés candidates Soit R une relation, C tous les attributs de R, F une couverture de R et X C X est une clé candidate de R si et seulement si on a : X + (F) = C et X est minimal en ce qui concerne cette condition condition alternative : X + (F min ) = C
25 Exercices H Quelles couvertures sont minimales ou canoniques ? H Pour P de la base SP : F1 = { P# -> Pname, Color ; P# -> Weight } F2 = { P# -> Pname ; P# -> Color ; P# -> Weight } H Pour SP avec F1 = { { S#, P# } -> QTY ; S# -> S# } F2 = { S#, P# } -> QTY } H Pour EPM (E#, SS#, ENom, Dep) avec F = { E# -> SS# ; { E#, Dep } -> ENom ; { SS#, Dep } -> ENom { SS#, Dep } -> E# }
26 1 NF H Relation R est en 1 NF si toute valeur d'attribut est atomique –cette normallisation crée des redondances ! P1 P2 P3 P4 S1 S2 P1 P2 P3 P1 P2 P3 P4 P1 P2 P3 S1 S2 Norm. O NF1 NF
27 2 NF Définitions préliminaires H Attribut clé –Tout attribut faisant partie d’une clé Clé primaire ou candidate H Un attribut clé n’est peut-être pas la clé lui- même –(S#, P#) c’est la clé de SP –S# est un attribut clé, ainsi que P# H Attribut non-clé –Tout attribut non inclus dans une clé –QTY est un attribut non-clé
28 2 NF H R est en 2 NF si R est en 1 NF et tout attribut A non-clé est pleinement (fonctionnellement) dépendant de la clé primaire S (S#, STATUS, CITY) est en 2 NF SP’ (S#, STATUS, CITY, P#, QTY ) n'est pas en 2 NF QTY S# P# STATUS CITY
29 Base S-P (Exemple canon) S P SP
30 Pourquoi 2NF ? Considère que la base S-P contient la table P et, au lieu de S et SP, la table SP’ déjà mentionnée: SP’ (S#, STATUS, CITY, P#, QTY ) = S JOIN SP Pour simplifier, on oublie SNAME dans S QTY S# P# STATUS CITY
31 QTY S# P# STATUS CITY
32 1 NF H Anomalies –d'insertion pas de nouveau fournisseur sans aucune pièce –de suppression suppression de la dernière pièce supprime toute info sur le fournisseur –de mise à jour il faut mettre à jour des valeurs inutilement dupliquées –consistance peut être détruite H S'agit-t-il vraiment d'anomalies ?? H Rédondances !! l es données d'un fournisseur sont dupliquées plusieurs fois
33 Table SP’ Dernière info sur S3
34 Solution Décomposition sans perte –On remplace une relation R par ses projections Ri i=1,2.. telles que la jointure naturelle R' des Ri est égale à R, c. à d. pour toute extension de R : il n'y a pas de tuples de R qui manquent dans R' il n'y a pas de tuples en plus dans R' par rapport à R R R2 R1 R'
35 Décomposition sans perte H En général, il existe une décomposition sans perte en deux projections R1 et R2 –mais il y a en des cas où la seule décomposion sans perte est en i > 2 projections on verra l'ex. en discutant la 5 NF H Souvent R1 ou R2 est décomposable à son tour –en conduisant aussi à une décomposition sans perte de R en i > 2 relations
36 Décomposition sans perte H Une décomposion de R muni de la couvert. fonct. F en R1 et R2 est sans perte ssi: ( R1 R2) -> R1 \ R2 est dans F+ ou ( R1 R2) -> R2 \ R1 est dans F+ –à vérifier sur notre exemple
37 Règle pratique H Toute relation R avec –A, B, C attr. atomiques ou composés –une DF A -> B peut être décomposée sans perte en R1 (A, B) et R2 (A, C) H Théorème de Heath (1971) H Conduit à la « règle de patates »
38 Normalisation en 2-NF S’ (S#, STATUS, CITY)SP (S#, P#, QTY) H Décomposition correspondante de SP’ A = S# ; B = (STATUS, CITY) H S’ est la « patate blanche», SP la rouge QTY S# P# STATUS CITY
39 Normalisation en 2-NF QTY S# P# S# STATUS CITY S’ (S#, STATUS, CITY)SP (S#, P#, QTY) H Décomposition correspondante de SP’ A = S# ; B = (STATUS, CITY) H Après la séparation de patates H Avec la contrainte d'intégrité référentielle générée ainsi
40 QTY S# P# S# STATUS CITY S’ (S#, STATUS, CITY) SP (S#, P#, QTY) Vérifie que cette décomposition est sans perte ! Sans la DF suppl.,on retrouverait notre schéma initial de S-P
41 Décomposition sans perte H On ne perd pas d'information H On gagne la possibilité d'en introduire davantage dans la base –Fournisseurs sans fourniture en cours –Pièces sans fournitures –Fournitures sans fournisseur en cours ? H Une possibilité très importante comme on l'a vu –Une autre vue de l'anomalie d'insertion
42 Décomposition préservant les DF H L'union des couvertures fonctionnelles des projections de R est équivalente à la couverture fonctionnelles de R –La couverture : un ensemble de DFs complet au sens des axiomes d'Armstrong H Une décomposition sans perte –peut préserver les DFs décompositions en 3NF –peut ne pas préserver les DFs décompositions en BCNF
43 Conception de la base S-P H Relation universelle initiale SP1 (S#, SNAME, SCITY, STATUS, P#, PNAME, COLOR, WEIGHT, PCITY, QTY) Les DFs ? H 1ère décomposition sans perte P (P#, PNAME, COLOR, WEIGHT, PCITY) SP2 (S#, SNAME, SCITY, STATUS, P#, QTY) H On retrouve SP’ augmenté par SNAME Est-ce que c'est la seule 1ère décomposition sans perte possible ? H 2ème décomposition sans perte, de SP2 seul SP (S#, P#, QTY) S (S#, SNAME, SCITY, STATUS) H Avec P, on retrouve notre schéma habituel Est-ce que les DFs de SP1 sont préservées ?
44 Exercices H Etud (E#, Nom, Cours, Note) F = { E# -> Nom ; {E#, Cours } -> Note }} H Décompositions sans perte ? –EN (E#, Nom), EC (E#, Cours, Note) –ENC (E#, Nom, Cours), CN (Cours, Note) H Et les DFs, sont-elles préservées ?
45 Exemples courants H Pers (SS#, Nom, Ville, CP, Voit#, Type) Pers (SS#,...) et PV (SS#, Voit#,..) H Empl (E#, Nom, Dep, Loc, Tache, Def, Perf) –à décomposer en combien d'étapes ? H Ami1 (SS#, Nom, Tel, A-SS#, A-Nom, A-Tel) H Ami2 (SS#, Nom, Tel, A-SS#) Dessine les graphes de ref. pour Ami1 et Ami2 ? H Equipe (E#, Nom, EqNom) H La modélisation naturelle souvent évite ces cas "naturellement"
46 2NF et clé candidates H Une relation peut être en 2NF par rapport à la clé primaire (P#), sans être en 2NF par rapport à une clé candidate (Nom, Tel) Pers (P#, Nom, Tel, Salaire, Prefix-0?) H Une définition + stricte de 2NF est alors possible R est en 2NF, si R is en NF et tout A non-clé est pleinement dépendant de toute clé H Divergences existent sur l'utilité de cette définition –la décomposion en 3NF n'en dépend pas
47 3-NF H Problème avec 2-NF –DF s transitives conduisent à des anomalies Considère la table SP’ déjà mentionnée: SP’ (S#, STATUS, CITY, P#, QTY ) Avec une DF supplémentaire QTY S# P# STATUS CITY Contrainte additionnelle
48 3-NF R est en 3 NF si: H R est en 2 NF H Tout attribut non-clé est non- transitivement dépendant de la clé primaire La table SP' sans DF suppl. est elle en 3-NF Et avec
49 Décomposition 2 NF -> 3 NF H Plusieurs décompositions sans perte sont souvent possibles –En projections indépendantes De préférence –En projections dépendantes
50 Décomposition 2 NF -> 3 NF en projections indépendantes H On isole les attributs non-clé en DF s dans des projections telles que –la décomposition est sans perte –aucune MAJ d'une projection ne peut violer une DF originelle
51 Décomposition 2 NF -> 3 NF en projections indépendantes S# CITY SC (S#, CITY) STATUS CITY CS (CITY, STATUS) S# STATUS CITY S1 (S#, STATUS, CITY)
52 Décomposition 2 NF -> 3 NF en projections indépendantes H Les MAJ de SC ou de CS peuvent être faites sans violer une FD de S1 H Ce n'est pas le cas de toute autre décomposition dite dès lors en projections dépendantes –bien qu'une telle décomposition peut être aussi sans perte –Comme on verra
53 CITY STATUS CS (STATUS, CITY) S#CITY SC (S#, CITY) CS Join SC S1
54 CITY STATUS CS (STATUS, CITY) S#CITY SC (S#, CITY) MAJ de CS CS Join SC
55 CITY STATUS CS (STATUS, CITY) S#CITY SC (S#, CITY) MAJ de CS CS Join SC
56 STATUS S# SS (S#, STATUS) S#CITY SC (S#, CITY) S1 Décomposition en projections dépendantes SC Join SS
57 STATUS S# SS (S#, STATUS) S#CITY SC (S#, CITY) CITY -|-> STATUS MAJ de SS SC Join SS
58 Conception de la base S-P H Relation universelle initiale SP1 (S#, SNAME, SCITY, STATUS, P#, PNAME, COLOR, WEIGHT, PCITY, QTY) Les DFs ? H 1ère décomposition sans perte P (P#, PNAME, COLOR, WEIGHT, PCITY) SP2 (S#, SNAME, SCITY, STATUS, P#, QTY) H On retrouve SP’ augmenté par SNAME Est-ce que c'est la seule 1ère décomposition sans perte possible ? H 2ème décomposition sans perte, de SP2 seul SP (S#, P#, QTY) S (S#, SNAME, SCITY, STATUS) H 3ème décomposition sans perte, de S seul S (S#, SNAME, SCITY) CS (SCITY, STATUS)
59 Décomposition 2 NF -> 3 NF Un autre exemple très courant SS# CP PC (SS#, CP) Ville CP CV (CP, Ville) SS# Ville CP Pers (SS#, Ville, CP)
60 Théorème de Rissanen H Projections R1 et R2 de R sont indépendantes ssi : –toute FD de R peut être logiquement déduite de celles dans R1 et R2 –les attributs communs de R1 et R2 forment une clé candidate pour au moins une de ces relations Ex. FD : S# --> STATUS peut être logiquement déduite de S# --> CITY et de CITY --> STATUS –Transitivité Les projections indépendantes de SP' : (S#, CITY) et (CITY, STATUS) La dépendance S# --> STATUS peut être déduite Les projections dépendantes de SP' : (S#, CITY) et (S#, STATUS) La dépendance CITY --> STATUS ne peut être déduite
61 Théorème de Rissanen H Ce théorème permet seulement de vérifier le si la décomposition est en projections indépendantes H Il ne permet pas de trouver une telle décomposition H Il y a des algorithmes correspondants plus loin dans ce cours
62 BCNF H Problème avec 3 NF : –un attribut faisant partie d'une clé (candidate) peut-être non-pleinement dépendant de la clé primaire H Suppose : –SNAME une clé candidate dans S et considère la table SSP (S#, SNAME, P#, QTY) = S [S#, SNAME] JOIN SP –Avec donc S# SNAME –On oublie S.CITY, S.STATUS pour simplifier
63 SSP SNAME n’est pas pleinement FD de la clé primaire de SSP
64 BCNF R est en BCNF ssi tout déterminant est une clé candidate H On appelle déterminant tout attribut duquel un autre attribut est pleinement FD dépendant Cette définition ne fais pas de référence à 3 NF ! Pourtant on peut démontrer que toute relation en BCNF et en 3 NF
65 BCNF SSP (S#, SNAME, P#, QTY) n'est pas en BCNF QTY S#SNAME P# Et si SNAME n’était pas une clé candidate dans S, alors quelle serait la forme normale de SSP ?
66 BCNF H Décompositions (sans perte) par Th. De Heath –Et les patates donc SS (S#, SNAME)SP (S#, P#, QTY) ou: SS (S#, SNAME)SP' (SNAME, P#, QTY) H SP’ résulte de la dépendance SNAME -> S# H Cette décomposition également résulte du Th. de Heath SP et SP' sont-elles en BCNF ? Et les tables S et P de S-P ?
67 SSP (S#, SNAME, P#, QTY) QTY S#SNAME P# SS SP Décomposition BCNF de SSP Plus de DF (P#, SNAME) -> QTY
68 SSP (S#, SNAME, P#, QTY) QTY S# SNAME P# SS SP Décomposition BCNF de SSP S# 1N
69 SS SP Décomposition BCNF de SSP SSP
70 BCNF SSP (S#, SNAME, P#, QTY) QTY S#SNAME P# SS SP' Décomposition BCNF Alternative de SSP Plus de DF (P#, S#) -> QTY
71 SSP (S#, SNAME, P#, QTY) QTY SNAME P# SS SP Décomposition BCNF de SSP S# 1N
72 SS SP' Décomposition BCNF alternative SSP
73 Autres exemples H Etud (E#, SS#, C#, Note) ; H Etud (E#, SS#) et EC (E#, C#, Note) H Pers (Tel, Nom, SS#, Visa#, Cpte, Etat) H Pers (Tel, Nom, SS#), SC (SS#, Cpte, Etat), SV (SS#, Visa#) ; H Livre (ISBN#, Loc#, Enr#, D-pret, Nom, Duree) à vous de jouer
74 COURSETEACHERTEXT PhysicsProf. GreenBasic Mechanics Prof. BrownPrinciples of Optics MathProf. Green Basic Mechanics Vector Analysis Trigonometry 4 NF H R en BCNF peut mélanger les faits indépendants en dépendance multivaluée CTX
75 4-NF Anomalies : ex. insertion d'un nouveau Prof de Math., Prof. Jaune 3 tuples ; suppression d'un seul tuple de Prof. Green inconsistance dans la base. COURSETEACHERTEXT PhysicsProf. GreenBasic Mechanics PhysicsProf. GreenPrinciples of Optics PhysicsProf. BrownBasic Mechanics PhysicsProf. BrownPrinciples of Optics MathProf. GreenBasic Mechanics MathProf. Green Vector Analysis MathProf. Green Trigonometry CTX
76 4 NF H Décomposition: COURSETEACHER PhysicsProf. Green PhysicsProf. Brown MathProf. Green CT COURSETEXT PhysicsBasic Mechanics PhysicsPrinciples of Optics MathBasic Mechanics MathVector Analysis MathTrigonometry CX
77 Autre exemple (très courant) H Pers (SS#, PNom, Ville, CP, Dipl#, DNom, Hobby) H Pers (SS#, PNom, Ville, CP), X (SS#,.....) H Pers (SS#, PNom, CP), VC (Ville, CP), X (SS#,.....) H Pers (SS#, PNom, CP), VC (Ville, CP), D (Dipl#, DNom), PDH (SS#, Dipl#, Hobby) Relation Troublion
78 Solution formelle: Dépendances multivaluées H Soit R (A, B, C) une relation. Il y a une D M : A -->> B | C dans R ssi, quelque soit C, à une valeur de A correspond toujours le même ensemble de valeur de B. H Les attributs A, B, C peuvent être composés H R a au moins 3 attributs R est en 4 NF ssi R est en BCNF et toutes les DMs sont des DFs
79 DMs dans CTX COURSETEACHERTEXT PhysicsProf. GreenBasic Mechanics PhysicsProf. GreenPrinciples of Optics PhysicsProf. BrownBasic Mechanics PhysicsProf. BrownPrinciples of Optics MathProf. GreenBasic Mechanics MathProf. Green Vector Analysis MathProf. Green Trigonometry CTX COURSE --> TEACHER | TEXT H CTX n'est pas en 4 NF
80 DMs dans CTX COURSETEACHERTEXT PhysicsProf. GreenBasic Mechanics PhysicsProf. GreenPrinciples of Optics PhysicsProf. BrownBasic Mechanics PhysicsProf. BrownPrinciples of Optics MathProf. GreenBasic Mechanics MathProf. Green Vector Analysis MathProf. Green Trigonometry CTX COURSE --> TEXT | TEACHER A --> B | C A --> C | B
81 Décomposition en 4 NF H R peut être décomposé sans perte en projections (indépendantes) R(A, B) et R(A, C) ssi les DMs A -->> B | C sont présentes dans R. –Th. de Fagin généralisant aux DMs celui de Heath H Fagin a montré aussi que les règles d'Amstrong se généralisent en général également H Tout R peut être décomposé en collections de relations en 4 NF H CT et CX sont en 4 NF
82 Dr. Ronald Fagin après avoir reçu le Doctorat Honoris Causa de l’Université Paris 9 Dauphine le 14 Nov Notamment pour ses travaux en BDs
83 Décomposition de CTX en 4 NF COURSETEACHER PhysicsProf. Green PhysicsProf. Brown MathProf. Green CT COURSETEXT PhysicsBasic Mechanics PhysicsPrinciples of Optics MathBasic Mechanics MathVector Analysis MathTrigonometry CX R est en 4 NF ssi R est en BCNF et toutes les DMs sont des DFs
84 Interaction 4NF et 2NF H Considère en plus de la DM discutée dans CTX qu'un Prof ne donne qu'un cours –FD (Teacher -> Course) H Alors on a CT (Course, Teacher, Texte) H La décomposition en 2NF aurait donnée TT (Teacher, Texte) et CT (Teacher, Course) H TT n'est pas terrible, n'est ce pas ? –Anomalies (lequelles ?) H Cette décomposition est moins bonne que celle en tables CT et CX H Pourtant elle serait définitive selon la théorie de normalisation en cours –Les tables TT et CT sont dans 3NF, BCNF, 4NF et 5NF
85 Interaction 4NF et 2NF H Solution: –Il faut analyser les DMs avant les DFs –S'il y en a, alors il faut décomposer selon les DMs d'abord –Résultat OK dans notre exemple: Les tables CT et CX H Problème apparemment découvert en 2001 et donc encore inconnu de livres sur les BDs relationnels –Beaucoup évite la 4 NF et les MDs À tort comme on le voit H Autre exemple courant : P# (SS#, , tel#) –Les adresses sont en général personnels, mais les # de téléphone sont souvent partagés
86 5 NF H Il existe des relations qui ne peuvent être décomposées qu'en trois composantes au moins S#P#J# S1P1J2 S1P2J1 S2P1J1 S1P1J1 SPJ S# P# S1P1 S1P2 S2P1 P# J# P1J2 P2J1 P1J1 J# S# J2S1 J1S1 J1S2 SPPJ SJ SPJ est sujet aux anomalies d'insertion et de suppression, ex. delete (S1, P1, J1) Contrainte cyclique : (S1, P1, J2) et (S2, P1, J1) et (S1, P2, J1) (S1, P1, J1)
87 5 NF H La contrainte cyclique évite le "piège de connection" (connection trap) H Une relation R est n-décomposable pour n > 2 si elle supporte une contrainte cyclique H Relation SPJ est 3- décomposable : H Relation SPJ est en 3-dépendance de jointure (DJ) : JD *(SP, PJ, JS)
88 S#P#J# S1P1J2 S1P2J1 S2P1J1 S1P1J1 SPJ S# P# S1P1 S1P2 S2P1 P# J# P1J2 P2J1 P1J1 J# S# J2S1 J1S1 J1S2 SPPJ SJ H Relation SPJ est en 3-dépendance de jointure (DJ) : JD *(SP, PJ, JS)
89 5 NF R est en 5 NF (appelé aussi PJ/NF) ssi toute DJ est impliquée par les clés candidates de R, c. à d.: –soit il n'y a pas de DJ –soit, toute projection contient une clé H Toute R en 5 NF est en 4 NF (les DMs sont un cas spécial de DJs) R (A,B,C) satisfait JD* (AB, AC) ssi on a A -->> B | C
90 5 NF H SPJ n'est pas en 5 NF car S#, P#, J# ne sont pas clés candidates H S' ( S#, SNAME, STATUS, CITY ) est en 5 NF : * (( S#, SNAME, STATUS), (S#, CITY )) * (( S#, SNAME), (S#, STATUS), (SNAME, CITY)) etc. H Y a-t-il des DJs dans les tables S, P et SP ? H Sont-elles en 5 NF ?
91 5 NF H Il existe un algorithme (Fagin) permettant de tester pour une DJ et un ensemble de clés candidats C est-ce que DJ est impliquée par C –L'ex. précedent mpntre que ce n'est pas toujours évident H Pour R donnée, on peut toujours dire si R est en 5 NF pourvu que l'on connaît toutes les clés et toutes les DJs. H Mais, découvrir les DJ peut ne pas être trivial 5 NF est une ultime NF pour les PJ –toujours existante ou possible par une décomposition en projections –libre d'anomalies discutées à éliminer par une décomp. en projections
92 Nouvelle vie de 3 NF H Théorème : Toute R en 3 NF avec une seule clé atomique est en BCNF, 4 NF et 5 NF (Date et Fagin, 1993) H L a modélisation OO souvent conduit à de telles relations ou le OID est la clé
93 Algorithmique de décompositions (ou où le bat blesse) Algorithme de génération de F + : (1) F + := F ; –Applique les règles d'Armstrong, dans n'importe quel ordre à F + ; –Si il n'y a pas de f F + générée, alors exit ; F + := F + f ; goto (1) ; Combien de DFs n-aires R peut avoir ( |F + | = ?) : 2 2n En pratique souvent n = et donc on peut avoir : |F + |
94 Génération de couverture minimale (1) Décompose F : Remplace toute DF (X -> {A1,..Ak} de F avec k DFs X -> Ak (2) Réduction à gauche du résultat de (1), soit F m1 F m2 := F m1 ; pour tout X -> A F m2 Z := X pour tout attribut x X F' := F m2 \ {Z -> A} {Z \ {x} -> A} si (F' F m2 ) alors Z := Z \ {x} ; F m2 := F m1 ; fin fin (3) supprime les DFs redondantes dans F m2
95 Génération de couverture minimale (discussion) H Complexité ? –polynomiale dans |F | (Helman*), à condition de tester l'équivalence par X + et non pas par le test (F' + F m2 + ) ; (et pourquoi ?) Helman, P. The Science of Database Management, 1994, 588. H Résultat unique ? –non, (et pourquoi ?) –il existent d'autres algorithmes pour générer une couverture minimale
96 Algo général de décomposition en 3NF sans perte et préservant les DFs Une décomposition de R préserve F si l'union des projections F' est équivalente à F Théorème de Rissanen s'applique si on a les projections en 3NF Il ne spécifie pas comment obtenir ces projections Le bon sens suffit souvent L'algorithme qui suit fournit une réponse générale
97 Algo général de décomposition en 3NF sans perte et préservant les DFs H Entrée : table R (A1... An) et son F (les DFs sur R) ; pas de nuls H Sortie : projections R' en 3 NF H Trouve F m H Pour tout X d'une f : X -> Aj dans F –crée un schéma (X, A i1..., A im ) où tout A ik est tel que X -> A ik F m H Forme une table des attributs restant, s'il y en a H Si aucune de tables créées ne contient la clé C de R, alors crée encore une table avec C comme attributs.
98 Application à notre exemple: SP' (S#, STATUS, CITY, P#, QTY ) QTY S# P# STATUS CITY F m = {1, 2, 3} On retrouve nos tables en 3NF: SP (S#, P#, QTY) SC (S#, CITY) CS (CITY, STATUS)
99 Un autre exemple SP'' (S#, STATUS, CITY, P#, COLOR ) COLOR S# P# STATUS CITY F m = {1, 2, 3} SC (S#, CITY) CS (CITY, STATUS) PC (P#, COLOR} SP (S#, P#)
100 Algo général de décomposition en 3NF sans perte et préservant les DFs H Preuve dans Ullman* (par ex.). Complexité ? H C'est un alg. parmi d'autres (ex. Helman) Et pourquoi ? Note que: R est atomique si R ne peut pas être décomposé en projections indépendantes (notamment en 3NF) S n'est pas atomique (mais est-il souhaitable de le décomposer ?) SP est atomique Ullman, J. Principles of Database & Knowledge-Base Systems. Computer Sc. Press, 1988
101 Algo général de décomposition sans perte en BCNF H Entrée: table R et ses FDs F ; pas de nuls H D := {R} ; H tant qu'il y a une table Q pas en BCNF dans D fait –trouve une dépendance X -> Y de Q non- conforme à BCNF –D := D \ Q {Q \ Y, X Y } H fin H Preuve ? Complexité ? Les FDs ne sont pas toujours préservées (et quand sont elles, notamment ?)
102 Application SSP (S#, SNAME, P#, QTY) QTY S#SNAME P# D := { SSP (S#, SNAME, P#, QTY) } := {SSP {S#, P#, QTY), SN (S#, SNAME)} F m = {1, 2} 1 2
103 Application SSP (S#, SNAME, P#, QTY) QTY S#SNAME P# D := { SSP (S#, SNAME, P#, QTY) } := {SSP {SNAME, P#, QTY), SN (S#, SNAME)} F m = {1, 2} 1 2
104 Est-ce que toute cette théorie est: pratique ? C'est une bonne question ! Peu, par rapport aux espérances dans ses années d'or ( ): H L'intuition en général suffit pour 3NF –Le Th. de Date-Fagin montre que la portée des intuition était même + grande que l'on pensait H Les "anomalies" qui restent pèsent en général peu comparées aux effets de + de jointures : –détérioration de performances de requêtes –complexité accrue de la formulation de requêtes Les valeurs nulles fichent les principaux résultats en l'air
105 Est-ce toute cette théorie pratique ? Il est possible d'insérer dans table S avec la FD CITY ->STATUS l'info sur le status de IBM : (S5, IBM, nul, 400)/* dans (S#, SNAME, CITY, STATUS) Ceci n'est plus possible après la décomposition très OK sans valeurs nulles: (S#, SNAME, CITY) (CITY, STATUS) Un désavantage souvent En général, un article sur une décomposition n'est plus accepté pour les princip. confs de recherche en BDs (SIGMOD, VLDB...)
106 Concepts avancés H Relation universelle H Forme normale de 1er ordre H Autres dépendances H Relations atomiques H Relations à attributs hérites
107 Relation universelle H Voir Ullman, (1982) –toute relation R dans la base est une projection d'une relation U avec tous les attributs de la base Comme on a fait pour la base S-P –L’usager ne voit que la relation universelle –Idée : éviter les equijointures Problèmes non-résolus: –pas toujours possible (ex. base S-P), les nuls.. A appliquer à la base S-P
108 Autres Dépendances Dépendances d'inclusion (inter-relationnelles), Dépendances DK/NF Schémas acycliques... Travaux Beeri, Fagin, Ullman…
109 Forme normale de 1-er ordre (1st Order Normal Form) Krishnamourthy & Litwin, 1991 H Une base relationnelle B est en 1-O NF si tous les arguments de manipulations prévues sont les valeurs d'attributs H En général, un argument peut être un nom ou une valeur SELECT SNAME FROM S WHERE CITY = 'Paris'
110 1-O NF H Considère maintenant la requête à la base S-P Les noms de tables avec S# = 'S1' H Si cette requête est permise, alors la base S-P n'est pas en 1-O NF H Un exemple + pratique : la base Bourse : IBM (C#, prix, jour) HP (C#, prix, jour, variation) Alcatel (C#, prix, jour, dividende) H Les noms des entreprises dont prix au jour x > 50 H Si cette requête est permise, alors Bourse n'est pas en 1-O NF
111 Normalisation en 1-O NF H Créer une table où les noms deviennent les valeurs Comp (C#, Nom, prix, jour, variation...) Prix à payer: –valeurs nulles –performances (mémoire et CPU) H Le futur : LMs de prédicats d'ordre supérieur, ex. IDL (Krishnamourthy, Kent, Litwin 1991) La normalisation en 1-O NF compose n > 1 tables en 1; les autres normalisations décomposent 1 table en n.
112 Schéma en Etoile H Imagine que Status n’a que quelques valeurs. –C# est alors le « code statut » Entier sur 1 octet H ¨Le schéma suivant remplacent table S est plus économique en mémoire S (S#, SNAME, CITY, C#), SC (C#, STATUS) L’approche populaire avec les entrepôts de données dite « Schéma en Et oie »
113 Relations atomiques H Toute table contient une clé (OID) et au plus un attribut non-clé –décomposition complète –l'approche apparentée à « Data Semantics » d'Abrial –Français, créateur de SGBD Socrate (1975) modèle OO de SGBD-RAM AMOS –Université d’Uppsala H Base S-P: S (S#), SN (S#, SNAME), SC (S#, CITY), SS (S#, STATUS) P (P#), PN (P#, PNAME), PC (P#, COLOR), PW (P#, WEIGHT) SP (S#, P#), SP (S#, P#, QTY) ou SP (SP#), SPS (SP#, S#), SPP (SP#, P#), SPQ (SP#, QTY),...
114 Relations atomiques H Avantages –pas d'anomalies –pas de normalisation mais il faut quand même tenir compte de DFs et DM –Pas de stockage de valeurs nulles –approche applicable sous SGBD modernes, ex. MsAccess, surtout sous QBE H Désavantages performances d’exécution: jointures nombreuses, internes et externes place mémoire (redondances de clés OIDs (S#)
115 Tables à attributs hérités (Litwin & al, 1992) Une table relationnelle à attributs hérités peut mélanger Des attributs réels Comme dans toute table de base Des attributs hérités Virtuels, comme dans une vue relationnelle Les attributs hérités sont définis par les requêtes relationnelles SQL par exemple
116 Tables à attributs hérités Pourquoi faire Unification de la dichotomie traditionnelles antre les vues relationnelles et les tables de base Une manipulation plus aisée Moins de jointures dans les requêtes MAJ multitables Une modélisation puissante relationnelle objet Des possibilités en plus de modélisation OO traditionnelle Héritage sélectif, calculé… Détails dans mon cours spécifique (Web)
117 Base S-P H QTY est le seul attribut réel de SP S (S#, SNAME, SCITY, STATUS) P (P#, PNAME, CITY, COLOR, WEIGHT) SP (S#, SNAME, SCITY, STATUS, P#, PNAME, CITY, COLOR, WEIGHT, QTY)
118 Base S-P Ordres Create Table H Pour S et P, comme d'habitude H Pour SP: Create table SP ( SELECT * FROM S WHERE SP.S# = S.S# ; SELECT * FROM S WHERE SP.P# = P.P# QTY Int) Primary Key (S#, P#)
119 Base S-P Manipulation H Select * from SP –En une requête à une table et sans jointures, on verra les valeurs de tous les attributs de SP, de S et de P Réels et hérités H Select SNAME, PNAME from SP –Noms de tous les fournisseurs qui fournissent actuellement et de leur fournitures Pas de jointures habituelles H Select SNAME from S –Noms de tous les fournisseurs H Insert SP (S5, MS, Redmond, 100, P7, Word,SF, 3, 30) –Insertion en une seule instruction de la nouvelle fourniture, du nouveau fournisseur et de la nouvelle pièce dans les tables SP, S et P
120 Tables à attributs hérités Modélisation relationnelle-objet Personne Etudiant :Année = variable système avec l'année en cours Age = :Année - Né La valeur héritée peut être aussi sur-écrite (age d'Elisabeth)
121 Tables à attributs hérités (ex. de déf. en pseudo-SQL) u Create Table Personne SS# Integer Nom Character NéInteger AgeSelect :Année - X.Né From Personne, Personne X, Where SS# = X.SS# ; u Create Table Etudiant Select SS#, Nom From Person Etud#Integer ;
122 Tables à attributs hérités u Application : les SGBD relationnel-objet uRestreinte u Héritage de tables en entier Modélisation du sous-typage dans les OODBMSs u Attributs calculées (Informix) u UNISQL en pionnier (*) H Informix, DB2 7, SQL-Server Oracle 8… * Kim, W. Modern Database Systems. Academic Press, 1994
123 Et pour en savoir plus: H Voir les exercices qui suivent H Lire + et s'exercer en TDs H Voir mon cours + complet sur le Web
124 Exercices Définir 2 ex. de bases qui ne seraient pas en 1-ONF. Puis, normaliser les schémas. Modéliser les étudiants, les profs et les cours à Dauphine en utilisant l'approche formelle avec les FDs et MDs Prouver que toute relation en BCNF est en 3NF. Prouver que l'inverse n'est pas vrai. Proposer un schéma simplifié mais réaliste d'une banque ou les clients ont des comptes courants et des SICAV dont les chargés de clientèle s'occupent Modéliser les étudiants, les profs et les cours à Dauphine par un schéma à relations à attributs hérités Fin