Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 130 DF et Clé DF et Clé La normalisation d une relation va reposer sur les rapports qui existent entre les identifiants et les DF de cette relation. Clé primaire : intuitif jusqu'a maintenant. Une clé d'une relation R(A1,..., An) est un sous ensemble X des attributs de la relation R tel que les deux conditions ci-dessous sont réunies : 1. X A1,..., An 2. Il n'existe pas de Y X tel que Y A1,..., An Moins formellement : une clé est un ensemble minimal d'attributs qui détermine tous les autres.
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 131 DF et Clé DF et Clé Etant données une relation et l une de ses clés, on appelle : attribut clé un attribut qui appartient à cette clé, attribut non clé, un attribut qui n y appartient pas. Super clé: Soit R(U) un schéma relationnel et X U un ensemble d attributs X est une super clé de R si la dépendance X U est déductible de F (i.e. appartient à F+).
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 132 DF et Clé DF et clé Calcul de la clé d une relation Soit R(U) un schéma relationnel et X U un ensemble d attributs Pour calculer une clé, on utilise l algorithme suivant: 1. on cherche un X tel que X+=U (X est une super clé) 2. X est une clé, s il n existe pas Y X tel que Y+=U Remarque: Si X vérifie (1) et pas (2) on dira que X est une super clé
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 133 DF et Clé DF et clé Exemple Soit R(A,B,C,D,E) un schéma relationnel et F un ensemble de DF: A,B E A,D B B C C D (AC)+= ACDBE A+= A et C+=CD AC est une clé candidate et ABC est une super clé Mais il y a d autres clés candidates : AB et AD
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 134 DF et Clé DF et clé Comment déterminer toutes les clés? Attributs nécessaires: A est un attribut nécessaire si: A apparaît uniquement du coté gauche des DF Ou A est un attribut de la relation mais n apparait dans aucune DF. Attributs inutiles: A est un attribut utile si A apparait uniquement du coté droit de la DF Attributs intermédiaires: si A n est ni nécessaire ni utile.
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 135 DF et Clé Algorithme de Calcul de toutes les clés Données: R(A1, A2,...,An) et F un ensemble de DF Résultat: K={K1, K2,...,Kt} toutes les clés candidates de R Algorithme: Etape 1: calculer la couverture minimale de F Etape 2 : partitionner les attributs de R en des attributs: nécessaires, inutiles et intermédaires. Soit X={C1,...,Cl} ens des attributs nécessaires Soit Y={B1,...,Bk} ensemble des attributs inutiles soit M={A1,...,An}- (X Y) ens des intermédaires Si X={}, aller à l étape 4. Etape 3: calculer X+ Si X+=R alors K={X} FinSi Fin
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 136 DF et Clé Algorithme de Calcul de toutes les clés (suite) Etape 4: Soit L={Z1,Z2,...,Zn} la liste des sous ensembles de M auxquels on ajoute les attributs de X. Trier L par ordre croissant K={}; i 0 Tant que L non vide faire i i+1; Supprimer le premier élément Z de L Calculer Z+ Si Z+=R alors K K { Z }; Pour tout Z j L, si Z Z j alors L L-{Z j } FinSi fin Pour FinSI Fin
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 137 DF et Clé Calcul de toutes les clés R(A,B,C,D,E, G) et F un ensemble de DF: A,B C,D ; A B ; B C ; C E ; B,D A Étape1 : calcul de couverture minimale: A D ; A B ; B C ; C E ; B,D A Étape 2: X= G (G n apparaît dans aucne DF) Etape 3: G+= G, G n est pas une clé
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 138 DF et Clé Calcul de toutes les clés Étape 4 : i Z Z+ L K 0 - - {AG, BG, CG, DG, ABG, ACG, ADG, BCG, BDG, CDG, ABGC, ABDG, ACDG, BCDG, ABCDG} i Z Z+ L K 1 AG ABCDEG=R {BG, CG, DG, BCG, BDG, CDG,BCDG} {AG} {} i Z Z+ L K 2 BG BCEG R {CG, DG, BCG, BDG, CDG,BCDG} {AG} i Z Z+ L K 3 CG CEG R {DG, BCG, BDG, CDG,BCDG} {AG}
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 139 DF et Clé Calcul de toutes les clés Étape 4 : i Z Z+ L K 4 DG DG R {BCG, BDG, CDG,BCDG} {AG} i Z Z+ L K 5 BCG BCEG R {BDG, CDG,BCDG} {AG} i Z Z+ L K 6 BDG ABCDEG=R {CDG} {AG, BDG} i Z Z+ L K 4 CDG CEDG R {} {AG, BDG}
Problématique Dépendances fonctionnelles Fermeture transitive Couverture minimale 140 DF et Clé DF et clé Exercice: Soit R1 (A, B, C, D, E, G) une relation avec l'ensemble F de dépendances suivant : A,B C ; A,B D ; A,B E ; A,B G ; B C ; D E ; D G 1. Donner la couverture minimale On supprime A,B C car on a, B C et B est inclus dans AB Ensuite on a des redondances suite à des relations de transitivité: A,B D avec D E nous donne A,B E, donc on peut supprimer A,B E idem pour A,B G A,B D ; B C ; D E ; D G 2. Quelle est la clé de R1? La clé de R1 est (A,B)
141 NORMALISATION D UNE RELATION
3NF 142 BCNF Comment normaliser un schéma relationnel? Ncli Nom Adresse Ncom Npro Qte Prix-U Relation universelle Le point de départ est la relation universelle Dépendances fonctionnelles Algorithme de décomposition (Normalisation) R1( ) R2( ) Chacune des formes normales peut être obtenue au moyen d'algorithmes de décomposition. Le but est d'obtenir, en sortie, une représentation canonique des données présentant un minimum de redondances à l'intérieur de chaque relation et un maximum d'indépendance entre les différentes relations. Le processus de normalisation consiste à remplacer une relation donnée par certaines projections afin que la jointure de ces projections permette de retrouver la relation initiale. 142
3NF 143 BCNF Décomposition (2) Une décomposition d'une relation R(a1, a2,..., an) est son remplacement par une collection de relations R1, R2,... Rm obtenues par projection sur R et telle que l'union de leurs attributs contient tous les a i (par jointure naturelle). Critères de bonne décomposition Décomposition sans perte d'informations Décomposition préservant les DF
3NF 144 BCNF Décomposition sans perte d une relation Soit la propriété suivante [Delobel, 1973] R(A,B,C,D): A B R = R[A,B] * R[A,C,D] Théorème de Heath: décomposition sans perte Soit une relation R(U) et une partition {A, B, C} de U. Si on a A B alors la décomposition formée des deux relations R[A,B] et R[A,C]est sans perte de R(A). R(A,B,C): A B R1(A,B) R2 (A,C) R(déterminant, déterminé, résidu) R1(déterminant, déterminé) R2(déterminant, résidu)
3NF 145 BCNF Décomposition sans perte d information Considérons Achat (CLIENT, PRODUIT, PRIX) et 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 En décomposant selon la DF, on sépare 2 types de faits en les isolant chacun sous la forme d une relation autonome. ACHAT (CLIENT, PRODUIT, PRIX) PRODUIT PRIX TARIF (PRODUIT, PRIX) ACHAT (CLIENT, PRODUIT) ACHAT[PRODUIT] TARIF [PRODUIT]
3NF 146 BCNF Décomposition préservant les DF Décomposition préservant les DF La Décomposition R1(A1, F1), R2(A2, F2) de R (A, F) est une décomposition qui préserve les dépendances fonctionnelles si F +=(F1 F2)+ Exemple: Soit la relation Poste (Ville, Rue, Code) et F = {V,R C ; C V} Ville Rue Code Paris St Michel 75005 Paris Champollion 75005
3NF 147 BCNF Décomposition préservant les DF 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 Ville Code Paris 75005 Code Rue 75005 St Michel 75005 Champollion
3NF 148 BCNF Tester si une Décomposition préserve les DF Algorithme Données : un schéma relationnel R(A, F) et une décomposition { R1(A1, F1),..., Rn(An, Fn)} avec F l ensemble des dépendances fonctionnelles et A l ensemble des attributs de R Résultat : B booléen vrai/faux Algo : 1. B vrai 2. Pour toute DF X Y de F faire : Si Y X+ Fi alors B B sinon B faux 3. Fin
3NF 149 BCNF NORMALISATION Normaliser une relation consiste à lui appliquer une ou plusieurs décompositions afin d éliminer les problèmes de redondance interne dont elle est éventuellement le siège. A l aide de la notion de clé et de dépendance, on définit les formes normales d un schéma relationnel. Existence de 6 formes normales (1NF,,3NF, 4NF, 5NF et la Forme normale de Boyce-Codd, ) et d autres les trois premières pour la décomposition sans perte
3NF 150 BCNF Première forme normale (1nf) Une relation est en première forme normale ssi tout attribut contient une valeur atomique. Les listes de données, les tableaux ou tout autre structure plus complexe ne peuvent être des valeurs d'attributs. Exemple ETUDIANT NUM NOM PRENOM 1 Dupont Pierre Jean 2 Durant Marie 3 Dupré Sylvie Claudine Claire LIVRE CODE TITRE AUTEUR 100 L art des BD Miranda Busta
3NF 151 BCNF Première forme normale (1nf) 2 solutions: 1 ère solution: Créer autant d attributs que le nombre maximum de valeurs de l attribut multi-valué (stockage horizontal). ETUDIANT NUM NOM PRENOM1 PRENOM2 PRENOM3 1 Dupont Pierre Jean NULL 2 Durant Marie NULL NULL 3 Dupré Sylvie Claudine Claire Tout est dans la même relation (pas de jointure) Stockage des valeurs nulles, impossibilité de stocker plus de valeurs de prévu 151
3NF 152 BCNF Première forme normale (1nf) 2 ème solution: Créer une nouvelle relation (décomposition) comportant la clef de la relation initiale et l attribut multi-valué puis éliminer l attribut multi-valué de la relation initiale (stockage vertical). LIVRE CODE TITRE AUTEUR 100 L art des BD Miranda Busta LIVRE CODE TITRE 100 L art des BD AUTEUR CODE AUTEUR 100 Miranda pas de valeur nulle, pas de limite de stockage Opération de jointure, lourdeur des auto-jointures 100 Busta 152
3NF 153 BCNF Deuxième forme normale (2nf) La deuxième forme normale permet l élimination de la redondance Ne concerne que les relations à clé primaire composée (composée de plusieurs attributs) Une relation est en ssi: Elle est en 1NF Tout attribut n'appartenant pas à une clé (attribut non clé) ne dépend pas (DF seulement) d'une partie de clé
3NF 154 BCNF Deuxième forme normale (2nf) Enseignement (Université, CODE_MATIERE, Nom, Volume_Horaire, Région) Université Code_Matiere Nom Volume_ horaire Aix Marseille ENSIN5U1 Algorithmique avancée Aix Marseille ENSIN5U2 Programmation et conception orientée Objet Pierre et Marie Curie Conservatoire national des arts et métiers Pierre et Marie Curie Dépendances fonctionnelles: Université, Code_Matiere NOM Université Région Région 60 PACA 60 PACA 31003 Algorithmique 50 Île-de-France NFE113 Conception de bases de données 30 Île-de-France 3I014 Réseaux 60 Île-de-France??
3NF 155 BCNF Deuxième forme normale (2nf) Problème: Saisie inutile des couples (Aix Marseille, PACA) (Pierre et Marie Curie, Ile de France) à l insertion d un nouvelle UE au sein d une même université. Enseignement (Université, CODE_MATIERE, Nom, Volume_Horaire, Région) Université Code_Matiere Nom Volume_ horaire Aix Marseille ENSIN5U1 Algorithmique avancée Aix Marseille ENSIN5U2 Programmation et conception orientée Objet Pierre et Marie Curie Conservatoire national des arts et métiers Pierre et Marie Curie Région 60 PACA 60 PACA 31003 Algorithmique 50 Île-de-France NFE113 Conception de bases de données 30 Île-de-France 3I014 Réseaux 60 Île-de-France redondance
3NF 156 BCNF Deuxième forme normale (2nf) Solution: Regrouper dans une relation les attributs dépendant de la totalité de la clé, et conserver cette clé pour cette table Regrouper dans une autre relation les attributs dépendant d'une partie de la clé, et en faire la clé primaire de la nouvelle relation Soit R(K1,K2,X,Y) et K1 X. R n est pas en car X ne dépend que de K1 : Décomposition en 2 relations R1(K1,K2,Y) et R2(K1,X)
3NF 157 BCNF Deuxième forme normale (2nf) Enseignement (Université, CODE_MATIERE, NOM, VOLUME_HORAIRE, Région) avec Université, Code_Matiere NOM Université Région COURS (Université, CODE_MATIERE, NOM, VOLUME_HORAIRE) Université Code_Matiere Nom Volume_horaire Aix Marseille ENSIN5U1 Algorithmique avancée 60 Aix Marseille ENSIN5U2 Programmation et conception orientée Objet Pierre et Marie Curie 31003 Algorithmique 50 Conservatoire national des arts et métiers NFE113 Conception de bases de données 30 Pierre et Marie Curie 3I014 Réseaux 60 UNIVERSITE (Université, Région) Université Région 60 Aix Marseille Pierre et Marie Curie Conservatoire national des arts et métiers PACA Île-de-France Île-de-France
3NF 158 BCNF Troisième forme normale (3nf) Définition: Une relation est en 3NF ssi: Elle est en Tout attribut n appartenant pas à la clé (attributs non-clé) n est pas en dépendance fonctionnelle directe avec un ensemble d attributs non-clé. Pour montrer qu une relation est en 3NF, il faut montrer que pour toute dépendance de F: A X, soit A est une superclé, soit X appartient à une clé (attribut clé). Théorème: toute relation R admet au moins une décomposition en 3NF telle que: La décomposition préserve les DF Et dont toutes les composantes sont en 3NF La troisième forme normale interdit donc les dépendances fonctionnelles dites «transitives» entre les champs
3NF 159 BCNF Troisième forme normale (3nf) Enseignement (Université, CODE_MATIERE, Responsable, Statut) Université Code_Matiere Responsable Statut Aix Marseille ENSIN5U1 Sequeira Jean Professeur Aix Marseille ENSIN5U2 Prcovic Nicolas Maître de conférences Pierre et Marie Curie 31003 Sidhoum Safia Maître de conférences Conservatoire national des arts et métiers NFE113 Isabelle WATTIAU Professeur Pierre et Marie Curie 3I014 Thai kim-loan Maître de conférences Les dépendances fonctionnelles: Université, code_matiere Responsable Université, code_matiere Statut Responsable Statut?? 3NF??
3NF 160 BCNF Troisième forme normale (3nf) Comment passer en 3NF? Décomposer la relation de départ en 2 relations La nouvelle relation créée a pour clé le champ dont dépendent les autres champs qui constituent ainsi la dépendance transitive Exemple Voiture(NV, marque, type, puissance, couleur) est en 2FN mais pas en 3FN car Type Marque et Type puissance. Solution: Voiture(NV, type, couleur) et Modèle(type, marque, puissance) sont 3FN.
3NF 161 BCNF Troisième forme normale (3nf) Enseignement (Université, CODE_MATIERE, Responsable, Statut) R1 (Université, Code_Matiere, Responsable) Université Code_Matiere Responsable Aix Marseille ENSIN5U1 Sequeira Jean Aix Marseille ENSIN5U2 Prcovic Nicolas Pierre et Marie Curie 31003 Sidhoum Safia Conservatoire national des arts et métiers NFE113 Isabelle WATTIAU Pierre et Marie Curie 3I014 Thai kim-loan R2 (Responsable, Statut) Responsable Statut Sequeira Jean Prcovic Nicolas Sidhoum Safia Isabelle WATTIAU Thai kim-loan Professeur Maître de conférences Maître de conférences Professeur Maître de conférences