Opérateurs ensemblistes

Attention

Les opérateurs ensemblistes sont des relations binaires (c'est à dire entre deux relations) portant sur des relations de même schéma.

DéfinitionUnion

L'union de deux relations R1 et R2 de même schéma produit une relation R3 de même schéma constituée de l'ensemble des tuples appartenant à R1 et/ou à R2.

DéfinitionDifférence

La différence entre deux relations R1 et R2 de même schéma produit une relation R3 de même schéma constituée de l'ensemble des tuples de R1 n'appartenant pas à R2. Notons que la différence entre R1 et R2 n'est pas égale à la différence entre R2 et R1.

DéfinitionIntersection

L'intersection de deux relations R1 et R2 de même schéma produit une relation R3 de même schéma constituée de l'ensemble des tuples appartenant à la fois à R1 et à R2. Notons que l'intersection n'est pas une opération de base, car elle est équivalent à deux opérations de différence successives.

Syntaxe

R = Union (R1, R2)

R = Différence (R1, R2)

R = Intersection (R1, R2)

Attention

Les opérateurs ensemblistes éliminent les doublons.

Exemple

Soit les deux relations suivantes : Homme (nom, prénom, age) et Femme (nom, prénom, age)

Homme

nom

prénom

age

Dupont

Pierre

20

Durand

Jean

30

Femme

nom

prénom

age

Martin

Isabelle

24

Blanc

Hélène

25

Soit l'opération suivante : R = Union (Homme, Femme)

On obtient alors la relation R composée des tuples suivants :

R

nom

prénom

age

Dupont

Pierre

20

Durand

Jean

30

Martin

Isabelle

24

Blanc

Hélène

25

La différence entre Homme et Femme (respectivement entre Femme et Homme) renvoie la relation Homme (respectivement Femme), car aucun tuple n'est commun aux deux relations. L'intersection entre Homme est Femme est vide, pour la même raison.

ComplémentUnion externe

Il est possible de définir une opération d'union externe, qui permet de réaliser l'union de deux relations de schéma différent, en ramenant les relations aux mêmes schémas, et en les complétant avec des valeurs nulles.

ComplémentSyntaxes alternatives

R = R1 ∪ R2

R = R1 ∩ R1

R = R1 − R2