Livre_silo 30 août 2013 16:32 Page 289
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
289
11 – Base de données relationnelle
11.2.4 Composition de requêtes complexes
Avec ces opérateurs supplémentaires, on peut exprimer des requêtes plus élaborées, faisant
notamment intervenir plusieurs relations. Leur écriture est alors plus délicate. En particulier, la question de l’ordre dans lequel composer les différentes opérations devient alors
une vraie question de recherche.
SAVOIR-FAIRE Traduire dans le langage de l’algèbre relationnelle
des requêtes complexes
Pour traduire une requête complexe, une possibilité (pas toujours optimale cependant)
est de commencer par les opérations les plus simples, que l’on combine ensuite pour
former des opérations plus complexes. Si nécessaire, on peut aller jusqu’à décomposer
la requête en sous-requêtes qu’ on écrit séparément.
Lorsqu’une requête concerne des informations réparties dans plusieurs relations, on
effectue une jointure pour les rassembler en une seule relation.
Lorsqu’une requête demande d’effectuer un calcul sur un ensemble de valeurs, on
identifie la fonction correspondante et on effectue une agrégation.
Exercice 11.5 On reprend les relations de l’exercice 10.4 :
classe
id Filière Numéro Professeur
1
MPSI
1
Euclide
2
MPSI
2
Turing
3
PCSI
1
Horner
4
PCSI
2
Euler
élève
Nom
Prénom Classe Note
Meyer
Romain
1
9,25
Martin
Paul
2
7,75
Robert
Marie
4
12,0
Michel
Lucile
2
11,5
Bernard
Sylvie
1
17,5
Martin
Romain
3
14,0
Meyer
Pierre
1
10,0
Dubois
Camille
3
11,5
Ici, on est dans le cas classique où id est une clé primaire pour classe, et élève possède une clé étrangère
vers classe. Traduire les requêtes suivantes en opérations de l’algèbre relationnelle.
¨
©
¨
©
¨
©
¨
©
C o p y r i g h t E y r o l l e s
289
11 – Base de données relationnelle
11.2.4 Composition de requêtes complexes
Avec ces opérateurs supplémentaires, on peut exprimer des requêtes plus élaborées, faisant
notamment intervenir plusieurs relations. Leur écriture est alors plus délicate. En particulier, la question de l’ordre dans lequel composer les différentes opérations devient alors
une vraie question de recherche.
SAVOIR-FAIRE Traduire dans le langage de l’algèbre relationnelle
des requêtes complexes
Pour traduire une requête complexe, une possibilité (pas toujours optimale cependant)
est de commencer par les opérations les plus simples, que l’on combine ensuite pour
former des opérations plus complexes. Si nécessaire, on peut aller jusqu’à décomposer
la requête en sous-requêtes qu’ on écrit séparément.
Lorsqu’une requête concerne des informations réparties dans plusieurs relations, on
effectue une jointure pour les rassembler en une seule relation.
Lorsqu’une requête demande d’effectuer un calcul sur un ensemble de valeurs, on
identifie la fonction correspondante et on effectue une agrégation.
Exercice 11.5 On reprend les relations de l’exercice 10.4 :
classe
id Filière Numéro Professeur
1
MPSI
1
Euclide
2
MPSI
2
Turing
3
PCSI
1
Horner
4
PCSI
2
Euler
élève
Nom
Prénom Classe Note
Meyer
Romain
1
9,25
Martin
Paul
2
7,75
Robert
Marie
4
12,0
Michel
Lucile
2
11,5
Bernard
Sylvie
1
17,5
Martin
Romain
3
14,0
Meyer
Pierre
1
10,0
Dubois
Camille
3
11,5
Ici, on est dans le cas classique où id est une clé primaire pour classe, et élève possède une clé étrangère
vers classe. Traduire les requêtes suivantes en opérations de l’algèbre relationnelle.
