Proiezione in algebra relazionale
La proiezione è un operatore unario ortogonale dell'algebra relazionale che seleziona alcuni attributi (colonne) di una relazione (tabella). Il simbolo della proiezione è la pi greco ∏ con in pedice la lista degli attributi e tra parentesi il nome della relazione $$ ∏ _{attributi} (relazione) $$ oppure PROJ $$ PROJ _{attributi} (relazione) $$
Il risultato della proiezione è una tabella contenente al più tutte le ennuple della relazione in ingresso senza duplicazioni ma soltanto alcune colonne.
Gli attributi (colonne) non indicati nella proiezione sono eliminati.
Pertanto, lo schema della relazione proiettata ha meno attributi rispetto alla relazione operando.
Nota. Se le tuple selezionate presentano delle duplicazioni, nella tabella proiettata sono eliminate. In questo caso il numero delle tuple (cardinalità) della proiezione è inferiore alla tabella operando in ingresso. Quindi, non è detto che la cardinalità sia sempre la stessa. La cardinalità della proiezione coincide sicuramente con la relazione in ingresso se gli attributi indicati nella proiezione sono una superchiave della relazione, perché in questo caso sicuramente hanno valori diversi.
L'operatore di proiezione è detto "ortogonale" perché decompone la tabella in verticale (decomposizione verticale).
La proiezione è complementare alla selezione che, invece, attua una decomposizione orizzontale della tabella.
Un esempio pratico
Ho una tabella S contenente tre attributi {b,d,e} e 5 tuple.
Per ottenere la tabella con il solo attributo d scrivo.
πd (S)
Il risultato è una tabella con la sola colonna d.
Esempio 2 (selezione più attributi)
Per selezionare gli attributi {b,e} li scrivo nella proiezione separandoli con una virgola.
πb,e (S)
Il risultato è una tabella con due colonne.
Esempio 3 (proiezione e selezione)
In questo esempio utilizzo la proiezione e la selezione in un'unica operazione composta.
Seleziono le tuple con valore d<200 poi proietto il risultato nella sola colonna d.
πd (σd<200 (S))
La prima operazione da svolgere è la selezione tra parentesi tonde.
Poi segue la proiezione sulla tabella ottenuta dalla selezione.
Il risultato finale è la colonna d con le sole tuple che rispondono alla condizione d<200.
In questo modo ho realizzato la decomposizione verticale e orizzontale della tabella.
E così via.