Dépendances fonctionnelles et normalisation. Résumé A.D., S.B. Avril Introduction. . 2 Dépendances fonctionnelles

Documents pareils
Programmation linéaire

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Chapitre 1 : Évolution COURS

chapitre 4 Nombres de Catalan

C f tracée ci- contre est la représentation graphique d une

Ebauche Rapport finale

OPTIMISATION À UNE VARIABLE

I. Cas de l équiprobabilité

Proposition. Si G est un groupe simple d ordre 60 alors G est isomorphe à A 5.

Probabilités sur un univers fini

CH.6 Propriétés des langages non contextuels

3 Approximation de solutions d équations

1 Définition et premières propriétés des congruences

Fonctions homographiques

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Raisonnement par récurrence Suites numériques

Introduction a l'algorithmique des objets partages. Robert Cori. Antoine Petit. Lifac, ENS Cachan, Cachan Cedex. Resume

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Continuité et dérivabilité d une fonction

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Cours 02 : Problème général de la programmation linéaire

EXERCICE 4 (7 points ) (Commun à tous les candidats)

La maison Ecole d ' Amortissement d un emprunt Classe de terminale ES. Ce qui est demandé. Les étapes du travail

TP Bases de données réparties

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Le théorème de Thalès et sa réciproque

Condition inf-sup pour l Elément Fini de Taylor-Hood È ¾ -iso-è ½

Cryptographie et fonctions à sens unique

Les bases de données

I. Ensemble de définition d'une fonction

Géométrie dans l espace Produit scalaire et équations

MERISE. Modélisation de Systèmes d Information. Pierre Gérard. DUT Informatique 2ème année 2004/2005. IUT de Villetaneuse - Université de Paris 13

CHAPITRE VIII : Les circuits avec résistances ohmiques

Dualité dans les espaces de Lebesgue et mesures de Radon finies

Christophe CANDILLIER Cours de DataMining mars 2004 Page 1

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Bases de Données Avancées

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

aux différences est appelé équation aux différences d ordre n en forme normale.

LES DÉTERMINANTS DE MATRICES

Présentation du module Base de données spatio-temporelles

Taux d évolution moyen.

F411 - Courbes Paramétrées, Polaires

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Chp. 4. Minimisation d une fonction d une variable

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

Limites finies en un point

Année Universitaire 2009/2010 Session 2 de Printemps

BACCALAUREAT GENERAL MATHÉMATIQUES

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Gestion des transactions et accès concurrents dans les bases de données relationnelles

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

INITIATION AUX BASES DE DONNEES MODELISATION et LANGAGE SQL

Bases de Données. Plan

Formation à l utilisation des Systèmes de Gestion de Bases de Données Relationnelles. organisée avec la collaboration du

1 Modélisation d une base de données pour une société de bourse

Chapitre 5 : Flot maximal dans un graphe

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

LE PROBLEME DU PLUS COURT CHEMIN

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Intégration et probabilités TD1 Espaces mesurés Corrigé

NOTIONS DE PROBABILITÉS

Chapitre 6. Fonction réelle d une variable réelle

ETL Extract - Transform - Load

GUIDE PRATIQUE déplacements professionnels temporaires en France et à l étranger

ÉPREUVE COMMUNE DE TIPE Partie D

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Chapitre 2. Matrices

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

6. Les différents types de démonstrations

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Amphi 3: Espaces complets - Applications linéaires continues

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Probabilités conditionnelles Exercices corrigés

CHAPITRE 5. Stratégies Mixtes

Les indices à surplus constant

Chapitre 7. Récurrences

Probabilités sur un univers fini

Modélisation des données

Représentation d un entier en base b

Programmation linéaire

Théorie des Graphes Cours 3: Forêts et Arbres II / Modélisation

Licence Sciences et Technologies Examen janvier 2010

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Problème : Calcul d'échéanciers de prêt bancaire (15 pt)

I- Définitions des signaux.

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

Axiomatique de N, construction de Z

Polynômes à plusieurs variables. Résultant

Différentiabilité ; Fonctions de plusieurs variables réelles

Transcription:

Dépendances fonctionnelles et normalisation BD4 AD, SB Licence MASS, Master ISIFAR, Paris-Diderot Avril 2014 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 1/39 Avril 2014 1 / 39 Introduction Résumé 1 Introduction 2 Dépendances fonctionnelles 3 Implication de dépendances 4 Fermeture transitive 5 BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 2/39 Avril 2014 2 / 39

Introduction Normalisation Importance de bien modéliser pour éviter notamment les redondances d'information Un schéma mal conçu pose : des problèmes de maintenance des données des problèmes d'efficacité lors de l'exécution des requêtes Normalisation : étape(s) additionnelle(s) de modélisation BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 3/39 Avril 2014 3 / 39 Introduction Illustration Fournisseur ( NomF, AddresseF, Article, Prix ) Redondance : L'adresse du fournisseur est répété à chaque commande Inconsistence : Si on ne contrôle pas, on peut avoir deux adresses différentes pour un même fournisseur Pb lié à la suppression : Disparition des coordonnées d'un fournisseur qui cesse (temporairement) de fournir Utiliser : Fournisseur ( NomF, AddresseF ) Livraison ( NomF, Article, Prix ) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 4/39 Avril 2014 4 / 39

Dépendances fonctionnelles Dépendances fonctionnelles R schéma de relation pris sur un ensemble d attributs A = {A 1,, A p,,, A n } A p+1,, A n dépendent fonctionnellement de A 1,, A p Si deux tuples ont la même valeur sur les attributs A 1,, A p alors ils ont la même valeur sur les attributs A p+1,, A n Autrement dit : si pour toute BD r de schéma R, pour tous tuples t 1, t 2 r : π A1,,A p (t 1 ) = π A1,,A p (t 2 ) π Ap+1,,A n (t 1 ) = π Ap+1,,A n (t 2 ) On le note A 1,, A p A p+1,, A n BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 5/39 Avril 2014 5 / 39 Dépendances fonctionnelles Exemples et dépendance élémentaire Exemple Dans la base Sakila, relation Actor : Actor_id last_name, first_name car Actor_id est une clé Définition (dépendance élémentaire) A 1,, A p A p+1,, A n est une dépendance élémentaire Si, pour tout j p : A 1,, A j 1, A j+1,, A p A p+1,, A n Exemple No_insee sexe, mois_naiss, jour_naiss est élémentaire No_insee, jour_naiss sexe, mois_naiss, ville_naiss n'est pas élémentaire No_insee suffit BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 6/39 Avril 2014 6 / 39

Dépendances fonctionnelles Dépendances fonctionnelles triviales Définition (dépendance triviale) Soient X, Y A 1,, A n X Y est une dépendance triviale si Y X Exemple No_insee No_insee est triviale BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 7/39 Avril 2014 7 / 39 Implication de dépendances Implication de dépendances Un ensemble de dépendances fonctionnelles doit vérifier les règles de déduction suivantes trivialité : si Y X alors X Y augmentation : si X Y alors X, Z Y, Z pour toute suite d'attributs Z transitivité : si X Y et Y Z alors X Z union : si X Y et X Z alors X Y, Z décomposition si X Y et Z Y alors X Z Trois premières propriétés sont appelées règles d'armstrong Avec ces règles, une dépendance X Y 1,, Y k est équivalente à l'ensemble formé des dépendances : X Y 1, X Y 2, X Y k BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 8/39 Avril 2014 8 / 39

Implication de dépendances Equivalence de dépendances F, G : ensembles de dépendances fonctionnelles G se déduit de F si toute dépendance fonctionnelle de G se déduit des dépendances fonctionnelles de F par les règles précédentes Exemple F = {A, B C; C A; B, C D} G = {A, B D} G se déduit de F BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 9/39 Avril 2014 9 / 39 Fermeture transitive Fermeture transitive Ọn cherche à résoudre le problème suivant Etants donnés : un ensemble de dépendances fonctionnelles F un ensemble d'attributs X Question : quels sont les attributs Y dont la valeur est déterminée par X sachant F? Ie quel est l ensemble maximal Y tel que la dépendance X Y se déduit de F? BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 10/39 Avril 2014 10 / 39

Fermeture transitive Fermeture transitive Fermeture transitive Soit F un ensemble de DF La fermeture transitive X + F (notée X + si pas d'ambiguïté) d'un ensemble d'attribut X pour F est l'ensemble des attributs A tels que X A se déduit de F Permet de déterminer quels attributs dépendent de quels autres et ainsi d'éviter la redondance d'information Ạ 1,, A p est une clé de la relation R(A 1,, A n ) si (A 1,, A p ) + = A 1,, A n La dépendance A 1,, A p A p+1,, A n est élémentaire BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 11/39 Avril 2014 11 / 39 Fermeture transitive Calcul de la fermeture transitive Ọn se donne un ensemble d'attributs A, un ensemble de dépendances F et X A Algorithme On calcule une suite X (0), X (1), 1 On pose X (0) = X 2 Pour i > 0 : X (i+1) = X (i) {A A : Y A est dans F et Y X (i) } 3 On arrête si X (i+1) = X (i) et on renvoie X + = X (i) Ḷe critère d'arrêt, X (i+1) = X (i), est un point fixe BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 12/39 Avril 2014 12 / 39

Fermeture transitive Calcul de la fermeture transitive : exemple soit R d'ensemble d'attributs A = {A, B, C, D, E, F, G} Soit X = {B, D} Soit F ci-dessous : A, B C C A B, C D A, C, D B F A, C Montrer que X + = {A, B, C, D, E, G} Notez que X + n'est pas une clé de R D E, G B, E C C, G B, D C, E A, G BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 13/39 Avril 2014 13 / 39 Fermeture transitive Calcul de la fermeture transitive On peut montrer facilement par induction le résultat suivant : Théorème L'algorithme précédent s'arrête sur tout entrée X, F, A et renvoie la fermeture transitive X + de X BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 14/39 Avril 2014 14 / 39

Fermeture transitive Dépendance fonctionnelle minimale Ọn peut exhiber une description minimale d'une dépendance fonctionnelle DF minimale Un ensemble de dépendances fonctionnelles est minimal si : tout membre droit d'une dépendance contient un seul attribut ie de la forme X A pour A A Aucune DF n'est déductible des autres Les membres gauches de toute DF sont irredondant Ie il n'existe pas de règles dont certains attributs du membre gauche A 1,, A p sont déductibles des autres Ex : {A, B C, A B} est équivalent à {A C, A B} BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 15/39 Avril 2014 15 / 39 Fermeture transitive Couverture Couverture Soient F, G ensembles de dépendances fonctionnelles Si : F est G sont équivalentes (ie F se déduit de G et G se déduit de F ) et G est minimale Alors G est une couverture (minimale ou irredondante) de F Ṭout ensemble de DF admet une couverture minimale (pas forcément unique) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 16/39 Avril 2014 16 / 39

Calcul de la couverture Fermeture transitive Algorithme Si une dépendance est de la forme X A 1,, A k avec A 1,, A k dans A, la remplacer par l'ensemble formé des dépendances X A 1,, X A k Eliminer une DF si elle se déduit des autres (par recherche exhaustive par exemple) Eliminer les attributs redondant à gauche (ie inutile pour obtenir le même ensemble de DF) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 17/39 Avril 2014 17 / 39 Fermeture transitive Calcul de la couverture : exemple soit A = {A, B, C, D, E, F, G} Soit X = {B, D} Soit F ci-dessous : A, B C C A B, C D A, C, D B F A, C On peut éliminer C, E A et C, G B D'autres simplifications? D E, G B, E C C, G B, D C, E A, G BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 18/39 Avril 2014 18 / 39

Toute dépendance, si elle est mal modélisée, peut entrainer de la redondance d'information On normalise un schéma suivant un certain nombre de conditions pour s'assurer de l'absence de redondances Les formes suivantes sont immédiates à obtenir Forme normale 1 : tout attribut est atomique (assuré par modèle relationnel) Forme normale 2 : si un attribut ne fait pas partie d'une clé, il ne peut pas dépendre d'une partie stricte d'une clé Forme normale 3 : pour toute DF (non triviale), le membre gauche contient une clé, ou tout attribut (non trivial) du membre droit appartient à une clé BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 19/39 Avril 2014 19 / 39 : exemple Forme Normale 2 Fournisseur(NomF, AddresseF, Article, Prix) La clé est : (NomF, Article) Dépendances fonctionnelles : NomF, Article Prix NomF AdresseF FN2 si seule la première dépendance fonctionnelle est vraie Mais la seconde ne satisfait pas la FN2 : AdresseF ne fait pas partie de la clé mais dépend d'une partie stricte d'une clé (NomF ) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 20/39 Avril 2014 20 / 39

: exemple Forme Normale 3 VOITURE(Nv, Marque,Type, Puissance, Couleur) La clé est : Nv Dépendances fonctionnelles : Nv Marque, Type, Puissance, Couleur Type Marque Est-en FN 2 mais pas en FN 3 à cause de la deuxième dépendance : Le membre gauche (Type) ne contient pas de clé, le membre droit (Marque) n'est pas contenu dans une clé BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 21/39 Avril 2014 21 / 39 Forme normale BCNF Boyce-Codd Normal Form (BCNF) ṇe pas représenter la même information deux fois X est une super clé pour une relation R d'attributs A 1,, A n et un ensemble de DF F si X A 1,, A n se déduit de F Une super-clé n'est pas forcément minimale Un schéma de relation est en BCNF si pour toute DF, X A, X est une super-clé Formulation Alternative : ḷe membre gauche de toute DF contient une clé BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 22/39 Avril 2014 22 / 39

: exemple BCNF GEOGRAPHIE( Ville,Dept, codepref, Pop) La clé est : Ville, Dept Dépendances fonctionnelles : Est en FN 3 : Ville, Dept CodePref, Pop CodePref Dept Le membre gauche de la 1ere DF contient une clé Le membre droit de la 2eme DF est inclu dans une clé Mais pas en BCNF à cause de la deuxième dépendance : Le membre gauche (CodePref ) n'est pas une super clé BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 23/39 Avril 2014 23 / 39 Réparation des exemples Fournisseur(NomF, AddresseF, Article, Prix) devient CoordFourn(NomF, AddresseF) Fournisseur(NomF, Article, Prix) qui est bien en BCNF pour les DF : NomF, Article Prix NomF AdresseF BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 24/39 Avril 2014 24 / 39

Réparation des exemples VOITURE(Nv, Marque,Type, Puissance, Couleur) devient VOITURE(Nv,Type, Puissance, Couleur) TYPEVOIT(Type, Marque) La clé est : Nv qui est bien en BCNF pour les DF : Même démarche pour Geographie Nv Marque, Type, Puissance, Couleur Type Marque BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 25/39 Avril 2014 25 / 39 Décomposition en BCNF Soit une relation R de schéma A = {A 1,, A k } et un ensemble de dépendance fonctionnelles F Soit X Y une DF de F violant la forme normale BCNF Calculer X + la cloture de X suivant F Séparer R en deux relations R 1 de schéma A 1 = X + R 2 de schéma A 1 \(X + \X) On projette les dépendances fonctionnelles sur chaque relation BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 26/39 Avril 2014 26 / 39

Décomposition en BCNF - Exemple Dans la base Tennis On peut constituer une relation R = PlayedIn Registration de schéma A = RegistrNum, PID, TID équipée i) des clés RegistrNum, PID ou PID, TID ii) d'une dépendance RegistrNum TID La relation R est en forme normale 3 puisque TID fait partie d'une clé La relation R n'est pas en forme normale BC car RegistrNum + RegistrNum, PID, TID On décompose R i) R 1 de schema RegistrNum + = RegistrNum, TID (soit PlayedIn ) ii) R 2 de schema A \ (RegistrNum + \ RegistrNum) (soit Registration ) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 27/39 Avril 2014 27 / 39 Décomposition en BCNF - Problème Considérons les dépendances fonctionnelles F = {A, B C; C B} et une relation R de schéma A = {A, B, C} Il y a deux clés : {A, B} et {A, C} et la dépendance C B viole la forme normale BCNF Comme C + = {B, C}, on doit décomposer en suivant l'algorithme en deux relations : R 1 (A, C) et R 2 (B, C) Mais du coup, on ne peut plus s'assurer de la dépendance A, B C une fois le schéma décomposé (elle peut très bien être violé alors qu'aucune des DFs de chacune des relations ne l'est) La décomposition en FN3 remédie à cela BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 28/39 Avril 2014 28 / 39

Normalisation On se fixe une forme normale à atteindre Objectifs : décomposer un schéma A et un ensemble de DF F, en une collection de schémas ρ(a ) = (A 1,, A t ) sur les mêmes attributs telle que : A est dans la forme normale choisie Les données sont préservées ie toute relation R de schéma A doit pouvoir être retrouvée à partir des relations R i = π Ai (R) projetées (par jointure) La décomposition est "sans perte d'information" Les dépendances originales F doivent être satisfaites par la nouvelle base de données obtenue après décomposition Impossible parfois de satisfaire les 3 critères en même temps sans avoir d anomalies (redondance ou autres) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 29/39 Avril 2014 29 / 39 Normalisation sans perte d'information Soit A un schéma de relation et ρ(a) = (A 1,, A k ) une décomposition de A Soit R une relation de schéma A ρ est sans perte d'information pour R si R = π A1 (R) π Ak (R) ρ est sans perte d'information pour un ensemble de DF F si pour toute relation R de schéma A satisfaisant F la décomposition est sans perte d'information pour R Ọn a toujours R π A1 (R) π At (R) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 30/39 Avril 2014 30 / 39

Normalisation sans perte d'information Algorithme de poursuite (Chase test) Etant donné t π A1 (R) π Ak (R), Montrer que t R en utilisant les dépendances fonctionnelles de F On sait que t a été obtenu à partir de la projection de k tuples t 1,, t k dans R Peut-on montrer, à l'aide des dépendances fonctionnelles que t est l'un de ces tuples? BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 31/39 Avril 2014 31 / 39 Algorithme de poursuite soit t i π Ai (R), i k En dehors de A i, t i a des valeurs arbitraires On examine les conséquences des DF les unes après les autres en essayant de montrer que pour un des tuples, les valeurs arbitraires pour certains attributs sont en fait celles de t pour les attributs en questions Considérons l'exemple : R(A, B, C, D) avec A 1 = {A, B}, A 2 = {B, C} et A 3 = {C, D} Soit F = {C D; B A} A B C D a b c 1 d 1 a 2 b c d 2 a 3 b 3 c d BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 32/39 Avril 2014 32 / 39

Algorithme de poursuite - exemple Par la dépendance B A, il vient : A B C D a b c 1 d 1 a 2 b c d 2 a 3 b 3 c d A B C D a b c 1 d 1 a b c d 2 a 3 b 3 c d BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 33/39 Avril 2014 33 / 39 Algorithme de poursuite - exemple Par la dépendance C D, il vient : A B C D a b c 1 d 1 a b c d 2 a 3 b 3 c d A B C D a b c 1 d 1 a b c d a 3 b 3 c d Ọn a bien fait apparaitre t qui appartient donc à π A1 (R) π A2 (R) π A3 (R) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 34/39 Avril 2014 34 / 39

Algorithme de poursuite Si deux tuples s'accordent sur la partie gauche d'une DF, leur partie droite doit être égale Dans ce cas, remplacer les attributs d'un des deux tuples correspondant à la partie droite par les valeurs de l'autre En privilégiant si possible les valeurs sans indice (qui viennent de R) sur les valeurs indicées (qui sont arbitraires) Si on obtient un tuple sans valeur indicées ie t, on peut déduire que t est bien dans R La décomposition est sans perte BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 35/39 Avril 2014 35 / 39 Algorithme de poursuite - 2eme exemple Considérons toujours l'exemple : R(A, B, C, D) avec A 1 = {A, B}, A 2 = {B, C} et A 3 = {C, D} Mais avec F = {C D} A B C D a b c 1 d 1 a 2 b c d 2 a 3 b 3 c d Ḍans ce cas, en utilisant la seule DF C D, on a : A B C D a b c 1 d 1 a 2 b c d a 3 b 3 c d BD4 Ṃais (Licence on MASS, ne Master peut ISIFAR, aller Paris-Diderot) plus loin : t = (a, SQL b, c, 36/39 d) n'est pas dans R Avril 2014 36 / 39

Algo de normalisation en FN3 Entrée ụn schéma A (ou une relation R de schéma A) et un ensemble F de DF Sortie une décomposition ρ(a) = (A 1,, A t ) où chaque A i est en FN3, sans perte et préservant les dépendances de F Algorithme i) Minimiser l'ensemble de dépendances F ii) Pour toute dépendance fonctionnelle X 1,, X k Y 1,, Y h, introduire une nouvelle relation de schéma A i = {X 1,, X k, Y 1,, Y h } iii) Si aucune des relations introduites n'est une super clé de R, ajouter une nouvelle relation dont le schéma est une clé de R (prendre cette clé au hasard si plusieurs possibilités) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 37/39 Avril 2014 37 / 39 Normalisation en FN3 Considérons l'exemple : R(A, B, C, D) Avec F = {A B, A C} Ces dépendances sont minimales On construit deux relations R 1 (A, B) et R 2 (A, C) Plus une troisième contenant la clé (ou une super clé) : R 3 (A, D) BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 38/39 Avril 2014 38 / 39

Conclusion On peut pousser plus loin les normalisations Ces techniques peuvent être utilisées pour obtenir "automatiquement" un schéma de BD optimisé à partir des dépendances mises à jour pendant la modélisation BD4 (Licence MASS, Master ISIFAR, Paris-Diderot) SQL 39/39 Avril 2014 39 / 39