chuong 4-toi uu hoa trong csdl phan tan

Upload: tlongcnktqn

Post on 15-Jul-2015

334 views

Category:

Documents


1 download

TRANSCRIPT

Chng 4 X L TRUY VN TRONG C S D LIU PHN TN4.1 Gii thiu v x l truy vn Trong DBMS phn tn, vic thc hin cc truy vn trn cc ngn ng bc cao rt tn km thi gian. Do trc khi thc hin truy vn, cc DBMS ny s thc hin bin i cu truy vn lm gim thiu thi gian x l, gim vng nh trung gian v gim chi ph truyn thng gia cc trm. Chng ny s trnh by cc vn lin quan n vic x l cu truy vn ca mt h qun tr CSDL phn tn, c th phn tch nhng vn lin quan trong bn giai on x l truy vn: phn r truy vn, nh v d liu, ti u ho tng th, ti u ho cc b. Chc nng chnh ca mt b x l truy vn l bin i mt truy vn ca ngi s dng mc cao thnh mt truy vn tng ng mc thp hn (mt s bin thi ca i s quan h). Php bin i ny phi t c c v tnh ng n v tnh hiu qu. Ngha l cc truy vn mc thp tng ng vi truy vn ban u v phi cho cng mt kt qu. Cc cch bin i ny s dn n vic s dng ti nguyn my tnh khc nhau, nn vn t ra l la chn phng n no s dng ti nguyn t nht. C hai phng php c bn c s dng trong cc b x l truy vn: phng php bin i i s v phng php c lng chi ph. Phng php bin i i s lm n gin ha cu truy vn nh cc php bin i i s tng ng nhm gim thiu thi gian thc hin cc php ton, phng php ny khng quan tm n kch thc v cu trc d liu. Trong khi phng php c lng chi ph phi xc nh kch thc d liu, thi gian thc hin mi php ton trong mi cu truy vn. Trong mi trng tp trung, cc chin lc x l truy vn c th biu din trong s m rng ca i s quan h. Vai tr chnh ca b x l truy vn tp trung l: vi mt cu truy vn cho trc, chn mt truy vn i s quan h tt nht trong s tt c cc truy vn tng ng. Trong mi trng phn tn, i s quan h cha biu din cc chin lc thc hin. N phi c b sung thm cc php ton truyn d liu gia cc trm. Ngoi vic chn th t cc php ton i s quan h, b x l truy vn phn tn cn phi chn cc trm tt nht x l d liu v cch thc bin i d liu. iu ny lm tng khng gian gii quyt chn cc chin lc thc hin phn tn, nn x l phn tn c nhiu vn phc tp hn. 4.2. Ti u ha cu truy vn trong CSDL tp trung Xt mt CSDL dng qun l cc cng vic ca mt cng ty phn mm, bao gm cc quan h di y. E=NHANVIEN (MANV, TENNV, CHUCVU): l quan h cha d liu v nhn vin ca cng ty. Bao gm, tn nhn vin (TENNV), m s ca nhn vin (MANV), chc v ca nhn vin trong cng ty (CHUCVU) v ngy sinh ca nhn vin (NGAYSINH). S=TLUONG (CHUCVU, LUONG): l quan h cha d liu qun l cc bc lng ca nhn vin trong cng ty. Gm hai trng CHUCVU v LUONG (lng tng ng vi chc v).

J=DUAN (MADA, TENDA, NGANSACH): l quan h cha d liu qun l cc d n m cng ty ang pht trin. Gm ba trng: MADA (m s d n), TENDA (tn d n) v NGANSACH (ngn sch ca d n). G=HOSO (MANV, MADA, NHIEMVU, THOIGIAN): gm bn trng: MANV (m s nhn vin), MADA (m s d n m nhn vin lm vic), NHIEMVU (nhim v ca nhn vin trong d n) v THOIGIAN (thi gian c phn cng trong d n). NHANVIEN HOSO MANV TENNV CHUCVU MANV MADA NHIEMVU THOIGIAN A1 Nam Phn tch HT A1 D1 Qun l 12 A2 Trung Lp trnh vin A2 D1 Phn tch 34 A3 ng Phn tch HT A2 D2 Phn tch 6 A4 Bc Phn tch HT A3 D3 K thut 12 A5 Ty Lp trnh vin A3 D4 Lp trnh 10 A6 Hng K s in A4 D2 Qun l 6 A7 Dng Phn tch HT A5 D2 Qun l 20 A8 Chin Thit k DL A6 D4 K thut 36 A7 D3 Qun l 48 A8 D3 Lp trnh 15 DUAN TLUONG

MADA TENDA NGANSACH CHUCVU LUONG D1 CSDL 20000 K s in 1000 D2 CI T 12000 Phn tch HT 2500 D3 BO TR 28000 Lp trnh vin 3000 D4 PHT TRIN 25000 Thit k DL 4000 Chng ta s s dng CSDL ny minh ho cho cc v d trnh by trong phn tip theo. 4.2.1 S lc v ngn ng truy vn c cu trc-SQL (Structured query language) SQL trc kia c gi l SEQUEL, l mt ngn ng phi th tc c IBM pht trin San Jose, mc ch s dng rng ri trong h thng c s d liu th nghim l System R. Ngy nay, n c s dng trong rt nhiu h thng CSDL thng mi, v trong mt s trng hp, ton b h thng c s d liu c thng mi ho vi tn SQL. Trong khun kh ca gio trnh ny chng ta s dng SQL m t cc gii thut ti u mt cu truy vn m khng trnh by chi tit v SQL. Cu lnh SELECT Dng thng dng nht ca cu truy vn SQL l cu lnh SELECT, c c php nh sau: SELECT FROM WHERE R1.A1, R2.A2,. . ., Ri.Ai R1, R2,. . . , Rk

Trong , R1, R2,. . . , Rk l danh sch cc quan h v R1.A1, R2.A2,. . ., Ri.Ai l danh cc thuc tnh c in ra; R.A l thuc tnh A ca quan h R. l mt biu thc logic c th bao gm php ton logic AND, OR, NOT v cc ton t so snh =, , . . . ngha ca cu lnh SELECT: R1.A1, ...,Ri.Ai

(

(R1 ... Rk))

Ngha l, ly tch -ct cc quan h trong mnh FROM, chn nhng b tha mn biu thc logic trong mnh WHERE ( c th c thay th bng mt biu thc tng ng ), v cui cng chiu ln cc thuc tnh trong mnh SELECT. Cu lnh SELECT ... INTO c tc dng to mt bng mi c cu trc v d liu c xc nh t kt qu ca truy vn. Bng mi c to ra s c s ct bng s ct c ch nh trong danh sch chn v s dng s l s dng kt qu ca truy vn V d: Cu lnh di y truy vn d liu t bng SINHVIEN v to mt bng TUOISV bao gm cc trng HODEM, TEN v TUOI SELECT hodem,ten,YEAR(GETDATE())-YEAR(ngaysinh) AS tuoi INTO tuoisv FROM sinhvien 4.2.2 Cc chin lc ti u ha cu truy vn trong CSDL tp trung Trong phn ny chng ta phn tch hai trong s nhng k thut ti u thng dng nht trong cc h thng tp trung. l cc thut ton c s dng trong h thng CSDL quan h thng dng l INGRES v SYSTEM R. y l tin hiu c cc k thut ti u phn tn v ba l do: Th nht, cu truy vn phn tn phi c dch thnh cc cu truy vn cc b, v c x l theo phng php tp trung. Th hai, cc k thut ti u ho phn tn thng l cc m rng ca k thut tp trung. Cui cng, ti u ho tp trung thng n gin hn. 4.2.2.1 Thut ton INGRES tng thut ton: Thut ton t hp hai giai on phn r v ti u ho. u tin phn r cu truy vn dng php ton quan h thnh cc phn nh hn. Cu truy vn trc tin c phn r thnh mt chui cc truy vn c mt quan h chung duy nht (chnh xc l mt bin b duy nht). Sau mi cu truy vn n quan h c x l bi mt th x l truy vn mt bin (one-variable query processor-OVQP), OVQP ti u ho vic truy xut n mt quan h bng cch chn, da trn v t phng php truy xut hu hiu nht n quan h (nh dng ch mc hoc qut tun t). Th d nu v t c dng , mt ch mc c trn thuc tnh A s c dng. Tuy nhin, nu v t c dng , mt ch mc trn A khng c tc dng g, v qut tun t s c dng.

Thut ton trc tin s thc hin cc php ton n ngi (n quan h) v c gng gim thiu kch thc ca cc kt qu trung gian khi xp th t cc php ton hai ngi (a quan h). Chng ta k hiu qi-1qi biu th cu truy vn q c phn r thnh hai cu truy vn con qi-1v qi, trong qi-1 c thc hin trc v kt qu s c qi s dng. Cho trc cu truy vn q c n quan h, OVQP s phn r q thnh n cu truy vn con q1q2...qn. phn r ny s dng hai k thut c bn: tch (detachment) v thay th (substitution). Tch l k thut c OVQP s dng tch cu truy vn q thnh cc truy vn qq da trn mt quan h chung l kt qu ca q. Nu cu truy vn q c biu din bng SQL c dng: SELECT FROM WHERE R2.A2, R3.A3,. . ., Rn.An R1, R2,. . . , Rn P1(R1.A1) AND P2(R1.A1, R2.A2, . . . , Rn.An)

Trong A1 v A1 l cc danh sch thuc tnh ca quan h R 1, P1 l v t c cha cc thuc tnh ca cc quan h R1, R2, . . ., Rn. mt cu truy vn nh th c th phn r thnh hai cu truy vn con, q theo sau l q qua php tch quan h chung R1: q: SELECT FROM WHERE R1A1 INTO R1 R1 P1(R1.A1)

Trong R1 l mt quan h tm thi cha cc thng tin cn thit thc hin tip tc cu vn tin: q: SELECT FROM WHERE R2A2,. . ., RnAn R1, R2,. . . , Rn P1(R1.A1, R2.A2,. . ., Rn.An)

Bc ny c tc dng gim kch thc ca quan h trn cu truy vn q c nh ngha. Hn na, quan h R1 mi c to ra c th lu vo cu trc c bit nhm tng tc cho cc cu truy vn con theo sau. Chng hn lu R1 trong mt tp tin bm trn thuc tnh ni ca q lm cho vic x l ni hiu qu hn. php tch s rt ra cc php ton chn, thng l nhng php c tnh chn lc cao. V th php tch thc hin mt cch c h thng mi khi c th c. V d minh ha: minh ho k thut tch chng ta c th p dng n cho cu truy vn sau:Cho bit tn ca cc nhn vin ang lm vic trong d n c tn CSDL trn c s d liu ni trn, cu truy vn ny c th c din t bng SQL nh sau: q1: SELECT FROM WHERE NHANVIEN.TENNV NHANVIEN, HOSO, DUAN NHANVIEN.MANV = HOSO.MANV AND HOSO.MADA = DUAN.MADA AND TENDA = CSDL

