© Your Copyright
L’algèbre relationnelle propose un ensemble d’opérations élémentaires sur les relations dans le but de créer de nouvelles relations. Ces opérations peuvent se représenter formellement en calcul relationnel et représenteront l’enchaînement des opérations à mettre en oeuvre pour exécuter une requête sur une base de données relationnelles. Ces opérateurs sont à la base des traitements de requêtes en SQL.
On distingue trois familles d’opérateurs relationnels :
- les opérateurs unaires qui sont les plus simples (projection,restriction) et qui portent sur une seule table
- les opérateurs binaires ensemblistes (union,intersection,différence) entre deux ensembles (relations)
- les opérateurs binaires ou n-aires (produit cartésien,jointure,division) entre deux ou plusieurs ensembles (tables).
Il existe cinq opérateurs de base pour formuler des requêtes sur une base de données relationnelle :
- La projection (\(\Pi\))
- La restriction (\(\sigma\))
- Le produit cartésien (\(\times\))
- L’union (\(\cup\))
- La différence (\(\setminus\))
A partir desquels on pourra construire les opérateurs dérivés :
- d’intersection (\(\cap\))
- de jointure (\(\Join\))
- de division relationnelle (\(\div\))
- …
\(\cap(E,F)\) : intersection
- créer l’ensemble contenant les éléments de l’ensemble \(E\) qui sont dans l’ensemble \(F\)
\(\Join_{[p(e,f)]}(E,F)\) : jointure
- mettre en relation les éléments \((e,f)\) des ensembles \((E,F)\) s’ils satisfont un critère de jointure (\([p(e,f)]\))
\(\div(E,F)\) : division relationnelle
- récupérer les éléments \((e,f)\) de l’ensemble \(E\) qui sont en relation avec tous les éléments de l’ensemble \(F\)
où \(attr(F) \subset attr(E)\) :
- l’ensemble des attributs de l’ensemble \(F\) est un sous-ensemble de l’ensemble des attributs de l’ensemble \(E\) :
les opérateurs dérivés se déduisent des opérateurs de base.
Nous reviendrons sur ces opérateurs dans le chapitre sur l’algèbre relationnelle.
Toute requête sur une base de données peut être exprimée par une formule de logique du premier ordre en calcul relationnel.
Les opérateurs de l’algèbre relationnelle qui seront utilisés pour formuler des requêtes sur une base de données peuvent être formalisés en calcul relationnel :
où \(attr(F) \subset attr(E)\) : l’ensemble des attributs de (\(F\)) est un sous-ensemble de l’ensemble des attributs de (\(E\))
Il existe un autre opérateur de l’algèbre relationnelle qui consiste à renommer les attributs d’une table (relation) que nous définirons de manière très « littéraire » de la manière suivante :
- \(\rho_{A_1:B_1, ..., A_n:B_n}(E)=\{e \; | \forall e \in E\) « renommer \(e.A_1\) en \(e.B_1\) … \(e.A_n\) en \(e.B_n\) » \(\}\)
Autre notation de l’opérateur de renommage :
- \(\rho_{A \rightarrow B}\)
- \(\delta_{A \rightarrow B}\)
- \(\delta_{A:B}\)
L’intérêt de cet opérateur apparaît lorsque que l’on doit faire des opérations sur des colonnes de même nom dans différentes tables.
Ce cas arrive fréquemment, notamment lorsque l’on est amené à faire un produit cartésien entre deux tables ayant 2 colonnes de même nom.