algoritmo di query optimization

11
Algoritmo di Query Optimization

Upload: rico

Post on 20-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Algoritmo di Query Optimization

Algoritmo diQuery Optimization

Page 2: 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.

Page 3: Algoritmo di Query Optimization

Esempio di Query

Supponiamo che vogliamo trovare tutti i professori che hanno dato a Mario Rossi piu’ di 27. (1 e’ natural join)

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

Page 4: Algoritmo di Query Optimization

Query Optimization

La stessa queryPNome=‘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!

Page 5: Algoritmo di Query Optimization

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 6: Algoritmo di Query Optimization

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 7: Algoritmo di Query Optimization

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 8: Algoritmo di Query Optimization

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 9: Algoritmo di Query Optimization

L’ALGORITMO

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

A. 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.

Page 10: Algoritmo di Query Optimization

Anticipazione delle proiezioni

D. 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.

Page 11: Algoritmo di Query Optimization

Esercitazioni?