Home Insegnanti Contattami Portfolio

Algebra Relazionale

Introduzione

Alcuni link Importanti:

Definizione (di Wikipedia):

In informatica l'algebra relazionale e il collegato calcolo relazionale fanno parte dell'insieme di linguaggi che permettono di esaminare le query (interrogazioni) da effettuare nell'ambito della gestione/utilizzo di un database. (da Wikipedia).

Tabelle Esempi

Per gli esempi successivi prendiamo in considerazione queste tabelle:

Operatori

Gli operatori si suddividono in 2 categorie principali:

Nota: gli operatori di: Selezione, Proiezione, Ridenominazione, Unione, Differenza, Prodotto Cartesiano sono operatori di base (primitivi). Mentre i restanti 3 (intersezione, join, divisione) sono derivati dai primi 6.

Selezione

La selezione è un operatore unario ortogonale dell'algebra relazionale che seleziona le tuple di una relazione (tabella) che soddisfano una particolare condizione. Il simbolo della selezione è sigma σσ o SEL.

σcondizione(relazione)σ_{condizione}(relazione)

oppure:

SELcondizione(relazione)SEL_{condizione}(relazione)

Il risultato della selezione è una tabella con lo stesso schema della relazione r(X) in ingresso. Dove X è l'insieme degli attributi.

Nota: La selezione si dice operatore "ortogonale" perché seleziona le righe della tabella che soddisfano la condizione specificata, senza duplicazioni, mantenendo gli stessi attributi (X).


Proiezione

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 π\pi con in pedice la lista degli attributi e tra parentesi il nome della relazione:

πattrributi(relazione)\pi_{attrributi}(relazione)

oppure:

PROJattrributi(relazione)PROJ_{attrributi}(relazione)

Il risultato della proiezione è una tabella contenente al più tutte le ennuple della relazione in ingresso senza duplicazioni ma soltanto alcune colonne.


Ridenominazione

La ridenominazione è un operatore unario dell'algebra relazionale che permette di cambiare i nomi degli attributi di una relazione R. Il simbolo è ρ\rho:

ρnuovonomenomeattributo(relazione)\rho_{nuovonome \leftarrow nomeattributo}(relazione)

oppure:

RENnuovonomenomeattributo(relazione)REN_{nuovonome \leftarrow nomeattributo}(relazione)

L'operazione di ridenominazione cambia soltanto i nomi degli attributi nello schema della relazione e non i dati nelle tuple.

Il contenuto della tabella resta tale e quale.

Unione


Differenza


Prodotto Cartesiano


Intersezione


Join

L'operatore join in algebra relazionale correla i dati contenuti in relazioni diverse confrontando i valori. Esistono due tipi di join: il join naturale e il join condizionale (theta join).

Si tratta di un operatore che ha per operandi una o due relazioni (tabelle) in ingresso e fornisce in uscita un'altra relazione (tabella).

Join Naturale

Il join naturale correla i dati in due relazioni diverse sulla base dei valori uguali negli attributi con lo stesso nome. Il simbolo del join naturale è una “farfalla” .

r1r2=tX1 X2 t[X1]r1t[X2]r2r1⋈r2 = {t \in X_1 \ \cup \ X_2 \ | \ t[X_1] \in r_1 \wedge t[X_2] \in r_2}

Il presupposto è che ci siano due relazioni contenenti alcuni attributi con lo stesso nome.

3 casi:

Nota: Se nel join naturale non ci sono attributi in comune, il risultato è il prodotto cartesiano delle relazioni r1 x r2.
Nota: Se nel join naturale tutti gli attributi in comune, il risultato è l'intersezione delle relazioni r1 x r2.

Theta Join

Il join condizionale (theta join) correla i dati in due relazioni diverse sulla base di una condizione booleana. E' anche detto theta join. Il simbolo del join condizionale è una farfalla seguita da una C:

r1Cr2r1⋈_Cr2

L'operatore theta join legge le tuple della prima relazione e verifica quali tuple della seconda relazione soddisfano la condizione di join.

Se la condizione è soddisfatta le tuple sono combinate e aggiunte nella tabella di join.

Viceversa, le tuple che non la soddisfano sono escluse.

Nota: Il join condizionale tra due relazioni r1 e r2 equivale a una selezione sul prodotto cartesiano delle relazioni r1 X r2.