Algèbre relationnelleLes opérateurs mono-relations

La projection

La projection correspond à une coupe verticale de notre relation. Elle consiste à ne garder qu'une partie des colonnes de notre table.

Soient r une relation sur R et Y ⊆ schema(R). On dit que la projection de r sur Y notée πY(r) est définie par: πY(r) = {t[Y] | t ∈ r}
Soit S le schéma de relation associé à π:Y(r). On a schéma(S) = Y.
En bon français, ça veut dire que la projection de r sur Y se fait en gardant dans le résultat toutes les lignes, mais uniquement les colonnes définies dans Y.

Alors qu'est-ce que ça donnerait sur notre exemple?
Nous allons essayer de faire trois opérations:

πnom(Personnes)
πnom,prenom(Personnes)
πdep(Travaillent)

πnom(Personnes)
πnom,prenom(Personnes)
πdep(Travaillent)
La seule petite spécificité ici se situe lors de la projection de travaillent sur dep. En effet, en algèbre relationnelle, on supprime automatiquement la redondance, c'est pourquoi on n'aura pas deux fois "Math" comme résultat.



La sélection

La sélection va correspondre à une coupe horizontale de la relation, contrairement à la sélection. Elle va permettre de filtrer les tuples par rapport à une ou plusieurs conditions. Elle nécessite tout d'abord de définir la notion de formule de sélection puis la satisfaction d’une formule de sélection par un tuple.

Une formule de sélection simple sur R est une expression de la forme : A = a ou A = B, où A,B ∈ schema(R) et a ∈ dom(A)
Une formule de sélection est une expression composée de formules de sélection simples connectées à l’aide des connecteurs logiques ٧,٨,¬ et des parenthèses.
Cela se traduit comment dans le monde réel. Et bien, on va garder uniquement les tuples pour lesquels la valeur de l'attribut A = valeur de l'attribut B, ou pour lesquels la valeur de l'attribut A = 'a'.

De manière algébrique, cela se représente ainsi: σA=B(R), ou σA='a'(R).

Quelques règles de sélection
  1. t ╞ A = a si t[A] = a: on dit que notre tuple satisfait la condition A = a si dans notre tuple l'attribut A = a, logique
  2. t ╞ A = B si t[A] = t[B]: on dit que notre tuple satisfait la condition A = B si dans notre tuple la valeur de l'attribut A = valeur de l'attribut B
  3. t ╞ F1 ٨ F2 si t ╞ F1 et t ╞ F2: on dit que notre tuple satisfait les conditions F1 et F2 si il satisfait à la fois F1 et F2
  4. t ╞ F1 ٧ F2 si t ╞ F1 ou t ╞ F2: on dit que notre tuple satisfait F1 ٧ F2 si il satisfait F1 ou si il satisfait F2
Nous allons essayer de faire trois opérations:
σactivite='prof'(Travaillent)
σnom='reichstadt'(Personnes)
σnom='reichstadt' ٧ nom='claude'(Personnes)
σactivite='prof'(Travaillent)
σnom='reichstadt'(Personnes)
σnom='reichstadt' ٧ nom='claude'(Personnes)


Le renommage

Il permet de forcer ou d’éviter des jointures naturelles, en renommant un ou plusieurs attributs d'une relation.
Soit r une relation sur R, A ∈ schema(R) et B ∈ schema(R)
Le renommage de A en B dans r, noté ρA→B(r), est une relation sur S avec schema(S) = (schema(R) − {A}) U {B} définie par : ρA→B(r) = {t | ∃ u ∈ r, t[schema(S) − {B}] = u[schema(R) − {A}] et t[B] = u[A]} Nous allons essayer de faire une seule opération ici:

ρdep→dep1(Departements)
ρdep→dep1(Departements)