Algebra relazionale
Le interrogazioni al database possono essere formalmente rappresentate dall'algebra relazionale.
Ogni relazione R(A1: T1, ..., An: Tn)
è considerata un insieme di ennuple , dove il grado è definito come il numero di attributi e la cardinalità il numero di ennuple.
Operatori principali
-
Ridenominazione, e.g. per rinominare l'attributo a :
che avrà cardinalità e grado uguali ad .
Diventa utile nelle operazioni tra relazioni con attributi con lo stesso nome.
-
Unione e differenza, sulle ennuple di due relazioni ed dello stesso tipo:
con cardinalità , e con cardinalità .
-
Proiezione, e.g. per isolare gli attributi e :
di cardinalità al più perchè le ennuple non sono distinte se gli attributi scelti non sono superchiave.
-
Restrizione, per filtrare le ennuple con una condizione :
Per esempio, per trovare le ennuple degli studenti maggiorenni.
-
Prodotto, per il prodotto cartesiano tra le ennuple di ed aventi attributi distinti:
Per esempio, date le relazioni
Studenti
edEsami
:Matricola Nome 11371 Mario 12678 Paolo Codice Studente* Voto 10822 11371 28 10913 12678 30 si possono trovare: ovvero gli studenti che hanno ottenuto
Voto
uguale a .
Operatori derivati
Dagli operatori principali è possibile ricavare degli operatori derivati, tra cui:
-
Join, per combinare le ennuple con attributi distinti ma aventi gli stessi valori su e :
-
Natural join, come la join ma attraverso attributi di ed aventi lo stesso nome:
che, se espresso con il prodotto, richiede la ridenominazione degli attributi in comune.
Per esempio, dati
Informazioni(CodInfo: string, Anno: int) PK(CodInfo) Libri(ISBN: string, CodInfo*: string) PK(ISBN) CodInfo FK(Informazioni)
si possono associare le due relazioni con , oppure:
-
Outer join, come la join ma tenendo le ennuple non combinabili impostando i nuovi attributi a
NULL
: -
Intersezione, sulle ennuple delle relazioni ed dello stesso tipo:
-
Divisione, per raggruppare tutte le ennuple di associate a tutti gli attributi di :
dove contiene gli attributi e , mentre contiene solamente gli attributi .
Per esempio, siano e , allora restituisce gli studenti che hanno fatto al minimo tutti gli esami .
Inoltre, le ennuple associate esattamente (né più né meno) a tutte quelle in si possono ottenere con: dove il secondo termine contiene le ennuple in associate al più a quelle in .
Operatori speciali
-
Proiezione generalizzata, per dare un nome a delle espressioni:
Per esempio, saranno ennuple di tipo
(Codice, Totale)
. -
Raggruppamento, per raggruppare più ennuple attraverso delle funzioni di aggregazione:
dove sono espressioni che aggregano più ennuple che hanno gli stessi :
- : somma i valori sull'attributo
- : fa la media di tutti i valori di
- : conta le ennuple
- e : trovano il minimo e il massimo dei valori su
- , suffisso alle precedenti funzioni per rimuovere i duplicati
Per esempio, dato si trovano il numero di esami, il minimo, il massimo e la media dei voti di ogni
Candidato
.
Operatori sui multiinsiemi
Se nelle relazioni sono presenti più ennuple uguali, vanno sfruttati gli operatori per i multiinsiemi:
-
Proiezione senza rimuovere duplicati:
-
Eliminazione duplicati, per rimuovere le ennuple con gli stessi valori:
-
Ordinamento, per ordinare lessicograficamente le ennuple con priorità da fino ad :
-
Unione, intersezione e differenza, e.g. con un ennupla che appare volte in e volte in :
su cui appare volte.
su cui appare volte.
su cui appare volte.
Trasformazioni
Agli operatori possono essere applicate delle regole di equivalenza per manipolare le espressioni: