103 5.NORMALISATION 1.Dependance fonctionnelle (DF) 2. Calcul des identifiants 3. Décomposition d une relation 4.Normalisation d une relation
104 DF et Clé problème Mélanger dans une même relation des informations relatives à plusieurs entités entraîne, en général des redondances d information qui provoquent les anomalies suivantes: anomalies d insertion, anomalies de mise à jour, anomalies de suppression.
105 DF et Clé EXEMPLE Livre (isbn, titre, éditeur, pays) isbn Livre éditeur redondance Cette relation contient des redondances provoquant les anomalies suivantes : Insertion: Si les valeurs nulles sont interdites, Il faut connaitre toutes les caractéristiques du livre pour l enregistrer. Mise à jour: si l éditeur Eyrolles change de pays, il faut modifier ce pays pour chacun des livres qu il a édités (autant de modifications qu il y a de Eyrolles dans la base). Suppression :si l unique livre publié par l éditeur Vuibert est supprimé, l information sur cet éditeur est perdue.
106 DF et Clé Solution La solution à ces problèmes consiste à normaliser la relation en cause en la décomposant en plusieurs relations. Les questions à résoudre: S il y a redondance: Comment faut-il décomposer la relation? Y-a-t-il de l information perdue par la décomposition Existe-t-il des algorithmes qui permettent de déterminer la décomposition adéquate?
107 DF et Clé Solution La décomposition s appuie sur les dépendances qui existent entre les attributs de la relation initiale : dépendances. Par exemple, la dépendance entre l ISBN d un livre et son titre ou bien entre le nom d un éditeur et son pays.
108 DF et Clé Dépendance fonctionnelle Relation Achat (client, produit, prix) Client Produit Prix André Sucre 2,2 Marc Sucre 2,2 Marc Sel 1,4 Anne Savon 1,4 Anne Sel 1,4 Chaque ligne (c,p,x) spécifie que le client c a acheté le produit p au prix x. Prix du produit dépend du produit et pas d autres attributs Existence d une dépendance fonctionnelle (DF) de produit vers prix
109 DF et Clé Dépendance fonctionnelle Un attribut Y dépend fonctionnellement d un attribut X ssi la connaissance de la valeur de X détermine une et une seule valeur de Y La dépendance fonctionnelle est notée: X Y Dans notre Exemple: Produit Prix Produit détermine (fonctionnellement) Prix mais pas le contraire Prix dépend (fonctionnellement) de Produit Produit est le déterminant et Prix est le déterminé de la dépendance fonctionnelle.
110 DF et Clé Dépendance fonctionnelle (DF) Les attributs d une dépendance fonctionnelle (déterminant, déterminé) peuvent comprendre plus d un attribut. X Y : X et Y peuvent être des attributs composés (ensemble d'attributs) Exemple: soit une relation R( A, B, C, D), on peut trouver des dépendances telles que: B,C D ou B C,D
111 DF et Clé DF Exemple Soit la relation suivante: COM (Ncli, Nom, Adresse, Ncom, Date, Npro, Qte, Prix-u) Une ligne (a,b,c,d,e,f,g,h) de cette relation indique: Le client n a de nom b et d adresse c a passé la commande numéro d, à la date e, spécifiant le produit n f en quantité g et au prix unitaire h. NCOM NCLI NCLI NOM NCLI ADRESSE NCOM DATE NCOM,NPRO QTE NPRO PRIX-U toute commande est émise par un client tout client a un nom tout client a une adresse toute commande est passée à une date dans toute commande, il y a une quantité par produit tout produit a un (et un seul) prix unitaire
112 DF et Clé Df: Propriétés (ou axiomes d Armstrong) 1. Réflexivité : Si L est un sous-ensemble de K (L inclus-ou-égal K), alors on a K L. Un ensemble d attributs détermine chacun de ses sous-ensembles. = DF triviales. 2. Augmentation : Si K B, alors on a aussi KA BA. 3. Transitivité : Si on a K L et L M, on a aussi K M. La composition de deux DF est encore une DF.
NOM NCLI ADRESSE NCOM NPRO DATE QTE PRIX-U Problématique 113 DF et Clé Df: Propriétés (ou axiomes d Armstrong) 4. Pseudo-transitivité : Si on a K L et LA M, on a aussi KA M. 5. Décomposition : Si on a K AB, on a aussi K A et K B. Pour toute DF, il existe une DF entre son déterminant et chaque attribut de son déterminé. 6/ Union : Si on a K L et K M, on a aussi K L M En réalité, les propriétés 1, 2 et 3 sont suffisantes. Les autres (4, 5, 6) s'en déduisent.
114 DF et Clé EXERCICE Soit R (A, B, C, D, E, G, H) et F= {A,B C ; B D ; C,D E ; G A ; D H} En utilisant les axiomes d armstrong, montrer que l on peut déduire les ensembles suivants: 1.B H On a B D et D H donc par transitivité on aura B H 2. B,G C On a G A donc par augmentation on B,G A,B et on a A,B C donc par transitivité on a B,G C 3. A,B E On a B D par augmentation on aura A,B A,D, par décomposition on aura A,B D de plus on a A,B C par union on aura A,B CD et on a C,D E par transitivité on aura A,B E
115 DF et Clé La fermeture d'un ensemble de dépendances est ce même ensemble enrichi de toutes les dépendances qu on peut dériver en appliquant itérativement les règles d Armstrong. La fermeture d un ensemble d attributs X est notée X+. Deux ensembles de DF F1 et F2 sont dits équivalents ssi ils ont même fermeture i.e. F1+ = F2+ Comment calculer la fermeture? Règles d Armstrong Calcul fastidieux
116 DF et Clé Calcul de la (2) Données: F un ensemble de DF et X un ensemble d attributs Résultat: X+ fermeture de X Algorithme: 1. Initialiser (X)+ à X, 2. Trouver une DF (G D) F possédant en partie gauche des attributs inclus dans (X)+, 3. Ajouter dans (X)+ les attributs placés en partie droite de la DF 4. Répéter les étapes b) et c) jusqu'à ce que (X)+ n'évolue plus.
117 DF et Clé (3) Exemple Soit F={A D ; A,B E ; B,I E ; C,D I; E C} Calculer la fermeture sous F de AE a) (AE)+= AE Initialiser X+ à X b) A D permet d ajouter D: (AE)+= AED c) E C permet d ajouter C: (AE)+= AEDC d) CD I permet d ajouter I: (AE)+= AEDCI Trouver une DF de F possédant en partie gauche des attributs inclus dans (X)+, et ajouter la partie droite Donc la fermeture de AE: (AE)+= AEDCI
118 DF et Clé Exercice 1. Soit la relation R (A, B, C, D, E,F ) et les DF A B,C ; E C,F ; B E ; C,D E,F Calculer la fermeture de {A B} {AB}+={A B C E F} 2. Soit la relation R (A, B, C, D, E, F, G ) et les DF A,C B ; B,C D,E ; B E ; A,E,F G Calculer la fermeture de {A C} {AC}+={A B C D E}
119 DF et Clé Dépendance fonctionnelle élémentaire (DFE) Une DF X Y avec X ne contenant pas Y est une DFE ssi il n'existe aucun sous-ensemble de X ayant une DF sur Y (X est la plus petite quantité d'information donnant Y). Une dépendance fonctionnelle élémentaire est une DF de la forme X a (a est un attribut n'appartenant pas à X) et où il n'existe pas d'autre X' X tel que X' a. Exemple R (A, D, C) avec A C ; A,D C A,D C n est pas élémentaire R (A, D, C) avec A C ; D C ; A D A D est élémentaire
120 DF et Clé d un ensemble de DF est un sous ensemble minimum de dépendances élémentaires (DFE) qui permettent de générer toutes les autres. Tout ensemble de dépendances possède une couverture (pas forcement unique) composée de dépendances dont les parties droites contiennent 1 seul attribut. Notion très importante pour la décomposition des relations.
121 DF et Clé (2) Algorithme de calcul de couverture 1. Décomposer chaque DF pour avoir un seul attribut à droite (règle de décomposition d armstrong) 2. Supprimer les attributs en surnombre à gauche : Pour tout X Y, s il existe un Z X tel que Z Y alors remplacer X Y par Z Y 3. Supprimer les DF redondantes (qu on peut obtenir par calcul à base des axiomes d armstrong à partir des autres)
122 DF et Clé (3) Considérons l'ensemble suivant : A B B,C D A,C B,D,E D E Etape1: décomposition A B B,C D A,C B A,C D A,C E D E Etape 2: Suppression des attributs en surnombre à gauche A B B,C D A,C D A,C E D E Etape 3: Supprimer la redondance La DF (A,C D) est conséquence de (A B) (car (A,C B,C)) et de (B,C D), donc elle est redondante. De même (A,C E) est redondante car elle se déduit de (A B), (B,C D) et (D E). Donc la couverture est: A B B,C D D E
123 DF et Clé (4) Sur un petit exemple l algorithme présenté s exécute facilement Difficulté quand on traite plusieurs attributs et DF comment faire pour appliquer toutes le règles d Armstrong?
(5) 124 DF et Clé Algorithme 2 de calcul de couverture (sans passer par les axiomes d armstrong) Soit F un ensemble de DF associé à R G est la couverture 1. Décomposer chaque DF de F pour avoir un seul attribut à droite (règle de décomposition) 2. Supprimer les DF redondantes: Une DF peut être supprimée de F s il en résulte une transformation de F en G telle que G+=F+ par rapport à R avec G=F-{DF} 3. Supprimer les attributs en surnombre à gauche appartenant à F: la partie gauche (déterminant D) doit être élémentaire. Aucun attribut ne peut être éliminé de D s il en résulte une transformation de F en G telle que G+ F+. Inversement, si l élimination d un attribut de D (voire plusieurs) donne lieu à une transformation de F en G telle que G+=F+ alors la DF peut être supprimée
125 DF et Clé Exemple Considérons l'ensemble S suivant : A B B,C D A,C B,D,E D E Etape1: décomposition F= {A B ; B,C D ; A,C B ; A,C D ; A,C E ; D E } Étape 2: Suppression des DF redondantes Cas de A B F= {A B ; B,C D ; A,C B ; A,C D ; A,C E ; D E} G= { B,C D ; A,C B ; A,C D ; A,C E ; D E} {A}+ par rapport à F : {A}+ = {A,B} {A}+ par rapport à G : {A}+ = {A} (sachant que G ne comporte pas A B} Les fermetures sont différentes donc A B fait partie de la couverture
126 DF et Clé Exemple (2) Cas de {B,C} D F= {A B ; A,C B ; B,C D ; A,C D ; A,C E ; D E} G= {A B ; A,C B ; A,C D ; A,C E ; D E} {B,C}+ par rapport à F {B,C}+ = {B,C,D,E} {B,C}+ par rapport à G {B,C}+ = {B,C} (sachant que G ne comporte pas B,C D } Les fermetures sont différentes donc B,C D fait partie de la couverture Cas de {A,C} B {AC}+ par rapport à F {AC}+ = {A,C,B,D,E} {AC}+ par rapport à G {AC}+ = {A,C, E, B,D} (sachant que G ne comporte pas A, C B {AC}+ par rapport à F est égale à {AC}+ par rapport à G donc A, C B doit disparaître
127 DF et Clé Exemple (3) Cas de {A,C} D {AC}+ par rapport à F {AC}+ = {A,C,D,E,B} {AC}+ par rapport à G {AC}+ = {A,C, E, B,D} (sachant que G ne comporte pas A, C D) {AC}+ par rapport à F est égale à {AC}+ par rapport à G donc A,C D doit disparaître F= {A B ; B,C D ; A,C E ; D E} Cas de {A,C} E : sera également supprimé Cas de {D} E: est une dépendance élémentaire À l issue de l étape 2, on obtient le nouvel ens F suivant: A B B,C D D E
128 DF et Clé Exemple (4) Etape 3: Réduction du déterminant de chaque DF Cas de {B,C} D: peut on la réduire à B D F= {A B ; B,C D ; D E } G= {A B ; B D ; D E } Calculons {B}+ par rapport à F: {B}+ = {B} Calculons {B}+ par rapport à G: {B}+ = {B, D, E} Les fermetures sont différentes donc on ne peut pas remplacer F par G La couverture est: A B B,C D D E
129 DF et Clé EXERCICE Soit la relation R(A, B, C, D, E) avec les DF F={A C,D ; C B,D,E ; D C,E} Donner une couverture de F Plusieurs couvertures s peuvent être déterminées: {A C ; C B ; C D ; D C ; D E} {A D ; C B ; C D ; D C ; C E}