Vous êtes sur la page 1sur 35

IUP Informatique & Statistique - Vannes

Universit de Bretagne Sud / UFR SSI

Bases de donnes relationnelles


DEUG
Michle Raphalen
fvrier 2001

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

Bases de donnes relationnelles

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
3

Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
4

Prsentation gnrale
Ensemble de donnes modlisant les entits du monde rel,

ou des associations entre ces entits, et servant de support des


applications informatiques.

Les donnes sont non indpendantes, elles doivent tre interrogeables


par leur contenu :
4 Possibilit d'interroger les donnes selon diffrents critres.
On doit pouvoir retrouver la structure des donnes (type, contraintes, ...)
et leur appliquer des traitements.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
5

Systme de Gestion de Bases de Donnes


SGBD (1)
Systme permettant de grer une grande masse d'information
4
4
4
4

stockage en mmoire secondaire : persistance des donnes


traitement des donnes
recherche efficace de donnes spcifiques
mises jour : insertion, suppression, modification

Systme permettant de partager une grande masse d'information


4

multi-utilisateurs

{Donnes} + {Traitements} + {Utilisateurs}


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
6

Systme de Gestion de Bases de Donnes


SGBD (2)
Intgrit des donnes
4
4
4

rduction des redondances


limination des incohrences
maintien de la base dans un tat cohrent : transaction

Contrle du partage
4
4

dfinition des droits d'accs aux donnes


mcanismes de lecture consistante

Indpendance Organisation Logique / Organisation Physique


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
7

SGBD : Architecture (1)


Description des donnes de manire indpendante des
traitements.
4
4

plusieurs niveaux de description des donnes grs par le SGBD


abstraction progressive des donnes sur disque pour s'approcher de la
vision particulire de chaque utilisateur.

Norme ANSI / X3 / SPARC


4
4
4

niveau interne ou physique


niveau conceptuel
niveau externe

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
8

SGBD : Architecture (2)


Schmas externes
Utilisateurs

Organisation
logique
Schma
conceptuel
Organisation
physique

Administrateurs

Schma
interne

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
9

SGBD : Architecture (3)


Niveau conceptuel

structure des donnes dans l'entreprise, sans souci d'implantation en


machine
intgration des vues de tous les groupes de travail.
description des donnes (lmentaires et composes) qui dfinissent les
entits du monde rel et les liens entre ces entits.
dfinition des rgles rgissant les objets

modle entit/association

4
4

produit

fournisseur
Numro
Nom
Lieu de
rsidence
IUP Informatique & Statistique
DEUG

commande
0,n

0,n

quantit

Bases de donnes relationnelles

Numro
Nom
Lieu de
stockage
Michle Raphalen
10

SGBD : Architecture (4)


Niveau interne
4
4
4
4

structure de stockage supportant les donnes


fichiers (nom, organisation, ...)
articles des fichiers (longueur, champs/attributs, ...)
chemins d'accs aux articles (chanages, index, ...)

Niveau externe
4

description des donnes perues par les utilisateurs, effectue de la


manire dont ils les voient dans leurs programmes d'application.
un groupe de travail ne peut accder qu'aux donnes dcrites dans son
schma externe.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
11

SGBD : Dictionnaire
description des diffrents schmas
4
4
4

interne
conceptuel
externe

procdures de passage
4
4

conceptuel <-> interne


conceptuel <-> externe

description des utilisateurs


4

appartenance un groupe, privilges

droits d'accs aux donnes


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
13

SGBD : Modles et systmes


hirarchique, rseau
relationnel, relationnel tendu
4

Oracle, Access, DB2, Informix, Sybase, SQL Server

orient objet
4

O2, Postgres, Gemstone, (Oracle 8 & 8i)

dductif, ...

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
14

SGBD : Exemple (1)


Une entreprise gre des produits identifis par
(noProduit, nomProduit, lieuStock)

Elle s'adresse des fournisseurs identifis par


(noFournisseur, nomFournisseur, lieuRsidence)

Une commande est passe un fournisseur, pour un produit


en une certaine quantit
produit

fournisseur
Numro
Nom
Lieu de
rsidence

commande
0,n

IUP Informatique & Statistique


DEUG

Numro
Nom
Lieu de
stockage

0,n

quantit

Bases de donnes relationnelles

Michle Raphalen
15

SGBD : Exemple (2)


Organisation hirarchique
p1

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

Que fournit f1 ? => coteux