Sau khi tch cc php chn, cu truy vn q1 c thay bi q11 theo sau l q, trong TGIAN1 l quan h trung gian. q11: SELECT FROM DUAN.MADA INTO TGIAN1 DUAN

WHERE q: SELECT FROM WHERE

TENDA = CSDL NHANVIEN.TENNV NHANVIEN, HOSO, TGIAN1 NHANVIEN.MANV = HOSO.MANV AND HOSO.MADA =TGIAN1.MADA HOSO.MANV INTO TGIAN2 HOSO, TGIAN1 HOSO.MADA =TGIAN1.MADA NHANVIEN.TENNV NHANVIEN, TGIAN2 NHANVIEN.MANV = TGIAN2.MANV

Cc bc tch tip theo cho q c th to ra: q12: SELECT FROM WHERE SELECT FROM WHERE

q13:

Ch c th c nhng cu truy vn con khc na. Truy vn q1 c rt gn thnh chui truy vn q11q12q13. Truy vn q11 l loi n quan h v c th cho chy bi OVQP. Tuy nhin cc truy vn q12 v q13 khng phi loi n quan h v cng khng th rt gn hn na bng php tch. Cc cu truy vn a quan h khng th tch tip c na (chng hn q12 v q13 trong th d trn) c gi l bt kh gin (irreducible). Cc truy vn bt kh gin c bin i thnh cu truy vn n quan h nh php th b (tuple substitution). Cho cu truy vn n-quan h q, cc b ca mt bin c thay bng cc gi tr ca chng, to ra c mt tp cc truy vn (n-1) bin. Php th b c tin hnh nh sau: Trc tin chn mt quan h trong q thay th. Gi R1 l quan h . Th th vi mi b t1i trong R1, cc thuc tnh c tham chiu trong q c thay bng cc gi tr tht s trong t1i, to ra mt cu truy vn q c (n-1) quan h. V vy trong s cu truy vn q c sinh ra bi php th b l card(R1). Php th b c th tm tt nh sau: q(R1, R2, . . . , Rn) c thay bng {q(t1i, R2, R3, . . . , Rn), t1i R1}. V th i vi mi b thu c, cu truy vn con c x l quy bng php th nu n cha bt kh gin. V d minh ha: Xt tip cu truy vn q13 SELECT FROM WHERE NHANVIEN.TENNV NHANVIEN, TGIAN2 NHANVIEN.MANV = TGIAN2.MANV

Quan h c nh ngha bi bin TGIAN2 chy trn thuc tnh duy nht MANV. Gi s rng n ch cha hai b: v . Php th cho TGIAN2 to ra hai cu truy vn con n quan h: q131: SELECT FROM WHERE NHANVIEN.TENNV NHANVIEN NHANVIEN.MANV = E1

q132: SELECT FROM WHERE

NHANVIEN.TENNV NHANVIEN NHANVIEN.MANV = E2

Sau chng c th c OVQP qun l. Thut ton ti u ho INGRES (c gi INGRES - QOA) c trnh by di y x l qui cho n khi khng cn cu truy vn mt quan h no na. Thut ton p dng cc php chn v cc php chiu ngay khi c th s dng k thut tch. Kt qu ca cu truy vn n quan h c lu trong nhng cu trc d liu c kh nng ti u ho nhng cu truy vn sau (nh cc ni) v s c OVQP s dng. Cc cu truy vn bt kh gin cn li sau php tch s c s l bng php th b. Cu truy vn bt kh gin, c k hiu l MRQ. Quan h nh nht vi lc lng ca n c bit t kt qu ca cu truy vn trc s c chn thay th. Phng php n gin ny cho php to ra s do OVQP x l, chn ra ng truy xut tt nht n quan h theo lng t ho vn tin. Thut ton INGRES- QOA Input: MRQ: cu truy vn a quan h c n quan h Output: Cu truy vn ti u Begin Output If n=1 then Output run(MRQ) {thc hin cu truy vn mt quan h} Else {Tch MRQ thnh m truy vn mt quan h v mt truy vn a quan h} ORQ1, ..., ORQm, MRQMRQ For i1 to m Output run(ORQi) {thc hin ORQi } Output output output {trn tt c cc kt qu li} Endfor R CHOOSE_ VARIABLE(MRQ) {R c chn cho php th b} For mi b t R MRQ thay gi tr cho t trong MRQ Output INGRES-QOA(MRQ) {gi qui} Output output output {trn tt c cc kt qu li} Endfor Endif End. {INGRES-QOA} 4.2.2.2 Thut ton ca System R System R thc hin ti u ho tnh bng cch tm kim vt cn khng gian li gii. u vo cho th ti u ho ca System R l cy ton t do phn r cu truy vn SQL. u ra ca n l mt hoch nh thc thi ci t cc ton t ti u. Thay v thc hin mt cch c h thng cc php ton chn trc cc php ni nh trong INGRES, System R ch thc hin nu iu dn n mt chin lc tt hn. Th ti u s gn mt chi ph (theo thi gian) cho mi cy d tuyn v gi li cy c chi ph thp nht. Nhng cy d tuyn c c bng cch hon v cc th t ni ca n quan h ca cu truy vn da vo cc qui tc kt hp v hon v. hn ch chi

ph dnh cho vic ti u ho, s lng cc cy c gim bt bng k thut qui hoch ng. Tp hp cc chin lc khc nhau c xy dng ng khi hai ni tng ng nhau nh hon v, ch c ni c chi ph thp nht mi c gi li. Ngoi ra cc chin lc phi ly tch Descartes u b loi b ngay khi c th. Chi ph ca mt chin lc d tuyn l t hp cc chi ph xut nhp v chi ph CPU. c lng cc chi ph ny (vo lc bin dch) da trn m hnh chi ph c a ra cc cng thc tnh chi ph cho mi thao tc mc thp (th d thao tc chn bng ch mc B-cy). i vi phn ln cc php ton (ngoi tr php chn vi i snh chnh xc), cng thc tnh chi ph u da vo lc lng ca cc ton hng. Thng tin v cc lc lng ca cc quan h trong CSDL c tm thy trong cc thng k ca CSDL, c h thng System R t ng qun l. Lc lng ca cc kt qu trung gian c c lng da vo cc h s chn ca mi php ton. Thut ton ti u ho bao gm hai bc chnh. Trc tin l d on phng php tt nht truy xut n mi quan h da trn mt v t chn la (l phng php c chi ph thp nht). Th hai i vi mi quan h R, th t ni tt nht s c c lng, trong trc tin R s c truy xut bng cch s dng phng php truy xut n quan h tt nht. Khi xt cc ni, chng ta c hai thut ton, v mt trong hai ti u trong ng cnh cho. i vi ni ca hai quan h, quan h c c trc gi l quan h ngoi cnh (external relation), cn quan h kia, l quan h c cc b c tm da theo cc gi tr c c t quan h ngoi cnh s c gi l quan h ni s(internal relation). Chn phng php ni y l xc nh ng truy xut c chi ph thp nht n ni s. Phng php th nht c gi l lp lng (nested loop) to ra tch ca hai quan h. i vi mi b ca ngoi cnh, tng b ca ni s tho v t ni s c truy xut ln lt to ra quan h kt qu. Mt ch mc trn mt thuc tnh ni l mt ng truy xut rt hiu qu i vi ni s. Khi khng c ch mc vi cc quan h tng ng c n1 v n2 trang, chi ph thut ton t l vi n1* n2 , qu cao khi n1 v n2 ln. Phng php th hai c gi l ni trn (merge join) gm c trn hai quan h sp theo thuc tnh ni. Ch mc trn thuc tnh ni c th c s dng lm ng truy xut. Nu iu kin ni l ng thc, chi ph ni hai quan h n 1 v n2 trang t l vi n1+ n2. v th phng php lun lun c chn cho ni bng v khi cc quan h c xp th t trc . nu mt hoc c hai quan h u cha c sp, chi ph ca thut ton ni lp lng s rt ng k so vi chi ph ca php ni sp trn. Chi ph sp n trang t l nlogn. Ni chung thut ton ni trn s hu ch khi cn ni cc quan h ln. Phin bn n gin ca thut ton ti u ho ca System R cho cu truy vn chn- chiu- ni c trnh by trong thut ton di y c hai vng. Vng u tin chn ra ng truy xut mt quan h tt nht n mi n mi quan h trong cu vn tin, cn vng th hai kim tra tt c cc hon v kh hu ca cc th t ni (c n! hon v cho n quan h) v chn ra chin lc truy xut tt nht cho cu vn tin. Cc hon v c to ra bng cch xy dng ng mt cy cc chin lt khc nhau, sau l cc ni ca ba quan h. Iu ny c tip tc cho n khi cc ni ca n quan h u c ti u. Vi hai Heuristic ny, s lng cc chin lc cn kim tra c cn trn l 2 n ch khng phi l n!.

