Vous êtes sur la page 1sur 21

COURS 2

Elments d algbre relationnelle


2
Motivation : Interroger des bases de donnes
Quest-ce quune requte ?

une expression dans une algbre dite
algbre relationnelle.

i.e., des oprations sur des tables

Filtrer :
Slection (filtre / critres)
Projection (choix de colonnes)
Diffrence (suppression de lignes)

Combiner :
Produit cartsien (toutes les possibilits)
Jointure (complment d'information)
Union (union d'ensembles de lignes)

3
Quelques dfinitions
Ligne
Une ligne L est une squence de valeurs Vi, L = < V1, ... , Vi , ... Vn >
Extraction
La ligne < Vi > construite partir de L est note L(i)
Concatnation
Soient deux lignes L1 = < V1, ..., Vn > et L2 = < W1, ..., Wm >,
la concatnation de L1 et de L2, note L1L2 est :
L1L2 = < V1, ..., Vn, W1, ..., Wm >
Table
Une table est un ensemble de lignes
4
Slection (restriction)


Slection / constante : Personnes habitant Lyon

Slection / critre inter-colonnes : Personnes nes dans la ville
dhabitation

T = c1
(nom)
c2
(ge)
c3
(adresse)
c4
(nA)
Bob 13 Lyon Nice
Sam 7 Nice Nice
Cathy 13 Brest Brest
Julie 20 Lyon Brest
oc3="Lyon" (T)
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Julie 20 Lyon Brest
oc3=c4 (T)
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Sam 7 Nice Nice
Cathy 13 Brest Brest
5
Slection (restriction)
Autre comparateur : Personnes nayant pas plus de 14 ans

Composition de slections : Habitants de Lyon nayant pas plus de 14
ans

Conjonction de critres :

o
c2
s
14
(T)
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Sam 7 Nice Nice
Cathy 13 Brest Brest
oc3="Lyon" (oc2 s 14(T))
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
o
c3="Lyon"
(o
c2
s
14
(T)) o
c3="Lyon" and c2
s
14
(T)
6
Slection (restriction)
Autre comparateur : Personnes nayant pas plus de 14 ans


Composition de slections : Habitants de Lyon nayant pas plus de 14
ans

Conjonction de critres :

o
c2
s
14
(T)
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Sam 7 Nice Nice
Cathy 13 Brest Brest
oc3="Lyon" (oc2 s 14(T))
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
o
c3="Lyon"
(o
c2
s
14
(T)) o
c3="Lyon" and c2
s
14
(T)
7
Une formalisation de la slection (restriction)
Slection / constante :
L'ensemble des lignes L de la table T telles que L(i)=a est not o
i=a
(T)
o
i=a
(T) = { L | L dans T et L(i) = a }
Slection / inter-colonnes :
L'ensemble des lignes L de la table T telles que L(i)=L(j) est not o
i=j
(T)

o
i=j
(T) = { L | L dans T et L(i) = L(j) }
Autres comparateurs : = < > s > peuvent tre employs la place de =
Conjonction de comparaisons : Pour allger les notations des
conjonctions de critres de slection peuvent tre employes

8
Projection



Projection sur les colonnes 1 et 2 :



Projection sur les colonnes 1 et 3 :
(renumrotation des colonnes)

T = c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Sam 7 Nice Nice
Cathy 13 Brest Brest
Julie 20 Lyon Brest
tc1,c2 (T)
c1
(nom)
c2
(ge)
Bob 13
Sam 7
Cathy 13
Julie 20
tc1,c3 (T)
c1
(nom)
c2
(adr)
Bob Lyon
Sam Nice
Cathy Brest
Julie Lyon
9
Composition (Combinaison)



Quels sont les noms des personnes habitant Lyon ?

1) Slection :


2) ... suivie d'une projection :



T = c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Sam 7 Nice Nice
Cathy 13 Brest Brest
Julie 20 Lyon Brest
o
c3="Lyon"
(T)
c1
(nom)
c2
(ge)
c3
(adr)
c4
(nA)
Bob 13 Lyon Nice
Julie 20 Lyon Brest
t
c1
(o
c3="Lyon"
(T))
c1
(nom)
Bob
Julie
10
Une formalisation de la projection
Projection sur colonnes :
L'ensemble des lignes de la table T obtenues en ne conservant que
les colonnes de numros i
1
, i
2
, ..., i
k
est not t
i1 ,i2, ..., ik
(T)

t
i1 ,i2, ..., ik
(T) = { L(i
1
)L(i
2
) ... L(i
k
) | L dans T }

Retour sur la composition : le principe de clture




e.g., des slections et des projections

NB. Proprit fondamentale pour expliquer le confort des interrogations

Le rsultat d'une opration portant sur des tables
est aussi une table
composition possible de diffrentes oprations
11
Produit cartsien


Quels sont tous les couples homme-femme ?
homme femme



Quels sont les couples homme-femme dune mme ville ?
oc2 = c4 ( homme femme )





homme= c1
(nom)
c2
(adr)
femme= c1
(nom)
c2
(adr)
Bob Lyon Cathy Brest
Sam Nice Julie Lyon
Linda Lyon
c1
(nom)
c2
(adr)
c3
(nom)
c4
(adr)

Bob Lyon Cathy Brest
partir de 'Bob'
Bob Lyon Julie Lyon

Bob Lyon Linda Lyon

Sam Nice Cathy Brest
partir de 'Sam'
Sam Nice Julie Lyon

Sam Nice Linda Lyon
c1
(nom)
c2
(adr)
c3
(nom)
c4
(adr)
Bob Lyon Julie Lyon
Bob Lyon Linda Lyon
12
Produit cartsien


