Documente Academic
Documente Profesional
Documente Cultură
Bibliographie (1)
"Matriser les bases de donnes - Modles et langages"
Georges Gardarin, Eyrolles, 1993
"Bases de donnes : Les systmes et leurs langages"
Georges Gardarin, Eyrolles, 1992
"L'art des bases de donnes : Introduction aux bases de donnes"
Serge Miranda, Jos-Maria Busta, Eyrolles, 1992
"Bases de donnes et systmes relationnels"
Claude Delobel, Michel Adiba, Dunod, 1982
"Le Client-Serveur"
Georges et Olivier Gardarin, Eyrolles, 1996
"ORACLE et le Web"
Didier Delglise, Eyrolles, 1998
"Internet / Intranet et bases de donnes"
Georges Gardarin, Eyrolles, 1999
IUP Informatique & Statistique
DEUG
Michle Raphalen
2
Bibliographie (2)
"Introduction au standard SQL"
Chris Date, InterEditions, 1989
"ORACLE 7 : langages, architecture, administration"
A. Abdellatif, M. Limane, A. Zeroual, Eyrolles, 1995
"ORACLE : A beginners guide"
M. Abbey, M. J. Corey, McGraw-Hill, 1995
"ORACLE 8 : Utilisation & administration Guide de formation"
R. Chapuis, Dunes & Laser, 1999
"ORACLE Essentials Oracle 8 & Oracle 8i"
R. Greenwald, R. Stackoviak, J. Stern, OReilly, 1999
Michle Raphalen
3
Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes
Michle Raphalen
4
Prsentation gnrale
Ensemble de donnes modlisant les entits du monde rel,
Michle Raphalen
5
multi-utilisateurs
Michle Raphalen
6
Contrle du partage
4
4
Michle Raphalen
7
Michle Raphalen
8
Organisation
logique
Schma
conceptuel
Organisation
physique
Administrateurs
Schma
interne
Michle Raphalen
9
modle entit/association
4
4
produit
fournisseur
Numro
Nom
Lieu de
rsidence
IUP Informatique & Statistique
DEUG
commande
0,n
0,n
quantit
Numro
Nom
Lieu de
stockage
Michle Raphalen
10
Niveau externe
4
Michle Raphalen
11
SGBD : Dictionnaire
description des diffrents schmas
4
4
4
interne
conceptuel
externe
procdures de passage
4
4
Michle Raphalen
12
SGBD : Objectifs
indpendance physique / logique
manipulation aise par des non informaticiens
efficacit des accs aux donnes
redondance limite des donnes
cohrence des donnes
partage des donnes
scurit des donnes
administration cohrente des donnes
Michle Raphalen
13
orient objet
4
dductif, ...
Michle Raphalen
14
fournisseur
Numro
Nom
Lieu de
rsidence
commande
0,n
Numro
Nom
Lieu de
stockage
0,n
quantit
Michle Raphalen
15
crou
Nice
p2
boulon
Paris
f2
Durand
Paris
300
f3
Martin
Rennes
600
f1
Dupont
Nice
300
f1
Dupont
Nice
20
Problmes
4
4
4
Michle Raphalen
16
fournisseur
noProduit
nomProduit
lieuStock
noFournisseur
nomFournisseur
lieuRsidence
p1
crou
Nice
f1
Dupont
Nice
p2
boulon
Paris
f2
Durand
Paris
f3
Martin
Rennes
commande
noProduit noFournisseur
quantit
p1
f1
300
p1
f2
300
p2
f1
20
p2
f3
600
Modle d Codd,
facilite limplantation du schma conceptuel,
bonne indpendance donnes/traitement,
limite les redondances
Michle Raphalen
17
Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes
Michle Raphalen
18
Modle Relationnel
indpendance logique/physique
traitement des problmes de cohrence et de redondance des
donnes
dveloppement de LMD et LDD
4
4
Michle Raphalen
19
Dfinitions (1)
Domaine
4
Michle Raphalen
20
10
Dfinitions (2)
relation n-aire
4
Soit D1, D2, ..., Di, ..., Dn des domaines, non ncessairement disjoints.
Une relation n-aire R dfinie sur D1, D2, ..., Di, ..., Dn est un sousensemble de PDi.
Elle peut se reprsenter en table :
A1
A2
Ai
Ai : attribut
An
a1
a2
ai
an
Michle Raphalen
21
Dfinitions (3)
Schma / structure de relation
4
@
commande (noFournisseur : chane, noProduit : chane, quantit : entier, dateCommande : date)
Cl de relation
4
Michle Raphalen
22
11
lors de l'insertion de tuples dans une relation, certains attributs ne sont pas
renseigns. On introduit alors une valeur conventionnelle, note NULL.
les valeurs des attributs de cl sont forcment renseignes.
(contrainte : NOT NULL)
Michle Raphalen
23
les attributs dans une relation font rfrence des attributs d'une ou
plusieurs autres relations.
fournisseur
produit
noProduit
nomProduit
lieuStock
p1
crou
Nice
p2
boulon
Paris
noFournisseur
nomFournisseur
lieuRsidence
f1
Dupont
Nice
f2
Durand
Paris
f3
Martin
Rennes
commande
p1
f1
300
p1
f2
300
p2
f1
20
p2
f3
600
Michle Raphalen
24
12
Michle Raphalen
25
Algbre relationnelle
Oprateurs ensemblistes
Oprateurs relationnels
8 union
8 projection
8 diffrence
8 restriction / slection
8 intersection
8 jointure
8 produit cartsien
8 jointure naturelle
8 jointure externe
8 division
Michle Raphalen
26
13
Michle Raphalen
27
Michle Raphalen
28
14
Michle Raphalen
29
Michle Raphalen
30
15
Michle Raphalen
31
Michle Raphalen
32
16
Michle Raphalen
33
Michle Raphalen
34
17
Michle Raphalen
35
R1 [|X1/X2|] R2 (Y1)
R1 [|X1/X2|] R2 = {t1R1 [Y1] / " t2R2[X2], (t1, t2)R1 (X1, Y1)}
Le plus souvent, X1 et X2 sont identiques et on note
R1 R2 = R1 [|X1/X1|] R2 [X2]
IUP Informatique & Statistique
DEUG
Michle Raphalen
36
18
Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes
Michle Raphalen
37
Dcomposition
Problme du concepteur de base
Michle Raphalen
38
19
Dcomposition : exemple 1
Univers R (U)
noProduit nomProduit lieuStock noFournisseur nomFournisseur lieuRsidence
quantit
p1
crou
Nice
f1
Dupont
Nice
300
p1
crou
Nice
f2
Durand
Paris
300
p2
boulon
Paris
f1
Dupont
Nice
20
p2
boulon
Paris
f3
Martin
Rennes
600
p3
vis
Vannes
f4
Petit
Nantes
Dcomposition Ri (Ui)
noFournisseur nomFournisseur lieuRsidence
f1
Dupont
Nice
f2
Durand
Paris
f3
Martin
Rennes
f4
Petit
Nantes
noProduit
noFournisseur
quantit
noProduit
nomProduit
lieuStock
p1
f1
300
p1
crou
Nice
p1
f2
300
p2
boulon
Paris
p2
f1
20
p3
vis
Nantes
p2
f3
600
Michle Raphalen
39
nom
capacit
localisation
100
A320
300
Toulouse
101
A320
300
Toulouse
102
A320
300
Paris
103
Trident
100
Toulouse
104
B727
250
Paris
105
B727
250
Paris
redondance logique
* (nom, capacit) apparat plusieurs fois.
anomalies de stockage
* impossible d'indiquer l'information qu'un
B747 a une capacit de 400 places sans
insrer un tuple dans la relation.
* si on augmente la capacit de l'Airbus, soit
on risque l'incohrence , soit il y a un surcot.
* si on supprime l'avion 103, on perd
l'information selon laquelle le Trident a une
capacit de 100 places.
Michle Raphalen
40
20
avion1
avion2
numro
nom
capacit
localisation
numro
nom
nom
capacit
localisation
100
A320
300
Toulouse
100
A320
A320
300
Toulouse
101
A320
300
Toulouse
101
A320
A320
300
Paris
102
A320
300
Paris
102
A320
Trident
100
Toulouse
103
Trident
100
Toulouse
103
Trident
B727
250
Paris
104
B727
250
Paris
104
B727
105
B727
250
Paris
105
B727
avion1 * avion2
numro
nom
capacit
localisation
100
A320
300
Toulouse
100
A320
300
Paris
..
...
...
...
Michle Raphalen
41
Dcomposition : principe
Smantique
des
donnes
Algorithme
de
dcomposition
Relation
universelle
R (U)
R1 (U1)
Rp (Up)
Ensemble de relations
Michle Raphalen
42
21
Dcomposition : dfinitions
dcomposition
4
Remplacement d'une relation R(U) (U = {A1, A2, ..., Ai, An}) par une
collection de relations R1 (U1) ... Ri (Ui)... Rp (Up) (Ui U et Ui = U)
obtenues par des projections de R et telles que la relation rsultant des
jointures ait mme schma que R.
Dcomposition d'une relation R (A1, A2, ..., Ai, An) telle que
R = R1 * ... * Ri *... * Rp
Michle Raphalen
43
Michle Raphalen
44
22
schma conceptuel
Michle Raphalen
45
numro
type
marque
couleur
puissance
Graphe des df
Michle Raphalen
46
23
union
Y X => X -> Y
augmentation
pseudo-transitivit
=>
transitivit
dcomposition
Michle Raphalen
47
Cls de relation
Soit <R (U), F> une relation et K U. On dit que K est une cl de la
relation ssi K -> U est une dfe.
Une relation peut avoir plusieurs cls.
Michle Raphalen
48
24
Michle Raphalen
49
Exemple
4
R (A, B, C)
AF = ABC
+
F = {A -> B, B -> C }
BF+ = BC
CF+ = C
ABF+ = ABC
Michle Raphalen
50
25
dbut
XF+ := X ; // dpendances triviales
rpter
Exemple :
Xtmp := XF+ ;
pour chaque df Y -> Z de F faire
si Y XF+ alors
XF+
R (A, B, C, D, E)
F = {AB -> C, B -> D, CD -> E}
(AB) F+ = ABCDE
:= XF Z ; // transitivit
+
fsi
fpour
jusqu_ Xtmp = XF+ ou XF+ = U ;
fin
Michle Raphalen
51
Michle Raphalen
52
26
Ai : attribut
donne :
rsultat :
CM (F) / -
Michle Raphalen
53
dbut
F = {X1 -> Y1, X2 -> Y2, ..., Xm -> Ym}
/* rduction des membres dtermins un singleton */
pour chaque df Xi -> Yi de F faire
si Yi = A1A2...Ap alors
F := (F - {Xi -> Yi}) {Xi -> A1, Xi -> A2, ..., Xi -> Ap} ;
fsi
fpour
/* transformation des df en dfe */
pour chaque df Xi-> Ai de F faire
tantque $ Aj / Xi / (Xi - Aj)F+ = (Xi)F+ faire
Xi := Xi - Aj ;
ftantque
fpour
/* limination des df redondantes */
pour chaque df f de F faire
si (F - f)+ = F+ alors
F := F - f ;
fsi
fpour
fin
Michle Raphalen
54
27
Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes
Michle Raphalen
55
Dcomposition de relation
Comment dcomposer une relation en sous-relations
4conservation de linformation
4prservation des contraintes (df)
4minimisation des problmes de redondances
4suppression des problmes danomalies
Michle Raphalen
56
28
Dcomposition de relation
Validit dune dcomposition
Dfinition
4
et
R (U) = * Ri (Ui)
Proposition
4
Michle Raphalen
57
Dcomposition de relation
Algorithme de validit dune dcomposition
donne :
rsultat :
<R(U), F>, {<R1(U1), F1>, ..., <Rk(Uk), Fk>}, U = {A1, A2, ..., An}
valide : boolen
dbut
initialiser un tableau T(k,n) tel que tij :=
aj si Aj Ui
bij sinon
tantque T varie et aucune ligne ne comporte que des 'ai' faire
pour chaque df X -> Y de F faire
pour toutes les lignes de T o il y a galit sur X,
la reporter sur Y en privilgiant les 'ai' ;
fpour
ftantque
La validit dune dcomposition
valide := <<T comporte une ligne de 'ai'>> ; permet la conservation de linformation.
Elle nassure pas forcment la
fin
prservation des df.
Michle Raphalen
58
29
Dcomposition de relation
Prservation des dpendances
Dfinition
4
Limitation des contrles de cohrence effectus lors des modifications sur les tables.
IUP Informatique & Statistique
DEUG
Michle Raphalen
59
Dcomposition de relation
Formes normales (1)
Premire forme normale (1NF)
4
Une relation R (U) est en 1NF si tout attribut de U contient une valeur
atomique.
Les domaines ne peuvent pas correspondre des types structurs ou
composs (ensembles).
voiture
voiture
NB :
numro
refpropritaire
numro
propritaire
2567 TW 56
2567 TW 56
(Legros, Vannes, )
...
...
propritaire rfrence
nom
adresse
Legros
Vannes
...
Michle Raphalen
60
30
Dcomposition de relation
Formes normales (2)
Deuxime forme normale (2NF) - dfinition
4
Michle Raphalen
61
Dcomposition de relation
Formes normales (3)
Deuxime forme normale (2NF) - exemple
fournisseur (num, article, adresse, prix)
F = {(num, article) -> prix, num -> adresse}
adresse nest pas membre de la cl, et adresse dpend dune partie de la cl :
fournisseur nest pas en 2NF.
Solution :
(1NF -> isolement des dpendances partielles sur les cls primaires -> 2NF).
Michle Raphalen
62
31
Dcomposition de relation
Formes normales (4)
Troisime forme normale (3NF) - dfinition
4
Michle Raphalen
63
Dcomposition de relation
Formes normales (5)
Troisime forme normale (3NF) - exemple
fournisseur (num, adresse, frais)
F = {num -> adresse, adresse -> frais}
num est cl unique ;
adresse nest pas membre de cl, ni frais
adresse -> frais : pas en 3NF
Solution :
Michle Raphalen
64
32
Dcomposition de relation
Formes normales (7)
Troisime forme normale (3NF)
4
Exemple
R (dpartement, ville, CP)
F = { (dpartement, ville) -> CP, CP -> dpartement}
cls : (ville, dpartement), (ville, CP)
R est en 3NF.
Michle Raphalen
65
Dcomposition de relation
Formes normales (8)
Remarques
4
On est parfois amen " dnormaliser " en fonction des traitements raliser,
et donc des frquences d'accs aux donnes.
En 3NF " simple ", on n'a pas forcment limin tous les problmes de
redondance de donnes. Une forme particulire de la 3NF permet
quelquefois de les minimiser : forme normale de Boyce-Codd (BCNF).
Michle Raphalen
66
33
Dcomposition de relation
Formes normales (9)
Forme normale de Boyce-Codd (BCNF)
4
Une relation est en BCNF ssi les seules df(e) sont celles dans
lesquelles une cl dtermine un attribut.
Proprits
une relation < R (U), F> en 3NF qui nadmet quune seule cl est en BCNF
une relation < R (U), F> munie dune seule df X -> Y avec U = XY est en BCNF
Michle Raphalen
67
Dcomposition de relation
Algorithme de dcomposition en 3NF (Bernstein)
Bernstein (Donne : <R (U), F>, Rsultat : S = { <Ri (Ui) , Fi> en 3NF})
dbut
dterminer un ensemble CM (F) ;
regrouper les df X -> Ai (1 < i < p) ayant mme membre dterminant ;
S := ;
pour chaque df X -> A1 ... Ap de F faire
S := S {<RX (X, A1, ..., Ap), FX = {X -> Ai, i = 1, p}>} ;
fpour
si aucune des relations RX ne contient de cl de <R (U), F> alors
S := S {<RK (K), FK = >} o K est cl de <R (U), F> ;
fsi
fin
L algorithme prsent ici conduit une dcomposition valide de la relation dcomposer.
Michle Raphalen
68
34
Dcomposition de relation
Algorithme de dcomposition en BCNF
BCNF (Donne : <R (U), F>, Rsultat : S = { <Ri (Ui) , Fi> en BCNF})
dbut
schma <- ;
BCNF (<R (U), F>, schma) ;
L algorithme prsent ici conduit une dcomposition valide de la relation dcomposer.
Michle Raphalen
69
35