Thut ton R- QOA Input: QT: cy truy vn c n quan h Output: Cu truy vn ti u Begin For mi quan h Ri QT do For mi ng truy xut APij n Ri do Xc nh cost(APij) Endfor Best_APi APij c chi ph nh nht Endfor For mi th t (Ri1, Ri2, . . ., Rin) vi i = 1, . . . , n! do Xy dng strategy (. . .((best_ APi1) Tnh chi ph ca strategy Endfor Output strategy c chi ph nh nht End {R- QOA} V d minh ha: Chng ta hy minh ho thut ton ny vi cu truy vn q 1 trn CSDL mu nu trn. q1: SELECT FROM WHERE NHANVIEN.TENNV NHANVIEN, HOSO, DUAN NHANVIEN.MANV = HOSO.MANV AND HOSO.MADA = DUAN.MADA AND TENDA = CSDL

d trnh by chng ta k hiu: E=NHANVIEN, G=HOSO v J=DUAN th ni ca q1 c trnh by trong hnh di y. cho n gin, nhn MANV trn cnh E----G thay cho v t E.MANV =G.MANV v nhn trn cnh G----J biu th cho v t G.MADA=J.MADA. chng ta gi s c cc ch mc sau: E ch mc trn MANV G ch mc trn MADA J ch mc trn MADA v mt ch mc khc trn TENDA Chng ta gi s rng vng lp u tin ca thut ton chn ra cc ng truy xut mt quan h nh sau: E: G: J: Qut tun t (bi v khng c php chn no trn E) Qut tun t (bi v khng c php chn no trn G) ch mc trn TENDA (do c mt php chn trn J theo TENDA)

G

MANV

MADA

E

J

Hnh 4.1: th kt ni ca cu truy vn Cu trc ng ca cy cc chin lc la chn nh hnh 4.2. Cc php ton c nh du "loi b" (pruned) s c loi b t ng. Mc mt ca cy ch ra phng php truy cp tt nht. Cc chin lc (E J) v (J E) b loi b. Gi s (E G) v (G J) c chi ph cao hn (G E) v (J G) tng ng. Nh vy chng c th b loi b, v bng cch hon v chng ta c cc th t kt ni tung ng tt hn. Mc ba a ra hai kh nng cn li, th t kt ni tt nht l chi ph t nht ca ((G E) J) v ((J G) E). Cui cng da vo ch mc trn thuc tnh chn v truy nhp rc tip n cc b kt ni ca G v E, v vy phng php truy nhp sau c chn:

E E G loi b E G loi b G E

G G E loi b J G

J J E loi b

(G E) J

(J G) E

Hnh 4.2: Cc th t kt ni la chn

4.3. Ti u ha cu truy vn trong CSDL phn tn Chng ta c th thy qu trnh x l truy vn trong h thng phn tn theo s di y. Truy vn php tnh quan h phn tn Phn r truy vn Trm iu khin Truy vn i s trn cc quan h phn tn nh v d liu Truy vn mnh Ti u ho ton ccCc thng k trn cc mnh Lc phn mnh Lc tng th

Truy vn mnh c ti u vi cc php ton truyn thng Cc trm a phng Ti u ho cc b Cc truy vn cc b ti uHnh 4.3 : S phn lp chung cho x l truy vn phn tnLc a phng

4.3.1 Phn r truy vn Phn r truy vn l giai on u tin ca x l truy vn, bin i mt php tnh quan h thnh mt truy vn i s trn quan h tng th. C hai truy vn vo ra u c thc hin trn quan h tng th v khng quan tm n tnh phn tn ca d liu. V vy, phn r truy vn c thc hin chung cho c h tp trung v phn tn. Trong phn ny chng ta gi s rng cc truy vn vo lun c php ng. Khi giai on x l truy vn thc hin xong, th truy vn ra l ng v trnh c cc cng vic d tha. Giai on ny chia lm bn bc: chun ho, phn tch, loi b d tha v vit li. Chng ta trnh by ba bc u tin trong phm vi ca php tnh quan h b (SQL). Ch c bc cui cng ghi truy vn li thnh i s quan h. 4.3.1.1 Chun ho Mc ch ca s chun ho l chuyn i truy vn thnh mt dng chun thun li cho cc x l tip theo. Vi cc ngn ng quan h nh SQL, c hai dng chun cho cc tn t trong mnh WHERE l: Dng chun hi l hi ( ca nhng php ton tuyn ( (p11 p12 ... p1n) ... (pm1 ) ): pm2... pmn) , trong pij l cc biu thc nguyn t. Dng chun tuyn l tuyn ( ca nhng php ton hi ( (p11 p12 ... p1n) ...(pm1 pm2 ) ): ... mn). p Php bin i ca tn t khng c lng t ( , ) l d dng bng cch s dng cc quy tc bin i tng ng trn cc php ton logic ( v ) nh sau: ,

1. p1 p2 p2 p1 2. p1 p2 p2 p1 3. p1 (p2 p3) (p1 p2) p3 4. p1 (p2 p3) (p1 p2) p3 5. p1 (p2 p3) (p1 p2) (p1 p3) 6. (p1 p2) p1 p2 7. p1 (p2 p3) (p1 p2) (p1 p3) 8. (p1 p2) p1 p2 9. ( p) p V d: T cc quan h E=NHANVIEN (MANV, TENNV, CHUCVU) v G=HOSO (MANV, MADA, NHIEMVU, THOIGIAN). Xt truy vn Tm tn cc nhn vin lm d n J1 c thi gian 12 hoc 24 thng . Truy vn trn c biu din trong SQL: SELECT E. TENNV FROM E, G WHERE E.MANV= G.MANV AND HOSO.MADA=J1 AND THOIGIAN=12 OR THOIGIAN=24 iu kin trong dng chun hi l: E.MANV=G.MANV G.MADA=J1 (THOIGIAN=12 THOIGIAN=24) iu kin trong dng chun tuyn l: (E.MANV=G.MANV G.MADA=J1 THOIGIAN=12) (E.MANV=G.MANV G.MADA=J1 THOIGIAN=24) Ch rng trong dng chun tuyn vic x l hai biu thc hi c lp c th dn n d tha nu c biu thc con chung. 4.3.1.2 Phn tch Sau khi truy vn c chun ho s qua giai on phn tch (v mt ng ngha) pht hin ra nhng thnh phn khng ng (sai kiu hoc sai ng ngha) v loi b chng sm nht nu c th. Truy vn sai kiu: nu mt thuc tnh bt k hoc tn quan h ca n khng c nh ngha trong lc tng th, hoc php ton p dng cho cc thuc tnh sai kiu. V d: truy vn di y l sai kiu SELECT FROM WHERE v hai l do: 1. Thuc tnh E# khng khai bo trong lc 2. Php ton >200 khng thch hp vi kiu chui ca E.TENNV Truy vn sai ng ngha: nu cc thnh phn ca n khng tham gia vo vic to ra kt qu. xc nh truy vn c sai v ng ngha hay khng, ta da trn vic biu din truy vn nh mt th gi l th truy vn. th ny c xc nh bi cc truy vn lin quan n php chn, chiu v ni. Trong th truy vn, mt nt dng biu din cho quan h kt qu, cn cc nt khc biu din cho cc ton hng trong quan h. Cnh ni gia hai nt khng phi l nt kt qu biu din mt php ni, cn cnh c nt ch l kt qu th biu din mt php chiu. Mt nt khng phi l kt qu c th c gn nhn bi php chn hoc php t ni (seft-join: ni ca quan h vi chnh n). Mt th con quan trng ca E# E E.TENNV > 200

th truy vn l th kt ni (join graph), trong ch c php ni c xt. th ny c bit hu ch trong giai on ti u ha truy vn. V d: T cc quan h E=NHANVIEN (MANV, TENNV, CHUCVU), G=HOSO (MANV, MADA, NHIEMVU, THOIGIAN) v J=DUAN (MADA, TENDA, NGANSACH) nh trn, xt truy vn: Tm tn v nhim v ca cc lp trnh vin ang lm vic cho d n CSDL hn ba nm. Truy vn SQL biu din l: SELECT E.MANV, G.NHIEMVU FROM E, G, J WHERE E.MANV=G.MANV AND G.MADA.= J.MADA AND TENDA=CSDL AND THOIGIAN 36 AND CHUCVU=LTRINH th truy vn v th kt ni cho truy vn trn c biu din cc hnh sau THOIGIAN 36 E.MANV=G.MANV CHUCVU= LTRINH E E.TENNV G G.MADA=J.MANV NHIEMVU Kt qu J TENDA=CSDL

(a) th truy vn

G G.MANV=G.MANV E G.MANV=J.MANV J

(b) th kt ni tng ng Hnh 4.2 Cc th quan h

th truy vn t ra tin li trong vic xc nh cc sai st v mt ng ngha ca truy vn nhiu bin lin kt khng c php ph nh. Nh vy, mt truy vn sai ng ngha nu th truy vn ca n khng lin thng. Ngha l c mt hoc nhiu th con tch khi th cha quan h kt qu, phn b tch s l v dng. Truy vn c xem l ng nu loi b nhng phn v dng. V d: Xt truy vn SQL sau: SELECT E.MANV, G.NHIEMVU FROM E, G WHERE E.MANV=G.MANV

AND TENDA=CSDL AND THOIGIAN 36 AND CHUCVU=LTRINH

Truy vn ny l sai ng ngha v th truy vn ca n khng lin thng. THOIGIAN 36 E.MANV=G.MANV CHUCVU= LTRINH E E.TENNV G

NHIEMVU Kt qu

J TENDA=CSDL

Hnh 4.3 th truy vn

4.3.1.3 Loi b d tha Cc iu kin trong cc truy vn c th c cha cc tn t d tha. Mt nh gi s si v mt iu kin d tha c th dn n lp li mt cng vic. S d tha tn t v d tha cng vic c th c loi b bng cch lm n gin ho cc iu kin thng qua cc lut lu ng sau: 1. p p p 2. p true true 3. p p p 4. p p false 5. p true p 6. p p true 7. p false p 8. p1 (p1 p2) p1 9. p false false 10. p1 (p1 p2) p1 V d: Xt truy vn SQL sau:SELECT FROM WHERE CHUCVU E (NOT(CHUCVU=Lp trnh) AND (CHUCVU=Lp trnh OR CHUCVU=K s in) AND NOT(CHUCVU=K s in) OR E.TENNV=Dung

Bng cch s dng cc lut ly ng nu trn, truy vn c bin i thnh:SELECT FROM WHERE CHUCVU E E.TENNV=Dung Thc vy, t p1:, p2:, p3: .

Khi , cc tn t sau mnh WHERE c m t li: p: ( p1 (p1 p2) p2) p3 (( p1 p1) p1 p2)) p2) p3 ( ( p1 p1 p2) ( p1 p2 p2) p3 (p dng lut 7)

(false p2) ( p1 false) p3 (p dng lut 5) false false p3 (p dng lut 4) p3 4.3.1.4 Vit li truy vn Bc cui cng ca phn r truy vn l vit li truy vn di dng i s quan h. Bc ny c chia lm hai bc con nh sau: Bin i trc tip truy vn php tnh sang i s quan h. Cu trc li truy vn i s quan h ci thin hiu qu thc hin. Thng thng ngi ta biu din cc truy vn i s quan h bi cy i s quan h. Mt cy i s quan h l mt cy m nt l biu din mt quan h trong CSDL, cc nt khng l l cc quan h trung gian c sinh ra bi cc php ton i s quan h. S bin i t mt truy vn php tnh quan h b thnh mt cy i s quan h c thc hin nh sau: Cc nt l khc nhau c to cho mi bin b khc nhau (tng ng mt quan h). Trong SQL cc nt l chnh l cc quan h trong mnh FROM. Nt gc c to ra xem bi mt php chiu ln cc thuc tnh kt qu. Trong SQL nt gc c xc nh qua mnh SELECT. iu kin (mnh WHERE trong SQL) c bin i thnh dy cc php ton i s thch hp (php chn, ni, php hp, v.v...) i t l n gc, c th thc hin theo th t xut hin ca cc tn t v cc php ton. V d: Truy vn Tm tn cc nhn vin khng phi l Dng, lm vic cho d n CSDL mt nm hoc hai nm. Biu din ruy vn ny trong SQL l: SELECT TENNV FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND E.TENNV Dng AND J.TENDA= CSDL AND (THOIGIAN=12 OR THOIGIAN=24) Cy i s quan h tng ng nh sau: E.TENNV

Php chiu

THOIGIAN=12 THOIGIAN=24

J.TENDA= CSDL

Php chn

E.TENNV Dng

MADA

Php niMANV

J

G

E

Hnh 4.4: Cy i s quan h

Bng vic s dng su lut bin i php ton i s quan h sau y, chng ta c th bin i cy thnh cc cy tng ng. Gi s R, S, T l cc quan h, R c nh ngha trn ton b thuc tnh A={A1, ..., An}, S c nh ngha trn ton b thuc tnh B={B1, ..., Bn}. 1. Tnh giao hon ca cc php ton hai ngi: Php tch Decartes v php ni hai quan h c tnh giao hon. i. R S S R ii. R S S R 2. Tnh kt hp ca cc php ton hai ngi: Php tch Decartes v php ni hai quan h c tnh kt hp. i. (R S) T R (S T) ii. (R S) T R (S T) 3. Tnh lu ng ca nhng php ton mt ngi Dy cc php chiu khc nhau trn cng quan h c t hp thnh mt php chiu v ngc li A( A(R)) A(R) . Vi A, A l hai tp thuc tnh trn R v A A. Dy cc php chn khc nhau pi(Ai) trn cng quan h, vi pi l mt tn t c gn vo thuc tnh Ai , c th c t hp thnh mt php chn. p1(A1)( p2(A2)(R)) = p1(A1) p2(A2)(R) Ngc li, mt php chn n vi mt s lin kt ca nhiu tn t c th chia thnh cc dy php chn khc nhau. 4. Php chn giao hon vi php chiu A1, ..., An ( p (Ap)(R)) A1, ..., An( p (Ap)( A1, ..., An, Ap (R))) Nu Ap l thnh vin ca {A1, ..., An}, biu thc trn thnh A1, ..., An ( p(Ap)(R)) p(Ap)( A1, ..., An(R)) 5. Php chn giao hon vi nhng php ton hai ngi Php chn vi php nhn: p(Ai)(R S) p(Ai)(R) S Php chn vi php ni: p(Ai)(R p(Ai,Bk) S) p(Ai) (R) (AJ,Bk) S Php chn vi php hp: Nu R v T cng b thuc tnh. p(Ai)(RT) p(Ai)(R) p(Ai)(T) 6. Php chiu giao hon vi nhng php ton hai ngi Php chiu v tch Decartes: Nu C = A B vi A A, B B v A, B l tp cc thuc tnh trn quan h R, S ta c: C(R S) = A(R) B(S) Php chiu v php ni: C(R p(Ai,Bj) S) = A(R) p(Ai,Bj) B(S) Php chiu v php hp: C(RS) = A(R) B(S) Vic s dng su lut ny c kh nng sinh ra nhiu cy i s quan h tng ng khc nhau. V d: Cy hnh 4.5 sau l tng ng vi cy hnh 4.4 Trong giai on ti u, s so snh cc cy c th thc hin da trn chi ph d on ca chng. Tuy nhin, nu s lng cc cy qu ln th cch tip cn ny s khng hiu qu. C th dng cc lut trn cu trc li cy, nhm loi b nhng cy i s quan h ti. Cc lut trn c th s dng theo bn cch nh sau: Phn r cc php ton mt ngi, lm n gin biu thc truy vn . Nhm cc php ton mt ngi trn cng mt quan h gim s ln thc hin.

Giao hon cc php ton mt ngi vi cc php ton hai ngi u tin cho mt s php ton (chng hn php chn). Sp th t cc php ton hai ngi trong thc hin truy vn. V d: Cu trc li cy hnh 4.5, cho ra cy kt qu tt hn cy ban u, tuy nhin vn cn xa cy ti u. E.TENNVMADA

MADA

MADA, TENNV

MANV

J.TENDA= CSDL

MADA,MANV

MANV

ENAME

J

THOIGIAN=12 THOIGIAN=24

TENNV Dung

G

E

Hnh 4.5 Cy i s quan h vit li

4.3.2 nh v d liu phn tn Lp nh v bin i mt truy vn i s quan h tng th thnh mt truy vn i s c biu th trn cc phn mnh vt l. Vic nh v s dng thng tin c lu tr trn cc lc phn mnh. Chng trnh i s quan h xy dng li quan h tng th t cc phn mnh ca n gi l chng trnh nh v (localization program) n gin, trong phn ny chng ta khng n s nhn bn ca cc mnh sao lu d liu, mc d iu ny c th gip ci tin hiu qu truy vn. Mt cch t nhin nh v mt truy vn phn tn l sinh ra mt truy vn, trong mi quan h tng th c thay th bi chng trnh nh v ca n. Cch ny c th c xem nh vic thay th cc nt l ca i s quan h ca truy vn phn tn bi cc cy con tng ng vi cc chng trnh nh v. Truy vn c c theo cch ny gi l truy vn ban u (generic query). Ni chung cch tip cn ny khng hiu qu v truy vn ban u vn c th c cu trc li v n gin ho. Trong phn di y, vi mi kiu phn mnh chng ta s biu din mt k thut rt gn (reduce technique) sinh ra cc cu truy vn ti u v n gin hn. 4.3.2.1 Rt gn theo phn mnh ngang nguyn thu Xt quan h E=NHANVIEN(MANV,TENNV,CHUCVU). Tch quan h ny thnh ba mnh ngang E1, E2 v E3 nh sau: E1= MANV E3(E) E2= E3< MANV E6(E) E3= MANV > E6(E) Chng trnh nh v cho mt quan h E c phn mnh ngang l hp ca cc mnh E1, E2, E3. Ngha l, E = E1 E2 E3. V vy, dng ban u ca bt k truy vn no c xc nh trn E l c c bng cch thay th n bi E1 E2 E3. Vic rt gn cc truy vn trn cc quan h c phn mnh ngang bao gm vic xc nh, sau khi cu trc li cy con, iu ny s sinh ra mt quan h rng, v loi

b chng. Phn mnh ngang c th c khai thc lm n gin c php chn v php ni. a. Rt gn vi php chn: cho mt quan h R c phn mnh ngang thnh R1, R2,..., Rn vi Rj = pj(R). Lut 1: pj(Rj)= nu xR : (pi(x) pj(x)). Trong , pi, pj : tn t chn, , p(x) tn t p chim gi x. V d: Xt truy vn SELECT * FROM E WHERE MANV=E5 p dng cch tip cn t nhin n vng E t E 1, E2 v E3 cho truy vn ban u, hnh 4.7a. Bng cch s dng tnh cht giao hon php chn vi php hp, chng ta thy tn t chn i lp vi tn t E 1 v E3, sinh ra cc quan h rng. Chng ta thu c truy vn rt gn hnh 4.7 b. MN =E5 AV MNV =E5 A E1 E2 E3 E2(b) Truy vn rt gn

(a) Truy vn ban u

Hnh 4.7: Rt gn cho phn mnh ngang vi php chn

b.Rt gn vi php ni Cc php ni trn quan h c phn mnh ngang c th n gin khi chng c phn mnh theo thuc tnh ni. S n gin bao gm vic phn phi cc php ni trn cc php hp v loi b cc php ni v ch. S phn phi ca php ni trn php hp c m t nh sau: (R1 R2) R3 =(R1 R3) (R2 R3) , Ri l cc phn mnh. Vi php bin i ny, c th xc nh c cc php ni v ch ca cc mnh khi cc iu kin ni mu thun nhau. Khi , dng lut 2 di y loi b cc php ni v ch. Lut 2: Ri Rj = nu xRi, yRj : (pi(x) j(y)) p Trong Ri, Rj c xc nh theo cc tn t pi, pj trn cng thuc tnh. Nh vy, vic xc nh cc php ni v ch c thc hin bng cch ch xem xt cc tn t mnh. Ch rng, khng phi truy vn rt gn lun tt hn hoc n gin hn truy vn ban u. Mt thun li ca truy vn rt gn l nhng php ni c th thc hin song song. V d: Gi s quan h E c phn mnh thnh cc mnh E1, E2 v E3 nh trn, quan h G c phn lm hai mnh G1= MANV E3(G) v G2= MANV>E3(G). Chng ta thy rng E1 v G1 c nh ngha bi cng tn t. Ngoi ra, tn t nh ngha G2 l hp ca cc nh ngha ca nhng tn t E2 v E3. Xt truy vnSELECT FROM WHERE * E, G E.MANV=G.MANV

Truy vn ban u tng ng vi hnh 4.8 a. Vi phn phi php ni (> E4( MANV,TENNV(E)), E3= MANV,CHUCVU(E) Chng trnh nh v l: E = (E1 E2) MANV E3 Cc truy vn trn cc mnh hn hp c th c rt gn bng cch kt hp cc lut s dng trong phn mnh ngang nguyn thy, phn mnh dc, phn mnh ngang gin tip, tng ng nh sau: 1.Loi b cc quan h rng sinh bi s mu thun gia cc php chn trn cc phn mnh ngang. 2.Loi b cc quan h v ch sinh bi cc php chiu trn cc phn mnh dc. 3.Phn phi cc php ni vi cc php hp tch v loi b cc php ni v ch. V d: Xt truy vn trong SQL minh ho s ng dng cc lut (1), (2) n s phn mnh dc_ngang ca quan h E cho trn thnh E1, E2 v E3.SELECT FROM WHERE TENNV E MANV=E5

Truy vn ban u tng ng hnh 4.11a, c rt gn thnh hnh 4.11b. TEN V N TEN V N MNV=E5 A MN = 5 A VE

E2 E1 E2 E3(a) Truy vn ban u (b) Truy vn rt gn

Hnh 4.11: Rt gn ca phn mnh hn hp

4.4 Ti u ho truy vn phn tn 4.4.1 Mc tiu ca b x l truy vn Truy vn thu c t giai on phn r v nh v d liu c th c thc hin mt cch n gin bng vic thm vo cc thao tc truyn thng. Tuy nhin, vic hon v th t cc php ton trong mt cu truy vn c th cung cp nhiu chin lc tng ng khc nhau. Vic tm mt th t ti u ca cc php ton trong mt truy vn c l chc nng chnh ca b ti u ho truy vn. V s la chn th t ti u i vi mt truy vn l bi ton NP-kh, nn mc ch thc s ca b ti u l tm mt chin lc gn ti u, v trnh cc chin lc ti. u ra ca b ti u l mt lch trnh c ti u bao gm truy vn i s c xc nh trn cc mnh v cc php ton truyn thng h tr vic thc hin truy vn trn cc trm. chn la c mt chin lc ti u ni chung i hi xc nh chi ph thc hin ca cc cch sp xp th t c th c trc khi thc hin. Chi ph thc hin l t hp c trng s ca chi ph truyn thng, chi ph I/O v chi ph CPU. Tuy nhin, n gin ta b qua chi ph x l a phng (I/O, CPU), coi chi ph truyn thng l trng yu. 4.4.2 c trng ca b x l truy vn nh gi v so snh cc b x l truy vn trong phm vi ca c h tp trung v phn tn l mt iu rt kh, bi v chng c nhiu mt khc nhau. lm nn tng cho s so snh, chng ta s lit k cc c im quan trng ca cc b x l truy vn, m trong bn c im u tin c cc b x l truy vn phn tn v tp trung. Trong khi bn c im tip theo c trng ring cho b x l phn tn. 4.4.2.1 c trng v ngn ng Hu ht cc cng vic trn b x l truy vn c thc hin trong phm vi ca c s d liu quan h, bi v ngn ng bc cao ca chng to cho h thng c nhiu c hi hn cho vic ti u. Ngn ng u vo n b x l truy vn c th da trn php tnh quan h hoc i s quan h. X l truy vn phi c thc hin hiu qu nh x t ngn ng vo n ngn ng ra. 4.4.2.2 Cc kiu ti u ho Mt phng php gn gi cho s ti u ho truy vn l thm d khng gian gii quyt, tin on mt cch ton din cc chi ph ca mi chin lc v chn mt chin lc vi chi ph cc tiu. Mt cch ph bin gim chi ph tm kim ca vic thm d ton din l s dng phng php heuristic, gii hn khng gian gii quyt v ch xem xt mt vi chin lc c xem l c hiu qu hn. Trong c h tp trung v phn tn, phng php heuristic ni chung l lm cc tiu kch thc ca cc quan h trung gian, bng cch thc hin cc php ton mt ngi truc v sau l sp xp cc php ton hai ngi. Mt heuristic quan trng trong h phn tn l thay th php kt ni bng vic kt hp na kt ni ti u d liu truyn thng. 4.4.2.3 S iu chnh vic ti u Mt truy vn c th c ti u ti nhng im khc nhau lin quan n thi gian thc ca s thc hin truy vn. S ti u c th c thc hin mt cch tnh trc khi thc hin truy vn hoc mt cch ng khi truy vn c thc hin.

Ti u truy vn tnh c thc hin thi gian bin dch truy vn, v th iu chnh ny l ph hp vi s dng phng php thm d ton din. Ti u ho truy vn ng xy ra ti thi gian thc hin truy vn. Ti bt k mt im ca s thc hin, s chn la mt phng php tip theo tt nht da trn nhng hiu bit chnh xc v kt qu nhng thao tc thc hin trc . 4.4.2.4 Da vo kt qu thng k S c hiu lc ca ti u ho lin quan n thng k trn c s d liu. Ti u truy vn ng yu cu thng k theo th t la chn nhng thao tc nn c thc hin trc. Ti u truy vn tnh yu cu nhiu hn, v kch thc ca nhng quan h trung gian phi c c lng da vo thng tin thng k. Trong c s d liu phn tn, thng tin thng k cho ti u truy vn sinh ra mt cch in hnh trn on gm: lc lng v kch thc on cng nh kch thc v s nhng gi tr khc bit ca mi thuc tnh. 4.4.2.5 Cc trm quyt nh Khi ti u ho tnh c s dng, hoc mt trm n hoc nhiu trm c th tham gia vo s chn la ca chin lc c thch ng cho s tr li truy vn. Hu ht nhng h thng s dng quyt nh tp trung, ni m mi my n sinh ra chin lc. Tuy nhin qu trnh quyt nh c th c phn b gia nhiu cng khc nhau ni tham gia vo s pht tho k lng ca chin lc tt nht. Tip cn tp trung n gin hn nhng i hi nhng hiu bit v ton b c s d liu phn tn, trong khi s tip cn phn tn ch i hi nhng thng tin cc b. Cng thng c nhng tip cn lai ghp ni mt trm to ra nhng quyt nh quan trng v nhng trm khc c th to ra nhng quyt nh a phng. 4.4.2.6 S khai thc ca cu trc mng Cu trc mng c khai thc chung bi b x l truy vn phn tn. Vi mng din rng, vic lm cc tiu hm chi ph c th c gii hn n chi ph truyn thng d liu, m c xem xt n cc h s tri hn. Vi mng cc b, chi ph truyn thng c th so snh vi chi ph I/O. V vy, thun li cho b x l truy vn phn tn lm tng s thc hin song song lc tiu th chi ph truyn thng. 4.4.2.7 Khai thc cc on sao chp Mt quan h phn tn thng c tch thnh cc on quan h. Cc truy vn phn tn biu din trn ton cc c nh x thnh cc truy vn trn nhng on vt l ca nhng quan h bi s bin dch cc quan h thnh cc on. Ta gi tin trnh ny l s nh v v chc nng chnh ca n l nh v d liu lin quan trong truy vn. Vi nhng mc ch tin cy, n hu ch c cc on c sao chp li ti cc trm khc nhau. Hu ht nhng gii thut xem xt tin trnh nh v c lp vi s ti u. Tuy nhin, mt s gii thut khai thc s tn ti cc on sao chp trong thi gian thc hin vi kt ni tun t ti thiu cc thi gian truyn thng. 4.4.2.8 S dng cc na kt ni Php ton na kt ni l php tnh quan trng gim kch thc ca ton hng quan h. Khi thnh phn chi ph chnh c duy tr bi b x l truy vn l s truyn thng, th mt na kt ni l c bit c ch cho vic ci thin s x l cc php kt

ni phn tn, n lm gim kch thc ca d liu c chuyn i gia cc trm. Tuy nhin vic s dng na kt ni c th lm tng s cc bng thng bo kt qu v thi gian x l cc b. V vy, mt s gii thut nhm vo chn la mt s kt hp ti u ca kt ni v na kt ni. 4.4.3 M hnh chi ph ca b ti u truy vn Chi ph ca mt chin lc thc hin phn tn c th c biu din hoc theo tng chi ph hoc theo thi gian tr li. Tng chi ph x l truy vn, bng tng thi gian x l cc php ton ca truy vn ti cc trm khc nhau v chi ph truyn thng gia cc trm. Trong mt h CSDL phn tn, tng chi ph c ti thiu theo cc chi ph ca: CPU, I/O v truyn thng. Chi ph CPU oc tnh khi thc hin cc php ton trn d liu trong b nh chnh. Chi ph ca I/O l thi gian cn thit cho cc thao tc truy cp a. Chi ph truyn thng l thi gian cn thit trao i d liu gia cc trm tham gia vo thc hin truy vn (gm thi gian x l thng bo v truyn d liu trn mng). Trong h qun tr c s d liu tp trung ch quan tm n chi ph I/O v CPU, cn trong c s d liu phn tn th chi ph truyn thng c coi l quan trng nht. Chi ph truyn thng t hn chi ph x l a phng, nn mc ch ca ti u ho truy vn phn tn ni chung c n gin ho n vn lm cc tiu chi ph truyn thng nh cc x l cc b. Vi iu kin thun li ca s ti u cc b c th c thc hin mt cch c lp s dng cc phng php x l nh h tp trung. Thi gian tr li truy vn l thi gian c tnh t khi bt u x l n khi hon thnh truy vn. Mt cng thc chung cho s xc nh tng chi ph l: Total_cost = CCPU * #instr + CI/O* #I/OS + CMSG * #msgs + CTR * #bytes Trong : Total_cost: tng chi ph CCPU: chi ph ca mt lnh CPU CI/O: chi ph ca mt xut/nhp a CMSG:chi ph c nh ca vic khi u v nhn mt thng bo CTR: chi ph truyn mt n v d liu t trm ny n trm khc, ta xem CTR nh l mt hng s. #instr, #I/OS, #msgs, #bytes: tng ng l tng tt c cc lnh CPU cc trm, s ln xut/nhp a, s thng bo, tng kch thc ca tt c cc thng bo. Trong cng thc trn, hai thnh phn chi ph u (CCPU, CI/O) l chi ph a phng. Hai thnh phn chi ph sau (CMSG, CTR) l chi ph truyn thng. Chi ph truyn thng chuyn #byte d liu t trm ny n trm khc c gi thit l mt hm tuyn tnh theo s #bytes c truyn i. CC(#byte)= CMSG + CTR * bytes Khi thi gian tr li ca truy vn l hm mc tiu ca b ti u th cc x l a phng song song v truyn thng song song cn phi c xt. Cng thc tng qut tnh thi gian tr li l: Response_time = CCPU*seq_#instr + CI/O*seq_#I/OS + CMSG*seq_#msgs + CTR* seq_#bytes Trong : seq_#x (x c th l s lnh ca CPU, I/O, s thng bo, s byte) l s ln nht ca x khi thc hin truy vn mt cch tun t. V d: Minh ho s khc nhau gia tng chi ph v thi gian tr li, trong my tnh tr li truy vn ti trm 3 vi d liu t trm 1 v 2, y ch c chi ph truyn thng c xt

Trm 1

x Trm 3

Trm 2

y

Hnh 4.12: V d ca s bin i 1 truy vn

Gi s, CMSG v CTR c biu th theo n v thi gian. Tng chi ph truyn x n v t trm 1 n trm 3 v y n v t trm 2 n trm 3 l: Total_cost = 2CMSG + CTR* (x+y) V vic truyn d liu c th c thc hin song song nn thi gian tr li ca truy vn l Response_time = max{CMSG + CTR* x, CMSG + CTR* y} Thi gian tr li ti thiu t c bng cch tng mc x l song song, tuy nhin khng c ngha tng chi ph l ti thiu. Ngc li, tng chi ph c th tng khi c nhiu x l cc b v truyn song song. 4.4.4 Cc thng k CSDL Yu t chnh nh hng n hiu sut ca mt chin lc thc thi l kch thc ca cc quan h trung gian sinh ra trong qu trnh thc hin. Khi php ton tip theo t ti mt trm khc, quan h trung gian phi c truyn trn mng. Do vy ti thiu ho khi lng d liu truyn, im quan tm u tin l nh gi kch thc kt qu trung gian ca cc php ton i s quan h. nh gi ny da trn cc thng tin thng k v cc quan h c s v cc cng thc c tnh lc lng ca kt qu cc php ton quan h. Quan h R xc nh trn tp thuc tnh A={A1, ..., An} c phn mnh thnh R1, R2, ..., Rr. Khi d liu thng k in hnh bao gm: Vi mi thuc tnh Ai, k hiu l length(Ai) l di (byte) ca Ai . Vi mi AiRj, k hiu card( Ai(Rj) l lc lng (cardinality) ca php chiu ca mnh Rj ln Ai (s gi tr phn bit trn thuc tnh Ai) . Min xc nh ca Ai c nh ngha trn mt tp cc gi tr c th sp xp c (v d s nguyn hoc s thc). Cc gi tr cc i v cc tiu ca Ai c k hiu bi max(Ai) v min(Ai). K hiu l card(dom[Ai]) l lc lng ca min ca Ai. K hiu l card(Rj) l s cc b trong mi mnh Rj. Ngoi ra, d liu thng k cng bao gm h s chn ca php ni (SFJ) i vi mt s cp i s quan h, h s SFJ ca quan h R v S l mt s thc gia 0 v 1: SFJ = card(R S) card(R)*card(S)

H s SFJ nh th php ni c tnh chn tt, ngc li c tnh chn ti. Cc thng k ny c li nh gi kch thc ca quan h trung gian. Kch thc mt quan h trung gian R c xc nh bi size(R) = card(R)*length(R). Trong , length(R) l di (s byte) ca mi b trong R, c tnh theo di cc thuc tnh ca n, cn card(R) l s cc b ca R c tnh theo cng thc phn tip theo. 4.4.5 Lc lng ca cc kt qu trung gian

Phn ny s a ra cc cng thc c tnh lc lng kt qu cc php ton c s ca i s quan h (php chn, php chiu, php tch Decartes, ni, na ni, php hp v php tr). Cc ton hng quan h c k hiu bi R v S. H s chn ca mt php ton SFOP, (OP biu th php ton) l t l gia cc b ca mt ton hng quan h tham gia vo kt qu ca php ton. 4.4.5.1 Php chn card( (R)) = SFS(F) * card(R) Trong SFS(F) ph thuc vo cng thc chn v c th tnh nh sau, vi p(Ai), p(Aj) l cc tn t tng ng vi cc thuc tnh Ai, Aj. SFS (A>value) = max(A) - value max(A)-min(A) Value - min(A)

SFS (A=value) =

1 Card( A(R) )

max(A)-min(A) SFS(p(Ai) p(Aj)) = SFS(p(Ai)) * SFS(p(Aj)) SFS(p(Ai) p(Aj)) = SFS(p(Ai)) + SFS(p(Aj)) - SFS(p(Ai)) * SFS(p(Aj)) SFS(A {value}) = SFS(A=value) * card({value}) 4.4.5.2 Php chiu Php chiu c th c hoc khng loi b cc bn sao, y ch xt php chiu loi b cc bn sao. Lc lng quan h kt qu ca mt php chiu ty l kh nh gi chnh xc, v tng quan gia thuc tnh chiu l thng khng bit. Tuy nhin, c hai trng hp tm thng nhng c bit c li. Nu php chiu ca R trn mt thuc tnh n A th lc lng c tnh n gin l s cc b khi php chiu c thc hin. Nu mt trong cc thuc tnh chiu l kho ca R, th card( A(R)) = card(R) v tch decartes card(R S) = card(R) * card(S) 4.4.5.3 Php ni Khng c mt cch tng qut xc nh lc lng ca mt php ni nu khng c cc thng tin thm. Cn trn ca lc lng ca php ni chnh l lc lng ca tch Decartes. Tuy nhin, c mt s trng hp xut hin thng xuyn v vic nh gi l n gin. Nu R AB S vi AR, BS, trong A l kho ca R, B l kho ngoi ca S, th lc lng ca kt qu xp x l: card(R AB S) = card(R) V mi b ca S hp vi nhiu nht mt b ca R nn hin nhin vn ng nu B l kho ca S, A l kho ngoi ca R. Tuy nhin, nh gi ny l cn trn v gi s rng mi b ca R u tham gia vo php ni. Vi cc php ni khc, lc lng ca kt qu l card(R S) = SFJ * card(R) * card(S) 4.4.5.4 Php na ni H s chn ca php na ni (SFSJ) xp x l: SFSJ (R S) = Card( A(S))

SFS (A>value) =

Card(dom[A]) Cng thc ny ch ph thuc vo thuc tnh A ca S, nn thng c gi l h s chn thuc tnh A ca S, k hiu SFSJ(S.A) v l h s chn ca S.A trn bt c thuc tnh ni khc. V th, lc lng ca php ni c tnh nh sau:

card(R

AS) = SFSJ(S.A) * card(R)

4.4.5.5 Php hp Rt kh nh gi s lng ca RS, v cc b ging nhau gia R v S b loi b bi php hp. y ch a ra cng thc tnh cn trn bng card(R)+card(S), cn di bng max{card(R),card(S)} (gi s R v S khng cha cc b lp). 4.4.5.6 Php tr Cng nh php hp y ch a ra cn trn v cn di, cn trn ca card(R-S) l card(R), cn di l 0. 4.4.6 V d a. V d ny cho thy rng khng cn tnh chi ph cc lc lng trung gian nhng vn c th xc nh c cu truy vn c chin lc thc hin tt hn. Xt hai quan h trong c s d liu ca cng ty my tnh: E=NHANVIEN (MANV, TENNV, CHUCVU) v G=HOSO (MANV, MADA, NHIEMVU, THOIGIAN). Vi cu truy vn Cho bit tn cc nhn vin hin ang qun l mt d n. Ta c cu truy vn SQL tng ng l: SELECT TENNV FROM E, G WHERE E.MANV=G.MANV AND NHIEMVU=Qun l Hai truy vn i s tng ng qua php bin i ca truy vn trn l:

TENNV(v

NHIEMVU=Qun l E.MANV=G.MANV

) (E G)

(1) (2)

TENNV(E

MANV(

NHIEMVU=Qun l

(G)))

R rng truy vn (2) trnh c khi phi tch s ca E v G, nn dng t ti nguyn hn truy vn (1). V vy truy vn (2) c chn s dng. 4.5 Mt s thut ton ti u ho truy vn phn tn Thut toniu khin ti u ho ng Hm mc tiu Thnh phn ti u ca hm chi ph kch thc thng bo v chi ph x l kch thc thng bo, s thng bo v chi Cu trc mng S dng cc php na kt ni Thng tin thng k 1 S dng cc on

INGRES phn tn

thi gian tr li v tng chi ph tng chi ph

mng din khng rng hoc mng cc b mng din khng rng hoc mng cc b

c (phn on ngang)

SYSTEM R*

tnh

1, 2

khng

ph (I/O v CPU) SDD-1 AHY tnh tnh tng chi ph thi gian p v tng chi ph kch thc mng din c thng bo rng kch thc mng din c thng bo rng v s thng bo 1,3,4,5 1, 3, 5 khng khng

Trong cc s: 1. Lc lng ca quan h 2. S cc gi tr duy nht 3. H s chn kt ni 4. Kch thc ca php chiu trn mi thuc tnh kt ni 5. Kch thc thuc tnh v kch thc b d liuHnh 4.13: S so snh cc thut ton ti u ho truy vn

Phn ny trnh by bn thut ton tiu biu cho nhng lp khc nhau ca thut ton ti u ho truy vn phn tn: Thut ton thu gn ca INGRES phn tn, thut ton SYSTEM R*, thut ton SDD-1 v thut ton AYH (Epers, Hevner v Yao). S khc nhau gia chng c th tm tt bng trong hnh 4.13. 4.5.1 Thut ton INGRES phn tn Thut ton ti u ho truy vn ca INGRES phn tn bt ngun t thut ton INGRES tp trung. Hm mc tiu ca thut ton l ti thiu tng chi ph v thi gian tr li, nhng hai mc tiu ny i lp nhau (tng chi ph truyn thng c th gim thi gian tr li) nn hm mc tiu c trng s ln hn cho mc tiu ny hoc mc tiu kia. Thut ton ti u ho truy vn b qua chi ph truyn d liu ti trm kt qu, thut ton s dng phn on ngang v xt c hai kiu mng (mng cc b v din rng). u vo ca thut ton x l truy vn l mt truy vn, vit trong php tnh quan h b (trong dng chun hi) v thng tin v lc (kiu mng, v tr v kch thc ca mi on). Thut ton ny thc hin ti trm truy vn c bt u x l, gi l trm ch, thut ton c tn l D-INGRES-QOA tng thut ton Bc 1: X l a phng tt c cc truy vn mt bin (php chn v php chiu) Bc 2: Thut ton thu gn c p dng cho truy vn ban u, tch cc truy vn khng th rt gn v cc truy vn mt bin ra. B qua cc truy vn mt bin v x l bc 1. Bc 3: p dng cho cc truy vn khng th rt gn c Bc 3.1: Chn cc truy vn cha c x l v lin quan n on nh hn, iu ny lm cc tiu cc kt qu trung gian. V d: nu mt truy vn q c cc truy vn con l q1, q2 v q3, vi cc s ph thuc q1q3, q2q3 v nu nhng on c tham vn bi q1 l nh hn nhng on c tham vn bi q2, th q1 c chn.

Bc 3.2: Chn chin lc tt nht x l truy vn MVQ (truy vn khng th rt gn v c t nht hai bin). Chin lc ny c m t bi danh sch cc cp (F, S) trong F l mt on truyn ti trm x l S. Bc 3.3: Truyn tt c cc on ti trm x l chng Bc 3.4: Thc hin MVQ. Nu c cc truy vn con cn li , thut ton quay li bc 3 v thc hin bc lp tip theo, ngc li thut ton kt thc. c im ca thut ton INGRES phn tn l tm kim khng gian li gii c gii hn, trong mt quyt nh ti u ho c thc hin mi bc vi kt qu ca n trn ti u ho tng th. Ti u ho truy vn ng c li v kch thc chnh xc ca kt qu trung gian c bit. Thut ton D-INGRES-QOA Input: MVQ: truy vn a bin Output: Kt qu ca truy vn a bin cui cng Begin For mi OVQi c th tch ra trong MVQ do {chy tt c cc truy vn mt bin} run(OVQi) (1) Endfor MVQ_list REDUCE(MVQ) {thay th MVQ bi n truy vn khng th rt gn} While n 0 do Begin {chn truy vn khng th rt gn lin quan n on nh nht} MVQ SELECT_QUERY(MVQ_List) {xc nh cc on truyn v cc trm x l MVQ} Fragment-site-list SELECT_STRATEGY(MVQ) {truyn cc on chn ti cc trm chn} For mi cp(F,S) trong Fragment-site-list do chuyn on F ti trm S Endfor run(MVQ) n n-1 Endwhile {u ra ca thut ton l kt qu ca MVQ cui cng} End.{D-INGRES-QOA} 4.5.2 Thut ton SYSTEM phn tn (R*) Thut ton ti u ho truy vn phn tn ca R* l mt s m rng quan trng ca cc k thut pht trin cho b ti u SYSTEM R. V vy, n s dng cch tip cn bin dch trong thc hin vic tm kim vt cn tt c cc chin lc khc nhau chn mt chin lc vi chi ph thp nht. Mc d d on v lit k cc chin lc ny l t, tng chi ph ca vic tm kim vt cn c b tr mt cch nhanh chng (3.2) (3.3) (2) (3)

(3.1)

(3.4)

nu truy vn c thc hin thng xuyn. Thut ton x l truy vn R* ch gii quyt cc quan h nh cc n v c bn. Bin dch truy vn l mt nhim v phn tn trong R*, c phi hp bi trm ch, ti truy vn c bt u. B ti u ca trm ch thc hin tt c cc quyt nh i vi trm khc, nh la chn cc trm thc hin v phng php truyn d liu. Cc trm v tinh l cc trm khc c cc quan h lin quan trong truy vn, thc hin quyt nh a phng (sp th t cc php kt ni ti mt trm) v to cc phng n truy nhp a phng cho truy vn. Hm mc tiu ca b ti u SYSTEM R* l hm tng chi ph bao gm chi ph x l a phng v truyn thng. u vo ca thut ton l mt truy vn c nh v biu din bi cy i s quan h, nh v ca cc quan h v thng k ca chng. u ra l mt chin lc c chi ph cc tiu. Thut ton c m t bi th tc R*-QOA nh sau: Thut ton : R*-QOA Input: Output: Begin QT: cy truy vn Strat: chin lc chi ph ti thiu

For mi quan h Ri QT do Begin For mi ng truy nhp APij ti Ri do Xc nh cost(APij) Endfor best_APij APij vi chi ph nh nht Endfor For mi th t (Ri1, Ri2, ..., Rin) vi i=1, ..., n! do Begin Xy dng chin lc (...((best APi1 Tnh ton chi ph ca chin lc Endfor strat chin lc vi chi ph nh nht For mi trm k cha mt quan h lin quan trong QT do Begin LSk chin lc cc b (strategy, k) send(LSk,site k){mi chin lc cc b c ti u ho ti trm k} Endfor End.{R*-QOA} Thut ton ny c hiu nh sau: b ti u ho phi chn th t kt ni, ng truy nhp vo mi on (v d: ch mc nhm, qut tun t, ...) Cc quyt nh ny da trn cc thng k v ng truy nhp. Hn na, b ti u phi chn cc trm lin quan n cc kt qu ni v phng thc truyn d liu gia cc trm. kt ni Ri2) Ri3) ... Rin)

hai quan h , c ba trm tham gia: trm cha quan h th nht, trm cha quan h th hai hoc trm th ba cha kt qu kt ni. Trong R*, hai phng php c h tr cho phng php truyn d liu gia cc trm l: Chuyn ton b (Ship-whole): Quan h c truyn ti trm kt ni v c lu trong quan h tm thi trc khi kt ni. Tm v khi cn (Fecth-as- needed): Quan h ngoi c qut tun t, vi mi b kt ni c gi ti trm ca quan h trong, chn cc b trong kt ni c vi gi tr v gi cc b chn ti quan h ngoi. Phng php ny tng ng vi php na kt ni ca quan h trong vi b ca quan h ngoi. Li ch ca ca hai phng php ny kh l r rng. Vi phng php 1, d liu truyn ln nhng t thng bo hn phng php 2. Bng trc gic, chuyn ton b quan h l tt khi chng nh. Ngc li vi cc quan h ln v php kt ni c tnh chn lc tt (ch mt s t cc b ph hp), cc b thch hp nn c tm v khi cn. R* khng xt tt c cc t hp c th ca php kt ni vi phng php truyn v mt s trong chng l v ch. Cho php kt ni ca mt quan h ngoi vi mt quan h trong, c bn chin lc kt ni nh sau: Chuyn quan h ngoi ti trm ca quan h trong, Chuyn quan h trong ti trm ca quan h ngoi, Tm cc b ca quan h trong khi cn i vi mi b ca quan h ngoi, Chuyn c hai quan h ti trm th ba v tnh ton kt ni . Thut ton R* d on tng chi ph ca mi chin lc v chn chin lc c li. Chin lc 4 c chi ph cao hn v phi truyn c hai quan h . Nu kch thc ca quan h ngoi ln hn nhiu kch thc ca quan h trong, chin lc 2 s c chi ph truyn thng ti thiu v s tt nht nu chi ph x l a phng khng qu ln so vi chin lc 1 v 3. Tuy nhin, chi ph x l a phng ca chin lc 1 v 3 c th tt hn chin lc 2 nu quan h trong c thuc tnh ni. Nu quan h ngoi ln v ch s t cc b ca quan h trong kt ni c, chin lc 3 chc chn c chi ph truyn thng thp nht v l chin lc tt nht, ngc li chin lc 1 s tt nht. Thut ton R* gim ng k s cc la chn bng quy hoch ng v thc nghim. Vi quy hoch ng, cy ca cc la chn c cu trc ng v c lc bt bng cch loi bt cc la chn khng hiu qu. 4.5.3 Thut ton SDD-1 Thut ton ti u ho truy vn SDD-1 xut pht t gii thut leo dc, thut ton ny thc hin chn mt gii php c th thc thi ban u v lp i lp li ci tin n cho n khi t ti ch. Thut ton s dng php na kt ni, hm mc tiu ti thiu chi ph truyn thng (chi ph a phng v thi gian p khng c xt), thut ton s dng cc thng k trn CSDL, c gi l h s CSDL, mt h s gn vi mt quan h. V c bn thut ton u tin chn mt chin lc thc hin mm do m c xc nh mt cch lp. Sau s dng cc php ti u ha sau (posttimization) ci tin tng chi ph ca chin lc c chn. Bc chnh ca thut ton gm vic xc nh v sp th t cc php na kt ni c chi ph nh hn li ch ca n. chn ra php na kt ni hiu qu, thut ton s dng cc nh gi v chi ph v li ch c xc nh nh sau: Chi ph ca php na kt ni:

cost(R nh gi v li ch: Benefit(R

A

S) = CMSG + CTR* size( A(S))A

S) = (1 - SFSJ(S.A)) * size(R)*CTR

Thut ton SDD-1 nhn u vo l mt th truy vn vi n quan h, cc thng k CSDL ca mi quan h. u ra ca thut ton l mt chin lc tng th thc thi truy vn. Gii thut tin hnh theo bn giai on: khi u, chn cc php na kt ni c li, chn trm thc hin v ti u ho sau, c trnh by bi thut ton SDD-1QOA sau: Thut ton SDD-1-QOA input: QG: th truy vn vi n quan h, cc thng k ca mi quan h output: ES: chin lc thc hin Begin ES local-operation(QG); sa i cc thng k phn nh cc kt qu x l a phng BS for mi php kt ni SJ trong QG do if cost(SJ) < benefit(SJ) then BS BS I SJ end-if end-for while BS do begin SJmost_beneficial(BS) {SJ: na kt ni vi benefit-cost ln nht} BS BS-SJ ES ES+SJ {loi SJ khi BS} {b sung SJ vo chin lc thc thi ES} {chn cc php na kt ni c li} {tp cc php na kt ni c li}

sa i thng k phn nh kt qu ca SJ thm vo BS BS - cc php na kt ni khng c li BS BS cc php na kt ni c li mi end-while {chn trm thc hin} AS(ES) chn trm i m i cha s lng d liu ln nht sau tt c cc php ton cc b ES ES s truyn ca cc quan h trung gian ti AS(ES) {ti u ho sau} for mi quan h Ri ti AS(ES) do for mi php na kt ni SJ ca Ri vi Rj do

if cost(ES) > cost(ES - SJ) then ES ES - SJ end-if end-for end-for End.{thut ton SDD-1-QOA}

1) 2)

Giai on khi u: Sinh ra mt tp cc php na kt ni c li BS={SJ1, ..., SJn} v mt chin lc thc thi (ES) bao gm cc x l a phng. Giai on hai: Lp li la chn ra cc php kt ni c li nht (SJi) t BS, sa i cc thng k CSDL v BS. S sa i nh hng n cc thng k ca quan h R. Vng lp kt thc khi tt c cc php na kt ni trong BS c thm vo chin lc thc thi. Th t m cc php na kt ni c thm vo ES s l th t thc hin ca chng. Giai on chn cc trm thc hin: Vi mi trm c, nh gi chi ph truyn tt c d liu c yu cu ti n v chn trm c chi ph nh nht. Giai on ti u ho sau: Loi b nhng php kt ni trong chin lc thc thi ch nh hng n quan h c lu ti trm thc hin. B ti u ho SDD-1 da trn tha nhn cc quan h c th c truyn ti trm khc. iu ny ng cho tt c cc quan h loi tr nhng quan h thuc trm thc hin, m chng c chn sau khi cc php na kt ni c li c xem xt. V vy, mt s php na kt ni khng c li bc ti u ho truy vn sau loi chng khi chin lc thc hin. SELECT FROM WHERE AND * E, G, J E.MANV = G.MANV G.MANV = J.MANV

3) 4)

V d : Xt truy vn

Hnh 4.19 a ra th kt ni ca truy vn v thng k quan h. Gi s C MSG=0 v CTR=1 Quan h E J G lc lng 30 100 50 kch thc b 50 30 40 SFSJ 0.3 0.8 1 0.4 kch thc quan h 1500 3000 2000 kch thc ( 120 400 400 200ATRI

Thuc tnh E.MANV G.MANV G.MANV J.MANV

)

Hnh 4.19: Truy vn v d v thng k Cc php kt ni c li ban u nh sau:

SJ1: G E, li ch l 2100 = (1-0.3)*3000 v chi ph l 120 SJ2: G J, li ch l 1800=(1-0.4)*3000 v chi ph l 200 Hai php kt ni khng c li l: SJ3: E G, li ch l 300 = (1-0.8)*1500 v chi ph l 400 SJ4: J G, li ch l 0 v chi ph l 400 Ti bc lp u tin, SJ1 c thm vo chin lc thc hin ES. Kch thc ca G thay i thnh 900 = 300*0.3; SFSJ(G.ENO) xp x 0.8*0.3=0.24 Ti bc lp th hai, c hai php na kt ni c li: SJ2: G J, li ch l 540=(1-0.4)*900 v chi ph 200 SJ3: E G, li ch l 1140=(1-0.24)*1500 v chi ph l 400 SJ3 l c li nht v c thm vo ES. Kch thc ca E thay i thnh 360=(1500*0.24); SFSJ(E.ENO) thay i. Ti bc lp th ba, php na kt ni cn li SJ 2 oc thm vo ES. Kch thc ca G thay i thnh 360=900*0.4; SFSJ(G.JNO) thay i. Sau khi rt gn, s lng d liu lu ti trm 1 l 360, trm 2 l 360, trm 3 l 2000. V vy trm 3 c chn lm trm thc hin. Bc ti u ho sau khng b bt c php na kt ni v chng u c li. Chin lc c chn l gi (E G) J v (E G) ti trm 3, ti kt qu cui cng c tnh ton. 4.5.4 Thut ton AYH Thut ton AHY s dng cc php na kt ni ti thiu hoc thi gian p hoc tng chi ph. Cch tip cn ca phng php ny da trn mt tp cc thut ton ti u ch c th p dng cho cc truy vn n. Mt truy vn n l mt truy vn m sau khi nh v, mi quan h trong truy vn ch cha mt thuc tnh kt ni chung. Cc truy vn n c th c gii quyt mt cch ti u. Mt truy vn tng qut cha nhiu thuc tnh kt ni c phn tch thnh cc truy vn n, chng c th c p dng bi mt trong cc thut ton ti u. Thut ton ti u truy vn tng qut b qua chi ph x l a phng, tc l hm mc tiu ti thiu chi ph truyn thng. u vo thut ton l mt th truy vn, cc thng k ca cc quan h. Thut ton AHY trc tin x l truy vn bng cch p dng cc php ton a phng, sau phn tch truy vn thnh cc truy vn n s dng cc php na kt ni, cui cng bng cch tch hp cc chin lc ring r ny thnh mt chin lc thc thi duy nht. V th, tt c cc quan h trc tin c thu gn bi cc php na kt ni v sau gi ti mt trm kt qu duy nht, ti s tnh kt qu ca truy vn. n gin thut ton gi thit rng tt c cc quan h ca truy vn c lu ti cc trm khc nhau. Tuy nhin, c th m rng cho trng hp nhiu quan h trn mt trm. Sau y s trnh by hai thut ton cho cc truy vn n: ni tip (SERIAL) ti thiu tng chi ph v song song (PARALLEL) ti thiu thi gian tr li. V mt thut ton cho mt truy vn tng qut, trong s dng SERIAL v PARALLEL. Mt chin lc x l truy vn c minh ho bi mt lch trnh (schedules). Mt lch trnh l mt cy trong d liu truyn c biu din bi cc cnh c di t l vi khi

