02. Algebra relazionale

L’ Algebra relazionale è un linguaggio procedurale che consente di effettuare operazioni su tabelle, introdotto da Edgar Codd negli anni 70.

Gli operatori di questo linguaggio accettano in input una o due tabelle (relazioni) e producono in output ancora una tabella (relazione).

L'algebra relazionale ha 6 operatori primitivi:

    • Unione (operatore binario)

    • Differenza (operatore binario)

    • Prodotto cartesiano (operatore binario)

    • Selezione (operatore unario)

    • Proiezione (operatore unario)

    • Ridenominazione (operatore unario).

A questi si affiancano altri operatori derivati, che possono essere definiti come combinazione di operatori primitivi.

Nel seguito analizzeremo esclusivamente gli operatori primitivi.

Unione

Si applica a due tabelle con gli stessi attributi.

Produce una tabella costituita dall'insieme delle righe che appartengono alla prima o alla seconda tabella (senza ripetizioni).

Esempio:

T = R UNION S

Differenza

Si applica a due tabelle con gli stessi attributi.

Produce una tabella con le righe della prima tabella che non appartengono alla seconda tabella.

T = R MINUS S

Prodotto Cartesiano

L’operazione di prodotto cartesiano tra due tabelle qualsiasi produce una nuova tabella composta da un numero di attributi pari alla somma degli attributi delle due tabelle. In caso di omonimia tra gli attributi delle due tabelle, gli attributi si distinguono anteponendo al nome dell'attributo il nome della tabella di origine.

Le righe della nuova tabella si ottengono concatenando ogni riga della prima tabella con ciascuna riga della seconda tabella.

T = R TIMES S

Selezione

Si applica ad una sola tabella e produce una nuova tabella costituita da alcune righe della tabella originaria (sottoinsieme orizzontale).

Le righe selezionate sono tutte quelle che soddisfano una determinata condizione.

Esempio:

T = RESTRICT R WHERE Z=1

Proiezione

Si applica ad una sola tabella e produce una nuova tabella costituita da alcune colonne della tabella originaria (sottoinsieme verticale).

Le colonne da selezionare sono specificate come parametri dell'operatore PROJECT.

Le righe sono tutte quelle della tabella originaria (opportunamente ridotte nella "lunghezza") eliminando quelle che risultano duplicate.

Esempio:

T = PROJECT R OVER x, z

Ridenominazione

Si applica ad una sola tabella e altera lo schema della tabella (cioè il nome della tabella o dei suoi attributi).

Questa trasformazione, in alcuni casi, si rende necessaria per rendere possibile l'applicazione di un operatore binario dell'algebra relazionale che richiede la coincidenza dei nomi degli attributi di due tabelle.

Esempio:

T = RENAME R (y, z), (v, w)