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:
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).
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: