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...”