Bases de Données - IRIFamelie/normalisation1617.pdfBases de Données Bases de Données...

63
Bases de Données Bases de Données Amélie Gheerbrant Université Paris Diderot UFR Informatique Laboratoire d’Informatique Algorithmique : Fondements et Applications [email protected] 16 novembre 2016 1 / 63

Transcript of Bases de Données - IRIFamelie/normalisation1617.pdfBases de Données Bases de Données...

  • Bases de Données

    Bases de Données

    Amélie Gheerbrant

    Université Paris DiderotUFR InformatiqueLaboratoire d’Informatique Algorithmique : Fondements et Applications

    [email protected]

    16 novembre 2016

    1 / 63

    [email protected]

  • Bases de Données

    Normalisation

    Contraintes et conception de schéma

    I On sait que les bases de données doivent typiquementsatisfaire certaines contraintes d’intégrité

    I Les plus communes sont les dépendance fonctionnelles etd’inclusion

    I Nous allons étudier certaines propriétés de ces contraintesd’intégrité

    I Nous allons voir comment elles influencent la conception deBD, en particulier, comment elles nous permettent dedéterminer quel type d’information devrait être stocké dansquelle relation

    2 / 63

  • Bases de Données

    Normalisation

    Les dépendances fonctionnelles et les clefsI Une dépendance fonctionnelle est de la forme X → Y où X ,Y

    sont des séquences d’attributs. Elle vaut dans une relation R sipour tous tuples t1, t2 de R :

    πX (t1) = πX (t2) implique πY (t1) = πY (t2)

    I Un cas spécial très important : les clefsI Soit K un ensemble d’attributs de R , et U l’ensemble de tous

    les attributs de R . Alors K est une clef si R satisfait ladépendance fonctionnelle K → U.

    I i.e., un ensemble d’attributs K est une clef de R si pour toustuples t1, t2 de R ,

    πK (t1) = πK (t2) implique t1 = t2I Une clef est donc un ensemble d’attributs qui définit de

    manière unique un tuple dans une relation.3 / 63

  • Bases de Données

    Normalisation

    Problèmes

    I Bonnes vs Mauvaises contraintes : certaines contraintespeuvent être indésirables car susceptibles de mener à desproblèmes.

    I Problème de l’implication : supposons qu’on nous donne unensemble de contraintes, est-ce qu’elles en impliquentd’autres ?Important, car on n’a jamais la liste de toutes les contraintesqui valent dans une BD (trop grande, ou tout simplementinconnue du concepteur)Toutes les contraintes connues peuvent avoir l’air ok, maisimpliquer de mauvaises contraintes

    I Axiomatisation de contraintes : moyen simple de formulerl’implication de contraintes.

    4 / 63

  • Bases de Données

    Normalisation

    Mauvaises contraintes : exempleDRE Dept Res Empl

    D1 Smith JonesD1 Smith BrownD2 Turner WhiteD3 Smith TaylorD4 Smith Clarke... ... ...

    ES Empl SalaireJones 10Brown 20White 20... ...

    On observe les dépendances fonctionnelles suivantes :I dans DRE : Departement → Responsable, mais pas :

    I Dept → EmplI Resp → DeptI Resp → Empl

    I dans ES : Empl → Salaire (Employe est une clef de ES),mais pas Salaire → Empl

    5 / 63

  • Bases de Données

    Normalisation

    Anomalies de mise à jour

    I Anomalies d’insertion : une entreprise engage un nouvelemployé, mais ne l’assigne pas tout de suite à un département.On ne peut pas enregistrer ce fait dans la relation DRE.

    I Anomalies de suppression : l’employé White quittel’entreprise. Il nous faut donc supprimer un tuple de DRE.Mais ceci entraine aussi la suppression du responsable Turner,alors qu’il n’est pas parti !

    I Anomalies de modification : imaginons que Smith soitremplacé à la tête de D1 par Turner. Il faut alors modifier tousles triplets de DRE correspondant.

    6 / 63

  • Bases de Données

    Normalisation

    Anomalies de mise à jour

    I Raisons : association entre employés et responsables dans lamême relation que association entre responsables etdépartements + le même fait (département D dirigé par R)peut être représenté plus d’une fois.

    I Dans le langage des dépendances fonctionnelles :

    Dept → Resp, mais Dept n’est pas une clef

    I En général on essaie d’éviter ce genre de situations.

    7 / 63

  • Bases de Données

    Normalisation

    Dépendances et implicationsI Soit une relation R avec trois attributs A,B,CI On nous dit que R satisfait A → B et B → {A,C}I Ressemble au mauvais exemple de tout à l’heure :

    on a A → B sans mention de CI Mais en fait, A est une clef :

    si πA(t1) = πA(t2), alors πB(t1) = πB(t2)

    et comme B est une clef, t1 = t2I Donc, même sans savoir qu’A était une clef, nous avons pu le

    dériver, car les autres dépendances l’impliquaient.I En utilisant l’implication, on peut trouver toutes les

    dépendances et déterminer s’il y a un problème de conception.

    8 / 63

  • Bases de Données

    Normalisation

    L’implication pour les dépendances fonctionnelles

    I On essaie seulement de trouver les dépendances non trivialesUne dépendance triviale c’est X → Y avec Y ⊆ X

    I Supposons donné l’ensemble U des attributs d’une relation, unensemble F de dépendances fonctionnelles (DFs), et une DF fsur U. Alors F implique f , noté

    F ` f

    ssi pour toute relation R sur les attributs U, si R satisfaittoutes les DFs de F, alors elle satisfait aussi f.

    I Problème de l’implication : Etant donné U et F , trouvertoutes les DFs non triviales telles que F ` f .

    9 / 63

  • Bases de Données

    Normalisation

    L’implication pour les dépendances fonctionnellesI Ensemble clos par rapport à F : sous ensemble V de U t.q.

    pour tout X → Y dans F,

    si X ⊆ V , alors Y ⊆ V

    I Propriétés des DFs : pour tout ensemble V, il existe un uniqueensemble CF (V ), appelé clôture de V par rapport à F, tel que

    I CF (V ) est closI V ⊆ CF (V )I Pour tout ensemble clos W : V ⊆W implique CF (V ) ⊆W .

    I Solution du problème de l’implication :Une DF X → Y est impliquée par F

    si et seulement siY ⊆ CF (X )

    10 / 63

  • Bases de Données

    Normalisation

    Implication et clôture

    I Pour résoudre le problème de l’implication, il suffit de trouverla clôture de chaque ensemble d’attributs.

    I Approche naïve pour trouver CF (X ) : vérifier tous les sousensembles V ⊆ U, vérifier qu’ils sont clos, et sélectionner leplus petit ensemble clos contenant X .

    I Problème : c’est trop coûteux.I Si U a n elements et X a m < n éléments, alors il y’a 2n−m

    sous ensembles de U qui contiennent V .I En fait on va considérer un algorithme beaucoup plus efficace.

    11 / 63

  • Bases de Données

    Normalisation

    Implication et clôture

    Algorithme CLOTURE

    Entrée : un ensemble F de DFs, et un ensemble X d’attributsSortie : CF (X )1. inutilisé := F2. clôture := X3. répéter jusqu’à ce que plus de changement :

    si Y → Z ∈ inutilisé et Y ⊆ clôture alors(i) inutilisé := inutilisé - {Y → Z}(ii) clôture := clôture ∪Z

    4. Sortie : clôture.

    12 / 63

  • Bases de Données

    Normalisation

    Clôture : exemple

    I Pratique commune : écrire AB pour l’ensemble {A,B}, BCpour {B,C} etc

    I U = {A,B,C}, F = {A→ B,B → AC}I Clôture :

    CF (∅) = ∅CF (C ) = CCF (B) = ABCd’où CF (X ) = ABC pour tout X qui contient BCF (A) = ABCd’où CF (X ) = ABC pour tout X qui contient A

    13 / 63

  • Bases de Données

    Normalisation

    Clôture : exemple pratiqueSoit U = {NomFournisseur ,Adresse,Produit,Prix ,FraisTransport} etF = {F1,F2,F3}, avec :

    I F1 = NomFournisseur → AdresseI F2 = NomFournisseur ,Produit → PrixI F3 = Adresse,Produit → FraisTransport

    Calcul de CF (NomFournisseur ,Produit) :1. inutilisé={F1,F2,F3}, clôture={NomFournisseur ,Produit}2. inutilisé={F3}, clôture={NomFournisseur ,Produit,Adresse,Prix}3. inutilisé=∅,

    clôture={NomFournisseur ,Produit,Adresse,Prix ,FraisTransport}4. Fin (plus de DF à appliquer) :

    CF (NomFournisseur ,Produit)=clôture

    On en déduit que :F ` NomFournisseur ,Produit → Adresse,Prix ,FraisTransport

    14 / 63

  • Bases de Données

    Normalisation

    Propriétés de la clôtureI X ⊆ CF (X )I X ⊆ Y implique CF (X ) ⊆ CF (Y )I CF (CF (X )) = CF (X )

    On peut utiliser l’algorithme de clôture pour déterminer si unensemble de DFs F implique une DF f :

    F ` Y → Z ⇔ Z ∈ CF (Y )

    ou pour déterminer étant donné F , la clef d’un schéma de relationR , on supprime tous les attributs de R jusqu’à arriver à unensemble K ⊆ R t.q. :

    I CF (K ) = R

    I ∀A ∈ K ,CF (K − {A}) 6= R (i.e., K est minimal)15 / 63

  • Bases de Données

    Normalisation

    Clefs, clefs candidates et attributs primairesI Un ensemble X d’attributs est une clef pour F si X → U est

    impliqué par F (i.e., si X détermine tous les attributs)I C’est-à-dire, X est une clef si CF (X ) = UI Dans le premier exemple, tout ensemble qui contient A ou B

    est une clef.I Clefs candidates : plus petites clefs, i.e., clefs X t.q. pour tout

    Y ⊂ X , Y n’est pas une clef.I Dans l’exemple précédent : A et BI Attribut primaire : attribut d’une clef candidate.

    Attention : on parle parfois de superclefs (au lieu de clefs) versusclefs (au lieu de clef candidates). Il y a un flottementterminologique dans la littérature...

    16 / 63

  • Bases de Données

    Normalisation

    Dépendances d’inclusionI Les dépendances fonctionnelles et d’inclusion sont les plus

    fréquentes dans les applications.I Rappel : R[A1, . . . ,An] ⊆ S [B1, . . . ,Bn] veut dire que pour

    tout tuple t dans R , il y a un tuple t ′ dans S t.q.

    πA1,...,An(t) = πB1,...,Bn(t′)

    I Supposons que l’on ait un ensemble de noms de relations et dedépendances d’inclusion (DIs) sur eux. Peut-on dériver toutesles DIs qui sont valides ?

    I Formellement, soit G un ensemble de DIs et g une DI. On ditque G implique g , noté

    G ` gsi tout ensemble de relations qui satisfait toutes les DIs dans Gsatisfait aussi g .

    I La réponse est positive, comme pour les DFs.17 / 63

  • Bases de Données

    Normalisation

    Implication et dépendances d’inclusionIl existe un ensemble de règles simples :

    1. R[A] ⊆ R[A]2.

    si R[A1, . . . ,An] ⊆ R[B1, . . . ,Bn]

    alors R[Ai1 , . . . ,Ain ] ⊆ R[Bi1 , . . . ,Bin ]

    où {i1, . . . , in} est une permutation de {1, . . . , n}3.

    si R[A1, . . . ,Am,Am+1, . . . ,An] ⊆ R[B1, . . . ,Bm,Bm+1, . . . ,Bn]

    alors R[A1, . . . ,Am] ⊆ R[B1, . . . ,Bm]

    4. si R[X ] ⊆ S [Y ] et S [Y ] ⊆ T [Z ] alors R[X ] ⊆ T [Z ](Attention, voir transparent précédent, ici les attributs sont ordonnés !)

    18 / 63

  • Bases de Données

    Normalisation

    Implication et dépendances d’inclusion

    I Une DI g est impliquée par G ssi elle peut être dérivée par desapplications répétées des quatre règles précédentes

    I Donne immédiatement un algorithme coûteux : appliquertoutes les règles jusqu’à ce qu’il n’y en ait plus d’applicables

    I Et en fait, le problème est vraiment dur : on ne peut pastrouver d’algorithme raisonnable pour le résoudre

    Une restriction du problème :I DIs unaires : de la forme R[X ] ⊆ S [Y ]I L’implication G ` g peut être testée en temps polynomial pour

    les DIs unaires.

    19 / 63

  • Bases de Données

    Normalisation

    Dépendances fonctionnelles et d’inclusionI Pour la majorité des applications on a besoin de considérer

    seulement deux types de dépendances : DFs et DIsI Le problème de l’implication peut être résolu pour les DFs et

    les DIsI Est-ce qu’il peut être résolu pour les DFs et les DIs ensemble ?I I.e., est-ce que, étant donné un ensemble de DFs F , un

    ensemble de DIs G , une DF f , une DI g , on peut déterminer si

    F ∪ G ` f

    F ∪ G ` g

    i.e., si toute BD qui satisfait F et G doit aussi satisfaire f (ou g)I En fait, aucun algorithme ne peut résoudre ce problème

    20 / 63

  • Bases de Données

    Normalisation

    Encore plus de restrictions

    I Les relations sont typiquement déclarées avec juste des clefsprimaires et les dépendances d’inclusion occurrent dans lesdéclaration de clef étrangères.

    I Est-ce que l’implication peut être décidée algorithmiquementjuste pour les clefs primaires et les clefs étrangères ?

    I La réponse est toujours NONI Il est donc intrinsèquement dur de raisonner à propos des

    classes de contraintes les plus basiques en BD relationnelles.

    21 / 63

  • Bases de Données

    Normalisation

    Quand l’implication peut-elle être résolue pour les DFs et lesDIs ?

    I Rappel : une DI unaire est de la forme R[X ] ⊆ S [Y ]I On peut tester l’implication pour les DIs unaires et les DFs

    arbitrairesI De plus, on peut le faire en temps polynomialI Cependant, l’algorithme en question est plutôt complexe.

    22 / 63

  • Bases de Données

    Normalisation

    Dépendances : résuméI DFs : X → YI Clefs : X → U, où U est l’ensemble de tous les attributs de la

    relation.I Clef candidate : clef minimale

    (tout sous ensemble de X est une clef)I Dépendance d’inclusion : R[A1, . . . ,An] ⊆ S [B1, . . . ,Bn]

    (unaire si n=1)I Clef étrangère : R[A1, . . . ,An] ⊆ S [B1, . . . ,Bn] et {B1, . . . ,Bn} est

    une clefI Problème de l’implication :

    facile pour les DFs seulesdifficile mais décidable pour les DIs seulesdécidable par un algorithme complexe pour DFs + DIs unairesindécidable pour DFs + DIs, et mêmeindécidable pour les clefs primaires et les clefs étrangères

    23 / 63

  • Bases de Données

    Normalisation

    La conception de bases de données

    I Trouver des schémas de bases de données avec de bonnespropriétés

    I Bonnes propriétés :I pas d’anomalie de mise à jourI pas de redondanceI pas de perte d’information

    I Entrée : liste d’attributs et de contraintes (d’habitude, desdépendances fonctionnelles)

    I Sortie : liste de relations et de contraintes

    24 / 63

  • Bases de Données

    Normalisation

    Exemple : mauvaise conception

    I Attributs :titre, réalisateur, cinéma, adresse, téléphone, heure, prix

    I Contraintes :I DF1 cinéma → adresse, téléphoneI DF2 cinéma, heure, titre → prixI DF3 titre → réalisateur

    I Mauvaise conception : tout mettre dans la même relationMAUVAIS[titre, réalisateur, cinéma, adresse, téléphone, heure, prix]

    25 / 63

  • Bases de Données

    Normalisation

    Pourquoi Mauvais est-elle mauvaise ?I Redondance : beaucoup de faits sont répétés

    I réalisateur est déterminé par titre

    Pour toute séance, on liste à la fois le réalisateur et le titre.I adresse est déterminé par cinéma

    Pour tout film joué, on répète l’adresse.

    I Anomalies de mise à jour :I si adresse change dans un tuple, on obtient de l’incohérence,

    car il faut la changer dans tous les tuples correspondant àchaque film et séance

    I si un film cesse d’être joué, on perd l’association entre titre etréalisateur

    I on ne peut pas ajouter un film avant qu’il commence à êtrejoué

    26 / 63

  • Bases de Données

    Normalisation

    Bonne conception

    Séparer Mauvais en 3 relations

    I Schéma relationnel Bon :Table attributs contraintesT1 cinéma, adresse, téléphone DF1 : cinéma → adresse, téléphoneT2 cinéma, titre, heure, prix DF2 : cinéma, heure, titre → prixT3 titre, réalisateur DF3 : titre → réalisateur

    27 / 63

  • Bases de Données

    Normalisation

    Pourquoi Bon est-il bon ?

    I Pas d’anomalie de mise à jour : toute DF est une clefI Pas de perte d’information :

    I T1 = πcinema,adresse,telephone(Mauvais)I T2 = πcinema,titre,heure,prix(Mauvais)I T3 = πtitre,realisateur (Mauvais)I Mauvais = T1 ./ T2 ./ T3

    I Aucune contrainte n’est perdueDF1, DF2, DF3 apparaissent toutes comme contraintes de T1,T2, T3

    Impact sur les requêtes (bémol) : le temps d’exécution peutmaintenant augmenter lorsqu’il y a des jointures à faire.

    28 / 63

  • Bases de Données

    Normalisation

    Forme normale de Boyce-Codd (FNBC)

    I Qu’est-ce qui cause les anomalies de mise à jour ?I Les dépendances fonctionnelles X → Y où X n’est pas une clefI Une relation est en forme normale de Boyce-Codd (FNBC) si

    pour toute DF non triviale X → Y , X est une clefI Une base de données est en FNBC si toutes ses relations sont

    en FNBC

    29 / 63

  • Bases de Données

    Normalisation

    Décompositions : critères de bonnes conception

    Etant donné un ensemble d’attributs U et un ensemble dedépendances fonctionnelles, une décomposition de (U,F ) est unensemble

    (U1,F1), . . . , (Un,Fn)

    où Ui ⊆ U et Fi est un ensemble de DFs sur les attributs Ui

    Une décomposition est en FNBC si chaque (Ui ,Fi ) est en FNBC

    30 / 63

  • Bases de Données

    Normalisation

    Décompositions : critères de bonnes conceptionI Sans perte d’information (SPI) si pour toute relation R sur

    U qui satisfait toutes les DFs dans F,tout πUi (R) satisfait Fi et

    R = πU1(R) ./ πU2(R) ./ . . . ./ πUn(R)

    I Sans perte de dépendances (SPD) si

    F et F ∗ =⋃i

    Fi sont équivalents

    i.e., pour toute DF f ,

    F ` f ⇔ F ∗ ` f

    ou∀X ⊆ U, CF (X ) = CF∗(X )

    31 / 63

  • Bases de Données

    Normalisation

    Décomposition avec perte d’information

    Une décomposition est sans perte d’information (SPI) si :

    I pour toute relation R sur U qui satisfait toutes les DFs dans F,tout πUi (R) satisfait Fi et

    R = πU1(R) ./ πU2(R) ./ . . . ./ πUn(R)

    I La propriété de décomposition sans perte d’information dépenddonc des dépendances fonctionnelles.

    32 / 63

  • Bases de Données

    Normalisation

    Un exemple de décomposition avec perte d’information

    I R(Etudiant,Exam,Note) et F={Etudiant,Exam → Note}I décomposition : {R1(Etudiant,Exam),R2(Exam,Note)}I Il existe une instance R qui satisfait F mais qu’on ne peut pas

    reconstruire à partir de ses projections :

    R Etudiant Exam Note167 BD3 18434 BD3 7

    33 / 63

  • Bases de Données

    Normalisation

    Un exemple de décomposition avec perte d’informationR Etudiant Exam Note

    167 BD3 18434 BD3 7

    πEtudiant,Exam(R) Etudiant Exam167 BD3434 BD3

    πExam,Note(R) Exam NoteBD3 18BD3 7

    πEtudiant,Exam(R) ./ πExam,Note(R) Etudiant Exam Note167 BD3 18434 BD3 7167 BD3 7434 BD3 18

    Problème : les tuples en rouge représentent de l’informationparasite. En effet, F={Etudiant,Exam → Note}, i.e., un seul etmême étudiant ne peut avoir qu’une note à un seul et mêmeexamen.

    34 / 63

  • Bases de Données

    Normalisation

    La préservation des DFsI Les DFs sur un schéma sont des contraintes d’intégritéI Le SGBD est censé vérifier que les contraintes ne sont pas

    violées par les mises à jour

    35 / 63

  • Bases de Données

    Normalisation

    La préservation des DFs

    I Il est souhaitable de pouvoir vérifier les DFs localement(jointure couteuse)⇒ on cherche une décomposition sans perte de dépendancesfonctionnelles

    36 / 63

  • Bases de Données

    Normalisation

    Décomposition sans perte de DFsI Ce n’est pas toujours aussi simple de vérifier que les DFs sont

    préservées...

    37 / 63

  • Bases de Données

    Normalisation

    Décomposition sans perte de DFs

    I Un autre exemple

    38 / 63

  • Bases de Données

    Normalisation

    Décomposition sans perte de DFs

    39 / 63

  • Bases de Données

    Normalisation

    Décomposition sans perte de DFs

    40 / 63

  • Bases de Données

    Normalisation

    Projection des DFsI Soit U un ensemble d’attributs et F un ensemble de DFsI Soit V ⊆ UI Alors on définit la projection des DFs de F locales à V

    comme :

    πV (F ) = {X → Y | X ,Y ⊆ V , Y ⊆ CF (X )}

    I ce sont toutes les DFs sur V qui sont impliquées par F :

    πV (F ) = {X → Y | X ,Y ⊆ V , F ` X → Y }

    I Même si tel qu’on l’a définit πV (F ) pourrait être très grand,on peut souvent le représenter de manière compacte par unensemble F ′ de DFs sur V t.q. :

    ∀X ,Y ⊆ V : F ′ ` X → Y ⇔ F ` X → Y41 / 63

  • Bases de Données

    Normalisation

    Rappel : décomposition

    I Objectif de la décomposition :Eliminer ou réduire les anomalies associées (i.e., obtenir unnouveau schéma en "forme normale")

    I Mais on ne peut pas décomposer arbitrairementI Conditions pour une décomposition "raisonnable"

    I décomposition sans perte d’informationI décomposition sans perte de dépendance

    I Il reste à comprendre comment obtenir de bonnesdécompositions.

    42 / 63

  • Bases de Données

    Normalisation

    Forme normale de Boyce-Codd (FNBC)

    I Qu’est-ce qui cause les anomalies de mise à jour ?I Les dépendances fonctionnelles X → Y où X n’est pas une clefI Une relation est en forme normale de Boyce-Codd (FNBC) si

    pour toute DF non triviale X → Y , X est une clefI Une base de données est en FNBC si toutes ses relations sont

    en FNBCI Les seules DFs non triviales sont celles induites par des clefs.

    43 / 63

  • Bases de Données

    Normalisation

    FNBC : exemples

    44 / 63

  • Bases de Données

    Normalisation

    FNBC : Algorithme de décompositionEntrée : un ensemble d’attributs U et un ensemble de DFs FSortie : un schéma de BD S = {(U1,F1), . . . , (Un,Fn)}1. S := {(U,F )}2. Tant que S n’est pas en FNBC faire :

    (a) Choisir (V ,F ′) ∈ S pas en FNBC(b) Choisir X ,Y ,Z disjoints non vides t.q. :

    (i) X ∪ Y ∪ Z = V(ii) Y = CF ′(X )− X

    (i.e., F ′ ` X → Y et F ′ 6` X → A pour tout A ∈ Z)(c) Remplacer (V ,F ′) par

    (X ∪ Y , πX∪Y (F ′)) et (X ∪ Z , πX∪Z (F ′))

    (d) S’il existe (V ′,F ′) et (V ′′,F ′′) dans S t.q. V ′ ⊆ V ′′ alorsretirer (V ′,F ′)

    45 / 63

  • Bases de Données

    Normalisation

    Algorithme de décomposition : exempleConsidérons l’ensemble d’attributs et les contraintes suivants :Mauvais = {titre, realisateur , cinema, adresse, telephone, heure, prix}F = {DF1,DF2,DF3}

    Initialisation : S = (Mauvais,DF1,DF2,DF3)

    Boucle While :I Etape 1 : on sélectionne Mauvais ; qui n’est pas en FNBC car

    cinema → adresse, telephonemais

    cinema 6→ titre, réalisateur, heure, prixNos ensembles sont :X = {cinema}, Y = {adresse, telephone},Z = {titre, realisateur , heure, prix}

    46 / 63

  • Bases de Données

    Normalisation

    Algorithme de décomposition : exemple

    I Etape 1, suite :πX∪Y ({DF1,DF2,DF3}) = DF1πX∪Z ({DF1,DF2,DF3}) = {DF2,DF3}

    Après l’étape 1, nous avons obtenu deux schémas :S1 = ({cinema, adresse, telephone},DF1),S ′1 = ({cinema, titre, realisateur , heure, prix},DF2,DF3)

    I Etape 2 : S1 est en FNBC, rien à faire donc.S ′1 n’est en FNBC : titre n’est pas une clefSoit X = {titre}, Y = {realisateur},Z = {cinema, heure, prix}πX∪Y ({DF1,DF2,DF3}) = DF3πX∪Z ({DF1,DF2,DF3}) = {DF2}

    47 / 63

  • Bases de Données

    Normalisation

    Algorithme de décomposition : exemple

    I Après l’étape 2, nous avons :S1 = ({cinema, adresse, telephone},DF1),S2 = ({cinema, titre, heure, prix},DF2)S3 = ({titre, realisateur},DF3)

    I S1,S2,S3 sont toutes en FNBC, fin.

    48 / 63

  • Bases de Données

    Normalisation

    Algorithme de décomposition : autre exemple

    I R = {C,T,H,S,E,N}, avec C = cours, T = enseignant, H =horaire, S = salle, E = étudiant, N = note

    I F = {C → T, HS → C, HT → S, CE → N, HE → S}

    I HE est la seule clef : CF (HE)=HESCTNI HE est minimale, donc candidate : H et E ne sont pas

    déterminés par d’autres attributs et doivent donc être danstoutes les clefs candidates.

    49 / 63

  • Bases de Données

    Normalisation

    Algorithme de décomposition : autre exemple

    50 / 63

  • Bases de Données

    Normalisation

    Propriétés de l’algorithme de décomposition

    I Pour tout schéma relationnel, l’algorithme de décompositiongénère un schéma relationnel qui est

    I en FNBCI SPI (sans perte d’information)

    I Cependant, la sortie n’est pas garantie SPD (sans perte dedépendance)

    I Quelques astuces pour trouver des violations de la FNBC :I Tester uniquement les sous-ensembles d’attributs qui

    contiennent la partie gauche d’une DFI pas besoin de vérifier les sous-ensembles formés en retirant

    seulement un unique attribut à l’ensemble de départI pas besoin de tester les sous-ensembles composés seulement de

    deux attributs

    51 / 63

  • Bases de Données

    Normalisation

    La FNBC et la préservation des dépendances

    I Schéma Adresse[(C )odePostal , (V )ille, (R)ue]I Ensemble de DFs F = {C → V ,VR → C}I (Adresse,F ) n’est pas en FNBC : C → V ∈ F , mais C n’est

    pas une clef.I On applique l’algo de décomposition FNBC : X = {C},

    Y = {V }, Z = {R}I Sortie : ({C ,V },C → V ), ({C ,R}, ∅)I On perd VR → C !I En fait, il n’existe pas de schéma relationnel équivalent à

    Adresse qui soit à la fois en FNBC, SPI et SPD.I Preuve : il suffit de vérifier tous les schémas sur trois attributs.

    52 / 63

  • Bases de Données

    Normalisation

    La FNBC et la préservation des dépendances

    I La décomposition CEN CT CHS CHE obtenue tout à l’heuren’est pas sans perte de dépendance pourF = {C → T, HS → C, HT → S, CE → N, HE → S}

    I Elle ne préserve pas HT → S : pour un même couple horaireenseignant on pourrait avoir plusieurs salles...

    I La clôture locale de HT est HT :I Sur CEN, la clôture locale de HT est ∅I Sur CT, la clôture locale de HT est TI Sur CHS, la clôture locale de HT est HI Sur CHE, la clôture locale de HT est H

    I HT → S serait perdue également si on avait HES à la place deCHE

    53 / 63

  • Bases de Données

    Normalisation

    3ème forme normale (3FN)

    I Si l’on veut une décomposition SPI et SPD, on ne peut pastoujours recourir à la FNBC

    I Il nous faut une condition un peu plus faibleI Rappels :

    I une clef candidate est une clef qui n’est incluse dans aucuneautre clef

    I Un attribut est primaire s’il appartient à une clef candidateI (U,F ) est en FNBC si pour toute DF X → A, où A /∈ X est

    un attribut, F ` X → A implique que X est une clefI (U,F ) est en 3FN si pour toute DF X → A où A /∈ X est un

    attribut, F ` X → A implique que :I soit X est une clef,I ou bien A est primaire.

    54 / 63

  • Bases de Données

    Normalisation

    3ème forme normale (3FN)I Différences principales entre FNBC et 3FN : en 3FN les DFs

    non clefs sont OK, tant qu’elles n’impliquent que des attributsprimaires.

    I {NomFournisseur ,Adresse,Produit,Prix} ;{NomFournisseur → Adresse;NomFournisseur ,Produit → Prix}nest pas en 3FN :

    I NomFournisseur ,Produit est clef candidate ; mais Adressen’est pas primaire.

    I Mais Adresse[C ,V ,R],F = {C → V ,VR → C} est en 3FN :I VR est clef candidate, donc V est un attribut primaire.

    I Plus de redondance qu’avec la FNBC : chaque fois qu’un codepostal apparaît dans un tuple, le nom de la ville est répété.

    I On tolère cette redondance parce qu’il n’existe pas dedécomposition FNBC.

    55 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN : couvertures minimales

    I Besoin pour l’algo d’un petit ensemble représentant toutes lesDFs d’un ensemble F

    I On parle de couverture minimale. Formellement :I F ′ est une couverture de F ssi CF = CF ′ , i.e., pour tout f :

    F ` f ⇔ F ′ ` f

    I F ′ est une couverture minimale siI F ′ est une couvertureI aucun sous ensemble F ′′ ⊂ F ′ n’est une couverture de F ,I toute DF dans F ′ est de la forme X → A, où A est un attributI pour tout X → A ∈ F ′ t.q. X ′ ⊂ X , on a A /∈ CF (X ′)

    56 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN : couvertures minimales

    I Une couverture minimale est un petit ensemble de DFs quinous donne exactement la même information que F .

    I Exemple :

    F = {A→ AB,A→ AC ,A→ B,A→ C ,B → BC}

    I Clôture :CF (A) = ABC ,CF (B) = BC ,CF (C ) = C , et donc

    I Couverture minimale :

    F ′ = {A→ B,B → C}

    57 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN : algorithme

    Entrée : un ensemble d’attributs U et un ensemble de DFs FSortie : un schéma de BD S = {(U1,F1), . . . , (Un,Fn)}

    Etape 1 Trouver une couverture minimale F ′ de F

    Etape 2 S’il existe X → A dans F ′ t.q. XA = U, alors sortie = (U,F ′).Sinon, choisir une clef K et sortir :(2a) (XA,X → A) pour tout X → A ∈ F ′, et(2b) (K , ∅)

    58 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN : exempleI F = {A→ AB,A→ AC ,A→ B,A→ C ,B → BC}I F ′ = {A→ B,B → C}I A est une clef, donc sortie :

    (A, ∅), (AB,A→ B) (BC ,B → C )I Simplification : si un des ensembles d’attributs produits en

    (2a) est une clef, alors pas besoin de (2b)I Ce qui donne comme résultat :

    (AB,A→ B) (BC ,B → C )

    I Autre type de simplification possible :remplacer (XA1,X → A1), . . . , (XAk ,X → Ak) dans la sortie,par (XA1 . . .Ak ,X → A1 . . .Ak)

    59 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN : autre exemple

    I F = {A→ C ,BC → D,AD → E} = F ′ minimalI AB est une clef, donc sortie :

    (AB, ∅), (AC ,A→ C ) (BCD,BC → D) (ADE ,AD → E )

    I aucun des ensembles d’attributs produits en (2a) n’est uneclef, donc, ici, besoin de (2b)

    60 / 63

  • Bases de Données

    Normalisation

    Décompositions 3FN

    I L’algorithme de décomposition produit un schéma :I en 3FNI SPII SPD

    I Complexité de l’algorithme ?I Etant donnée la couverture minimale F ′, en temps linéaire.I Mais à quel point est-ce dur de trouver une couverture

    minimale ?I Approche naïve : essayer tous les ensembles F ′, vérifier s’ils

    sont des couvertures minimales.I Trop coûteux (exponentiel), peut-on faire mieux ?I Il y a un algorithme en temps polynomial.

    61 / 63

  • Bases de Données

    Normalisation

    Algorithme de calcul de couverture minimale

    Entrée : un ensemble de DFs FSortie : une couverture minimale de F

    1. Mettre F sous forme canonique, i.e., remplacer toute DFX → ABC par l’ensemble de DFsF = {X → A,X → B,X → C , . . .}

    2. Répéter jusqu’à ce qu’il n’y ait plus de changement :s’il existe f t.q. F \ {f } ` f , alors remplacer F par F \ {f }

    3. Répéter jusqu’à ce qu’il n’y ait plus de changement :s’il existe f = X → A ∈ F et Y ⊂ X t.q. A ∈ CF (Y ), alorsremplacer X → A par Y → A dans F .

    62 / 63

  • Bases de Données

    Normalisation

    Conception de schéma : démarche

    I Choisir un ensemble d’attributs UI Choisir l’ensemble de DFs FI Trouver un décomposition SPI et SPD qui soit :

    I FNBC, s’il en existe uneI 3FN, s’il n’existe pas de décomposition FNBC

    63 / 63

    Normalisation