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))))$
Le espressioni SQL sono dichiarative e noi ne stiamo vedendo la semantica
In pratica, i DBMS eseguono le operazioni in modo efficiente, ad esempio:
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)