basi di dati i prof.ssa rosalba giugno prof. alfredo pulvirenti algoritmo di query optimization

12
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Upload: cajetan-salvatori

Post on 01-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Basi di dati I

Prof.ssa Rosalba GiugnoProf. Alfredo Pulvirenti

Algoritmo di Query Optimization

Page 2: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Espressione Algebrica di Query

• L’Algebra Relazionale può essere utilizzata come linguaggio per interrogare una base di dati.

Page 3: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Equivalenza di espressioni

• Due espressioni sono equivalenti se producono lo stesso risultato qualunque sia l'istanza attuale della base di dati

• L'equivalenza è importante in pratica perché i DBMS cercano di eseguire espressioni equivalenti a quelle date, ma meno "costose"

Page 4: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Un'equivalenza importante

• Push selection (se A è attributo di R2 )

SEL A=10 (R1 JOIN R2) = R1 JOIN SEL A=10 ( R2)

• Riduce in modo significativo la dimensione del risultato intermedio (e quindi il costo dell'operazione)

Page 5: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Esempio di Query

• Consideriamo l’esempio del database degli studenti costituito dalle tre tabelle Studenti, Esami, Corsi.

• Supponiamo che vogliamo trovare tutti i professori che hanno dato a Mario Rossi piu’ di 27.

ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti Esami Corsi)

Page 6: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Query Optimization

• La stessa query PNome=‘Mario Rossi’& Voto>27 (Studenti Esami

Corsi)

• può essere espressa come P (Nome=‘Mario Rossi’Studenti ( Voto>27

Esami Corsi))

• Che risulta essere molto più efficiente!

Page 7: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

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:

Page 8: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Regole sulla restrizione

1. Raggruppamento di restrizionia. C(X) (C(Y)(E))=C(X)&C(Y)(E)

2. Commutativita’ di e a. C(X)(Y(E))=Y(C(X)(E)) ,se XY;

b. Y(C(X)(XY(E)))=Y(C(X)(E))se X Y.

Page 9: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Restrizione e Prodotto

3. Anticipazione di rispetto a .a. C(X)(E F)= C(X)(E) F, se X attr(E).

b. C(X)&C(Y)(E F)= C(X)(E) C(Y)(F), se X attr(E), Y attr(F).

c. 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)

Page 10: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Regole per la proiezione

4. Raggruppamento di proiezioni.a. X(Y(E))= X(E) , se XY.

5. Eliminazione di proiezioni superflue.

a. X(E)=E , se X = attr.(E).

6. Anticipazione della rispetto a .a. XY(E F)= X(E) Y(F) , se Xattr(E),

Yattr.(F).

Page 11: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

L’ALGORITMO

• Si applicano le seguenti tre regole (per anticipare la selezione) finché è possibile

A. Si anticipa rispetto a usando la 2.a C(X)(Y(E))=Y(C(X)(E)) ,se XY;

B. Si raggruppano le restrizioni usando la 1C(X) (C(Y)(E))=C(X)&C(Y)(E).

C. Si anticipa l’esecuzione di su usando la 3.

Page 12: Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti Algoritmo di Query Optimization

Giugno-Pulvirenti AA 2006-2007

Anticipazione delle proiezioni

D. Si eliminano le proiezioni superflue usando la 5 X(E)=E , se X = attr.(E). .

E. Si raggruppano le proiezioni mediante la regola 4 X(Y(E))= X(E) , se XY..

F. Si anticipa l’esecuzione delle proiezioni rispetto al prodotto usando ripetutamente la 2 [Commutativita’ di e ] (quando E è un prodotto, da destra verso sinistra) e la 6 [Anticipazione della rispetto a ].