Algoritmo di Query Optimization
Espressione Algebrica di Query LAlgebra Relazionale può essere utilizzata come linguaggio per interrogare una base di dati. Infatti consideriamo lesempio 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 lapplicazione 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 lottimizzazione di espressioni:
Regole sulla restrizione 1. Raggruppamento di restrizioni a. C(X) ( C(Y) (E))= C(X)&C(Y) (E) 2. Commutativita di e a. C(X) ( Y (E))= Y ( C(X) (E)),se X Y; b. Y ( C(X) ( XY (E)))= Y ( C(X) (E))se X Y.
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)
Regole per la proiezione 4. Raggruppamento di proiezioni. a. X ( Y (E))= X (E), se X Y. 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 X attr(E), Y attr.(F).
LALGORITMO 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 lesecuzione di su usando la 3.
Anticipazione delle proiezioni D. Si eliminano le proiezioni superflue usando la 5. E. Si raggruppano le proiezioni mediante la regola 4. F. Si anticipa lesecuzione delle proiezioni rispetto al prodotto usando ripetutamente la 2 (quando E è un prodotto, da destra verso sinistra) e la 6.
Esercitazioni?