Documente Academic
Documente Profesional
Documente Cultură
Lalgbre
relationnelle
Langages de manipulation
n
LMD classiques
n
Langages formels
u
u
Langages utilisateurs
u
u
BDA.6.3
Lapproche algbrique
n
Lalgbre relationnelle
n
n
Prambule
n
syntaxe (notation)
u la smantique (rsultat attendu)
u le schma
u dventuelles remarques
u un exemple
BDA.6.6
Slection
n
nom
Autriche
UK
Suisse
capitale
Vienne
Londres
Berne
population surface
8
83
56
244
7
41
capitale
Vienne
Berne
population surface
8
83
7
41
BDA.6.7
Slection
n
n
condition :
u condition-lmentaire
u condition
u NON
ET/OU condition
condition
u ( condition )
ET
OU
NON
BDA.6.8
[ nom=capitale ] Pays
Pays dont le nom est le mme que celui de sa capitale
[ (surface>100 surface<500) (population>30
population<300) ] Pays
Pays dont la surface est comprise entre 100 et 500 ou
dont la population est comprise entre 30 et 300
BDA.6.9
Slection
n
n
n
BDA.6.10
Projection
n
nom
Autriche
UK
Suisse
capitale
Vienne
Londres
Berne
population surface
8
83
56
244
7
41
nom
Autriche
UK
Suisse
capitale
Vienne
Londres
Berne
BDA.6.11
Projection
opration unaire
syntaxe : [attributs] R
u attributs
BDA.6.12
R ( B , C, D)
b c d
a a b
a a c
trois tuples
[ B , C] R
b c
a a
deux tuples
BDA.6.13
Expressions
n
Capitale-petit-pays =
capitale
population
surface
Irlande
Autriche
UK
Suisse
Dublin
Vienne
Londres
Berne
3
8
56
7
70
83
244
41
BDA.6.14
Expressions - exemples
Surface-petit-pays =
Capitale-petit-pays =
ERREUR !
OK
BDA.6.15
Renommage
n
n
n
n
n
n
A B
a b
y z
b b
R2
A C
a b
y z
b b
BDA.6.16
Produit cartsien
n
syntaxe : R S
exemple :
R
A B
a b
b c
c b
n tuples
RS
S C
c
b
a
D
d
a
a
E
e
b
c
m tuples
A B
a b
a b
a b
b c
b c
b c
c b
c b
c b
C
c
b
a
c
b
a
c
b
a
D
d
a
a
d
a
a
d
a
a
E
e
b
c
e
b
c
e
b
c
n x m tuples
BDA.6.17
Produit cartsien
n
n
n
n
opration binaire
smantique : chaque tuple de R est combin avec
chaque tuple de S
schma : schma (R S) = schma(R) schma(S)
prcondition : R et S nont pas dattributs de mme
nom
(sinon, renommage des attributs avant de faire le
produit)
BDA.6.18
Jointure naturelle
n
ou *
A B
a b
b c
c b
S B
b
a
d
C
c
a
a
D
d
b
c
R*S A
a
c
B C D
b c d
b c d
BDA.6.19
Jointure naturelle
ou *
opration binaire
syntaxe : R * S
BDA.6.20
BDA.6.21
Theta jointure
n
ou
*[c]
[c]
A B
a b
b c
c b
S C
b
b
c
D
c
a
a
R * [B ? C ] S
E
d
b
c
A
a
b
b
c
B
b
c
c
b
C
c
b
b
c
D
a
c
a
a
E
c
d
b
c
BDA.6.22
Theta-jointure
n
opration binaire
syntaxe : R *[c] S
u
c : condition de jointure
condition-lmentaire :
attribut1 oprateur-de-comparaison attribut2
u attribut1 est un attribut de la relation R
u attribut2 est un attribut de la relation S (ou vice-versa)
u oprateur-de-comparaison : =, ? , <, >, =, =
condition :
u
condition-lmentaire
condition ET/OU condition
ET
NON condition
NON
( condition )
OU
BDA.6.23
Theta-jointure (suite)
n
Exemple :
Pays (nom, capitale, population, surface, continent)
LangueParle (langue, pays, %population)
BDA.6.24
R ( A, B, C )
S (C, D, E )
BDA.6.25
Union
n
opration binaire
syntaxe : R S
Exemple :
R1
A B
a b
b b
y z
R2
A B
u v
y z
R1 R2
A B
a b
b b
y z
u v
BDA.6.26
Union
(suite)
BDA.6.27
Intersection
n
opration binaire
syntaxe : R S
Exemple :
R1
A B
a b
y z
b b
R2
A B
u v
y z
R1 R2
A B
y z
BDA.6.28
Diffrence n
opration binaire
syntaxe : R S
Exemple :
R1
A B
a b
y z
b b
R2
A B
u v
y z
R1 R2
A B
a b
b b
BDA.6.29
R S = R - (R - S)
R
populations
R-S
RS
BDA.6.30
La division
n
La division - exemples
R A
1
1
1
1
2
2
3
3
3
V B C
3 5
B
1
2
2
3
1
3
1
2
2
C
1
0
1
0
1
3
1
0
1
V B C
1 1
2 0
R/V A
1
3
V B C
1 1
R/V A
1
2
3
R/V A
/
BDA.6.32
Exemple de division
R : Obtenu
V : Prrequis
R/V
ETUDIANT
COURS
COURS
ETUDIANT
Francois
BD
Prog
Francois
Franois
SI
Pierre
Francois
Prog
BD
Annie
BD
Annie
SI
Annie
Math
Pierre
Prog
Pierre
BD
BDA.6.33
R(A1, , An) et
avec n>m
V(A1, , Am)
R/V=
[Am+1, , An)] R
[Am+1, , An)] ( ( ([A1, , Am)]R) x V ) - R )
BDA.6.34
RS=SR
R*S=S*R
(commutativit)
si attributs(p) a
Optimiseur de requtes
SELECT
FROM
WHERE ...
1) Traduction en
expression algbrique
S
G
B
D
2) Optimisation de
l'expression algbrique
3) Excution des
oprations de l'algbre
Base de
donnes
BDA.6.36
BDA.6.37
BDA.6.38
?
[code-j] ( [adresse = "Bienne"] Dpt * Livraison)
BDA.6.39
[no-dpt] (
[ no-dpt -> dpt2 , code-j -> code2] Livraison
* [code-j code2 no-dpt=dpt2]
[no-dpt, code-j] Livraison )
BDA.6.40