Você está na página 1de 60

Thorie des bases de

donnes

Systme de Gestion de fichier


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)
 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 : ANSISPARC

Architecture fonctionnelle d'un SGBD : ANSISPARC

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.

Les redondances
Une autre redondance est lie la correspondance Marque,
Type, CV

Pour chaque propritaire ayant une R25, il faudra saisir la marque


et la puissance.
De plus, un mme vhicule peut passer entre les mains de
plusieurs propritaires. Il faudra alors saisir toutes ces
caractristiques lorsquil changera de mains.

Le dictionnaire de donnes
On appelle dictionnaire des donnes, la liste des informations que le systme
informatique doit acqurir et mmoriser pour produire les rsultats escompts.
Il s'agit de recenser les diffrentes donnes, en sachant que l'on distingue 3 types
de 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..
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

Rgles d'Amstrong
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.
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.

Rgles d'Amstrong
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
X-->Y, WY-->Z alors XW-->Z.
f) Dcomposition
X-->Y alors X-->Z si Z est inclus dans Y.

Dpendances multivalues

Dpendances fonctionnelles
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
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

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

Graphe des dpendances fonctionnelles

Graphe des dpendances fonctionnelles


Cl minimale
Un ensemble dattributs X de R est une cl minimale de R muni de lensemble de
dpendances fonctionnelles F si et seulement si X est une cl et si tout sous-ensemble
strict 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 :
Numro est un attribut cl
Numro
Anne
Numro seulement ne peut pas jouer le rle dune cl minimale
Code-edit est un attribut cl
Code-edit
Anne
Code-edit seulement ne peut pas jouer le rle dune cl minimale
Code-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

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} ;
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.

Les contraintes
contraintes rfrentielles ou contraintes d'inclusion

Normalisation dun schma relationnel


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
- 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

Normalisation dun schma relationnel


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
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

Normalisation dun schma relationnel


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
suppressions)
Les conditions pour qu'une relation soit correcte peuvent tre
dfinies formellement :
=> rgles de normalisation

Normalisation dun schma relationnel


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
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.

Normalisation d'un schma logique


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
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.

Normalisation d'une relation


Processus de dcomposition d'une relation maj complexes en
plusieurs relations maj simples
Processus sur le schma relationnel formel
Exemple :
La relation LivraisonTot (Nf,
dcompose en :
LivraisonTot (Nf, Np, qt)
Fournisseur (Nf, adrF)
Produit (Np, typeP)

adrF,

Np, typeP, qt) sera

Exemple
Normalisation
d'une relation
Fournisseur

Fournisseur (NF, Nom, Adr)


Produit (NP, Nom, Type)
Livraison (NP, NF, Date, Qt, Tl)
Dcomposition
des relations
incorrectes

Nom

Adr.

0-n
Date Qt

Produit

0-n
Tel

Nom Type

VALIDATION
Rgles
Fournisseur

NORMALISATION

Livraison

Nom

Adr.

0-n
Tel

Livraison
Qt

0-n

Date

TRADUCTION

Produit (NP, Nom, Type)


Fournisseur (NF, Nom, Adr, Tl)
Livraison (NP, NF, Date, Qt)

Produit

Nom Type

Normalisation par dcomposition


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
- cela assure d'obtenir des relations normalises.
Il faut s'assurer de conserver le mme contenu La jointure des
nouvelles relations = R

Normalisationpar
pardcomposition
dcomposition(2)
Normalisation

R (A1, A2, , An)

R1 = [A1, A2, Ai] R


R2 = [Ai, Ai+1, Aj] R
.
Rk = [Al, Al+1, An] R

Si
R = R1*R2* *Rk
la dcomposition est sans perte d'information
Les requtes sur R et celles sur la nouvelle BD
donneront toujours le mme rsultat

Thorme de Heath
THEOREME :
R (X, Y, Z) est dcomposable sans perte dinformation en
R1 = [X,Y]R
R2 = [X,Z]R
si 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


R (NomEmp, adresse, poste, age)
Zo

Lausanne

secrtaire

27

Armand

Genve

secrtaire

32

Marie

Bienne

directeur

38

R1 (NomEmp, adresse, poste)


Zo
Armand
Marie

Lausanne
Genve
Bienne

secrtaire
secrtaire
directeur

R2 (NomEmp, age)
Zo
Armand
Marie

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

27
32
38

Exemple : dcomposition avec perte d'info


R1' (NomEmp, adresse, poste)

R2' (poste, age)

Zo

Lausanne

secrtaire

secrtaire

27

Armand

Genve

secrtaire

secrtaire

32

Marie

Bienne

directeur

directeur

38

R1' * R2'
Zo
Zo
Armand
Armand
Marie

Lausanne
Lausanne
Genve
Genve
Bienne

secrtaire
secrtaire
secrtaire
secrtaire
directeur

27
32
27
32
38

Application de Heath
LivraisonTot (Nf, adrF, Np, typeP, qt)
Nf
adrF

Np
qt

typeP

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

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)
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 pas


lobjet reprsent par la relation

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


Nf
adrF

Np
qt

Livraison mlange la description :


- de la livraison cumule ( Nf, Np, quantit)
- du fournisseur ( Nf, adresse)
- du produit ( Np, type)

typeP

2me forme normale : dfinition


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

Np
qt

typeP

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

Dcomposition selon les DF

Pour chaque source de DF crer une relation comprenant :


la source
et tous les attributs cibles de DF ayant cette source

Nf
adrF

Np
qt
R3

typeP

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
Nfourn

doit tre dcompose en :


F (Nfourn, ville)
G (ville, pays)

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

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'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)
- (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
Nproduit

nom-fourn
prix
(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)


F1

F2


F1 (Nfourn, nom-fourn) avec 2 identifiants


F2 (Nfourn, Nproduit, prix)
ou (si l'on prend l'autre graphe des DF)


F1 (Nfourn, nom-fourn) avec 2 identifiants


F2 (nom-fourn, Nproduit, prix)

FNBC - exemple : Place


l

Place (NEtud, Matire, Rang)


rang sans ex aequo

NEtud

Matire
Rang

2 identifiants : (NEtud + Matire)


(Rang + Matire)
Place est en 3FN et est en FNBC

FNBC contre-exemple

Enseignement (NEtud, Matire, Prof)


NEtud

Matire
Prof

2 identifiants : (NEtud + Matire)


(NEtud + Prof)
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)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)
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

Você também pode gostar