lng truyn. Mi nt ng vi mt php na kt ni c thc hin trc php truyn tip theo. Ti thiu tng chi ph ca cc truy vn n gin Ti u ho bao gm vic ti thiu tng s d liu truyn. Thut ton c gng chuyn cc quan h nh hn ti trm ca quan h ln hn bng cch sp th t truyn theo kch thc tng dn. Gi s: size(R1) size(R2) ... size(Rn) v Ri c lu tr ti trm i Thut ton xem xt hai lch trnh truyn khc nhau. K hiu Ti l kt qu tm thi ca Ri Ri-1 ,vi trm kt qu cha Rr. Lch trnh 1: R1trm 2 T2 = (R2 R1) trm 3 ... T r-1 = (Rr-1 T r-2) trm r T r = (Rr Tr-1) trm (r+1) ... (Rn T n-1) trm r (r l kt qu) Lch trnh 2: R1trm 2 T2 = (R2 R1) trm 3 ... T r-1 = (Rr-1 T r-2) trm (r+1) T r+1 = (Rr+1 T r-1) trm (r+2) ... Tn = (Rn Tn-1) trm r (r l kt qu) (Rr Tn) Thut ton SERIAL: k hiu RiRj: truyn Ri ti trm Rj sau thc hin Rj Ri. Thut ton 3.6: SERIAL input: SQG: th truy vn n vi n quan h output: lch trnh thc hin Begin th t cc quan h trong SQG l size(R1) size(R2) ... size(Rn) if khng c Ri ti trm kt qu then ES (R1R2 ...Rntrm kt qu)

