4 - Calcolo e Datalog 2021-22.pdf
4 - Calcolo e Datalog 2021-22.pdf
Con il termine calcolo relazionale si fa riferimento a una famiglia di linguaggi di interroazione, basatis sul calcolo dei predicati del primo ordine, che hanno la caratteristica di essere dichiarativi, cioè di specificare le proprietà del risultato delle interrogazioni, anziché la procedura seguita per generarlo.
L’algebra relazionale è un linguaggio procedurale, in quanto le sue espressioni specificano passo passo la costruzione del risultato.
Qui illustriamo il calcolo relazionale su domini, per poi presentare il calcolo su tuple con dichiarazioni di range.
Le espressioni del calcolo relazionale su domini hanno la forma:

dove:
Vi sono formule atomiche di due tipi:


Se $f_1$ ed $f_2$ sono formule, allora anche le loro combinazioni con operatori algebrici lo sono
Se $f$ è una formula ed $x$ una varabile, allora anche $\exist x(f)$ e $\forall x(f)$ sono formule.
La lista di coppie $A_1:x_1, ..., A_k:x_k$ viene chiamata target list. Essa definisce la struttura del risultato, che è costituito dalla relazione su $A_1, ..., A_k$ che contiene le tuple i cui valori sostituiti a $x_1,...,x_k$ rendono vera la formla rispetto ad un’istanza di base di dati a cui l’espressione viene applicata.
Vediamo ora le espressioni del calcolo razionale che realizzano le stesse interroazioni formulate in algebra relazionale.
Dati:

1 - trovare tutti i dati di chi guadagna più di 40k al mese
In algebra relazionale sarebbe:

quindi effettuiamo una semplice selezione
In calcolo relazionale sarebbe:

perciò nella prima riga diciamo quali dati ci interessano(proiezione), dopo la sbarra richiediamo i valori rispettivamente sostituiti a m, n, e, s che costituiscono una tupla delle relazione impiegati, con l’and invece chiediamo che il valore della variabile s sia maggiore di 40.