IL PROBLEMA DELLE VISTE MATERIALIZZATE IL PROBLEMA DELLE VISTE MATERIALIZZATE: PROBLEMI Le viste nei DBMS relzionli Utilità elle viste mterilizzte per l'eseuzione i interrogzioni Venite(ProutI, NegozioI, DtI, Q) to un rio i lvoro Q, quli viste mterilizzre SELECT FROM GROUP BY NegozioI, ProutI, SUM(Q) AS TQ Venite NegozioI, ProutI; Si mterilizz :V ome ggiornre le viste quno si moifino i ti (non si onsier) t un'interrogzione, ome risriverl per usre un vist mterilizzt SELECT FROM GROUP BY NegozioI, SUM(Q) AS TQ Venite NegozioI; SELECT FROM GROUP BY Si risrive NegozioI, SUM(TQ) AS TQ V NegozioI; 1 2 APPROCCIO NOZIONE DI PATTERN DI AGGREGAZIONE Le interrogzioni el rio i lvoro sono nell form: q = A! SUM(m) AS m (per revità q = A!) oppure q = A! $ B on A e B insiemi isgiunti i ttriuti e restrizioni AND i preiti (Att = ). Interrogzioni Q Il pttern (i ggregzione) P(v) i un vist v = A! è l'insieme A egli ttriuti i rggruppmento. Viste nite Il pttern P(q) i un'interrogzione q = A! $ B è l'insieme A " B Vinoli e oiettivi Algortimo i selezione Moello ei osti Diremo he q è lolile ll vist v (q << v) se il risultto i q può essere Viste mterilizzte selezionte trovto usno v. Se P(q) = A " B e P(v) = C, q << v sse A " B # C Dte ue viste v1 e v2 e un'interrogzione q, se v1 < v2 e q << v1, llor q << v2 3 4 IPOTESI SEMPLIFICATIVE I ti sono sttii on on n imensioni, prive i ttriuti, e un misur m Le viste nite sono i possiili uoii el uo esteso (retiolo ei uoii = retiolo elle possiili viste), iversi ll rie F, efiniti on espressioni tipo: A! SUM(m) AS m (F). Gli ttriuti i rggruppmento el uoie v si enotno on g(v) Il rio i lvoro sono le interrogzioni qi he efinisono i uoii iversi ll rie F. Diremo he q è lolile ll vist v (q << v) se il risultto i q può essere trovto usno v. IL RETICOLO DEL DW A B M 0 1 50 1 1 100 2 3 60 4 5 70 6 5 90 A B C M 0 1 1 50 1 1 1 100 2 3 1 60 4 5 1 70 6 5 2 90 A C M 0 1 50 1 1 100 2 1 60 4 1 70 6 2 90 B C M 1 1 150 3 1 60 5 1 70 5 2 90 SELECT B, C SUM(M) AS M FROM R GROUP BY B, C; Dte ue viste v1 e v2 e un'interrogzione q, se v1 < v2 e q << v1, llor q << v2 Il osto i eseuzione i q usno l vist v è v, il numero i reor i v. 5 A M 0 50 1 100 2 60 4 70 6 90 B M M 1 150 3 60 5 160 370 C M SELECT C SUM(M) AS M FROM R 1 180 GROUP BY C; 2 90 SELECT SUM(M) AS M FROM R; 6 le interrogzioni el rio i lvoro sono nell form: q = A! oppure q = A! $ B on A e B insiemi isgiunti i ttriuti e restrizioni AND i preiti (Att = ).
DAL RETICOLO DEI CUBOIDI AL RETICOLO DELLE VISTE STIMA DIMENSIONE DI UNA VISTA (ProottoI, DtI, NegozioI) DtI) (ProottoI, NegozioI) (DtI, (ProottoI, NegozioI) (ProottoI) (DtI) (NegozioI) ( ) pn 6M p 0.8M pn 6M n 6M p 0.2M 0.1M n 0.01M none 1 vist v = A! F (R) Stim i v on l formul i Crens (uniforme istriuzione ei ti): v = n n(1 1/n) r ove n è il numero i possiili vlori i A e r = R. Esempio. Si R(B,C,D), on Nre(R), Nkey(B) e Nkey(C). L stim i un vist v rggruppno R su (B, C) si ottiene poneno Come stimre l imensione i un vist? n = Nkey(B) * Nkey(C) r = Nre(R) 7 8 PERCHE' MATERIALIZZARE LE VISTE PERCHE' NON MATERIALIZZARE TUTTE LE VISTE? pn 6M pn 6M p 0.8M pn 6M n 6M p 0.8M pn 6M n 6M p 0.2M 0.1M n 0.01M p 0.2M 0.1M n 0.01M none 1 none 1 Query: totle elle venite rggruppte per ProottoI Cso 1: ti (pn) = 6M Cso 2: vist mterilizzt (p) = 0.8M Cso 3: vist mterilizzt (p) = 0.2M Complet mterilizzzione: ~19M reor Meglio przile: - inluere: pm, il DW - esluere: pn, n totle: ~ 7M, pri prestzioni 9 10 SCELTA DELLE VISTE DA MATERIALIZZARE BENEFICIO DI UNA VISTA pn 1000 Si C(qi, M) il osto i eseuzione ell'interrogzione qi usno le viste mterilizzte M. L'oiettivo è i selezionre il sottoinsieme M elle viste nite V he minimizzi il osto omplessivo i eseuzione elle interrogzioni Q: %(V, M) = & i = 1.. Q C(qi, M) rispettno un vinolo he verrà speifito più vnti. Il prolem i ottimizzzione è NP-ompleto. Pertnto si er un soluzione pprossimt on un lgoritmo i tipo greey he proee selezionno un opo l'ltr l vist he proue il mssimo enefiio, finhé le viste selezionte non superno un vinolo prefissto. Informlmente, il enefiio i un vist è l riuzione el osto i eseuzione el rio i lvoro he proue. 1. Per ogni vist w isenente i v (w ' v): ) Si u l vist i osto minimo in M tle he w ' u ) Se C(v) < C(u), llor B w = C(u) C(v), ltrimenti B w = 0. 2. Si pone B(v, M) = & w ' v B w pn 1000 p 500 p 0 n 100 150 Dto un insieme M i viste mterilizzte, per ogni vist v el retiolo, il enefiio B(v, M) i v rispetto M è efinito : n 700 11 12
ALGORITMO BASE ESEMPIO pn 1000 Vinolo: numero k i viste mterilizzre fr le V nite pn 1000 p 500 n 700 Algoritmo HRU(k) 1. M = {Top}; 2. A = V M; 3. for i = 1 to k o 3.1. v = l vist in A, tle he B(v, M) è mssimo 3.2. M = M " {v}; 3.3. A = A {v}; 4. return M; p 0 n 100 150 pn p n p n ( ) Prim selt 0 500! 4 = 00 300! 4 = 10 800! 2 = 1600 900! 2 = 1800 850! 2 = 1700 999 Soluzione M = {pn, p, n, } Seon selt 0 300! 2 = 600 300! 2 = 600 900 + 400 = 1300 350! 2 = 700 499 Terz selt 0 300 300 350 99 13 14 1. Per ogni vist w isenente i v (w ' v): ) Si u l vist i osto minimo in M tle he w ' u ) Se C(v) < C(u), llor B w = C(u) C(v), ltrimenti B w = 0. 2. Si pone B(v, M) = & w ' v B w HRU NON TROVA LA MIGLIORE SOLUZIONE PRESTAZIONI K = 2 A 0 B 100 C 99 D 100 Complessità i tempo O(kn 2 ), ove k è il numero i viste selezionte e n il numero elle viste el retiolo. In generle l'lgoritmo non trov l soluzione ottim, m è stto imostrto he esso fornise uoni risultti e vle l seguente proprietà: Prim selt B = 100+ 40*100 = 4100 C = 101 + 40*101 = 4141 Seon selt B = 100+*100 = 2100 Greey M = {A, C, B} B(M) = 6241 Ottimo M = {A, B, D} B(M) = 0 + (0-100) * 80 = 80 Per ogni retiolo, si B greey il enefiio i k viste selte on l'lgoritmo greey e B opt il enefiio i un insieme ottimo i k viste, llor B greey non è inferiore 0,63 * B opt. D = 100 + 40*100 = 4100 D = 100+*100 = 2100 6241/80 = 0,76 15 16 VARIANTE 1 PGA: ESEMPIO pm 1000 Algoritmo HRU h omplessità i tempo polinomile nel numero elle viste n, m esponenzile nel numero elle imensioni! O(kn 2 ) = O(k2 2 ) pm 1000 p 500 m 700 Con n = 10, il retiolo h 1024 noi e HRU seglie 1 viste in un or! L omplessità esponenzile ipene ue selte: A ogni iterzione si lol il enefiio i tutte le viste non mterilizzte A ogni iterzione si onsierno tutti i isenenti i un vist Cnite i prim nomin = {p},, p 0 m 100 150 fse i nomin: si selgono le viste più promettenti, fr quelle non nor prese in onsierzione, he si ggiungono ll'insieme elle viste nite, inizilmente vuoto. Le viste promettenti sono le più piole i ogni fmigli. Nel 02 è stto proposto un lgoritmo Polynomil Greey Algorithm (PGA) i omplessità polinomile nelle imensioni. fse i selt: si seglie l vist v fr quelle nite on il mssimo enefiio e si ritorn l psso preeente. Prim selt: {p} 17 18
PGA: ESEMPIO pm 1000 VARIANTE 2 pm 1000 p 500 m 700 Crio i lvoro on interrogzioni non equiproili p 0 m 100 150 Cnite i prim nomin = {p},, Cnite i seon nomin = {m},, {m}, Cnite i terz nomin = {m}, {pm},, {p}, Prim selt: {p} Seon selt: {m} Terz selt: {m} Invee i fissre il numero k i viste mterilizzre, si impone il vinolo he l'insieme M non oupi più i un erto spzio S. L soluzione in questo so è ivers HRU, m ll umentre elle imensioni i solito è l stess. 19 ALGORITMO CON VINCOLO DI SPAZIO BPUS ALGORITMO CON VINCOLO DI SPAZIO PBS (Pik By Size) Algoritmo BPUS(S) Benefiio per unità i spzio B s (v, M) = B(v, M)/S(v) = & w ' v B w /S(v) 1. M = {Top}; 2. A = V M; 3.w h i l e (S > 0) o 3.1. v = vist in A on mx Bs; 3.2. if (S S(v) > 0) then {S = S S(v); M = M " {v}; A = A {v} }; else S = 0; 4.r e t u r n M; Algoritmo PBS(S) 1. M = {Top}; 2. A = V M; 3.w h i l e (S > 0) o 3.1. v = l vist più piol in A; 3.2. if (S S(v) > 0) then {S = S S(v); M = M " {v}; A = A {v} }; else S = 0; 4.r e t u r n M; Si omport ome PBUS per retioli Size Restrite: per ogni vist v on k figli e per ogni suo genitore z, z! (1+k) v, quno z " Top Risultti sperimentli mostrno he il risultto trovto è uono nhe se il retiolo non è Size Restrite. 21 22 VARIANTE 3 VISTE CANDIDATE Il rio i lvoro è un prtiolre insieme i interrogzioni Q. Sono le v on ssoit lmeno un q... 1000 v q 1 q 1 2 {ProottoI, NegozioI, DtI} q 5 1000 v q 1 q 1 2 {ProottoI, NegozioI, DtI} q 5 1000 v 2 {ProottoI, NegozioI} 500 v q 3 3 q 4 {ProottoI, DtI} 700 v 4 {NegozioI, DtI} V2? NO 1000 v 2 {ProottoI, NegozioI} 500 v q 3 3 q 4 {ProottoI, DtI} 700 v 4 {NegozioI, DtI} 0 v 5 {ProottoI} q 6 100 v 6 {NegozioI} 150 v 7 {DtI} 0 v 5 {ProottoI} q 6 100 v 6 {NegozioI} 150 v 7 {DtI} 1 v 8 1 v 8 { } { } Ogni q si ssoi ll minim vist v he ne onsente il lolo. 23 24
CRITERIO PER STABILIRE SE UNA VISTA E CANDIDATA ALGORITMO PER TROVARE LE VISTE CANDIDATE Algoritmo BPT(Q) Dto uno shem i DW e un rio i lvoro Q, un vist v è ett nit se soisf un elle seguenti onizioni: ( esiste un interrogzione q ) Q tle he g(q) = g(v), ( esiste un oppi i viste nite v i e v j tli he g(v) = g(v i ) * g(v j ), on * estremo superiore Cnite = insieme ei g(v) tli he g(v)=g(q), per ogni q ) Q; while (Cnite mi) o for (g(v i ) ) Cnite with g(v i )! Top) o for (g(v j ) ) Cnite with (g(v j )! Top) n (g(v i ) + g(v j )) n (g(v j ) * g(v j ), Cnite)) o Cnite = Cnite " (g(v j ) * g(v j )); return Cnite; 25 26 ALGORITMO DI SCELTA DELLE VISTE CON CARICO DI LAVORO DIMENSIONI CON ATTRIBUTI D Q si trov l insieme elle possiile viste nturli Si etermin l insieme elle viste nite V Si trov l insieme elle viste mterilizzre on uno egli lgoritmi Ipotetio Riotto visti in preeenz Ipotetio: ome se si prtisse i ti ell giunzione i F on tutte le D. Si puo semplifire: - ome rie st F - se > un vist su h gli stessi gruppi i un su. 27 28 DIMENSIONI CON GERARCHIE MODIFICA DELLE VISTE CANDIDATE IN PRESENZA DI GERARCHIE Città NegozioI ProottoI Q1 ProottoI, NegozioI ProottoI, Città NegozioI Q2 Provini Q3 ProottoI, Provini In un vist v si sostituise un ttriuto più generle (Provini) on uno più speifio (Città) se si ottiene un vist v' i "poo" più grne: -S(v') < S(v). E' stto mostrto sperimentlmente he, on - = 0.95, si ottiene un sensiile riuzione el numero elle viste. ProottoI, NegozioI Q1 ProottoI, Città NegozioI Q2 Q3 29 30
CONCLUSIONI GLI INDICI SU VISTE MATERIALIZZATE Su un vist on ttriuti (, ) si possono efinire 4 inii: I, I I o I Gli inii efiniti su tutti gli ttriuti i un vist (I o I ) sono etti ompleti. Oorre un uon lgoritmo pprossimto per trovre le viste mterilizzre, prtire l rio i lvoro e rispettno i vinoli In presenz i gerrhie, oorre riurre l rinlità ell'insieme elle viste nite. Utilità egli inii: si onsieri l'interrogzione q = $ sull vist v on ttriuti (, ). In ssenz i inii il osto i eseuzione i q ipene v. Se esiste l'inie I il osto i eseuzione si stim on quello i esso i ti: C D = v(,) / Nkey(I ) = v(,) / v() 31 32 SCELTA DEGLI INDICI SU VISTE MATERIALIZZATE APPROCCIO CONSIDERATO Due iverse strtegie per risolvere il prolem Crio i lvoro Q Crio i lvoro Q Crio i lvoro Q Inii niti IniiC Viste nite V Selezione viste mterilizzte M Selezione viste mterilizzte M e inii I Vinoli e Oiettivi Algoritmo i selezione Moello ei osti Selezione inii memorizzre I Viste e inii M! I Viste M e Inii I Viste e inii M! I 33 34 REGOLE DI BUON SENSO Costruire un inie sugli ttriuti ell vist usti nelle restrizioni e he sono molto selettivi. Costruire un inie sugli ttriuti ell vist he sono hive estern ell tell sull qule è efinit l vist. 35