else begin

{chn chin lc chi ph t nht gia ES1 v ES2}

ES1 (R1R2 ...Ri ... Rn Ri) ES2 (R1R2 ...Ri-1 Ri+1 ... Rn Ri) if cost(ES1) > cost(ES2) then ES ES2 else ES ES1 end-if end-if End. {SERIAL} V d : p dng thut ton SERIAL cho truy vn hnh 3.20 R2 A R1Thuc tnh SFSJ

A A R3kch thc (ATRI

)

R1.A R2.A R3.A

0.3 1 0.7

100 400 200

Hnh 3.20: V d mt truy vn n v cc thng k Gi s CMSG=0, CTR=1, trm kt qu l trm ca mt s quan h khng lin quan trong truy vn. i vi cc truy vn n, h s chn lun lun t l vi cc kch thc quan h. Quan h nh nht R1 c chn trc tin; kch thc ca R1 R2 l 400*0.3=120; kich thc ca R3 R1 c truyn ti trm ca R2, kch thc ca R2 R3 R1 l 400 * 0.7 * 0.3 = 84. Lch trnh ti u nh hnh 3.21. R1 100 R3 60 R2 84

Hnh 4.21: Trnh lch ti u Ti thiu thi gian p ca cc truy vn n gin Ti u ho bao gm vic cc tiu ho s lng d liu truyn ti tun t, bi cch truyn song song. Gi s cc ton hng quan h c sp th t theo kch thc tng. Mt gii php mm do ban u c chn trong tt c quan h c truyn song song n trm kt qu duy nht. Sau b ti u c gng ci tin gii php bng cch xt cc lch trnh khc nhau trong mt s quan h c gi ti quan h trung gian. B ti u khng cn xt tt c cc lch trnh c th c sinh ra i vi mt quan h Ri cho. y, cc quan h ln hn Ri khng th ci tin lch trnh ban u ca Ri v v vy n c loi b ngay sau khi cc quan h c sp theo th t tng sau chiu ln cc thuc tnh kt ni. Thut ton PARALLEL c trnh by nh sau:

