SQL e algebra relazionale

R1(A1, A2) R2(A3, A4)

SELECT R1.A1, R2.A4 FROM R1, R2 WHERE R1.A2 = R2.A3

$PROJ_{A1,A4} (SEL_{A2 = A3} (R1 \space JOIN \space R2))$

possono essere necessarie ridenominazioni:

SELECT X.A1 AS B1, .. FROM R1 X, R2 Y, R1 Z WHERE X.A2 = Y.A3 AND ..

$REN_{B1,B2 \leftarrow A1,A4}(PROJ_{A1,A4}(SEL_{A2 = A3 \space AND \space A4=C1} (R1 \space JOIN \space R2 \space JOIN \space REN_{C1,C2 \leftarrow A1,A2} (R1))))$

SQL: esecuzione delle interrogazioni

Le espressioni SQL sono dichiarative e noi ne stiamo vedendo la semantica

In pratica, i DBMS eseguono le operazioni in modo efficiente, ad esempio:

SQL: specifica delle interrogazioni

La capacità dei DBMS di “ottimizzare” le interrogazioni, rende (di solito) non necessario preoccuparsi dell’efficienza quando si specifica un’interrogazione

Perciò è più importante preoccuparsi della chiarezza (anche perchè così è più difficile sbagliare)