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