Thut ton : PARALLEL input: SQG: th truy vn n vi n quan h output: lch trnh thc hin Begin th t cc php ton l size(R1) size(R2) ... size(Rn) ESi (Ritrm kt qu, Ri){gii php ban u cho mi quan h} ES0 ES1 ES2 ... ESn {gii php mm do ban u} for mi quan h Ri bt u vi i =1 do begin {tm mt chin lc thay i cho mi quan h } for mi Rj(j < i) do ESij (RjRi and Rk Ri, j < i) end-for ESi cost(ES1) ti thiu if cost(ESi) > cost(ESi) then begin{thay th chin lc vi Ri trong ES0 bi chin lc mi} ES0 ES0 - ESi ES0 ES0 ESi end-if end-for loi b cc chin lc d tha End. {PARALLEL} Thut ton tng qut: Thut ton a ra vi mi quan h Ri trong truy vn mt chin lc tch hp rt gn Ri bi cc php na kt ni mt cch ti u, sau truyn Ri ti trm kt qu hon thnh vic x l truy vn. Thut ton GENERAL input: SQG: th truy vn vi n quan h output: ES-set: tp cc chin lc i vi mi quan h begin thc hin cc php ton cc b CS {cc chin lc c vi cac truy vn n gin} for mi thuc tnh kt ni Aj m t truy vn n gin SQGj do begin if mc tiu l thi gian p then ESj PARALLEL(SQG) else {mc tiu l tng chi ph}

