Plan du cours Conception de base de données Approche conceptuelle Approche par décomposition : Normalisation Modèle entité association (E/A) Modèle conceptuel de données (MCD) Le passage au modèle relationnel Dépendances Décomposition d une relation Formes normales Un schéma de la base de données conforme au besoin et ne présentant pas d anomalie. 96
4. NORMALISATION 1.Dependance fonctionnelle (DF) 2. Calcul des identifiants 3. Décomposition d une relation 97
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. 98
EXEMPLE Livre (isbn, titre, éditeur, pays) redondance Isbn Titre Éditeur pays 2-212-09283-0 Base de données Eyrolles France 2-7117-8645-5 Fondements BD Vuibert USA 0-201-70872-8 Databases and Transaction Processing Addison Wesley USA 2-212-09069-2 Internet Intranet et bases de données Eyrolles France 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. 99
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? 100
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. 101
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 102
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. 103
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 104
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 105
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. 106
NOM NCLI ADRESSE NCOM NPRO DATE QTE PRIX-U Dépendances 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. 107
EXERCICE Soit R (A, B, C, D, E, G, H) et DF= {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 2. B,G C 3. A,B E 108
ermeture transitive Définition: La fermeture transitive 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 transitive d un ensemble d attributs X est notée X+. Deux ensembles de DF F 1 et F 2 sont dits équivalents ssi ils ont même fermeture i.e. F 1+ = F 2+ Comment calculer la fermeture transitive? Règles d Armstrong Calcul fastidieux 109
Algorithme de Calcul de la Fermeture transitive (2) Données: F un ensemble de DF et X un ensemble d attributs Résultat: X+ fermeture transitive de X Algorithme de saturation: 1. Initialiser (X)+ à X, 2. Trouver une DF 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 2) et 3) jusqu'à ce que (X)+ n'évolue plus. 110
Fermeture transitive (3) Exemple Soit F ={A D ; A,B E ; B,I E ; C,D I; E C} Calculer la fermeture sous F de AE Initialiser X+ à X a) (AE)+= AE 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 Donc la fermeture transitive de AE: (AE)+= AEDCI Trouver une DF de F possédant en partie gauche des attributs inclus dans (X)+, et ajouter la partie droite 111
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 transitive de {A B} 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 transitive de {A C} 112
épendance fonctionnelle élémentaire (DFE) Définition: Une DF X A est une dépendance élémentaire (dans F +) si A est un attribut n appartenant pas à X (X A est non triviale) et pour tout ensemble Y d attributs, si Y X et Y X alors Y A n est pas dans F +. La DF X A est élémentaire si l attribut A n est pas dans X et il est impossible de supprimer aucun attribut de X. Exemple R (A, D, C) avec A C ; A,D C A,D C?? R (A, B, D, C) avec A,D C ; B D ; C B; A,C D A,C D?? 113
Couverture minimale Définition Couverture minimale 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 minimale (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. 114
Couverture minimale Propriétés: Couverture minimale On appelle G une couverture minimale d un ensemble de dépendances F est telle que: - F += G+ - Toutes les dépendances de G sont élémentaires - G ne contient pas de dépendances redondantes 115
Algorithme de calcul de Couverture minimale Entrée: F un ensemble de dépendances Sortie: G une couverture minimale de F Début 1. G := F 2. Décomposer: Pour chaque DF G, appliquer la règle de décomposition (axiome d armstrong) 3. Déterminer les DFs élémentaires: Supprimer les attributs en surnombre à gauche : Pour tout X Y, s il existe dans G+ un Z X tel que Z Y alors remplacer X Y par Z Y 4. Supprimer les DF redondantes : Une DF X A est redondante si X A (F - {X A})+ Fin 116
Exemple: Couverture minimale Considérons l'ensemble F 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 Cas de B,C D: Peut on la réduire à B D: (B)+ = B (Non) Peut on la réduire à C D: (C)+ = C (Non) Cas de A,C B: Peut on la réduire à A B: (A)+ = A, B étant donné qu on a A B Cas de A,C D: Peut on la réduire à A D: (A)+ = A, B (Non) Peut on la réduire à C D: Non Cas de A,C E: Peut on la réduire à A E: (A)+ = A, B (Non) Peut on la réduire à C E: Non G = {A B B,C D A,C D A,C E D E } 117
Exemple: Couverture minimale Etape 3: Supprimer la redondance G = {A B; B,C D ; A,C D ; A,C E ; D E } 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 minimale G est: A B B,C D D E 118
Exemple: Couverture minimale Ou bien Etape 3: Supprimer la redondance G = {A B; B,C D ; A,C D ; A,C E ; D E } Cas de A B F= {A B ; B,C D ; A,C D ; A,C E ; D E} G= { B,C D ; 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 Cas de B,C D F= {A B ; B,C D ; A,C D ; A,C E ; D E} G= {A 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 119
Exemple: Couverture minimale 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: ne sera pas supprimée Donc la couverture minimale G est: A B B,C D D E 120
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 minimale de F 121