23
Conception Des Bases De Données Najib Tounsi Ecole Mohammadia d'Ingénieurs, Rabat Année 2010/2011 2e année Génie Informatique http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys /ConceptionRelations/algoSynthDecomp.html La Conception de Relations http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 1 of 23

Conception Des Bases De Données

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conception Des Bases De Données

Conception Des Bases DeDonnées

Najib TounsiEcole Mohammadia d'Ingénieurs, Rabat

Année 2010/20112e année Génie Informatiquehttp://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/ConceptionRelations/algoSynthDecomp.html

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 1 of 23

Page 2: Conception Des Bases De Données

Méthodes de Conception

Deux classes de méthodes

Classiques:Basées sur les attributs et les dépendancesfonctionelles/multivaluées

Plus récentes:Par transformation de modèle (Entité/Association ouObjet)

On s'intéressera à la transformation E/A ➠ Rel. Plussimple pour un résultat identique.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 2 of 23

Page 3: Conception Des Bases De Données

Méthodes classiques:

Données: U et F , resp. ensemble d'attributs et dedépendances fonctionnelles

Résultat: Schéma de relations en 3FN (ou BCFN)

Algorithmes mis au point et éprouvésS'inspire de la théorie de normalisation (plus formelle)S'applique aux cas:

fichiers existantscollecte de données de base et règles de gestion...

Deux approches: Synthèse ou Décomposition

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 3 of 23

Page 4: Conception Des Bases De Données

Méthodes plus récentes:Données: Schéma conceptuel de données (modèlesEntités/Associations)

Résultat: Schéma de relations en 3FN

Analyse des données plus abstraite (différents niveauxd'analyse)Schéma de relations obtenu par transformation demodèleS'applique aux méthodes d'analyse générales:

MERISEObjets...

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 4 of 23

Page 5: Conception Des Bases De Données

Algorithme de Synthèse

Résumé informel

Trouver U et FUtilisateur/concepteur, longue phase

I.

Réduction de FElimination des dépendances "redondantes"(déductibles des autres).A la main ou par programme.

Résultat: Couverture minimale de F

II.

Trouver les clés (pas toujours nécessaireIII.Combiner les DFs ayant même partie gauche

Relation avec sa cléIV.

Ajouter relation clé (le cas échéant)V.Eliminer relations contenues dans d'autres (le caséchéant).

VI.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 5 of 23

Page 6: Conception Des Bases De Données

Algorithme Détaillé

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 6 of 23

Page 7: Conception Des Bases De Données

U et F trouvés parailleurs

Analyse des documents, dictionnaire d'informations, règles de gestion, etc.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 7 of 23

Page 8: Conception Des Bases De Données

Réduction de F (préliminaires)

X Y Z désignent un (ou collection) attribut,A B C désignent un attribut

Un seul attribut en partie droite

X → A1A2 ... An ⇔X → A1

X → A2...

X → An

Notion de fermeture transitive d'un attribut (oucollection) X.

Définition

La fermeture transitive X+ de X est

l'ensemble des attributs A de U tel que:

X → A est déduite de F

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 8 of 23

Page 9: Conception Des Bases De Données

Réduction de F (calculde fermeture transitivede X)

Soit X0 = X et n=0;i.Si existe une DF Y → A, avec Y ⊂ X et A∉Xn

alors, ajouter A à Xn pour former Xn+1 ii.

Incrémenter n de 1 et répéter ii. jusqu'à ce qu'il n'y aitplus d'attributs à rajouter à Xn.

iii.

La fermeture transitive X+ = Xn+1 = Xniv.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 9 of 23

Page 10: Conception Des Bases De Données

Réduction de F (Exemple :-) de calcul)

U = {nom, ville, rue, grade, dateVersemant,montantVersé, diplôme}

F = { nom → ville, rue, grade nom, dateVersemant → montantVersé diplôme → grade}

Soit X0 = {nom, dateVersemant}. (Trouver tous lesattributs fonctionnellement dépendant de nom et dateVersemant)X1 = {nom, dateVersement, ville, rue, grade} d'après 1èreDFX2 = {nom, dateVersement, ville, rue, grade,montantVersé} d'après 2ème DFX3 = X2 , il n'existe aucun attribut déterminée par nomet dateVersemant et qui n'est pas déjà dans X2 X+ = X2 = {nom, dateVersement, ville, rue, grade,montantVersé}Fin

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 10 of 23

Page 11: Conception Des Bases De Données

Réduction de F (algorithme)

Elimination dans F des DFs redondantes(déductibles)

Prendre tour à tour chaque DF ∈ F . Soit X → Y unetelle DF

i.

Considérer A = F sans {X → Y}, et calculer X+ en

utilisant A

ii.

Si Y ∈ X+ alors X → Y est bien redondante (peut être

deduite des autres DF de F ).

iii.

Donc on peut réduire F à A . Reprendre en i.iv.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 11 of 23

Page 12: Conception Des Bases De Données

Réduction de F (exemple :-) )

