60
Théorie des bases de Théorie des bases de données

base de donneé

Embed Size (px)

DESCRIPTION

base de donneé

Citation preview

  • Thorie des bases de Thorie des bases de

    donnes

  • Toute manipulation de fichier exige trois niveaux dintervention, et trois couches

    logicielles :

    Gestion du support physique : disques durs, disquette, streamers

    Pilote dentres-sorties (Driver)

    Gestion des structures internes des fichiers, et des mthodes daccs : ouverture, fermeture, lecture,

    criture

    Systme de gestion de fichiers (SGF)

    Systme de Gestion de fichier

    Systme de gestion de fichiers (SGF)

    Gestion des contenus : calculs, tests, affichages ...

    Programmes applicatifs

  • Systme de Gestion de fichier

  • Systme de Gestion de Base de donnes :

    SGBD

  • Systme de Gestion de Base de donnes :

    SGBD

  • Cycle de vie dune base de donnes

  • Architecture fonctionnelle d'un SGBD : ANSI-

    SPARC

  • Architecture fonctionnelle d'un SGBD : ANSI-

    SPARC

  • Modle relationnel

  • Les redondances

  • Les redondances

    La table fait apparatre une personne et ses coordonnes autant de

    fois quelle possde un vhicule

    Si Mr Pagnol change de N de tlphone, il faut sassurer que la mise

    jour seffectue bien sur les deux enregistrements le concernant.

  • Une autre redondance est lie la correspondance Marque,Type, CV

    Les redondances

    Pour chaque propritaire ayant une R25, il faudra saisir la marqueet la puissance.

    De plus, un mme vhicule peut passer entre les mains deplusieurs propritaires. Il faudra alors saisir toutes cescaractristiques lorsquil changera de mains.

  • On appelle dictionnaire des donnes, la liste des informations que le systmeinformatique doit acqurir et mmoriser pour produire les rsultats escompts.

    Il s'agit de recenser les diffrentes donnes, en sachant que l'on distingue 3 typesde donnes :

    Donnes lmentaires

    Elles ne sont pas obtenues par calcul partir d'autres donnes.

    Exemple :

    On donne la quantit, le prix de l'article, calculer le cot total..

    Le dictionnaire de donnes

    On donne la quantit, le prix de l'article, calculer le cot total..

    La quantit et le prix sont des donnes lmentaires

    Donnes calcules.

    Elles rsultent d'un calcul effectu partir d'autres donnes.

    Le cot total est une donne calcule (= qte * prix unitaire).

    Donnes paramtres.

    C'est une donne qui ne prend qu'une unique valeur.

    Exemple :

    L'entreprise s'appelle PVF.

  • Le dictionnaire de donnes

  • Le dictionnaire de donnes

  • Dpendances fonctionnelles

  • Soient R(A,B,...) et F= {df1,...} l'ensemble des dpendances

    fonctionnelles sur R, et X,

    Y,.. des lments de l'ensemble des parties de {A,B,...}.

    a) Rflexivit

    Si Y inclus dans X alors X-->Y.

    Rgles d'Amstrong

    Si Y inclus dans X alors X-->Y.

    b) Augmentation

    Pour tout Z inclus dans {A,B,...}

    si X-->Y alors XZ-->YZ. Et si X-->Y alors XZ-->Y.

    c) Transitivit

    Si X-->Y et Y-->Z alors X-->Z.

  • Proprits complmentaires des rgles d'Amstrong

    Ces rgles se dduisent des rgles d'Amstrong.

    d) Additivit / union

    X-->Y, X-->Z alors X-->YZ.

    e) Pseudo-transitivit

    Rgles d'Amstrong

    e) Pseudo-transitivit

    X-->Y, WY-->Z alors XW-->Z.

    f) Dcomposition

    X-->Y alors X-->Z si Z est inclus dans Y.

  • Dpendances multivalues

  • Exemple :

    Soit le schma relationnel R(PROF, CODMAT, J, H, SALLE)

    Un tuple (p,m,s,j,h) d'une relation r de schma R signifie "L'enseignant p enseigne

    la matire m dans la salle s le jour j l'heure h".

    Un enseignant ne peut se trouver dans deux salles la fois un jour donn une

    heure donne pour un cours donn, et que deux cours ne peuvent tre donns

    simultanment par la mme personne dans la mme salle un jour et une heure

    Dpendances fonctionnelles

    simultanment par la mme personne dans la mme salle un jour et une heure

    donne, on a les dpendances :

    df1 : PROF,H,J --> SALLE, CODMAT

    df2 : H,J,SALLE --> PROF, CODMAT

    Si de plus la connaissance dun enseignant implique la connaissance de la

    matire enseigne on a

    df3 : PROF --> CODMAT

    Mais si un professeur peut enseigner plusieurs matires

    PROF CODMAT

  • la matrice des dpendances fonctionnelles

  • Simplification de la matrice des dpendances fonctionnelles

    la matrice des dpendances fonctionnelles

  • Eliminer les dpendances transitives

    Cherchons laquelle de ces deux dpendances fonctionnelles peut tre supprime.

    Existe-t-il une donne C telle que N client C et C Nom client ? Non

    Existe-t-il une donne C telle que N facture C et C Nom client ? Oui, c'est Nclient

    En effet, N facture N client et N client Nom client

    Dans la colonne N facture, on supprime le 1 sur la ligne Nom client

    On rpte l'opration pour les autres lignes

    la matrice des dpendances fonctionnelles

    On rpte l'opration pour les autres lignes

  • Graphe des dpendances fonctionnelles

  • Cl minimale

    Un ensemble dattributs X de R est une cl minimale de R muni de lensemble dedpendances fonctionnelles F si et seulement si X est une cl et si tout sous-ensemblestrict de X nen est pas une.

    Exemple :

    Soit la relation suivante :

    Edition (Numro, Titre, Code-aut, Nom_prnom, Adresse_aut, Anne, Code-edit,nom, Adresse-edit)

    Le graphe de dpendance fonctionnelle minimum montre que :

    Graphe des dpendances fonctionnelles

    Le graphe de dpendance fonctionnelle minimum montre que :

    Numro est un attribut clNumro AnneNumro seulement ne peut pas jouer le rle dune cl minimaleCode-edit est un attribut clCode-edit AnneCode-edit seulement ne peut pas jouer le rle dune cl minimaleCode-edit et Numro jouent le rle dune cl de la relation(Code-edit, Numro) Anne(Code-edit, Numro) cl minimale de la relation dition

  • Concept de la Cl primaire

  • Concept de la Cl trangre

  • Les contraintes

  • Contrainte de domaines

    Dfinition extensive ou intensive du domaine d'un attribut :

    Exemple:

    1. lattribut Nom du schma de relation Fournisseurs est contraint tre une

    chane de caractres de longueur 20 ;

    2. l'attribut Couleur du schma de relation Voitures a ses valeurs dans l'ensemble

    {rouge,vert,bleu,noir,blanc} ;

    Les contraintes

    {rouge,vert,bleu,noir,blanc} ;

    3. lattribut mois est compris entre 1 et 12 ;

    4. le prix unitaire doit tre strictement positif.

    5. Prsence obligatoire ou non dune valeur pour un attribut : NULL ou NOT

    NULL.

  • contraintes rfrentielles ou contraintes d'inclusion

    Les contraintes

  • Mises jour et cohrence

    But d'un schma logique : dcrire une bd qui va effectivement tre

    utilise

    - charge , accde , mise jour (maj)

    Les maj (insertions, suppressions, modifications) doivent conserver

    la cohrence de la base de donnes

    Normalisation dun schma relationnel

    la cohrence de la base de donnes

    - intgrit rfrentielle

    - toute contrainte d'intgrit

    - en particulier les dpendances entre attributs

    Selon le schma c'est + ou - facile

    - Plus la bd contient de redondances, plus les maj avec maintien

    de la cohrence est difficile

  • Exemple d'anomalies de maj:

    LivraisonTot ( Nf , adrF , Np , typeP , qt )

    3 Casa 52 meuble 12

    22 Rabat 10 ordinateur 6

    22 Rabat 25 papier 210

    3 Casa 25 papier 560

    Normalisation dun schma relationnel

    3 Fes 10 ordinateur 15

    Dfinition : Le fournisseur Nf, qui est actuellement telle adresse adrF, a livr

    au total telle quantit du produit Np, produit qui est de tel type.

    Si un fournisseur change dadresse et quun seul tuple est mis jour

    incohrence

    Si un nouveau tuple est insr pour un fournisseur connu, avec une adresse

    diffrente incohrence

    Impossibilit d'enregistrer un nouveau fournisseur sans livraison

  • Quest-ce quune BD relationnelle incorrecte ?

    Une relation nest pas correcte si :

    elle implique des rptitions au niveau de sa population

    elle pose des problmes lors des maj (insertions, modifications et

    Normalisation dun schma relationnel

    elle pose des problmes lors des maj (insertions, modifications et

    suppressions)

    Les conditions pour qu'une relation soit correcte peuvent tre

    dfinies formellement :

    => rgles de normalisation

  • Exemple

    LivraisonTot ( Nf , adrF , Np , typeP , qt )

    3 Casa 52 meuble 12

    22 Rabat 10 ordinateur 6

    22 Rabat 25 papier 210

    3 Casa 25 papier 560

    Normalisation dun schma relationnel

    3 Fes 10 ordinateur 15

    Ladresse du fournisseur ne dpend que du fournisseur et pas du produit.

    Le type du produit ne dpend que du produit et pas du fournisseur

    REDONDANCES

    Anomalies de mise jour

    Cette relation n'est pas correcte. Il faut la normaliser.

  • Processus de transformation d'un schma S1 pour obtenir un

    schma S2 :

    - qui est quivalent (mme contenu)

    - dont les maj assurant la cohrence de la bd sont simples

    maj simple :

    - un changement lmentaire dans le monde rel se traduit par

    Normalisation d'un schma logique

    - un changement lmentaire dans le monde rel se traduit par

    une mise jour d'un tuple

    Exemples de changements lmentaires

    - LivraisonTot (Nf, adrF, Np, typeP, qt)

    - La quantit totale pour un produit et un fournisseur est mise

    jour => 1 tuple m.a.j.

    - Un fournisseur change d'adresse => N tuples m.a.j.

  • Processus de dcomposition d'une relation maj complexes en

    plusieurs relations maj simples

    Processus sur le schma relationnel formel

    Exemple :

    La relation LivraisonTot (Nf, adrF, Np, typeP, qt) sera

    Normalisation d'une relation

    La relation LivraisonTot (Nf, adrF, Np, typeP, qt) sera

    dcompose en :

    LivraisonTot (Nf, Np, qt)

    Fournisseur (Nf, adrF)

    Produit (Np, typeP)

  • Normalisation d'une relation

    Produit0-n 0-n

    Fournisseur

    Nom Adr. Nom TypeQtDate TelTel

    Livraison

    Exemple

    Fournisseur (NF, Nom, Adr)

    Produit (NP, Nom, Type)

    Livraison (NP, NF, Date, Qt, Tl)

    Dcomposition Fournisseur ProduitLivraison0-n 0-n

    VALIDATION

    Rgles

    Produit0-n 0-n

    Fournisseur

    Nom Adr. Nom TypeQtDate TelTel

    Livraison

    des relations

    incorrectesNORMALI-

    SATION

    0-n 0-n

    Nom Adr. Nom TypeQt DateTelTel

    Produit (NP, Nom, Type)

    Fournisseur (NF, Nom, Adr, Tl)

    Livraison (NP, NF, Date, Qt)

    TRADUCTION

  • Soit une relation R qui contient des redondances et pose des

    problmes lors des maj "Elle n'est pas normalise"

    Il faut la dcomposer en plusieurs relations meilleures

    ("normalises")

    par projection

    en suivant les DF

    Normalisation par dcomposition

    en suivant les DF

    - cela assure d'obtenir des relations normalises.

    Il faut s'assurer de conserver le mme contenu La jointure des

    nouvelles relations = R

  • Normalisation par dcompositionNormalisation par dcomposition (2)

    R (A1, A2, , An)

    R1 = [A1, A2, Ai] RR2 = [Ai, Ai+1, Aj] R.

    Rk = [Al, Al+1, An] R

    Les requtes sur R et celles sur la nouvelle BD donneront toujours le mme rsultat

    Si R = R1*R2* *Rkla dcomposition est sans perte d'information

  • Thorme de Heath

    THEOREME :R (X, Y, Z) est dcomposable sans perte dinformation en

    R1 = [X,Y]RR2 = [X,Z]R

    si la DF XY existesi la DF XY existe

    R1 est alors ncessairement normalise (en 3FN).

    Elle dcrit le fait lmentaire XY

    Les requtes poses sur R et celles poses sur R1*R2

    donnent le mme rsultat

  • Exemple : dcomposition sans perte d'info

    Zo

    Armand

    Marie

    Lausanne

    Genve

    Bienne

    secrtaire

    secrtaire

    directeur

    27

    32

    38

    R (NomEmp, adresse, poste, age)

    R1 (NomEmp, adresse, poste) R2 (NomEmp, age)

    Zo

    Armand

    Marie

    Lausanne

    Genve

    Bienne

    secrtaire

    secrtaire

    directeur

    Zo

    Armand

    Marie

    27

    32

    38

    R = R1*R2NB Cette dcomposition est sans perte d'information, mais inutile

  • Exemple : dcomposition avec perte d'info

    R1' (NomEmp, adresse, poste) R2' (poste, age)

    Zo

    Armand

    Marie

    Lausanne

    Genve

    Bienne

    secrtaire

    secrtaire

    directeur

    secrtaire

    secrtaire

    directeur

    27

    32

    38

    R1' * R2'

    ZoZo

    Armand

    LausanneLausanneGenve

    secrtairesecrtairesecrtaire

    27322732secrtaireGenveArmand38directeurBienneMarie

    R

  • Application de Heath

    LivraisonTot (Nf, adrF, Np, typeP, qt)

    Nf Np

    Nf adrF => R1 (Nf, adrF) ok

    LivraisonTot' (Nf, Np, typeP, qt)

    Np typeP => R2 (Np, typeP) ok

    LivraisonTot'' (Np, Nf, qt)

    (Np, Nf) qt =>

    LivraisonTot'' (Np, Nf, qt) ok

    adrF qt typeP

  • Qualit dune dcomposition

    Une bonne dcomposition est une dcomposition

    1) sans perte dinformation

    2) sans perte de DF

    3) qui produit des relations meilleures (mieux normalises)

    Sans perte de DF :

    Toute DF doit tre dans lune des relations obtenues par

    dcomposition

    Une DF ayant comme source un identifiant sera automatiquement

    vrifie par le SGBD

    Une DF perdue => une contrainte d'intgrit implicite => le SGBD ne

    peut pas la vrifier

  • Formes normales : 1FN

    Une relation est en 1FN si chaque valeur de chaque attribut

    de chaque tuple est une valeur simple (tous les attributs sont

    simples et monovalus).

    Exemple :

    LivraisonTot (Nf, adrF, Np, typeP, qt)LivraisonTot (Nf, adrF, Np, typeP, qt)

    est en 1FN

    Pratiquement, en relationnel on ne travaille que sur des

    relations en 1FN

  • 2me forme normale : 2FN

    Permet dliminer les attributs qui ne dcrivent paslobjet reprsent par la relation

    Nf Np

    LivraisonTot (Nf, adrF, Np, typeP, qt)

    Livraison mlange la description :

    - de la livraison cumule ( Nf, Np, quantit)

    - du fournisseur ( Nf, adresse)

    - du produit ( Np, type)

    Nf Np

    adrF qt typeP

  • 2me forme normale : dfinition

    LivraisonTot (Nf, adrF, Np, typeP, qt)

    Nf Np

    Des DF partent de composants de lidentifiant => Livraison nest pas en 2FN

    Dfinition : une relation est en 2FN si

    - elle est en 1FN, et

    - chaque attribut qui ne fait pas partie de lidentifiant dpend dun identifiant

    entier

    adrF qt typeP

  • Dcomposition selon les DF

    l Pour chaque source de DF crer une relation comprenant :

    la source

    et tous les attributs cibles de DF ayant cette source

    Nf Np

    adrF qt typeP

    R3

    R1 (Nf, adrF)R2 (Np, typeP)R3 (Nf, Np, qt)

  • 3FN : 3me forme normale

    Permet dliminer des sous-relations incluses dans une relation

    Exemple : Fournisseur (Nfourn, ville, pays)

    Nfourn

    ville pays

    doit tre dcompose en :F (Nfourn, ville)G (ville, pays)

    Nfourn

    ville pays

  • 3me forme normale : dfinition

    Fournisseur (Nfourn, ville, pays)

    Nfourn

    ville pays

    Profondeur de larbre des DF > 1 => Fournisseur n'est pas en 3FN

    Dfinition : Une relation est en 3FN si

    - elle est en 1FN, et

    - chaque attribut qui ne fait partie daucun identifiant dpend

    directement dun identifiant entier

    ville pays

  • Importance de la 3FN

    Toute relation peut toujours tre dcompose en

    relations en 3FN sans aucune perte

    sans perte de DF, et

    sans perte d'informationsans perte d'information

    Ce n'est pas vrai pour les formes suprieures

    Il faut donc toujours faire des schmas au moins

    en 3FN

  • Forme normale de Boyce-Codd

    Gnralise la 3FN aux relations plusieurs identifiants

    Fournisseur (Nfourn, nom-fourn, Nproduit, prix)

    avec 2 identifiants :

    - (Nfourn +Nproduit)- (Nfourn +Nproduit)

    - (nom-fourn + Nproduit)

    - 3NF

    - Mais des redondances : Nfourn et nom-fourn

    Dfinition : Une relation est en FNBC si :

    - elle est en 1FN, et

    - si toute source complte de DF est un identifiant entier

  • FNBC - exemple : Fournisseur

    l Fournisseur (Nfourn, nom-fourn, Nproduit, prix)

    Nfourn nom-fourn

    Nproduitprix (2 graphes possibles)

    Identifiants : (Nfourn + Nproduit)

    (nomfourn + Nproduit)

    Fournisseur est en 3FN mais pas en FNBC

    On doit dcomposer pour obtenir des relations en FNBC

    Attention : Ce passage en FNBC nest pas toujours possible sans

    perte de dpendances

  • Dcompostion de Fournisseur

    Fournisseur (Nfourn, nom-fourn, Nproduit, prix)

    F2

    F1

    F1 (Nfourn, nom-fourn) avec 2 identifiantsF2 (Nfourn, Nproduit, prix)

    ou (si l'on prend l'autre graphe des DF)

    F1 (Nfourn, nom-fourn) avec 2 identifiantsF2 (nom-fourn, Nproduit, prix)

  • FNBC - exemple : Place

    NEtud Matire

    Rang

    l Place (NEtud, Matire, Rang)rang sans ex aequo

    2 identifiants : (NEtud + Matire)

    (Rang + Matire)

    Place est en 3FN et est en FNBC

  • FNBC contre-exemple

    Enseignement (NEtud, Matire, Prof)

    NEtud Matire

    ProfProf

    l 2 identifiants : (NEtud + Matire)(NEtud + Prof)

    l Enseignement est en 3FN mais nest pas en FNBC

  • Dcomposition de Enseignement

    Enseignement (NEtud, Matire, Prof)

    La dcomposition selon Heath :

    R1 (Prof, Matire) R2 (Prof, NEtud)

    est sans perte dinformation

    mais avec perte de la DF (NEtud, Matire)Profmais avec perte de la DF (NEtud, Matire)Prof

    On peut insrer des tuples qui transgressent la DF

    INSERT INTO R1 : (Rochat, BD)

    INSERT INTO R1 : (Walis, BD)

    INSERT INTO R2 : (Rochat, 12345)

    INSERT INTO R2 : (Walis, 12345)

  • Enseignement : 2 solutions

    Solution 1

    Enseignement (NEtud, Prof, Matire)

    avec la CI : un prof n'enseigne qu'une seule matire

    Solution 2

    R1 (Prof, Matire)R1 (Prof, Matire)

    R2 (Prof, NEtud)

    avec la CI : un tudiant suit une matire donne avec un seul

    prof

    Pas de solution idale

    La solution 1 est prfrable

    elle gnre moins de jointures lors des requtes

    la CI est mono-relation