3. Langages de requête et de manipulation des données
77
Il est possible de
combiner les
opérateurs
Il est naturellement possible de combiner les opérateurs de
l'algèbre relationnelle que nous venons d'étudier. Par exemple, si,
après avoir extrait tous les employés du département D6 par la
sélection V Affectation=D6 (EMPLOYÉ), nous appliquons une projection
de la table résultante sur l'attribut Ville par l'opérateur
S Ville (V Affectation=D6 (EMPLOYÉ)), le résultat final sera une table
contenant deux villes, Romont et Fribourg.
Opérateur de
jointure (équijointure)
Considérons maintenant l'opérateur de jointure (join operator,
en anglais) qui permet de composer deux tables en une seule. La
jointure R_u_ P S de deux tables R et S d'après le prédicat P est une
combinaison de tous les tuples de R avec ceux de S, qui satisfont le
prédicat de jointure P. Le prédicat de jointure contient un attribut de
la table R et un attribut de S. Ces deux attributs sont liés par des
opérateurs de comparaison, «<», «>» ou «=», définissant ainsi le
critère de combinaison des tables R et S. Si le prédicat de jointure P
contient l'opérateur de comparaison «=», on parle d'une équi-jointure
(equi-join, en anglais).
La jointure
demande des
précautions !
On éprouve souvent des difficultés à comprendre l’opérateur de
jointure qui risque par conséquent de fournir des résultats erronés ou
indésirés. L'oubli ou la définition incorrecte d’un prédicat pour
combiner deux tables en sont généralement la cause.
La définition d’une
jointure demande
des précautions
La figure 3-9 donne deux exemples de jointure, le prédicat de
jointure étant présent dans le premier et absent dans le second. En
spécifiant EMPLOYÉ_u_ Affectation=D# DÉPARTEMENT, nous joignons les
deux tables EMPLOYÉ et DÉPARTEMENT pour compléter les données
de chaque employé par des informations sur son département. Dans la
seconde jointure où nous omettons le prédicat de jointure P en
spécifiant seulement EMPLOYÉuDÉPARTEMENT, le résultat est un
produit cartésien des tables EMPLOYÉ et DÉPARTEMENT. Cette
combinaison des deux tables n'a pas beaucoup de sens, car elle joint
tous les employés à tous les départements. Ainsi, nous constatons que
la table résultat contient également des employés combinés avec des
départements auxquels ils ne sont pas affectés (voir la table TOURNOI
dans la figure 3-6 à titre de comparaison).
Précédent

- 92/301

Suivant