U = {cmptPatient#, médicament, docteur, patient }

F = { cmptPatient# → patient patient → docteur cmptPatient#, médicament → docteur}

Considérons la DF cmptPatient#, médicament → docteurX = X0 = {cmptPatient#, médicament}Examinons les deux 1ères DFs (ensemble réduit)X1 = {cmptPatient#, médicament, patient} d'après 1èreDF .X2 = {cmptPatient#, médicament, patient, docteur} d'après 2ème DFX+ = X2

docteur ∈ X+ , d'où la DF cmptPatient#, médicament → docteur peut être

éliminée de F

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 12 of 23

Page 13: Conception Des Bases De Données

Réduction de F (couverture minimale )Minimalité des parties gauches des DFs de

F (cf. 2FN)

Si on a A B C → D, est-ce qu'on peut avoir seulement AB → D (par exemple)?

Calculer AB + en utilisant F .Si D ∈ AB + alors on peut remplacer A B C → D par AB → D

i.

Répéter i. pour chaque attribut de partie gauche de

chaque DF de F

ii.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 13 of 23

Page 14: Conception Des Bases De Données

Réduction de F (couverture minimale )Exemple

Soit: nom , matricule → prénom matricule → nom

On a

prénom ∈ matricule+.

Donc on garde seulement

matricule → prénom matricule → nom

Définition

On appelle couverture minimale de F ,

F initial réduit des DFs redondantes et oùchaque DF restante est minimale pour sapartie gauche.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 14 of 23

Page 15: Conception Des Bases De Données

Recherche des ClésChercher les attributs devant constituer lesclés des relations finales trouvées.

Rappel: une cléAttribut (ou collection) X qui, dans une relation,détermine tous les autres attributs. Unicité.

i.

Aucune partie de X n'a cette propriété. Minimalitéii.Idée

Si un attribut A n'est jamais en partie gauche

d'une DF (de F ) , alors A n'est dans aucune clé.Si un attribut A n'est jamais en partie droite d'une

DF, alors A est dans toute clé (de U )

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 15 of 23

Page 16: Conception Des Bases De Données

Recherche des Clés(exemples)

U = {cmptPatient#, médicament, docteur, patient, qté }

F = { cmptPatient# → patient patient → docteur cmptPatient#, médicament → qté}

Alors cmptPatient# et médicament sont dans toute clé de

U docteur et qté dans aucune clé

F = {matricule → nom matricule → prénom matricule → dateNaissance nom , prénom →matricule

Alors dateNaissance dans aucune cléAvec les fermetures transitives, on peut montrer que

matricule est clénom n'est pas cléprénom n'est pas clénom , prénom est clé

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 16 of 23

Page 17: Conception Des Bases De Données

Dernière Etape.Grouper les DFs ayant même partie gaucheFaire une relation pour chaque groupe ainsi obtenu(partie gauche = clé)Rajouter relation clé, si nécessaire (voir exemple)Eliminer relation ayant un schéma inclus dans uneautre [avec même signification].

Résultat

Le résultat ainsi obtenu est en 3FN avec lapropriété de jointure sans perte et quipréserve les dépendances.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 17 of 23

Page 18: Conception Des Bases De Données

Exemple :-)Exemple récapitulatif. (PDF)

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 18 of 23

Page 19: Conception Des Bases De Données

Méthodes de ConceptionAlgorithme de Décomposition

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 19 of 23

Page 20: Conception Des Bases De Données

Algorithme deDécomposition

S'inspire de la méthode de passage 1FN ... 3FN

On part de U et FSi U est n'est pas en 3FN, on décompose en deux.L'une des relaltions est en 3FN. On reprend 2. pourl'autre.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 20 of 23

Page 21: Conception Des Bases De Données

Algorithme deDécompositionPrésentation moins formelle:

U = {emp#, nom, date, salaire, dept, mgr}F = { emp# → nom, dept, mgr dept → mgr emp#, date → salaire } supposé réduit.

On considère dept → mgr. On obtient:Departement (dept, mgr) en 3FN et BCFN Employes (emp#, nom, date, salaire, dept) n'est pasen 2FN. On considère emp# → nom, dept On obtient: Employes (emp# , nom, dept) en BCFN et Hist-Sal (emp# , date , salaire)en BCFN. Stop

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 21 of 23

Page 22: Conception Des Bases De Données

Algorithme deDécomposition

Exemple complet.

Exemple récapitulatif. (PDF)

L'algorithme de décomposition peut tenir compte desdépendances multivaluées. Ici on a C ->> H S| P G Eet on peut donc décomposer d'abord selon cette DMVet ensuite selon les DFs

Résultat

Il existe des méthodes qui préservent lesdépendances et aboutissent à la 3FN.

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 22 of 23

Page 23: Conception Des Bases De Données

That's all folks

La Conception de Relations

http://www.emi.ac.ma/~ntounsi/COURS/DB/Polys/Conce... 23 of 23