• Aucun résultat trouvé

Les opérateurs ensemblistes

3.2 Les bases de l'algèbre relationnelle

3.2.2 Les opérateurs ensemblistes

Une table contient un ensemble d'enregistrements de données (tuples). Par conséquent, il est possible de lier plusieurs tables par des opérations basées sur la théorie des ensembles. Cependant, pour que

Les opérateurs relationnels Projection de la table R sur

un ensemble d'attributs M R

SM(R)

Sélection depuis la table R par une formule F

R

VF(R)

R

S R|X|PS

Jointure (Join) de deux tables R et S par le prédicat P

R

Ry S Division de la table R par la sous-table S

nous puissions calculer l'union, l'intersection ou la différence de deux tables, elles doivent être compatibles avec l'union.

Compatibilité avec l’union

Deux tables sont compatibles avec l'union si elles satisfont les deux conditions suivantes : primo, elles contiennent le même nombre d'attributs ; secundo, les attributs correspondants ont un format de données identique. etCLUB DE PHOTO

Exemple de tables compatibles avec l’union

Un exemple est donné à la figure 3-4 : à partir d’un fichier des employés d'une entreprise, on a créé, pour chacun de ses deux clubs internes, une table dont les attributs sont le numéro, le nom et l'adresse de l'employé. Quoique certains attributs portent des noms différents, les deux tables CLUB DE SPORT et CLUB DE PHOTO sont compatibles avec l'union. En effet, elles présentent le même nombre d'attributs d’une part, et d’autre part les valeurs d’attributs appartiennent aux mêmes domaines puisqu’elles proviennent d’un seul fichier des employés.

Opérateur d’union En référence à la théorie des ensembles, l'union (union, en anglais) R‰S permet de combiner deux tables R et S compatibles avec l’union. Cette opération insère dans la table résultat toutes les occurrences de R et toutes celles de S. Les enregistrements de données identiques sont éliminés de sorte que nous ne pouvons plus les différencier dans l'ensemble résultat R‰S sur la base des valeurs d’attributs.

CLUB DE PHOTO

E4

E7 Brodard

Humbert rue du Tilleul

route des Alpes Fribourg Bulle

E# Membre Rue Ville

CLUB DE SPORT avenue de la Gare

Fribourg Bulle Romont

E# Nom Rue Ville de domicile

La table MEMBRE DE CLUB (Figure 3-5) résulte de l'union des tablesCLUB DE SPORT et CLUB DE PHOTO. Chaque tuple dans la table résultat est présent soit dans la table CLUB DE SPORT soit dans CLUB DE PHOTO soit dans les deux à la fois. L’un des membres, Humbert, n'apparaît qu'une seule fois, car la table résultant de l'union n'admet pas d'entrées identiques.

Figure 3-5 Union des deux tablesCLUB DE SPORT et CLUB DE PHOTO

Opérateur d’intersection Les autres opérateurs ensemblistes sont définis de manière

analogue : l'intersection (intersection, en anglais) RˆS combine deux tables R et S compatibles avec l'union. Cette opération insère dans la table résultat seulement les occurrences présentes à la fois dans R et dans S. Parmi les tuples que nous avons extraits des tables CLUB DE SPORT et CLUB DE PHOTO, Humbert est l'unique membre actif dans deux clubs à la fois. Par conséquent, la table résultant de CLUB DE SPORT ˆCLUB DE PHOTO contient un seul élément, car il n'existe qu'un employé ayant un double statut de membre.

Opérateur de différence Considérons enfin la différence entre deux tables compatibles

avec l'union. La différence (difference, en anglais) R\S s'obtient en éliminant de R toutes les occurrences qui sont aussi présentes dans S.

Appliquée à notre exemple, la différence CLUB DE SPORT \ CLUB DE PHOTO produit une relation qui contient seulement deux membres, Meier et Savoy. Le membre Humbert est éliminé, car il est aussi membre du CLUB DE PHOTO. Ainsi, l'opérateur de différence permet de déterminer les membres du CLUB DE SPORT qui n'appartiennent pas simultanément au CLUB DE PHOTO.

MEMBRE DE CLUB = CLUB DE SPORT ‰CLUB DE PHOTO

E1 E7 E19 E4

Meier Humbert Savoy Brodard

rue Faucigny route des Alpes avenue de la Gare rue du Tilleul

Fribourg Bulle Romont Fribourg

E# Nom Rue Ville

Rapport entre les opérateurs d’intersection et de différence

En principe, le rapport suivant existe entre les opérateurs d'intersection et de différence de deux tables compatibles avec l'union :

RˆS = R \ (R \ S).

Par conséquent, l'intersection est une opération qui peut être ramenée à la différence entre des tables. Le lecteur peut le vérifier facilement dans notre exemple des clubs de sport et de photo.

Produit cartésien de deux tables

Parmi les opérateurs d’ensembles il nous reste à définir le produit cartésien de deux tables quelconques, R et S, qui ne doivent pas nécessairement être compatibles avec l'union. Le produit cartésien (cartesian product, en anglais) RuS de deux tables R et S est l'ensemble de toutes les combinaisons possibles des tuples de R avec ceux de S.

À titre d'exemple, considérons la table TOURNOI dans la figure 3-6, qui contient une combinaison de membres obtenue par l’opération (CLUB DE SPORT \ CLUB DE PHOTO) uCLUB DE PHOTO. La table TOURNOI contient toutes les combinaisons possibles des membres du club de sport (qui ne sont pas dans le club de photo) avec ceux du club de photo. Elle présente une liste typique des rencontres opposant les membres de deux clubs dans un tournoi. Ainsi par exemple, Humbert, membre de deux clubs à la fois, ne peut pas évidemment jouer contre lui-même. En effectuant la différence CLUB DE SPORT \ CLUB DE PHOTO, nous décidons qu'il jouera pour le club de photo.

Produit des tables C'est une opération appelée produit (cartésien), car le nombre d'entrées dans la table résultat s'obtient en multipliant les nombres de

TOURNOI = (CLUB DE SPORT \ CLUB DE PHOTO) x CLUB DE PHOTO

E1 avenue de la Gare avenue de la Gare

Fribourg Fribourg Romont Romont

E# Nom Rue Ville de domicile E# Membre Rue Ville

E4

tuples dans les tables de départ. Soient m le nombre d'entrées de la table R et n celui de la table S. Le produit cartésien R uS contient m fois n tuples au total, à condition qu'aucun tuple ne soit présent dans les deux tables à la fois.