Le langage procédural contient les opérations ensemblistes de la théorie des ensembles[4] sur les relations ainsi que des opérations pour fusionner/projeter des relations.
Les opérateurs ensemblistes sont l'union, l'intersection, la différence et le produit cartésien.
L'union de deux relations sur le même schéma est la relation sur ce schéma contenant exactement l'union des enregistrements de ces deux relations. Formellement,
.
Employés de Renault
Nom |
ID |
Département
|
Harry |
3415 |
Finance
|
Sally |
2241 |
Vente
|
George |
3401 |
Finance
|
|
Employés de Citroën
Nom |
ID |
Département
|
Bertrand |
0808 |
Vente
|
Donald |
0007 |
Vente
|
|
Employés de Renault U Employés de Citroën
Nom |
ID |
Département
|
Harry |
3415 |
Finance
|
Sally |
2241 |
Vente
|
George |
3401 |
Finance
|
Bertrand |
0808 |
Vente
|
Donald |
0007 |
Vente
|
|
L'intersection de deux relations sur le même schéma est la relation sur ce schéma contenant exactement les enregistrements qui apparaissent dans les deux relations. Formellement,
.
Personnes inscrits en football
Nom |
ID
|
Harry |
3415
|
Sally |
2241
|
George |
3401
|
|
Personnes inscrits en cours de piano
Nom |
ID
|
Harry |
3415
|
Bertrand |
2
|
George |
3401
|
Yoda |
1000
|
|
Personnes inscrits en football ∩ Personnes inscrits en cours de piano
Nom |
ID
|
Harry |
3415
|
George |
3401
|
|
La différence de deux relations sur le même schéma est la relation sur ce schéma contenant exactement les enregistrements qui apparaissent dans la première relation mais pas dans la deuxième. Formellement,
. Par exemple, on peut calculer les personnes inscrits en football mais qui ne sont pas inscrits en cours de piano :
Personnes inscrits en football
Nom |
ID
|
Harry |
3415
|
Sally |
2241
|
George |
3401
|
|
Personnes inscrits en cours de piano
Nom |
ID
|
Harry |
3415
|
Bertrand |
2
|
George |
3401
|
Yoda |
1000
|
|
Personnes inscrits en football - Personnes inscrits en cours de piano
Nom |
ID
|
Sally |
2241
|
|
Avec le produit cartésien de deux relations, on recopie chaque tuple de la première relation pour chacun des tuples de la deuxième. Formellement,
.
Personnes
Nom |
ID
|
Harry |
3415
|
Sally |
2241
|
|
Cadeaux
Type |
Prix
|
livre |
10
|
gâteau |
20
|
ordinateur |
300
|
|
Personnes - Cadeaux
Nom |
ID |
Type |
Prix
|
Harry |
3415 |
livre |
10
|
Harry |
3415 |
gâteau |
20
|
Harry |
3415 |
ordinateur |
300
|
Sally |
2241 |
livre |
10
|
Sally |
2241 |
gâteau |
20
|
Sally |
2241 |
ordinateur |
300
|
|
La sélection (ou restriction) consiste à ne retenir que les enregistrements vérifiant une condition donnée. Dans l'exemple plus bas, on ne garde que les touristes dont la ville est Paris.
- Données : Une relation
et une formule
formée d'une combinaison de comparaisons et de connecteurs logiques.
- Résultat :
satisfait la condition donnée par
, dans l'exemple
Touristes
- Équivalent SQL : WHERE
Touristes
idTouriste |
NomT |
Ville |
Sport
|
1 |
Marc |
Paris |
Ski
|
2 |
Jean |
Toulouse |
Tennis
|
3 |
Franc |
Marseille |
Football
|
4 |
Thomas |
Lyon |
Voile
|
5 |
Max |
Paris |
Golf
|
|
Sélection des touristes où Ville vaut Paris
idTouriste |
NomT |
Ville |
Sport
|
1 |
Marc |
Paris |
Ski
|
5 |
Max |
Paris |
Golf
|
|
La projection permet de ne garder que certains attributs. Dans l'exemple ci-dessous, on ne garde que les attributs NomT et Ville de la relation Touristes.
- Données : Une relation
et un ensemble d'attributs
de
- Résultat :
, qui est la Relation
où on ne considère que les attributs de
, par exemple
Touristes
- Équivalent SQL : SELECT
Touristes
idTouriste |
NomT |
Ville |
Sport
|
1 |
Marc |
Paris |
Ski
|
2 |
Jean |
Toulouse |
Tennis
|
3 |
Franc |
Marseille |
Football
|
4 |
Thomas |
Lyon |
Voile
|
5 |
Max |
Paris |
Golf
|
|
Projection de la relation Touristes sur les attributs NomT et Ville
NomT |
Ville
|
Marc |
Paris
|
Jean |
Toulouse
|
Franc |
Marseille
|
Thomas |
Lyon
|
Max |
Paris
|
|
Renommage :
- Données : Une relation
et un attribut
de
- Résultat :
, qui est la Relation
avec
renommé
- Équivalent SQL : AS
Jointure :
- Données : deux relations
et
- Résultat :
- Équivalent SQL : JOIN
Touristes
idTouriste |
NomT |
Ville |
Sport
|
1 |
Marc |
Paris |
Ski
|
2 |
Jean |
Toulouse |
Tennis
|
3 |
Franc |
Marseille |
Football
|
4 |
Thomas |
Lyon |
Voile
|
5 |
Max |
Paris |
Golf
|
|
Destinations
idTouriste |
VilleD
|
1 |
Cannes
|
2 |
Ibiza
|
4 |
Tokyo
|
|
Touristes ⋈ Destinations
idTouriste |
NomT |
Ville |
Sport |
VilleD
|
1 |
Marc |
Paris |
Ski |
Cannes
|
2 |
Jean |
Toulouse |
Tennis |
Ibiza
|
4 |
Thomas |
Lyon |
Voile |
Tokyo
|
|
La division prend en entrée deux relations
et
.
Ainsi, tout n-uplet
se décompose en deux n-uplets
, avec
de schéma
et
de schéma
. et retourne la table de schéma
tel que
. La division revient à donner “tous les x tels que pour tout y...”