DB - Algebra Relazionale, Query Optimization

Algoritmo di
Query Optimization
Espressione Algebrica di Query

L’Algebra Relazionale può essere
utilizzata come linguaggio per interrogare
una base di dati.

Infatti consideriamo l’esempio del
database degli studenti costituito dalle tre
tabelle Studenti, Esami, Corsi.
Esempio di Query

Supponiamo che vogliamo trovare tutti i
professori che hanno dato a Mario Rossi
piu’ di 27. (1 e’ natural join)

ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti 1
Esami 1 Corsi)
Query Optimization

La stessa query
 PNome=‘Mario Rossi’& Voto>27
(Studenti 1 Esami 1
Corsi)

può essere espressa come
 P
(Nome=‘Mario Rossi’Studenti 1 ( Voto>27 Esami 1
Corsi))

Che risulta essere molto più efficiente!
Regole per la query optimization
Anticipare l’applicazione delle proiezioni e
delle restrizioni rispetto al prodotto (e
quindi alle giunzioni), in modo da ridurre la
dimensione delle tabelle a cui applicare il
prodotto (e le giunzioni).
 Le seguenti regole possono essere
utilmente utilizzate per l’ottimizzazione di
espressioni:

Regole sulla restrizione
1.
Raggruppamento di restrizioni
a.
2.
C(X) (C(Y)(E))=C(X)&C(Y)(E)
Commutativita’ di  e 
C(X)(Y(E))=Y(C(X)(E)) ,se XY;
b. Y(C(X)(XY(E)))=Y(C(X)(E))se X  Y.
a.
Restrizione e Prodotto
3.
Anticipazione di  rispetto a .
a.
b.
c.
C(X)(E  F)= C(X)(E)  F, se X attr(E).
C(X)&C(Y)(E  F)= C(X)(E)  C(Y)(F), se X attr(E),
Y attr(F).
C(X)&C(Y)&C(Z)(E  F)= C(Z)( C(X)(E)  C(Y)(F)), se
X attr(E), Y attr(F), Z attr(E) , Z
attr(F)
Regole per la proiezione
4.
Raggruppamento di proiezioni.
a.
5.
Eliminazione di proiezioni superflue.
a.
6.
X(Y(E))= X(E) , se XY.
X(E)=E , se X = attr.(E).
Anticipazione della  rispetto a .
a.
XY(E  F)= X(E)  Y(F) , se Xattr(E), Yattr.(F).
L’ALGORITMO

Si applicano le seguenti tre regole
(per anticipare la selezione) finché è
possibile
Si anticipa  rispetto a  usando la 2.a.
B. Si raggruppano le restrizioni usando la 1.
C. Si anticipa l’esecuzione di  su  usando la
3.
A.
Anticipazione delle proiezioni
Si eliminano le proiezioni superflue usando
la 5.
E. Si raggruppano le proiezioni mediante la
regola 4.
F. Si anticipa l’esecuzione delle proiezioni
rispetto al prodotto usando ripetutamente la
2 (quando E è un prodotto, da destra verso
sinistra) e la 6.
D.
Esercitazioni?