ESj SERIAL(SQG) end-if CS CS ESj end-for if mc tiu l thi gian p then for i 1 to n do begin CS CS (Ri trm kt qu) th t cc chin lc i vi Ri trn Aij l tng theo thi gian p for mi chin lc ESij trong CS theo th t tng dn do tch hp ESij vo chin lc ISi end-for ES-setES-set ISi vi thi gian o ti thiu end-for else for i 1 to n do begin CS CS (Ri trm kt qu) th t cc chin lc i vi Ri trn Aij l tng theo tng thigian for mi chin lc ESij trong CS theo th t tng dn do tch hp ESij vo chin lc ISi end-for ES-setES-set ISi vi thi gian o ti thiu end-for end-if for i 1 to n do if ESi c cha trong ESj (j i) then ES-set ES-set - ESi end-if end-for End.{GENERAL} Thut ton tin hnh nh sau: nh v ban u c thc hin mi trm. Vi mi thuc tnh kt ni ca truy vn, truy vn n gin c tch ra v ty theo hm mc tiu n s c p dng thut ton PARALLEL hay SERIAL, n sinh ra mt tp {lu ESj nh mt chin lc c}

cc chin lc c (mt chin lc cho mt truy vn n gin). Cc chin lc cho cc truy vn n gin c tch hp li thnh mt chin lc tng th trong mi quan h Ri c thu gn. S tch hp ny c thc hin khc nhau tu theo hm mc tiu l thi gian p hay thi gian tng. 4.7 Phn kt lun CSDL phn tn p ng mt phn ln cc nhu cu trong thc t v d liu phc v cng tc qun l ngy cng ln v a dng. c bit, cc h qun tr CSDL phn tn gii quyt c vn lu tr d liu v phc v cho nhiu ngi dng phn tn khp mi ni. Trong phm vi ca mt gio trnh chuyn ngnh CNTT, chng ti trnh by chi tit m hnh d liu phn tn v cc tnh nng u vit ca n. ng thi cng trnh by kh chi tit cch tnh ton chi ph ca mt cu truy vn phn tn. Tuy nhin vn t ra l lm th no cc h qun tr CSDL phn tn c th tr li mt cu truy vn phn tn nhanh nht vn ang cn l mt vn c nhiu nh tin hc quan tm. Hin nay c mt vi thut ton ti u ho phn tn nhm xc nh b lp lch gn ti u [4] cho cu truy vn phn tn, nh thut ton INGRRES phn tn, thut ton SDD-1, thut ton AHY,... c s dng trong nhiu h qun tr CSDL thng mi. Nhng do phc tp ca d liu, mc phn tn v a l ngy mt tng nn vn ti u truy vn phn tn ang c nghin cu.

HT CHNG 4