Comment introduire un fournisseur qui ne fournit rien ?
Si un fournisseur fournit un seul produit (ex : f2), et que
l'on veut dtruire p1->f2, on perd l'information sur f2.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
16

SGBD : Exemple (3)


Organisation relationnelle
produit

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

IUP Informatique & Statistique


DEUG

Modle d Codd,
facilite limplantation du schma conceptuel,
bonne indpendance donnes/traitement,
limite les redondances

Bases de donnes relationnelles

Michle Raphalen
17

Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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

Langage de Manipulation de Donnes


Langage de Description de Donnes

modlisation et manipulation simples des donnes


standard pour la description et la manipulation de donnes

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
19

Dfinitions (1)
Domaine
4

Un domaine D est un ensemble dans lequel les donnes peuvent prendre


leur valeur, pouvant tre fini ou infini.

Produit cartsien de domaines


4

Soit {D1, D2, ..., Di, ..., Dn } un ensemble de domaines.


Le produit cartsien Di est dfini par :
D1 x D2 x... x Di x ... x Dn = { (a1, a2, ..., ai, ..., an) / "i, ai Di }

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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

Ai : chaque colonne dsigne un ensemble de


valeurs prises dans un domaine

a1

a2

ai

an

tuple {ai / ai Di}

dans une relation, 2 attributs ne peuvent avoir le mme nom.


deux attributs peuvent prendre leur valeur dans le mme domaine.
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
21

Dfinitions (3)
Schma / structure de relation
4

R (A1 : D1, A2 : D2, ..., Ai : Di, An : Dn) invariant.


commande (noFournisseur : chane, noProduit : chane, quantit : entier)

@
commande (noFournisseur : chane, noProduit : chane, quantit : entier, dateCommande : date)

Cl de relation
4

une cl est un ensemble minimal d'attributs permettant d'identifier de manire


unique un tuple de la relation
=> dans une relation, 2 tuples ne peuvent avoir les mmes valeurs pour les attributs
de la cl

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
22

11

Contraintes dintgrit (1)


Contrainte d'intgrit de domaine
4

les valeurs d'un attribut rpondent certains critres


salaire > 0,
valeur renseigne : NOT NULL,
...

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)

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
23

Contraintes dintgrit (2)


Contrainte d'intgrit rfrentielle
4

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

La suppression d'un fournisseur dans fournisseur


dclenche une alerte, si ce fournisseur apparat dans
commande.
L'ajout d'une ligne dans commande dclenche une
alerte, si le fournisseur n'est pas rfrenc dans
fournisseur.

p2

f3

600

fournisseur, produit : relations de rfrence.

noProduit noFournisseur quantit

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
24

12

Contraintes dintgrit (3)