Dans quels dpartements habitent les personnes de la table homme ?
1) Combinaison par produit (homme ville)







(Noter la renumrotation des colonnes)







Quels sont les couples homme-femme dune mme ville ?
oc2 = c4 ( homme femme )





homme= c1
(nom)
c2
(adr)
ville= c1
(nomV)
c2
(nbHab)
c3
(dpart)
Bob Lyon Nice 340.000 Alp-Mar
Sam Nice Brest 160.000 Finistre
Lyon 420.000 Rhne
c1
(nom)
c2
(adr)
c3
(nomV)
c4
(nbHab)
c5
(dpart)

Bob Lyon Nice 340.000 Alp-Mar
partir de 'Bob'
Bob Lyon Brest 160.000 Finistre

Bob Lyon Lyon 420.000 Rhne

Sam Nice Nice 340.000 Alp-Mar
partir de 'Sam'
Sam Nice Brest 160.000 Finistre

Sam Nice Lyon 420.000 Rhne
13
Produit cartsien
2) ... suivi d'une slection :

oc2 = c3 ( homme ville ) =







c1
(nom)
c2
(adr)
c3
(nomV)
c4
(nbHab)
c5
(dpart)
Bob Lyon Lyon 420.000 Rhne
Sam Nice Nice 340.000 Alp-Mar
14
Une formalisation du produit cartsien

L'ensemble des lignes pouvant tre obtenues par concatnation
d'une ligne d'une table T1 avec une ligne d'une table T2 est not
T1 T2

T1 T2 = { L1L2 | L1 dans T1 et L2 dans T2 }


Le produit T1 T2 est souvent suivi d'une slection dans laquelle
intervient une colonne issue de T1 et une colonne issue de T2

dfinition d'un nouvel oprateur : la jointure
15
Jointure


Couples homme-femme d'une mme ville ?



homme= c1
(nom)
c2
(adr)
femme= c1
(nom)
c2
(adr)
Bob Lyon Cathy Brest
Sam Nice Julie Lyon
Linda Lyon
c1
(nom)
c2
(adr)
c3
(nom)
c4
(adr)
Bob Lyon Julie Lyon
Bob Lyon Linda Lyon
homme
c2=c2
femme o
c2 = c4
(homme femme)
16
Jointure



Dans quels dpartements habitent les hommes ?




c1
(nom)
c2
(adr)
c3
(nomV)
c4
(nbHab)
c5
(dpart)
Bob Lyon Lyon 420.000 Rhne
Sam Nice Nice 340.000 Alp-Mar
homme= c1
(nom)
c2
(adr)
Bob Lyon
Sam Nice
ville= c1
(nomV)
c2
(nbHab)
c3
(dpart)
Nice 340.000 Alp-Mar
Brest 160.000 Finistre
Lyon 420.000 Rhne
homme c2=c1 ville oc2 = c3 (homme ville)
17
Une formalisation de la jointure
{combinaison par produit cartsien et slection}

L'ensemble des lignes L pouvant tre obtenues par concatnation
d'une ligne L1 d'une table T1 avec une ligne L2 d'une table T2 telle
que L1(i) = L2(j) est not :






Cette opration est appele jointure de T1 avec T2

T1
i=j
T2
T1
i=j
T2 = { L1L2 | L1 dans T1 et L2 dans T2
et L1(i)=L2(j) }
18
Une formalisation de la jointure
Lien avec le produit cartsien et la slection

Soit m le nombre de colonnes de T1,

est identique o
i = (j+m)
(T1T2)



Remarque : comme pour la slection, les comparateurs = < > s > ainsi
que les conjonctions de critres peuvent tre employs







T1
i=j
T2
19
Union

homme= c1
(nom)
c2
(adr)
Bob Lyon
Sam Nice
femme= c1
(nom)
c2
(adr)
Cathy Brest
Julie Lyon
Linda Lyon


Quel est lensemble des personnes ?

Quel est l'ensemble des personnes habitant Lyon ?

c1
(nom)
c2
(adr)
Bob Lyon
Sam Nice
Cathy Brest
Julie Lyon
Linda Lyon
homme femme
oc2="Lyon" (homme femme)
c1
(nom)
c2
(adr)
Bob Lyon
Julie Lyon
Linda Lyon
20
Formalisation des deux oprations

u Une formalisation de lunion (ensembliste)
Soient T1 et T2 deux tables ayant mme nombre de
colonnes, l'ensemble contenant les lignes de T1 ainsi que
celles de T2 est not T1 T2
T1 T2 = { L | L dans T1 ou L dans T2 }

u Une formalisation de la diffrence (ensembliste)
Soient T1 et T2 deux tables ayant mme nombre de
colonnes, l'ensemble contenant les lignes de T1 ne se
trouvant pas dans T2 est not T1 - T2
T1 - T2 = { L | L dans T1 et L n'est pas dans T2 }





21
Arbre et transformation de requtes

Quels sont les couples possibles avec une femme de Lyon
et un homme de Nice ?





2*3+2*2+4*6+4*2 = 2*3+2*2+2*2+2*1+1*2+1*1 =
42 cases manipules 19 cases manipules






c1 c2
Julie Sam
Linda Sam
tc1, c3
4 col, 2 lig
oc2="Lyon" and c4="Nice"

femme homme
4 col, 6 lig
2 col, 3 lig 2 col, 2 lig
2 col, 2 lig

femme homme
tc1 tc1
oc2="Lyon" oc2="Nice"
2 col, 3 lig 2 col, 2 lig
2 col, 1 lig
1 col, 1 lig 1 col, 2 lig

Vous aimerez peut-être aussi