156 INSUFFISANCE DE LA 3NF Exemple: Poste (Ville, Rue, Code) et DF={V,R C ; C V} Clés: VR, RC Relation en 3 NF Poste Ville Rue Code Paris St Michel 75005 Paris Champollion 75005 Redondance entre le code et la ville
157 forme normale de Boyce-codd La forme normale de Boyce-Codd, (BCNF en anglais ou FNBC en français) examine les dépendances de parties de clé entre elles, et les dépendances d'attributs non-clé vers une partie de clé. Une relation est sous la Forme Normale de Boyce-Codd Si et seulement si Ses clés candidates sont les uniques sources de DFs Définition: Un schéma relationnel R(A1,.,An) avec un ensemble F de DF est en forme normale BCNF si pour chaque DF élémentaire X A dans F+, la partie gauche X est une clé candidate. Toute relation en BCNF est en 3NF Théorème. Toute relation admet une décomposition en BCNF sans perte d information mais parfois au prix de perte de dépendances fonctionnelles.
158 forme normale de Boyce-codd (2) Exemple: soit la relation Poste (Ville, Rue, Code) DF = {V,R C ; C V} Clés: VR, RC R est en 3NF mais n est pas en BCNF (dans C V, C n est pas une clé) Poste Ville Rue Code Paris St Michel 75005 Paris Champollion 75005
159 forme normale de Boyce-codd (3) La décomposition R1(Ville, Code); R2(Rue, Code) évite la redondance Ville, Code, elle est donc sans perte d information mais elle ne préserve pas la dépendance V,R C R1 Ville Code Paris 75005 R2 Code Rue 75005 St Michel 75005 Champollion
160 Algorithme de décomposition de Boyce-codd Une décomposition SPI de R, qu'on appellera D, est construite de manière itérative : Entrée: un schéma R et un ensemble de dépendances fonctionnelles F Sortie: Schémas {R1, R2,..., Rn} avec Ri en BCNF pour tout i 1) D est initialisée à R, 2) Tant qu il existe une relation R(U) qui n est pas en BCNF: a) Chercher une dépendance non triviale X Y dans F+, telle que X ne soit pas une clé candidate de R b) Décomposer R comme indiqué dans le théorème de décomposition (sans perte) c est-à-dire en R 1 (X,Y) et R 2 (X,Z) 3) D est réinitialisée avec R 1 et R 2 et on répète cette procédure tant qu il existe des relations qui ne sont pas en BCNF. 4) S il existe des relations R i (Xi) et R j (Xj) dans la décomposition telle que Xi Xj alors on supprime Ri.
161 Algorithme de décomposition de Boyce-codd (2) Exemple: Soit R(A,B,C,D,E) et DF={A B ; A C ; C,D E ; B D} 1 )Calcul des clés candidates: A est la seule clé et R n est pas en BCNF car C,D E, B D 2) Calculons les fermetures transitives: A+={A,B,C,D,E} B+={B,D} (C,D)+= {C,D,E} et (BC)+= {B,C,D,E} 3) Première décomposition: Nous pouvons prendre la dépendance B D: a) L algorithme de décomposition donne deux relations: R1(B,D) et R2(A,B,C,E) R A, B, C, D, E R1 B, D A B C E R2 R1 est en BCNF avec une seule DF non triviale B D R2 n est pas BCNF car BC E viole la condition BCNF
162 Algorithme de décomposition de Boyce-codd (3) b) Décomposition de la relation R2 en deux relations R 21 (B,C,E) et R 22 (A,B,C) qui sont en BCNF R2 A, B, C, E R21 B, C, E A B C R22 Dans R 21 (B,C,E), on a une dépendance non triviale: B,C E Dans R 22 (A,B,C), on a deux dépendances non triviales: A B et A C Avec ces dépendances R 21 (B,C,E) et R 22 (A,B,C) sont BCNF
163 Algorithme de décomposition de Boyce-codd (4) R(A,B,C,D,E) est finalement décomposée en trois relations: R 1 (B,D) avec B D R 21 (B,C,E) avec B,C E et R 22 (A,B,C) avec A B et A C Cette décomposition préserve les DF et SPI Décomposez R en commençant avec la DF: C,D E
164 Algorithme de décomposition de Boyce-codd (5) Deuxième décomposition en commençant par C,D E En utilisant l algorithme de décomposition nous obtenons 2 relations: R1(C, D, E) avec la DF C,D E Et R2(A, B, C, D) avec 3DF: A B, A C, B D R1 est en BCNF avec comme clé C,D Dans R2, A est la seule clé candidate, mais B D viole BCNF. On décompose: R21(B,D) et R22(A,B,C)
165 décomposition de Boyce-codd Exercice: Proposer une décomposition en BCNF 1) Description des pièces employées dans un atelier de montage. Piece(numPiece, prix, tva, libelle, categorie) DF1 : numpiece prix, tva, libelle, categorie et DF2 : categorie tva 2) Liste des auteurs d'une publication avec leur position dans la liste des auteurs. Auteurs(publication, auteur, position) DF1 : (auteur, publication) position et DF2 : (publication, position) auteur 3) Commande(numCommande, numclient, nomclient, date, numproduit, nomproduit) DF1 : numcommande numclient, date,numproduit DF2 : numclient nomclient et DF3 : numproduit nomproduit
décomposition de Boyce-codd (2) Soit le schéma relationnel VOL (V, P, A, J, H, D, R) Avec C: nom de la Compagnie ; V: num Vol, A: nom Avion P: nom pilote H: heure du départ du vol J: Jour du départ du vol D: ville de départ et R: ville arrivée. et Les DF= { V H, D, R H, D, R V J, V P, A J,H,P D, R, A J, H, A D, R, P } Proposer une décomposition en BCNF 166
167 décomposition de Boyce-codd (3) Supposons la contrainte (peu réaliste) suivante : Un pilote ne travaille qu'un jour par semaine (tous les lundi ou tous les mardi ou...) qui se traduit par la DF : P J Considérons maintenant le schéma : VOL( V, P, A, J) avec {P J ; J, V P, A} Proposer une décomposition en BCNF
168 Décomposition en 3 ème forme normale et en BCNF Il est démontré que: Toute relation a au moins une décomposition en 3 ème forme normale qui préserve les dépendances fonctionnelles et qui est sans perte Toute relation a au moins une décomposition en forme normale de Boyce Codd qui est sans perte mais qui peut ne pas préserver les dépendances fonctionnelles.
169 Quatrième forme normale La notion de dépendance fonctionnelle nous a conduit à décomposer les relations en 3NF et en forme normale de BOYCE CODD. Ceci est pourtant insuffisant pour éliminer les redondances et les anomalies de mises à jour.
170 Quatrième forme normale Exemple: Considérons la relation ETUDIANT(NUMERO, COURS, SPORT) qui modélise la réalité suivante : Un étudiant est identifié par un NUMERO, peut suivre un ou plusieurs COURS et pratiquer un ou plusieurs SPORTS. Il n existe aucune DF entre les différents attributs La clé de cette relation est donc l ensemble de ses attributs (elle est en 3NF). Une extension de cette relation est : NUMERO COURS SPORT 100 BD TENNIS 100 BD FOOT 200 BD VELO 200 MATH VELO 300 BD FOOT 300 BD TENNIS Il y a une dépendance multivaluée entre un Numéro et Cours car à chaque valeur de Numero, il correspond un ensemble de valeurs de Cours et que cet ensemble de valeurs ne dépend pas des valeurs de Sport.
171 Dépendances multivaluées Définition formelle: Soit R (X, Y, Z) un schéma relationnel. On dit que X Y (X multidétermine Y ou il y a une dépendance multivaluée de Y sur X) si pour toute extension de R (X Y) : À chaque valeur de X il correspond toujours le même ensemble de valeurs de Y cet ensemble de valeurs ne dépend pas de Z On dit que X multidétermine Y et l on note : X Y, si, soit Z = R - X - Y, ((x,y,z) et (x,y,z ) R (x,y,z) et (x,y,z ) R ) Les dépendances multivaluées sont une généralisation des dépendances fonctionnelles: si X Y alors X Y
172 Dépendances multivaluées (2) Exemple Reprenons la relation ETUDIANT(NUMERO, COURS, SPORTS) et l ensembles des D.M. sont : 1- NUMERO COURS 2- NUMERO SPORTS En posant : X = NUMERO ; Y = COURS et Z = W - (X Y) = SPORTS. On peut constater que : Les deux tuples ( X =100, Y=B.D., Z=TENNIS) et (X=100, Y =B.D., Z = FOOT) à R donc on doit aussi trouver les tuples (X=100, Y =B.D., Z=TENNIS) et (X=100, Y=B.D., Z = FOOT) dans R ce qui est le cas car Y= Y. NUMERO COURS SPORT 100 BD TENNIS 100 BD FOOT 200 BD VELO 200 MATH VELO 300 BD FOOT 300 BD TENNIS
173 Dépendances multivaluées (3) Exemple Un employé peut avoir plusieurs compétences et parler plusieurs langues. On a une relation R (N Employé, Compétence, Langue) N Employé Compétence Langue 4 Cuisine Français 4 Cuisine Allemand 4 Cuisine Grec 4 Dactylo Français 4 Dactylo Allemand 4 Dactylo Grec N Employé Compétence,Langue
174 Dépendances multivaluées (4) De même que pour les DF, une dépendance multivaluée D est déductible de F si elle est obtenue par application des axiomes d Armstrong: A étant l ensemble des attributs d une relation 1. Complémentation : Si (X Y) alors on a ( X A (X Y) ) 2. Augmentation : Si (X Y) et (V W), alors on a (X W Y V) 3. Transitivité : Si on a ( X Y ) et ( Y Z ), alors on a ( X Z) 4. Union : Si on a ( X Y ) et ( X Z ), alors on a ( X YZ) Fermeture transitive: Définition identique aux DF
175 Dépendances multivaluées (5) Décomposition sans perte d une relation Soient une relation R(A) et une partition {X,Y,Z} de A. La décomposition formée de deux relations R(X,Y) et R(X,Z) est une décomposition sans perte de R(A) Ssi On a X Y Décomposition préservant les dépendances Même définition que pour les DF
176 Quatrième forme normale La 4FN est une généralisation de la BCNF destinée à décomposer les relations ayant des DM élémentaires Un schéma relationnel est en quatrième forme normale si (1) Ce schéma est en 1 ère forme normale (1NF) (2) Ssi les seules dépendances multivaluées élémentaires sont celles dans lesquelles une clé multi détermine un attribut Rappel: La dépendance fonctionnelle X Y entre les deux ensembles d attributs X et Y est triviale si : Y X La dépendance multivaluée X Y entre les deux ensembles d attributs X et Y est triviale si: Y X ou (A-Y) X (avec A ensemble des attributs)
177 Quatrième forme normale Exemple Soit la relation VOL(Pilote, Avion, Ville_Départ, Ville_Arrivée) ayant pour clé le couple d attributs (Pilote, Avion) et vérifiant les D.M suivantes : Pilote Avion Pilote (Ville_Départ, Ville_Arrivée) Cette relation n est pas en 4 FN car l attribut Pilote est une partie gauche des deux D.M. mais n est pas une clé candidate de R (Pilote n est qu une partie de la clé!)
178 Quatrième forme normale La 4 ème forme normale implique la forme normale de Boyce Codd puisqu une dépendance fonctionnelle est un cas particulier de dépendance multivaluée. Il est démontré que toute relation a au moins une décomposition en 4e forme normale qui est sans perte mais qui peut ne pas préserver les dépendances.
179 Décomposition en 4 ème forme normale On utilise cet algorithme lorsque certaines dépendances sont des DM Entrée : Schéma R(X) contenant des DF et des DM Sortie : Schémas {R1, R2,..., Rn} avec Ri en 4NF pour tout Etape1 : Initialisation : S={R} Etape 2: itération Si T est un schéma de S qui n'est pas en 4NF, alors chercher une DM non triviale W V de T telle que W ne contienne pas une clé de T. Remplacer le schéma T dans S par les deux schémas T1(W, V) et T2(X,W) munis des dépendances dérivées de la fermeture de celles du schéma T. Répéter l'étape 2 si S contient un schéma qui n'est pas en 4NF. Etape 3 : élimination de la redondance Pour tout couple Ri et Rj de S, si Xi Xj alors éliminer Ri de S.
180 Décomposition en 4 ème forme normale Exemple: Soit la relation VOL(Pilote, Avion, Ville_Départ, Ville_Arrivée) ayant pour clé le couple d attributs (Pilote, Avion) et vérifiant les D.M.suivantes : Pilote Avion Pilote (Ville_Départ, Ville_Arrivée) Et on aura : R1(Pilote, Avion) R2(Pilote, Ville_Départ, Ville_Arrivée)
181 Synthèse sur la normalisation Permet d'affiner une conception de schéma Si on applique de façon rigoureuse la méthode d'élaboration d'un Modèle Conceptuel de Données (M.C.D.), le Modèle Relationnel résultant sera automatiquement en 3FN. Inconvénient majeur : on suppose qu'on possède une couverture minimale des DF (si on a oublié une DF tout est faux) Peut être remise en cause au niveau physique (dénormalisation)