Base de Donnes = [R, A, C]
R = {relations sur les attributs}
A = {attributs}
C = {contraintes d'intgrit}

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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

Notation : R (A1, A2, ..., Ai, An) relation n-aire


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
26

13

Algbre relationnelle : Union


R1 (A1, A2, ..., Ai, An) et R2 (A1, A2, ..., Ai, An)
R1 R2 (A1, A2, ..., Ai, An)
R1 R2 = {t = (a1, a2, ..., an) / t R1 ou t R2}
R1 et R2 : mmes schmas ou schmas compatibles

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
27

Algbre relationnelle : Diffrence


R1 (A1, A2, ..., Ai, An) et R2 (A1, A2, ..., Ai, An)
R1 - R2 (A1, A2, ..., Ai, An)
R1 - R2 = {t = (a1, a2, ..., an) / t R1 et t R2}
R1 et R2 : mmes schmas ou schmas compatibles

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
28

14

Algbre relationnelle : Intersection


R1 (A1, A2, ..., Ai, An) et R2 (A1, A2, ..., Ai, An)
R1 R2 = R1 - (R1 - R2)
R1 R2 (A1, A2, ..., Ai, An)
R1 R2 = {t = (a1, a2, ..., an) / t R1 et t R2}
R1 et R2 : mmes schmas ou schmas compatibles
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
29

Algbre relationnelle : Produit cartsien


R1 (A1, A2, ..., Ai, An) et R2 (A1, A2, ..., Aj, Ap)
R1 x R2 (A1, A2, ..., Ai, An, A1, A2, ..., Aj, Ap)
R1 x R2 = {t = (t1, t2) / t1 R1 et t2 R2}

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
30

15

Algbre relationnelle : Projection


R (A1, A2, ..., Ai, An)
X = {Ai1, Ai2, ..., Aip} {A1, A2, ..., Ai, An}
R [X] (Ai1, Ai2, ..., Aip)
R [X] = {tx = (ai1, ai2, ..., aip) / $ ty tq (tx, ty) R (A1, ..., An)}

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
31

Algbre relationnelle : Restriction


R (A1, A2, ..., Ai, An)
P : prdicat
R {P} (A1, A2, ..., Ai, An)
R {P} = {t = (a1, a2, ..., an) / t R et P}

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
32

16

Algbre relationnelle : q-jointure


R1 (A1, A2, ..., Ai, An) et R2 (A1, A2, ..., Aj, Ap)
X {A1, A2, ..., Ai, An} et X{A1, A2, ..., Aj, Ap}
X q X : prdicat (X et X doivent tre q-compatibles)
R1 [|X q X|] R2 (A1, A2, ..., Ai, An, A1, A2, ..., Aj, Ap)
R1 [|X q X|] R2 = {t = (t1, t2) / t1 R1 et t2 R2 et X q X}
R1 [|X q X|] R2 = R1 x R2 {X q X}
CP : qui-jointure (X = X)

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
33

Algbre relationnelle : jointure naturelle


R1 (A1, A2, ..., Ai, An) = R1 (X, Y1)
R2 (A1, A2, ..., Aj, Ap) = R2 (X, Y2)
X {A1, A2, ..., Ai, An} et X {A1, A2, ..., Aj, Ap}
R1 * R2 ({A1, A2, ..., Ai, An, A1, A2, ..., Aj, Ap} - X)
R1 * R2 = R1 [|R1.X = R2.X|] R2 [X, Y1, Y2]

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
34

17

Algbre relationnelle : jointure externe


R1 (A1, A2, ..., Ai, An) = R1 (X, Y1)
R2 (A1, A2, ..., Aj, Ap) = R2 (X, Y2)
X {A1, A2, ..., Ai, An} et X {A1, A2, ..., Aj, Ap}
R1 * R2 (+) ({A1, A2, ..., Ai, An, A1, A2, ..., Aj, Ap} - X)
R1 * R2 (+) = R1 * R2
{(t1, NULL) / t1 R1 et t1 R1*R2[X, Y1]}
{(NULL, t2) / t2 R2 et t2 R1*R2[X, Y2]}
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
35

Algbre relationnelle : division


R1 (A1, A2, ..., Ai, An) = R1 (X1, Y1)
R2 (A1, A2, ..., Aj, Ap) = R2 (X2, Y2)
X1 et X2 portent sur les mmes domaines

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

Bases de donnes relationnelles

Michle Raphalen
36

18

Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
37

Dcomposition
Problme du concepteur de base

univers modliser choix de relations


minimiser les redondances
ne pas perdre dinformations
optimiser les temps de rponse

R (U) { Ri (Ui) } / U = Ui et R (U) = * Ri (Ui)


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

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

IUP Informatique & Statistique


DEUG

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

Bases de donnes relationnelles

Michle Raphalen
39

Dcomposition : exemple 2 (1)


Relation avion
numro

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.

Dcouper les relations de manire grer les problmes ci-dessus


On suppose : nom -> capacit
(dpendance fonctionnelle)
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
40

20

Dcomposition : exemple 2 (2)


avion

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

..

...

...

...

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
41

Dcomposition : principe
Smantique
des
donnes

Algorithme
de
dcomposition

Relation
universelle
R (U)

R1 (U1)

Rp (Up)

Ensemble de relations

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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 sans perte (SPI)


4

Dcomposition d'une relation R (A1, A2, ..., Ai, An) telle que
R = R1 * ... * Ri *... * Rp

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
43

Dpendances fonctionnelles (df)


Dfinitions
Les df sont dfinies sur des attributs de relation. Elles expriment des
contraintes dintgrit.
Dpendance fonctionnelle
Soit R (U) une relation et X et Y deux sous-ensembles de U.
On dit que X -> Y est une df (X dtermine Y, ou Y dpend fonctionnellement
de X) si :
" r1 et r2 R (U) : R [X] (r1) = R [X] (r2) => R [Y] (r1) = R [Y] (r2)
Etant donn une valeur de X, il lui correspond une valeur unique de Y.

Dpendance fonctionnelle lmentaire (dfe)


X -> Y est une dfe si $ X X / X -> Y
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
44

22

Dpendances fonctionnelles (df)


Rle
Expression de certaines proprits smantiques des donnes
4

schma conceptuel

description de liens 1-1 entre les constituants

bonne BD : respect des contraintes

Dcomposition de relations (3NF)


Notation
<R (U), F > : relation sur un ensemble dattributs U,
muni dun ensemble F de df
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
45

Dpendances fonctionnelles (df)


Exemple
Voiture (numro, marque, type, puissance, couleur)
( 2192 WA 56 , Renault , MRE1002ES023 Clio , 4, Rouge )
numro -> couleur
numro -> type
type -> marque
type -> puissance

numro
type
marque

puissance -> type


type -> couleur
IUP Informatique & Statistique
DEUG

couleur
puissance
Graphe des df

Bases de donnes relationnelles

Michle Raphalen
46

23

Dpendances fonctionnelles (df)


Proprits
Axiomes dArmstrong
rflexivit

union

Y X => X -> Y

X -> Y et X -> Z => X -> YZ

augmentation

pseudo-transitivit

=>

X -> Y => XZ -> YZ " Z

X -> Y et WY -> Z => WX -> Z

transitivit

dcomposition

X -> Y et Y -> Z => X -> Z

X -> Y et Z Y => X -> Z

Dpendance fonctionnelle directe (dfd)


X -> Y est une dfd si $ Z / X -> Z et Z -> Y
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
47

Dpendances fonctionnelles (df)


Dfinition
4

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.

Proprits des cls


4

Soit <R (U), F> une relation.


Tout attribut non dtermin par une df non triviale de F doit appartenir toute
cl de la relation.
Si l'ensemble des attributs de la relation non dtermins par les df de F forme
une cl, alors la relation possde une cl unique forme de l'ensemble de ces
attributs.
Une relation munie d'une seule df possde une cl unique.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
48

24

Dpendances fonctionnelles (df)


Fermeture F+ dun ensemble F de df
Dfinition
4

Soit <R (U), F> une relation munie de F.


F+ = F {X -> Y / X -> Y se dduit de F par application des axiomes
dArmstrong}

Fermeture transitive : ensemble des df obtenues par application des axiomes


de transitivit sur F.
Exemple
F = {numro->type, type->marque, type->puissance, numro->couleur}
Ft+ = F {numro->marque, numro->puissance}
Deux ensembles de df sont quivalents si ils ont mme fermeture.
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
49

Dpendances fonctionnelles (df)


Fermeture XF+ dun ensemble X dattributs
Dfinition
4

Soit < R (U), F> une relation et X U.


La fermeture XF+ d'un ensemble X d'attributs relativement un ensemble F
de df est l'ensemble des attributs logiquement impliqus par X.
XF+ = {A U / X -> A F+}

Exemple
4

R (A, B, C)

AF = ABC
+

IUP Informatique & Statistique


DEUG

F = {A -> B, B -> C }
BF+ = BC

CF+ = C

ABF+ = ABC

Bases de donnes relationnelles

Michle Raphalen
50

25

Dpendances fonctionnelles (df)


Fermeture XF+ dun ensemble X dattributs
Algorithme
donne : <R (U), F>, X U

rsultat : XF+ = {A U / X -> A F+}

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
51

Dpendances fonctionnelles (df)


Couverture minimale CM(f) dun ensemble F de df
Dfinition
4

Soit <R (U), F> une relation munie de F.


Une couverture minimale CM (F) dun ensemble F de df est un ensemble
minimum de dfe quivalent F.
CM (F) / CM (F) + = F+
4

" f CM (F), f est une dfe.

" f CM (F), (CM (F) - f) + F+

" f CM (F), f est de la forme : X -> A avec A attribut.

IUP Informatique & Statistique


DEUG

(ie pas de redondances de df)

Bases de donnes relationnelles

Michle Raphalen
52

26

Dpendances fonctionnelles (df)


Couverture minimale CM(f) dun ensemble F de df
Algorithme (1/2)
notations :
Xi, Yi : ensembles d'attributs

Ai : attribut

donne :

<R (U), F>, U = {A1, A2, ..., An}

rsultat :

CM (F) / -

IUP Informatique & Statistique


DEUG

tous les membres dtermins des df comportent un seul attribut


toutes les df sont lmentaires
pas de redondances de df : $ f CM (F) / (CM (F) - f)+ = CM (F)+

Bases de donnes relationnelles

Michle Raphalen
53

Dpendances fonctionnelles (df)


Couverture minimale CM(f) dun ensemble F de df
Algorithme (2/2)

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
54

27

Plan
Prsentation gnrale
Modle relationnel et algbre relationnelle
SQL
Dcomposition : dpendances fonctionnelles
Dcomposition : normalisation
Organisation et accs aux donnes

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
56

28

Dcomposition de relation
Validit dune dcomposition
Dfinition
4

Soit <R (U), F> une relation et D = { Ri (Ui) } une dcomposition.


La dcomposition D est valide ou SPI (Sans Perte dInformation) ssi :
U = Ui

et

R (U) = * Ri (Ui)

Proposition
4

Une dcomposition de relation <R (U), F> en deux sous-relations


R1 (U1) et R2 (U2) est valide ssi
U1 U2 -> U1 - U2 F+ (1) ou U1 U2 -> U2 - U1 F+ (2)

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
58

29

Dcomposition de relation
Prservation des dpendances
Dfinition
4

La projection dun ensemble F de df sur un ensemble dattributs Ui est


dfinie par :
F [Ui] = { X -> Y F+ / XY Ui}
Cest lensemble des df de F+ formes partir des attributs de Ui

Une dcomposition D = { Ri (Ui) } prserve les dpendances


ssi ( F [Ui]) + = F+
Choix de dcompositions valides qui prservent les dpendances

Limitation des contrles de cohrence effectus lors des modifications sur les tables.
IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

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

Dans le modle relationnel tendu,


on accepte le principe de NF2
(Non First Normal Form)

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

nom

adresse

Legros

Vannes

...
Michle Raphalen
60

30

Dcomposition de relation
Formes normales (2)
Deuxime forme normale (2NF) - dfinition
4

Une relation est en 2NF si


4

elle est en 1NF


tout attribut nappartenant pas une cl ne dpend pas que dune
partie de cl.
K ensemble de cls de < R (U), F >
" i, $ Ki Ki / Ki -> A
K = {Ki / Ki cl } et A Ki

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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 :

fournisseur (num, adresse)


fourniture (num, article, prix)

(1NF -> isolement des dpendances partielles sur les cls primaires -> 2NF).

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
62

31

Dcomposition de relation
Formes normales (4)
Troisime forme normale (3NF) - dfinition
4

Une relation est en 3NF si


4

elle est en 2NF


tout attribut nappartenant pas une cl ne dpend pas dun attribut
non cl
K ensemble de cls de < R (U), F >
K = {Ki / Ki cl }
" Ai Ki , $ Aj Ki / Ai -> Aj

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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 :

fournisseur (num, adresse)


transport (adresse, frais)

(2NF -> Isolement des dpendances transitives -> 3NF)


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
64

32

Dcomposition de relation
Formes normales (7)
Troisime forme normale (3NF)
4

Pour savoir si un schma est en 3NF, on doit :

chercher toutes ses cls

en dduire les attributs A qui nappartiennent aucune cl

pour chacun des attributs non membres de cls,


regarder toutes les df non triviales X -> A de F+ et tester si X est une cl

Exemple
R (dpartement, ville, CP)
F = { (dpartement, ville) -> CP, CP -> dpartement}
cls : (ville, dpartement), (ville, CP)
R est en 3NF.

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

Michle Raphalen
65

Dcomposition de relation
Formes normales (8)
Remarques
4

Il n'y a pas unicit de la dcomposition en 3NF.

Pour l'exploitation de la base, on ne retient pas forcment la 3NF.

On est parfois amen " dnormaliser " en fonction des traitements raliser,
et donc des frquences d'accs aux donnes.

ATTENTION AUX INCOHERENCES ...


4

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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.

BCNF => 3NF, mais 3NF => BCNF

Toute relation a au moins une dcomposition valide en BCNF.

Cette dcomposition nassure pas toujours la prservation des df.

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

IUP Informatique & Statistique


DEUG

Bases de donnes relationnelles

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.

Il assure la prservation des dpendances fonctionnelles.


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

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

si <R (U), F> est en BCNF alors


S <- S <R (U), F> ;
sinon
soit X -> A F+, X ne contenant pas de cl
BCNF (R (X, A), F[{X, A}], S) ;
BCNF (R (U-A), F[U-A], S) ;
finsi
fin

schma <- ;
BCNF (<R (U), F>, schma) ;
L algorithme prsent ici conduit une dcomposition valide de la relation dcomposer.

Il nassure pas la prservation des dpendances fonctionnelles.


IUP Informatique & Statistique
DEUG

Bases de donnes relationnelles

Michle Raphalen
69

35