Professional Documents
Culture Documents
TRNG I HC KHOA HC
TS. NGUYN MU HN
C S D LIU PHN TN
HU- 2008
LI NI U
Nhu cu dng chung mt d liu hp nht ca cc t chc kinh t x hi ngy mt cao. Hn th na, cc t chc ny li c nhiu tr s phn tn nhiu v tr a l khc nhau. Vn t ra l lm th no c th qun l cc lung d liu v s dng chung d liu, chng trnh ca t chc. Vic qun l cc lung d liu trn c s mng cc b vi kin trc my qun l file n gin gy ra nhiu phin toi nht nh. V th cc h thng phn tn c thit k s dng cho cc h thng thng tin vi nhiu a im phn tn ngy mt pht trin. Mt h thng phn tn bao gm hai phn chnh: mng my tnh v h c s d liu phn tn. Do , vn tm hiu cu trc v giao thc ca mng my tnh l iu cn thit nghin cu cc h c s d liu phn tn. C s d liu phn tn l mt tp c s d liu c quan h logic vi nhau v c tri trn mt mng my tnh. Mi trm ca mng c kh nng x l t qun v c th thc hin cc ng dng cc b, mi mt trm cng c th tham gia vo t nht mt ng dng ton cc v c th truy xut d liu ti nhiu trm khc nhau. i vi cc h thng thng tin ln vi yu cu t ch ch gii quyt x l nhng cng vic hng ngy th nay tin ti p ng c nhng yu cu cung cp thng tin mc cao hn. Do yu cu cng vic, cc nh qun l khng nhng mun bit cc thng tin v cng vic ang din ra nh th no m cn mun bit cc thng tin tip theo sau l g, c ngha l thng tin mang tnh phn tch v h thng thng tin c kh nng h tr ra quyt nh. Tuy nhin, vic xy dng mt h thng nh th vp phi mt s hn ch v mt k thut, c bit l khi kch thc cng nh phc tp ca mi trng thng tin tng ln. Nhng h thng thng tin xy dng theo phng php truyn thng khng kh nng gii quyt cc vn ny. Khi nghin cu n h phn tn ni chung v c s d liu phn tn ni ring th cu hi t ra cho ngi s dng l: phn tn ci g? - l: thit b x l, chc nng, d liu, quyn iu khin. Chng ta s tho lun chi tit cc i tng phn tn trong 6 chng ca gio trnh ny. Gio trnh C s d liu phn tn c s dng cho sinh vin, hc vin cao hc chuyn ngnh cng ngh thng tin. Gio trnh c chia lm 6 chng. Chng 1: Tng quan v c s d liu phn tn, bao gm mt s khi nim c bn v mng my tnh, cc m hnh mng c s dng trong h phn tn, cc phng php qun l d liu t xa theo m hnh Client/Server. Chng 2, Thit k c s d liu phn tn. Mc ch ca chng ny nhm cung cp cho ngi lp trnh ng dng thy c cc mc trong sut khc nhau v mt c s d liu phn tn, c cung cp ca mt h qun tr c s d liu phn tn. ng thi
4
tho lun v mt s phng php thit k mt c s d liu trong mi trng ny. Chng 3, X l truy vn trong c s d liu phn tn. 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. Chng 4, Qun tr cc giao tc phn tn. Qun tr giao tc phn tn nhm gii quyt mt s vn trong qu trnh truyn thng ca h phn tn nh: tin cy (reliabity), iu khin tng tranh, hiu qu s dng cc ti nguyn ca h thng. Hu ht cc nghin cu v qun tr giao tc u nhm mc ch gii quyt vn trn mt cch r rng, c bit trong lnh vc phc hi giao tc phn tn v iu khin tng tranh. Do , hiu c vic qun l giao tc phn tn l cn thit bit c s lin quan gia iu khin ng thi, c ch phc hi v cu trc ca h thng. Chng 5, iu khin tng tranh phn tn. Trong chng ny s gii thiu vi mt s thut ng chun m t cc thut ton iu khin tng tranh trong mi trng phn tn v mt m hnh chun cho mi trng ny. Bi ton iu khin tng tranh c tch lm hai bi ton con l ng b ha c-ghi v ghi-ghi. Mi thut ton iu khin tng tranh phi bao gm hai thut ton con gii quyt hai bi ton con ny. Bc u tin nhm mc ch hiu mt thut ton iu khin tng tranh tch bit vi thut ton con trong mi bi ton con. Thc ra, cc thut ton con u c cc thut ton iu khin tng tranh trong cc h qun tr c s d liu phn tn dng vi hai k thut chnh: kha hai pha v th t nhn thi gian.. Chng 6, C s d liu hng i tng phn tn. cc chng trn, thun tin trong trnh by, chng ta gi s cc vn c trnh by vi m hnh c s d liu quan h. Tuy nhin trong thc t nhiu h thng thng tin c ci t vi c s d liu hng i tng, do chng ny s gii quyt cc vn ny sinh khi d liu l hng i tng. Mc d chng ti rt c gng hon thin gio trnh ny nhng khng th trnh khi nhng thiu st v cch din t, b cc, ni dung v cc li c php. Rt mong c bn c gp . hon tt gio trnh ny chng ti xin cm n cc Thy c gio ca Khoa Cng ngh Thng tin, Trng i hc Khoa hc-i hc Hu gp , chnh sa gio trnh sm c ra mt bn c. Hu, Thng 12 nm 2008 Tc gi
MC LC
CHNG 1. TNG QUAN V C S D LIU PHN TN........................ 12 1.1. S lc v mng my tnh.......................................................................... 12 1.2. Cc hnh thc t chc h thng phn tn ................................................... 14 1.2.1. T chc h thng theo m hnh mng ngang hng ............................. 15 1.2.2. T chc h thng theo kiu my dch v file (File server) ................. 17 1.2.3. T chc h thng theo m hnh khch/ch (client/server) .................. 17 1.3. Cc c trng ca cc loi hnh h thng phn tn .................................... 18 1.3.1. M hnh kin trc ca h phn tn Client/Server................................ 18 1.3.2. Cc chc nng ca kin trc client/server........................................... 20 1.3.2.1. Trnh din thng tin phn tn ....................................................... 20 1.3.2.2. Trnh din t xa ............................................................................ 21 1.3.2.3. Qun l d liu t xa .................................................................... 21 1.3.2.4. Phn tn chc nng....................................................................... 22 1.3.3. So snh c trng ca h thng File server v Client/Server.............. 22 1.3.4. X l phn tn (Distributed Processing): ............................................ 23 1.4. C s d liu phn tn (Distributed Database) .......................................... 23 1.4.1. nh ngha ........................................................................................... 23 1.4.2. H qun tr c s d liu phn tn....................................................... 25 1.4.3. So snh csdl phn tn v csdl tp trung............................................... 26 1.4.4. u v nhc im ca h phn tn ..................................................... 28 1.5. Cc loi truy xut CSDL phn tn.............................................................. 29 1.5.1. Truy xut t xa thng qua cc tc v c bn:...................................... 29 1.5.2. Truy xut t xa thng qua chng trnh ph tr ................................. 29 CHNG 2. THIT K C S D LIU PHN TN .................................... 32 2.1. Kin trc c bn ca mt c s d liu phn tn ....................................... 32 2.1.1. S tng th (Globle Schema) ......................................................... 33 2.1.2. S phn on (fragment Schema) .................................................. 33 2.1.3. S nh v (allocation Schema) ...................................................... 34 2.1.4. S nh x a phng (Local mapping Schema) ........................... 34 2.2. Kt ni d liu trong h thng c s d liu phn tn ............................... 35 2.2.1. H thng c s d liu thun nht (Homogeneous Distributed Database) ................................................................................................................ 35 2.2.2. H thng c s d liu khng thun nht............................................ 36
6
2.2.3. Nhng kt ni c s d liu (Database Links).................................... 37 2.3. Cc c im chnh ca h phn tn .......................................................... 38 2.3.1. Chia s ti nguyn ............................................................................... 38 2.3.2. Tnh m ............................................................................................... 38 2.3.3. Kh nng song song ............................................................................ 39 2.3.4. Kh nng m rng ............................................................................... 39 2.3.5. Kh nng th li .................................................................................. 39 2.3.6. m bo tin cy v nht qun ............................................................. 40 2.3.7. Tnh trong sut (transparency). ........................................................... 40 2.4. Ni dung thit k cc h thng phn tn .................................................... 43 2.4.1. Qu trnh thit k................................................................................. 43 2.4.2. Cc sn phm sau khi thit k ............................................................. 43 2.5. Cc chin lc phn tn d liu ................................................................. 44 2.5.1. Tp trung d liu ................................................................................. 44 2.5.2. Chia nh d liu .................................................................................. 44 2.5.3. Sao lp d liu..................................................................................... 44 2.5.4. Phng thc lai ................................................................................... 45 2.6. Thit k c s d liu phn tn .................................................................. 45 2.6.1. S thit k tng th c s d liu phn tn .................................... 45 2.6.2. Cc phng php thit k CSDL phn tn.......................................... 46 2.6.2.1. Phng php thit k t trn xung ............................................. 46 2.6.2.2. Phng php thit k t di ln ................................................. 49 2.7. Phn mnh d liu...................................................................................... 49 2.7.1. Cc l do phn mnh ........................................................................... 49 2.7.2. Cc kiu phn mnh ............................................................................ 50 2.7.2.1. Phn mnh ngang ......................................................................... 50 2.7.2.2. Phn mnh dc ............................................................................. 51 2.7.2.3. Phn mnh hn hp ...................................................................... 51 2.7.3. Cc yu cu v vic phn mnh .......................................................... 51 2.8. Cp pht ti nguyn trong h phn tn ....................................................... 54 2.8.1. Bi ton cp pht ti nguyn ............................................................... 54 2.8.2. Thng tin cp pht............................................................................... 55 CHNG 3. X L TRUY VN TRONG CSDL PHN TN........................ 57 3.1. Gii thiu v x l truy vn ....................................................................... 57
3.2. Ti u ha cu truy vn trong CSDL tp trung.......................................... 58 3.2.1. S lc v ngn ng truy vn c cu trc-SQL.................................. 59 3.2.2. Cc chin lc ti u ha cu truy vn trong CSDL tp trung ........... 60 3.2.2.1. Thut ton INGRES ..................................................................... 60 3.2.2.2. Thut ton System R .................................................................... 64 3.3. Ti u ha cu truy vn trong CSDL phn tn .......................................... 69 3.3.1. Chun ho............................................................................................ 69 3.3.2. Phn tch .............................................................................................. 70 3.3.3. Loi b d tha ................................................................................... 73 3.3.4. Vit li truy vn................................................................................... 73 3.4. nh v d liu phn tn ............................................................................. 77 3.4.1. Rt gn theo phn mnh ngang nguyn thu ...................................... 78 3.4.2. Rt gn theo phn mnh dc............................................................... 80 3.4.3. Rt gn theo phn mnh gin tip....................................................... 81 3.4.4. Rt gn theo phn mnh hn hp........................................................ 82 3.5. Ti u ho truy vn phn tn...................................................................... 83 3.5.1. Mc tiu ca b x l truy vn............................................................ 83 3.5.2. c trng ca b x l truy vn.......................................................... 84 3.5.2.1. c trng v ngn ng ................................................................. 84 3.5.2.2. Cc kiu ti u ho....................................................................... 84 3.5.2.3. S iu chnh vic ti u.............................................................. 85 3.5.2.4. Da vo kt qu thng k............................................................. 85 3.5.2.5. Cc trm quyt nh ..................................................................... 85 3.5.2.6. S khai thc ca cu trc mng.................................................... 85 3.5.2.7. Khai thc cc on sao chp......................................................... 86 3.5.2.8. S dng cc na kt ni ............................................................... 86 3.5.3. M hnh chi ph ca b ti u truy vn ............................................... 86 3.5.4. Cc thng k CSDL............................................................................. 88 3.5.5. Lc lng ca cc kt qu trung gian ................................................. 89 3.5.5.1. Php chn ..................................................................................... 89 3.5.5.2. Php chiu .................................................................................... 89 3.5.5.3. Php ni........................................................................................ 89 3.5.5.4. Php na ni ................................................................................. 90 3.5.5.5. Php hp....................................................................................... 90
3.5.5.6. Php tr ........................................................................................ 90 3.5.6. V d .................................................................................................... 90 3.6. So snh mt s thut ton ti u ho truy vn phn tn............................. 91 3.6.1. Thut ton INGRES phn tn.............................................................. 92 3.6.2. Thut ton SYSTEM phn tn (R*) ................................................... 94 3.6.3. Thut ton SDD-1 ............................................................................... 96 3.6.4. Thut ton AYH .................................................................................. 99 3.7. Phn kt lun ............................................................................................ 105 CHNG 4. QUN TR CC GIAO TC PHN TN ................................. 108 4.1. Tng quan v qun l giao tc.................................................................. 108 4.1.1. Cc tnh cht ca giao tc.................................................................. 109 4.1.2. Mc tiu ca qun l giao tc............................................................ 112 4.1.3. Cc giao tc phn tn......................................................................... 113 4.1.4. Qun l kho trong giao tc .............................................................. 113 4.2. S h tr nguyn t ca cc giao tc phn tn......................................... 115 4.2.1. S phc hi trong cc h thng tp trung.......................................... 115 4.2.1.1. Cc s c trong cc c s d liu tp trung ............................... 115 4.2.1.2. Nht k (logs):............................................................................ 116 4.2.1.3. Cc quy trnh phc hi: .............................................................. 118 4.2.2. Cc s c truyn thng trong c s d liu phn tn ........................ 119 4.2.3. Khi phc cc giao tc phn tn........................................................ 121 4.2.4. Giao thc y thc 2 pha (2-Phase Commitment Protocol)................ 125 CHNG 5. IU KHIN TNG TRANH PHN TN............................. 132 5.1. M hnh x l giao tc ............................................................................. 133 5.1.1. Cc nh ngha................................................................................... 133 5.1.2. M hnh x l giao tc tp trung. ...................................................... 135 5.1.3. M hnh x l giao tc phn tn........................................................ 136 5.2. Phn tch bi ton iu khin tng tranh................................................ 138 5.2.1. Tnh kh tun t ................................................................................ 140 5.2.2. M hnh iu khin tng tranh........................................................ 142 5.2.3. Thi gian v nhn thi gian trong CSDL phn tn ........................... 143 5.3. Cc k thut iu khin tng tranh ........................................................ 145 5.3.1. Cc k thut ng b ha da trn kha hai pha .............................. 145 5.3.2. Qu trnh thc hin 2PL c bn ........................................................ 146
5.3.3. K thut 2PL biu quyt.................................................................... 147 5.3.4. K thut 2PL tp trung. ..................................................................... 148 5.3.5. Pht hin v ngn chn tc nghn ..................................................... 148 5.3.5.1. Ngn chn tc nghn .................................................................. 150 5.3.5.2. Pht hin tc nghn..................................................................... 152 5.4. Cc k thut ng b ha da trn th t nhn thi gian ........................ 153 5.4.1. S thc hin T/O c bn.................................................................... 153 5.4.2. Lut ghi Thomas................................................................................ 156 5.4.3. a phin bn T/O .............................................................................. 156 5.4.4. Duy tr T/O ........................................................................................ 159 5.4.5. Qun l nhn thi gian ...................................................................... 163 5.5. DC-ROLL................................................................................................. 163 5.5.1. ROLL (Request Order Linked List ). ................................................ 164 5.5.1.1. Cc thao tc ROLL c bn . ....................................................... 165 5.5.1.2. ROLL da trn s iu khin tng tranh. ........................... 165 5.5.2. Kin trc chu trnh d liu gc.......................................................... 166 5.5.3. DC-ROLL.......................................................................................... 167 CHNG 6. C S D LIU I TNG PHN TN ............................. 170 6.1. Tng quan v c s d liu hng i tng .......................................... 170 6.1.1. i tng v nh danh i tng .................................................... 171 6.1.2. Thuc tnh v phng thc ............................................................... 171 6.1.3. Lp .................................................................................................... 172 6.1.4. K tha .............................................................................................. 174 6.2. Thit k c s d liu hng i tng ................................................... 177 6.2.1. Phn hoch ngang lp: ...................................................................... 178 6.2.2. Phn mnh dc lp ............................................................................ 179 6.2.3. Phn hoch ng dn ...................................................................... 179 6.2.4. Cc thut ton phn hoch lp .......................................................... 179 6.2.4.1. Phng php da vo chi ph ..................................................... 180 6.2.4.2. Cp pht...................................................................................... 180 6.2.5. Nhn bn............................................................................................ 180 6.3. Qun l i tng..................................................................................... 180 6.3.1. Qun l nh danh i tng............................................................. 180 6.3.2. iu ch con tr ................................................................................ 181
10
6.3.3. Di tr i tng ................................... Error! Bookmark not defined. 6.3.4. Lu tr i tng phn tn.................. Error! Bookmark not defined. 6.3.5. Lm t i tng ................................ Error! Bookmark not defined. 6.4. Qun l giao dch i tng..................................................................... 185 Ti liu tham kho........................................... 188Error! Bookmark not defined.
11
Mt h thng phn tn bao gm hai phn: mng my tnh v h c s d liu phn tn. Do , vn tm hiu cu trc v giao thc ca mng my tnh l iu cn thit nghin cu cc h c s d liu phn tn. Trong chng ny chng ta nhc li cc khi nim cn b v mng my tnh v cc giao thc truyn d liu trong mt h phn tn. ng thi chng ta cng tho lun v cc phng php truy xut d liu t xa ca h ny. 1.1. S lc v mng my tnh Mt mng my tnh l mt tp cc my tnh t vn hnh, c kt ni li v c kh nng trao i thng tin gia chng. Cc my tnh trn mt mng thng c gi l cc nt hay cc trm, chng to ra cc phn cng c bn ca mng. Cc nt ny c kt ni li vi nhau bi mt ng truyn. Mt mng my tnh l mt trng hp c bit ca mi trng x l phn tn, trong cc my tnh l cc thit b c kt ni vo knh truyn d liu. C nhng loi mng my tnh c bn sau: + Mng hnh sao: Tt c cc my tnh c ni vi mt my tnh trung tm. Bi v mi my tnh u c ng truyn ring vi my tnh trung tm nn cn phi c mt tho thun gia cc my v tinh v my tnh trung tm khi chng mun trao i thng tin. Loi mng ny thng c dng trong cc t chc c nhiu chi nhnh nm nhiu vng khc nhau, my tnh trung tm c t ti vn phng chnh hoc ti trung tm vng. Trong trng hp ny vic x l cc b c x l ti mi nt v d liu cui cng s c truyn n my trung tm. Mt khuyt im ca mng hnh sao l tin cy thp. V giao tip ca hai my tnh ph thuc vo my tnh trung tm, mt s c ti nt ny s lm cho vic truyn trn mng ngng tr hon ton. Mt khuyt im khc l ti trng qu cao trn my tnh trung tm; v n phi iu phi vic giao tip trn mng, ti trng ti cao hn cc trm khc. V th ngi ta thng dng my tnh trung tm mnh hn cc my tnh khc. Do nhng khuyt im ny, mng hnh sao ch c dng khi d liu truyn gia cc my v tinh khng ln.
12
Hub
+ Mng vng: cc my tnh c ni vi mi trng truyn (ng truyn) c dng mt vng khp kn. Truyn d liu quanh vng thng theo mt chiu, v mi trm ng vai tr l mt b chuyn tip. Khi nhn c mt thng bo, n kim tra a ch, sao chp thng bo nu thng bo c gi cho n ri truyn thng bo i tip. Vic iu khin truyn tin trn mng xoay vng thng c thc hin bng th iu khin. Cc mng ch c mt mi trng iu khin xoay vng th c tin cy thp, n gin l nu ng ni ch b ct t mt im no th c th lm ngng ton b hot ng ca mng. c c tin cy cao hn, ngi ta c th s dng loi topo mng hai vng. Trong mt mng nh th, s c ti mt im ni khng lm mt kh nng truy xut n phn cn li ca mng bi c th truyn bng cch chuyn qua vng th hai. + Mng bus: mng bus l mng trong c mt knh chung chuyn d liu, cc my tnh v cc thit b u cui s c gn vo . kiu mng ny, vic iu khin ng ni c thc hin bng hai cch chnh. l phng php CSMA v CSMA/CD. Ngoi hai phng php c bn ny, bus cng c th c iu khin bng th.
+ Mng hn hp: Cc mng truyn thng thng c cc ng ni v nh. Ngha l cc ng ni khng c tnh h thng cng khng tun theo mt khun mu no. Chng ta c th gp mt nt ch ni vi mt nt khc v c nhng nt ni vi nhiu nt khc. Cc ni kt gia cc my tnh trn mng Internet thuc loi ny.
13
HUB
Hub
Hub
B chuyn i cp
+ Mng thm Mesh (cu trc kt ni y ): Mt lc ni kt khc l ni kt y (mng thm), trong mi nt u c ni kt vi cc nt cn li. Mt cu trc nh th r rng l cung cp c tin cy cao hn v kh nng hot ng tt hn nhng cu trc ni trn. tuy nhin n cng l cu trc c chi ph cao nht. Lc ni kt y nh vy l khng thc t. Ngay c khi vi s lng my tnh trn mng kh t th s ni kt cn c s rt Hnh 1.5: Mng Mesh ln. 1.2. Cc hnh thc t chc h thng phn tn H thng phn tn thng s dng cc m hnh kt ni mng: m hnh mng ngang hng (peer-to-peer), my dch v file (File server) v m hnh mng khch/ch (Client/Server).
14
1.2.1. T chc h thng theo m hnh mng ngang hng Trong m hnh ny, cc my tnh c nhn v my trm c th c s dng nh mt h thng c lp tr gip cc ng dng a phng. Mi thnh vin trong mng c vai tr ngang nhau, t qun l ti nguyn ca chnh mnh v chia s ti nguyn cho cc my tnh khc trn mng. Mi mt my tnh trn mng va ng vai tr my ch (Server), va ng vai tr l my khch (Client). y l m hnh mng n gin, ph hp vi nhng h thng mng nh khng c yu cu cao v bo mt.
c im ni bt ca h thng ny l d liu c t chc cc nt c chc nng nh nhau, ng thi s t chc d liu cc nt ny li c th rt khc nhau, t cn phi c: + nh ngha d liu ti mi v tr: ti mi nt phi xy dng lc d liu cc b LIS (Local Internal Schema) + M t cu trc logic ton cc: Lc khi nim ton cc GCS (Global Conceptual Schema). + M t cu trc logic ti mi v tr, iu ny xy ra do nhn bn v phn mnh, gi l lc khi nim cc b LCS (Local Conceptual Schema). + M t cu trc du liu ca cc ng dng gi l lc ngoi gii ES (External Schema). Cu trc ca h thng bao gm hai thnh phn chnh: B phn tip nhn ngi dng (User Processor) v b phn x l d liu (Data Processor). Hai modun ny c t chung trn mi my ch khng tch bit nh h thng khch/i l. Cc chc nng c bn ca tng modun nh sau: + User Interface Handler - Giao tip ngi s dng: Din dch yu cu, nh dng kt qu. + Semantic Data Controler - Kim sot d liu ng ngha: Da vo lc khi nim ton cc kim tra cu vn tin c thc hin c hay khng.
15
+ Global Query Optimizer - Ti u ha cu hi ton cc: nh ra chin lc thc thi tt nht trn cc nt. + Global Execution Monitor - iu khin thc thi cu vn tin ton cc. + Local Query Processor - X l cu hi cc b + Local Recovery Manager - Qun l khi phc cc b: Qun l s nht qun khi c s c. + Run-Time Support Processor - B phn h tr thc thi: Qun l truy xut c s d liu.
16
1.2.2. T chc h thng theo kiu my dch v file (File server) Trong mi trng mng LAN, tt c cc thao tc d liu u din ra my trm. Mt s my dch v file c gn trc tip vo mang LAN. Mt my dch v file l mt thit b qun l cc hot ng file v phc v cc my tnh c nhn c kt ni trong mng LAN. V cu hnh, trn cng ca my dch v file mi my c nhn c phn chia mt dung lng c nh, chng trnh cc my tnh c nhn c th tham chiu n cc file trn phn a tng ng ca n bng mt c t ng dn. Khi s dng mt CSDL trong mi trng my dch v file, mi my c nhn c php s dng chng trnh ng dng CSDL trn n. Nh vy l c mt CSDL trn my dch v file v nhiu bn sao ca n hot ng trn mi my tnh c nhn ang hot ng. My dch v file n gin nh mt thit b lu Hnh 1.9: My dch v file tr d liu dng chung v l s m rng ca my tnh c nhn. Nh vy, khi cc my tnh c nhn lm vic v c yu cu, my dch v file s gi ton b file n my tnh c nhn, v thao tc d liu s c thc hin. Cc hot ng an ton d liu cng c thc hin my tnh c nhn. Nhng hn ch ca my dch v file C 3 hn ch khi s dng my dch v file trn mng LAN D liu di chuyn trn mng qu nhiu Vic kim sot d liu l phi tp trung Cc my trm phi mnh 1.2.3. T chc h thng theo m hnh khch/ch (client/server) Trong m hnh ny, my ch (server) c chc nng iu khin, lu tr CSDL, x l cc truy vn v qun l vic khai thc ti nguyn trn mng ca cc my tnh khc. Thut ng client c s dng ch ngi khai thc ti nguyn mng. Mi mt ngi khai
Hnh 1.10: M hnh Client/Server 17
thc mng s dng mt my tnh (gi l my trm hay workstation) kt ni n my ch khai thc ti nguyn mng. Cc my trm thng qun l cc giao din v trnh din d liu. 1.3. Cc c trng ca cc loi hnh h thng phn tn Vic chuyn cc ng dng trn my tnh c nhn cng nh cc ng dng trn cc h thng my ln trung tm sang m hnh phn tn l mt xu hng pht trin mnh. Vn t ra l, cn la chn hnh thc phn tn thch hp no cho mi m hnh c chuyn i. 1.3.1. M hnh kin trc ca h phn tn Client/Server Chc nng ca h thng c chia lm hai lp: + Chc nng i l - server function + Chc nng khch hng - client function. Trong h thng Client/Server cc thao tc x l d liu p ng yu cu ca khch hng u c thc hin bi cc chc nng i l, ch c kt qu c gi tr cho khch hng. H khch c cc tng: + Giao din tng tc vi ngi s dng (User Interface), cc chng trnh ng dng (Application Program), ... + H qun tr c s d liu khch hng (Client DBMS). + Cc phn mm mng c chc nng truyn tin (Communication Software). H i l c cc tng: + Cc phn mm mng c chc nng truyn tin. + Tng kim sot ng ngha ca d liu (Semantic Data Controler). + Tng ti u ha cu hi (Query Optimizer). + Tng qun l cc giao tc (Transaction Manager). + Tng qun l khi phc (Recovery Manager). + Tng h tr thc thi (Run - time Support Processor) . + H iu hnh qun l chung v giao tip vi c s d liu vt l.
18
H Client/Server c u im l x l d liu tp trung, trn ng truyn ch c cc gi tin yu cu (cu hi) v cc kt qu p ng cu hi, gim ti c khi lng truyn tin trn mng kt hp vi thit b ti i l rt mnh s tng tc x l d liu ca c h thng
19
M hnh h phn tn phc hp S khc bit c bn so vi h phn tn ngang hng l ch h phc hp khng c (hoc c khng y ) mt lc khi nim ton cc.
1.3.2. Cc chc nng ca kin trc client/server 1.3.2.1. Trnh din thng tin phn tn Mc ch ca trnh din thng tin phn tn trong kin trc client/server l lm mi cc ng dng trn cc my khch v nh dng li d liu do server qun l. Kt qu ny s dng vo vic lp bng biu bo co m khng ph hy hoc phi vit li h thng c. Trnh din phn tn hn ch c s hot ng ca cc biu mu ang tn ti, v khi cn thit nhng n th trnh
20
din trn my khch v server c th c thay i v bo tr ng thi. Chng ta c th thy c vic trnh din thng tin phn tn qua bng di y. Chc nng Qun l d liu Phn tch d liu Trnh din d liu Client Server Qun l mi d liu Phn tch mi d liu D liu trnh din trn server S dng cng ngh rnh c nh dng trnh din din ca server gi d cho ngi dng liu gi cho cc clients Trnh din thng tin phn tn 1.3.2.2. Trnh din t xa Kiu trnh din ny t tt c cc chc nng trnh din d liu trn cc clients nn phn mm trn cc my khch c kh nng trnh din nhng d liu c nh dng theo ngi s dng. Khi ngi s dng cn thay i cc biu mu, bo co hoc ni dung mi th ch cn bo tr phn mm trn my khch. Chc nng Qun l d liu Phn tch d liu Trnh din d liu D liu phn tch trn server c nh dng trnh din cho ngi dng Trnh din t xa 1.3.2.3. Qun l d liu t xa Chc nng Qun l d liu Phn tch d liu Trnh din d liu D liu th c ly t server v c phn tch Trnh din tt c d liu Client Server Qun l mi d liu Client Server Qun l mi d liu Phn tch mi d liu
21
1.3.2.4. Phn tn chc nng Cc chc nng phn tn c t trn c my khch ln my ch. Ton b chc nng trnh din d liu c t trn my khch v ton b chc nng qun l d liu c t trn my ch. Chc nng Qun l d liu Phn tch d liu Client Server Qun l mi d liu Cc d liu c ly v phn Cc d liu c ly v tch t server phn tch t server sau c truyn cho cc clients Tt c d liu (c phn tch trn c server v clients)
Chc nng Qun l d liu Phn tch d liu Trnh din d liu
Client Qun l d liu a phng D liu c ly t c server v cc clients phn tch Tt c d liu Phn tn d liu
1.3.3. So snh c trng ca h thng File server v Client/Server C hai m hnh ny u s dng my c nhn, my trm kt ni nhau trn mt mng LAN. Trong khi chc nng ca File server th tr gip vic phn tn d liu th kin trc Client/Server li h tr c phn tn d liu ln phn tn x l. Bng di y cho thy s khc nhau c bn ca hai loi kin trc trn. Chc nng
Qun l d liu Phn tch d liu
Client
Qun l d liu a phng
Server
Chia s qun l d liu trn server
D liu c ly t c server D liu c ly t server v cc clients phn tch phn tch. Sau gi cho my khch phn tch
22
c trng
X l
File Server
Ch my khch
Client/Server
C my khch v my ch Cao, Server m nhim Cao, Server m nhim Truyn d liu nhiu mc Hn hp mt s phn mm c th gi n my khch
Truy nhp d liu ng Thp, mi my khch th.hin thi An ton v ton vn CSDL S dng mng Bo tr phn mm Phn cng v h thng Thp, my khch qun l File ln, chuyn c file Thp, ch my Server
1.3.4. X l phn tn (Distributed Processing): Kin trc client/server vi x l phn tn cho php phi hp tt nht cc c trng ca h phn tn nh lin kt d liu v chng trnh trn my ch v ch li chc nng trnh din trn my khch. M hnh ny cho php nh v mt cch mm do c chc nng phn tch v x l d liu ni m chng hot ng tt nht. 1.4. C s d liu phn tn (Distributed Database) 1.4.1. nh ngha Mt c s d liu (CSDL) phn tn l mt tp hp d liu, m v mt logic tp hp ny thuc cng mt h thng, nhng v mt vt l d liu c tri trn cc v tr khc nhau ca mt mng my tnh. C hai im quan trng c nu ra trong nh ngha: Phn tn: D liu khng c tr trn mt v tr m c phn b rng khp trn nhiu my tnh t ti nhiu v tr khc nhau, y l im phn bit mt c s d liu phn tn vi mt c s d liu tp trung. Tng quan logic: D liu trong h phn tn c mt s thuc tnh rng buc chng vi nhau. iu ny gip chng ta c th phn bit mt c s d liu phn tn vi mt tp hp c s d liu tp trung, cc file d liu c lu tr ti nhiu v tr khc nhau, iu ny thng thy trong cc ng dng m h thng s phn quyn truy nhp d liu trong mi trng mng.
23
H thng mng thng tin cho php ngi dng chia s d liu, v vy ngi dng hoc ng dng mt v tr A u c th truy cp hay cp nht d liu ti v tr B no . Cc v tr ca mt c s d liu phn tn c th tri rng trn mt khu vc ln (ton th gii) hoc mt phm vi hp (to nh). Cng nh vy, my tnh cc v tr phn tn c th l bt c loi no, t my vi tnh n cc my tnh ln. V d: Mt cng ty phn mm c cc vn phng Hu, H ni, HCM v Cn th, s dng c s d liu sau y qun l cc hot ng ca cng ty: D liu v nhn vin: NHANVIEN (MANV, TENNV, CHUCVU) D liu v cc d n: DUAN (MADA, TENDA, NGANSACH, DIADIEM) D liu v lng: TLUONG (CHUCVU, LUONG) D liu v phn cng: HOSO (MANV, MADA, NHIEMVU, THOIGIAN) Mi my tnh vi c s d liu thng k a phng ca n ti mi chi nhnh c t mt v tr ca c s d liu phn tn. Cc my tnh c ni vi nhau bi mt mng truyn thng. Cc nt trong mt mng phn tn mt mt x l thng tin ti v tr m n qun l, mt khc n cng tham gia vo vic x l cc yu cu v thng tin cn truy cp qua nhiu a im. V d, vic ln danh sch, tnh ton lng cho tt c cc nhn vin ca cng ty,... Cc yu cu ny i hi tt c cc my tnh cc chi nhnh ca cng ty u phi hot ng cung cp thng tin. Ta c s lu tr phn tn v phn mnh gi nh nh sau:
H ni
Nhn vin H ni Nhn vin Hu D n H ni
H ue
Nhn vin H ni Nhn vin Hu D n H ni D n Hu
HC M
Nhn vin H ni Nhn vin Hu D n H ni
H
Nhn vin Cn th D n Cn th
24
1.4.2. H qun tr c s d liu phn tn H c s d liu phn tn (Distributed DataBase System) c xy dng da trn hai cng ngh c bn l c s d liu v mng my tnh. H c s d liu phn tn c m t nh l tp hp nhiu c s d liu c lin quan logic n nhau v c phn b trn mng my tnh. Trong khi nim c m t v c s d liu phn tn trn c hai c trng c bn l lin quan logic v phn b trn mng. Trong c s d liu phn tn cc tp tin d liu c lu tr c lp trn cc nt ca mng my tnh v phi c lin quan n nhau v mt logic v cn hn th na cn i hi chng phi c truy xut n qua mt giao din chung, thng nht. Hin nay khi nim x l phn tn (Distributed procesing), tnh ton phn tn (Distributed computing) hoc cc thut ng c t phn tn hay c dng ch cc h thng ri rc nh cc h thng my tnh c a b x l (multiprocessor system) hay l cc x l trn mng my tnh. C s d liu phn tn l mt khi nim khng bao gm cc trng hp x l d liu trong cc h thng s dng b nh chung, k c b nh trong hay b nh th cp (a t), nht thit phi l mt h c s dng giao tip mng vi cc trm lm vic c lp. H Qun tr c s d liu phn tn (Distributed DBMS) l h thng phn mm cho php qun l cc h c s d liu phn tn v lm cho s phn tn tr nn trong sut i vi ngi s dng. Khi nim trong sut - transparent ch s tch bit cp cao ca h thng vi cc vn ci t cp thp ca h thng. Chng ta s tho lun v tnh trong sut ca mt h phn tn chng 2. Mt DDBMS cn c chc nng h tr vic to v bo tr c s d liu phn tn, chng c cc thnh phn tng t nh mt h qun tr c s d liu tp trung v cc thnh phn h tr trong vic chuyn ti d liu n cc trm v ngc li. Cc thnh phn i hi mt DDBMSs thng mi phi c c m t hnh di y: Qun tr d liu (Database management): DB Truyn thng d liu (Data Communication): DC T in d liu (Data Dictionary): DD dng m t thng tin v s phn tn ca d liu trn mng. C s d liu phn tn (Distributed Database): DDB Cc thnh phn trn c mi lin h nh hnh di y:
25
Local database 1
DB
Local database 2
DD DB DC DDB
1.4.3. So snh CSDL phn tn v CSDL tp trung CSDL phn tn khng n gin l nhng s thc hin phn tn ca CSDL tp trung, bi v chng cho php thit k cc c trng khc vi CSDL tp trung truyn thng. Cc c im tiu biu cho CSDL truyn thng l iu khin tp trung, c lp d liu, gim d tha, bit lp v bo mt d liu. iu khin tp trung Kh nng iu khin tp trung trn ton ngun ti nguyn thng tin ca ton b x nghip hoc t chc, c xem l ng c mnh nht cho vic ra i CSDL. Chng c pht trin nh l s tin ho ca h thng thng tin, m trong mi ng dng c cc tp tin ring ca n.
26
Trong CSDL phn tn, nim v iu khin tp trung t c nhn mnh hn. iu ny ph thuc vo kin trc ca CSDL phn tn. Mt cch tng qut, CSDL phn tn c iu khin vi cu trc phn lp da vo mt h qun tr CSDL ton cc (c trch nhim trn ton b CSDL phn tn) v h qun tr CSDL a phng (c trch nhim vi CSDL a phng ring). iu ny cho thy rng h qun tr CSDL a phng c th c mt mc t tr cao. Cc CSDL phn tn c th rt khc nhau v mc t tr: t hon ton t tr, khng c bt c mt h qun tr CSDL tp trung no, n hu nh hon ton iu khin tp trung. c lp d liu c lp d liu cng l mt trong nhng ng lc cho vic m u s tip cn d liu phn tn. Thun li chnh ca c lp d liu l cc chng trnh khng b nh hng bi s thay i trong cu trc vt l ca d liu. Trong CSDL phn tn, c lp d liu cng quan trng ging nh trong CSDL truyn thng. Tuy nhin, mt kha cnh mi c thm vo trong nim ca c lp d liu l trong sut phn tn. Vi trong sut phn tn chng ta hiu rng cc chng trnh ng dng c th s dng CSDL nh l n khng c t chc phn tn. V th s chnh xc ca chng trnh khng b nh hng bi vic dch chuyn d liu t trm ny n trm khc. Tuy nhin, tc thc hin ca chng b nh hng. Gim d tha d liu Trong CSDL truyn thng, d liu d tha c gim n mc ti thiu bi hai l do: S khng tng thch gia nhiu bn sao ca cng mt tp d liu. Tit kim khng gian lu tr bng cch loi tr cc d tha. Vic gim d tha d liu c th t c bng cch chia s d liu, cho php nhiu ng dng truy cp cng cc bn tin v bn ghi. Trong CSDL phn tn vic c lng d tha phc tp hn v cng vi hai l do trn, cn c nhiu l do gim d tha d liu nh: Hot ng ca cc trnh ng dng c th b tng ln khi d liu c sao li tt c cc v tr, ni trnh ng dng cn n. Tnh thng trc ca h thng c th s tng ln, bi v khi c li xy ra mt trm no s khng dng vic thc hin cc ng dng ca trm khc nu d liu c sao chp li. Bit lp v bo mt
27
Trong CSDL truyn thng, h qun tr CSDL tp trung c th bo m ch truy cp n d liu c u quyn. Trong CSDL phn tn, h qun tr d liu a phng thc cht phi ng u vi cc vn ging nh h qun tr CSDL trong CSDL truyn thng. Tuy nhin, hai kha cnh c bit sau y ca CSDL phn tn cn phi c xem xt: Trong CSDL phn tn vi mt mc t tr rt cao ca cc a phng, ngi ch d liu a phng cm gic c bo v tt hn v h c th t ch thc hin bo v thay v ph thuc vo ngi qun tr CSDL trung tm. Vn bo mt l bn cht trong h phn tn ni chung, v cc mng truyn thng din rng cho php nhiu ngi cp nht v khai thc d liu nn cn c bo v. 1.4.4. u v nhc im ca h phn tn i tng ch yu ca h phn tn l cung cp cc dch v truy cp d liu v trnh din d liu cho ngi s dng mi ni khc nhau. p ng c iu ny, h thng phn tn phi c thit k v phn cng ln phn mm thch hp vi v tr a l v yu cu ca ngi s dng. Chng ta c th thy nhng u v nhc im ca h thng phn tn nh sau. u im 1. p ng nhanh hu ht cc ng dng s dng d liu ti cc trm 2. Tng cng cc n th ng dng v CSDL m khng lm cn tr ngi s dng hin ti. 3. Kim sot d liu a phng theo hng hon thin s tch hp v qun tr d liu t xa. 4. Tng cng kh nng ca h thng lin quan n s d tha d liu. Nhc im 1. Phn mm t v phc tp 2. Phi x l mi thay i thng bo trong mi a im 3. Kh kim sot tnh ton vn d liu vi nhiu bn sao d liu c phn b khp mi ni. 4. p ng chm nhu cu ca cc trm trong trng hp cc phn mm ng dng khng c phn b ph hp vi vic s dng chung.
28
1.5. Cc loi truy xut CSDL phn tn Truy xut d liu t xa ca mt ng dng c th thc hin theo hai cch c bn: truy xut t xa thng qua cc tc v c bn v truy xut t xa thng qua chng trnh ph tr. 1.5.1. Truy xut t xa thng qua cc tc v c bn: ng dng pht ra mt yu cu truy xut CSDL mt v tr no . Yu cu ny s c h qun tr CSDL phn tn t ng gi n v tr cha d liu . Sau yu cu ny c thc hin v kt qu c gi tr v.
Trnh ng dng
DBMS1
Trm 1 Trm 2
DBMS2
Kt qu gi v
DB2
Theo cch ny, cc n v c bn c gi qua li gia cc v tr ca h thng gi l cc tc v c bn truy xut CSDL v kt qu thu c khi thc thi cc tc v c bn ny. 1.5.2. Truy xut t xa thng qua chng trnh ph tr Nu mt ng dng yu cu thc hin mt chng trnh ph tr t ti v tr t xa th mt chng trnh ph tr, c vit bi ngi lp trnh ng dng, s truy xut d liu t xa v tr li kt qu cho ng dng ang yu cu.
Yu cu thc hin chng trnh ph tr
Trnh ng dng
DBMS1
Trm 1
Kt qu ton cc
Chng trnh ph tr
DBMS2
Trm 2 DB2
Thng thng cc h qun tr CSDL cung cp c hai loi truy xut t xa, bi v mi cch trn u c nhng u v nhc im ring. Cch th nht yu cu phi cung cp nhiu mc trong sut phn tn. Cch th hai c th hiu qu hn nu c nhiu yu cu truy xut CSDL bi v chng trnh ph tr c th thc hin mi truy xut CSDL c yu cu v ch gi v kt qu. Nu tnh nng ca chng trnh ph tr trong cch th hai ln hn tnh nng ca cc tc v c bn truy xut CSDL trong cch th nht th cch th hai c th c hiu qu hn. Do cc tc v c bn thao tc cc mu tin cng mt lc l mt c tnh rt hu ch cho cc h qun tr CSDL cc b trong vic xy dng h phn tn. Tuy nhin hu ht h qun tr CSDL thng mi c sn trn th trng l h thng ch x l mt mu tin ti mt thi im (One record at a time System) v do chng trnh ph tr l cn thit. Kt lun: Trong cc t chc thng mi, kinh t x hi,... h phn tn l cn thit v ng mt vai tr khng nh trong vic iu hnh, qun l t chc, cng ty. C s d liu phn tn c th c ci t trn mt mng my tnh c phm vi rng ln xuyn quc gia hoc nh b trong mt thnh ph. Hin nay cc h qun tr c s d liu phn tn thng mi u tch hp cc ng dng phn tn nn rt tin cho ngi s dng.
30
Cu hi v bi tp cui chng 1 1. Cc loi mng my tnh. u v nhc im ca mi loi. 2. T chc h thng phn tn theo m hnh mng ngang hng 3. T chc v kin trc h thng phn tn theo m hnh mng client/Server. 4. Hy phn tch cc c trng c bn ca h c s d liu phn tn. Cc khi nim v X l phn tn, H phn tn, C s d liu phn tn ging nhau v khc nhau im no? 5. Trong m hnh client/Server, hy cho bit mc ch ca: Trnh din thng tin phn tn Trnh din t xa Qun l d liu t xa Phn tn chc nng 6. nh ngha c s d liu phn tn. H qun tr CSDL phn tn. Cc thnh phn yu cu trong mt DDBMSs thng mi. Cho v d v mt CSDL phn tn . 7. So snh csdl phn tn v csdl tp trung 8. u v nhc im ca h phn tn 9. Cc truy xut t xa trong h thng phn tn 10. Cho mt v d v mt h c s d liu phn tn trong thc t.
31
S nh x phng 2
HQT CSDL ca phng 2
CSDL a phng ti v tr 1
CSDL a phng ti v tr 2
2.1.1. S tng th (Globle Schema) S tng th s xc nh tt c cc d liu s c lu tr trong c s d liu phn tn cng nh cc d liu khng c phn tn cc v tr trong h thng. S tng th c nh ngha theo cch nh trong CSDL tp trung. Trong m hnh quan h, s tng th bao gm nh ngha ca tp cc quan h tng th (Globle relations) . R R1 R11 R21 R1
(V tr 1 )
R2
R12 R2 R22
(V tr 2 )
Q.h tng th
Cc on
Hnh nh vt l
2.1.2. S phn on Mi quan h tng th c th chia thnh mt vi phn khng giao nhau gi l on (fragments). C nhiu cch khc nhau thc hin vic phn chia ny. S phn on m t cc nh x gia cc quan h tng th v cc on c nh ngha trong s phn on (fragmentation Schema), nh x ny l mt-nhiu, ngha l c th c nhiu on lin kt n mt quan h tng th, nhng mi on ch c th lin kt vi nhiu nht mt quan h tng th m thi. Cc on c
33
m t bng tn ca quan h tng th cng vi ch mc on. Chng hn, Ri c hiu l on th i ca quan h R. 2.1.3. S nh v Cc on l cc phn logic ca mt quan h tng th c nh v vt l trn mt hay nhiu v tr trn mng. S nh v xc nh on d liu no c nh v ti v tr no trn mng. Lu rng, kiu nh x c nh v trong s nh v s quyt nh c s d liu phn tn l d tha hay khng. Tt c cc on c lin kt vi cng mt quan h tng th R v c nh v ti cng mt v tr j cu thnh nh vt l quan h tng th R ti v tr j. Do ta c th nh x mt-mt gia mt nh vt l v mt cp (quan h tng th, trm). Cc nh vt l c th ch ra bng tn ca mt quan h tng th v mt ch mc trm. K hiu Ri ch on th i ca quan h tng th R K hiu Rj ch nh vt l ca quan h tng th R ti v tr j Tng t nh vy, bn sao ca on i thuc quan h R ti v tr j c k
j hiu l R i
2.1.4. S nh x a phng Thc hin nh x cc nh vt l ln cc i tng c thc hin bi h qun tr c s d liu a phng (tt c cc on ca mt quan h tng th trn cng mt v tr to ra mt nh vt l). Kin trc c s d liu phn tn trn cho chng ta c mt cch nhn tng qut v cch t chc mt h phn tn. Ba yu t c suy ra t kiu kin trc ny l: a. Tch ri khi nim phn on d liu vi khi nim nh v d liu. S khc nhau ca hai khi nim ny cho php phn bit hai mc trong sut phn tn l: trong sut phn on (fragmentation transparency) v trong sut v tr (location transparency). Trong trong sut phn on l mc cao nht, n bao gm nhng cng vic m ngi lp trnh ng dng lm vic vi quan h tng th. Cn trong sut v tr li lin quan n cc cng vic ca ngi s dng v ngi lp trnh ng dng ti trn cc on d liu c nh v ti cc trm. V cc i tng ny khng cn phi bit cc on d liu c nh v ti v tr no trn mng. b. c lp vi cc DBMS a phng Tnh cht ny cn c gi l trong sut nh x a phng (local mapping transparency) cho php chng ta kho st cc vn v qun l c s d liu phn tn m khng cn phi hiu r m hnh d liu ca DBMS a phng ang s dng.
34
2.2. Kt ni d liu trong h thng c s d liu phn tn 2.2.1. H thng c s d liu thun nht H thng c s d liu thun nht (Homogeneous Distributed Database) l h thng m trong tt c cc d liu cc b cc v tr u phi dng chung mt h qun tr CSDL. Trong h thng ny ch c mt loi c s d liu c s dng cc trm. V d, trong mt H thng CSDL phn tn thun nht ca Oracle th tt c cc Database u phi l Oracle Database. Hnh 2.3 minh ha h thng CSDL phn tn thun nht vi 3 CSDL l HQ, MFG v SALES. Mt ng dng c th truy cp hoc hiu chnh d liu t nhiu CSDL khc nhau trn mng.
Kin trc phn tn thun nht c mt s u im sau: Do tt c cc c s d liu cc b u dng chung DBMS nn cng tc qun tr d dng hn. Ngi qun tr khng cn bit k nng qun tr trong tt c cc DBMS khc nhau nh DB2, SQL SERVER, Cng tc chuyn i d liu khng i hi cao v tt tt c cc c s d liu cc b dng chung cu trc d liu v cc rng buc. Nhim v tch hp d liu t cc ngun n gin v d qun l. Thi gian tr li cc truy vn nhanh. Tuy nhin, kho d liu phn tn thun nht thch hp nht i vi nhng h thng xy dng mi v c chin lc t trc, i vi cc h thng k tha d
35
liu t cc ngun c cng vic chuyn i v tch hp d liu mt rt nhiu thi gian v phc tp. 2.2.2. H thng c s d liu khng thun nht Trng hp h thng s dng cc d liu khng cng loi th ta c khi nim v h thng c s d liu khng thun nht (Nonhomogeneous Distributed Database). H thng c s d liu phn tn khng thun nht l h thng d liu m trong cc kho d liu cc b cc v tr trong mng c th khng cng chung mt h qun tr c s d liu. V d, trong mt H thng c s d liu phn tn khng ng nht ca Oracle th phi c t nht Database l Non- Oracle Database. i vi h thng CSDL phn tn khng thun nht li ch chnh l k tha c cc CSDL tn ti trc nhng kh khn ln nht l qun tr v chuyn i d liu khi phi truy cp t xa v mi DBMS c kin trc, cch thc truy cp d liu v bo mt ring. V vy trong h thng ny phi c nhng dch v kt ni chuyn i (Transparent Gateway) c vai tr nh b phin dch gia cc DBMS trong h thng phn tn.
36
Trong hnh trn th host cha database HQ l server khi n truy xut cc b. Mt client c th kt ni trc tip hoc gin tip n mt Database Sever. Kt ni trc tip c ngha l client kt ni ln mt server v truy xut thng tin lu trc tip trn server . V d nh hnh trn nu chng ta c cu truy vn SELECT * FROM DEPT th Bng Dept c lu trc tip trn server m ng dng kt ni. Cn kt ni gin tip c ngha l client kt ni ln server ny nhng truy xut d liu t mt i tng nm trn server khc. Trong v d trn th ng dng kt ni vo server cha DB HQ nhng truy xut d liu vo bng EMP trn server Sales INSERT INTO EMP@SALSE Kin trc phn tn khng thun nht c mt s u im sau: K tha c cc ngun d liu t cc c s d liu a phng tn ti Thch hp cho cc h thng xy dng trn c s m rng h thng c v trn thc t cc n v thng bt u vi cc c s d liu nh cho cc phng ban, sau pht trin thnh kho d liu ln hn cho ton cng ty Tnh t tr c s d liu cao Tuy nhin, h thng phn tn khng thun nht gp kh khn trong vic tch hp, chuyn i d liu cng nh cng tc qun tr d liu v mi DBMS c cu trc d liu, rng buc, cch thc truy vn, bo mt d liu khc nhau. 2.2.3. Nhng kt ni c s d liu (Database Links) Kt ni c s d liu l mt con tr (Link pointer) xc nh ng lin lc mt chiu t mt DB server n mt DB server khc. Link pointer thc s c nh ngha nh l mt cng trong bng t in d liu. truy cp vo link ny th phi kt ni vo c s d liu a phng m link c cha trong t in d liu. Mi c s d liu trong h thng phn tn phi c mt tn duy nht (global DB name) trong network domain. V d di y cho thy User Scott truy xut vo bng EMP trn Remote DB vi Global name l HQ.ACME.COM. - DB links c th l private hoc public. Nu l private th ch c user to ra n mi c quyn truy xut. Public th tt c user u c quyn truy xut. - User truy xut n remote DB thng qua cc kiu link: Connected use link, Fixed user link, Current user link. . Connected user link: user phi c account trn remote DB ging vi account trn local DB. . Fixed user link: khi to link c quy nh sn username v password truy xut. . Current user link: user connect l 1 global user.
37
Trong SQL s dng cu lnh CREATE DATABASE LINK to mt DB links. - Shared DB links: Link c share v c nhiu client cng s dng.
2.3. Cc c im chnh ca h phn tn 2.3.1. Chia s ti nguyn Vic chia s ti nguyn trn h phn tn c thc hin qua mng truyn thng. chia s ti nguyn mt cch hiu qu th mi ti nguyn cn phi c qun l bi mt chng trnh c giao din truyn thng, cc ti nguyn c th c truy nhp, cp nht mt cch tin cy v nht qun. Qun l ti nguyn y l lp k hoch d phng, t tn cho cc lp ti nguyn, cho php ti nguyn c truy nhp t ni ny n ni khc, nh x tn ti nguyn vo a ch truyn thng. 2.3.2. Tnh m Tnh m ca h thng my tnh l tnh d dng m rng phn cng (thm cc thit b ngoi vi, b nh cc giao din truyn thng, cc dch v dng chung ti nguyn, ...) ca n.
38
Mt h phn tn c tnh m l h c to nn bi nhiu loi phn cng v phn mm ca nhiu nh cung cp khc nhau vi iu kin l cc thnh phn ny phi theo mt tiu chun chung. Tnh m ca h phn tn c xem xt theo mc b sung vo cc dch v dng chung ti nguyn m khng ph hng hay nhn i cc dch v ang tn ti. Tnh m c hon thin bng cch xc nh hay phn nh r cc giao din chnh ca mt h v lm cho n tng thch vi cc nh pht trin phn mm(hay cc giao din chnh l ph dng). Tnh m ca h phn tn da trn vic cung cp c ch truyn thng gia cc tin trnh v cng khai cc giao din dng truy nhp cc ti nguyn chung. 2.3.3. Kh nng song song H phn tn hot ng trn mt mng truyn thng c nhiu my tnh, mi my c th c mt hay nhiu CPU. Trong cng mt thi im nu c N tin trnh cng tn ti, ta ni chng thc hin ng thi. Vic thc hin tin trnh theo c ch phn chia thi gian(mt CPU) hay (nhiu CPU). Kh nng lm vic song song trong h phn tn c th hin qua hai tnh hung sau: Nhiu ngi s dng ng thi a ra cc lnh hay cc tng tc vi cc chng trnh ng dng. Nhiu tin trnh Server chy ng thi, mi tin trnh phi p ng yu cu t cc tin trnh Client (khch hng). 2.3.4. Kh nng m rng H phn tn c kh nng hot ng tt v hiu qu nhiu mc khc nhau. Mt h phn tn nh nht c th hot ng ch cn hai v tr lm vic v mt File Server. Cc h ln c hng nghn my tnh. Kh nng m rng ca mt h phn tn c c trng bi tnh khng thay i phn mm h thng v phn mm ng dng khi h c m rng. iu ny ch t mc no i vi cc h phn tn hin ti. Yu cu cho vic m rng khng ch l m rng phn cng, v mng m n tri trn cc kha cnh khi thit k h phn tn. Mt iu n gin l tn sut s dng trn mng. trnh tnh trng tc nghn xy ra khi ch c mt Server v p ng cc yu cu truy nhp cc file , ngi ta nhn bn file trn mt Server v h thng c thit k sao cho vic thm Server c d dng. Mt s gii php khc l s dng Cache v cc bng sao d liu. 2.3.5. Kh nng th li Vic thit k kh nng th li cc h thng my tnh da trn hai gii php sau:
39
Dng kh nng thay th m bo s hot ng lin tc v hiu qu. Dng cc chng trnh hi phc d liu khi xy ra s c. xy dng mt h thng c th khc phc s c theo cch th nht th ngi ta ni hai my tnh vi nhau thc hin mt chng trnh, mt trong hai my chy ch Standby (khng ti hay ch). Gii php ny kh tn km v phi nhn i phn cng ca h thng. Mt gii php gim ph tn l cc server ring l c cung cp cc ng dng quan trng c th thay th nhau khi c s c xut hin. Khi khng c cc s c, cc Server hot ng mt cch bnh thng (ngha l vn phc v cc yu cu t Client). Khi c s c trn mt Server no , cc ng dng Client t chuyn hng sang cc Server cn li. Vi cch th hai th cc phn mm hi phc c thit k sao cho trng thi d liu hin thi (trng thi trc khi xy ra s c) c th c khi phc khi li c pht hin. Cc h phn tn cung cp kh nng sn sng cao i ph vi cc sai hng ca phn cng. Kh nng sn sng ca h thng c o bng t l ca thi gian m h thng sn sng lm vic so vi thi gian c s c. Khi mt thit b trn mng b sai, hng th ch cng vic lin quan n cc thnh phn sai, hng b nh hng. Ngi s dng c th chuyn n mt v tr khc nu my h ang s dng b hng v mt tin trnh Server c th khi ng li trn mt my khc. 2.3.6. m bo tin cy v nht qun H thng yu cu tin cy nh b mt ca d liu, cc chc nng khi phc h hng phi m bo. Ngoi ra cc yu cu ca h thng v tnh nht qun cng th hin ch khng c mu thun trong ni dung c s d liu. 2.3.7. Tnh trong sut (transparency). Tnh trong sut ca mt h phn tn c hiu nh l vic che khut i cc thnh phn ring bit ca h i vi ngi s dng v nhng ngi lp trnh ng dng. Tnh trong sut trong vic s dng: vic chuyn i mt phn hay ton b c s d liu do thay i v t chc hay qun l, khng nh hng ti cc thao tc ngi s dng. Tnh trong sut phn on (fragmentation transparency): khi d liu c phn on th vic truy cp vo c s d liu c thc hin bnh thng nh l cha b phn tn. V d: Xt quan h tng th NCC (Id, Tn, Tui) v cc phn on c tch ra t n: NCC1 (Id1, Tn, Tui), NCC2 (Id2, Tn, Tui), NCC3 (Id3, Tn, Tui).
40
Gi s DBMS cung cp tnh trong sut v phn on, khi ta c th thy tnh trong sut ny c th hin nh sau: Khi mun tm mt ngi c Id=Id1 ta ch cn tm trn quan h tng th NCC m khng cn bit quan h NCC c phn tn hay khng. SELECT FROM WHERE
DBMS
* NCC Id=Id1
NC Tr
NC
Tr Tr
NC
Tnh trong sut v v tr (location transparency): ngi s dng khng cn bit v v tr vt l ca d liu m c quyn truy cp n c s d liu ti bt c v tr no. Cc thao tc ly hoc cp nht mt d liu t xa c t ng thc hin bi h thng ti im a ra yu cu. Tnh trong sut v v tr rt hu ch, n cho php ngi s dng b qua cc bn sao d liu tn ti mi trm. Do c th di chuyn mt bn sao d liu t mt v tr ny n mt v tr khc v cho php to cc bn sao mi m khng nh hng n cc ng dng. V d: Vi quan h tng th R v cc phn on nh ni trn nhng gi s rng DBMS cung cp trong sut v v tr nhng khng cung cp trong sut v phn on. Xt cu truy vn: Tm ngi c Id=Id1 . SELECT FROM WHERE SELECT FROM WHERE * NCC1 Id=Id1 * NCC2 Id=Id1
41
u tin h thng s thc hin tm kim phn on NCC1 v nu DBMS tr v bin iu khin #FOUND th mt cu lnh truy vn tng t c thc hin trn phn on NCC2 y quan h NCC2 c sao lm hai bn trn hai v tr2 v v tr3, ta ch cn tm thng tin trn quan h NCC2 m khng cn quan tm n v tr no.
DBMS
NCC1
V tr 1
NCC2
V tr 2 V tr 3
NCC2
Hnh 2.7: Trong sut v v tr
Tnh trong sut nh x a phng: trong sut nh x a phng l mt c tnh quan trng trong mt h thng cc DBMS khng ng nht. ng dng tham chiu n cc i tng c cc tn c lp t cc h thng cc b a phng. ng dng c ci t trn mt h thng khng ng nht nhng c s dng nh mt h thng ng nht.
DBMS
NC t NC t
Hnh 2.8: Trong sut nh x a phng
V d: Vi v d nh trn nhng gi s rng DBMS cung cp tnh trong sut nh x a phng. SELECT FROM WHERE SELECT * NCC1 AS Vtr 1 Id=Id1 *
42
FROM WHERE
NCC2 Id=Id1
AS Vtr 1
Mc khng trong sut: ngi lp trnh ng dng phi vit chng trnh thc hin trn cc h qun tr CSDL a phng, cc h ny c ci t ti v tr ng dng cn c d liu (trn cc v tr khc nhau v cc h iu hnh cng c th khc nhau: nh cc phin bn khc nhau trn cng mt h thng, cc h thng khc nhau trn cng mt kiu, cc chng trnh ny thc hin yu cu cc hm v ci t cc chng trnh ph tr ti cc v tr c yu cu). Tm li, khi nim trong sut - transparency ch s tch bit cp cao ca h thng vi cc vn ci t cp thp ca h thng. N gip cho ngi lp trnh ng dng v ngi s dng h thng c cm gic ang lm vic trn mt h thng khng phn tn. 2.4. Ni dung thit k cc h thng phn tn 2.4.1. Qu trnh thit k Thit k h thng phn tn c nhiu im tung ng vi vic thit k h thng tp trung. iu khc nhau c bn y l h thng phn tch c phn b trn mt s a im khc nhau. Nhiu vn thit k cn c xem xt lin quan n tnh kh thi, s sng cn v tnh sn sng ca h thng khi n c trin khai nhiu a im. Cc h thng phn tn s c nhiu my trm, my ch, mng, nhiu a im, nhiu d liu,... v nhiu a im c nguy c xy ra s c. V th cn c nhiu chin lc khc nhau thit k v trin khai chng. Ni cch khc, thit k h thng phn tn th cc vn cn quan tm l: Xc nh kin trc m hnh phn tn tng th v vic nh v cc a phng cn phn tn, loi hnh phn tn s dng cho mi a phng. Tin hnh cn i cc yu t c phn tn bao gm cc phn t d liu v cc hot ng x l trn mi trm. Thit k c s d liu phn tn. Thit k cc h thng chng trnh ng dng. 2.4.2. Cc sn phm sau khi thit k 1. M t cc trm . Thng tin a l . nh v thit b vt l . Thng tin h tng . c trng v con ngi (trnh , k nng, k thut,...)
43
2. M t d liu c s dng cho mi trm . Cc phn t d liu s dng. . Cc phn t d liu cn phi to ra. . Cc phn t d liu cp nht. . Cc phn t d liu xa. 3. M t qu trnh nghip v cho mi trm . Danh sch cc x l. . M t cc x l. 4. Cc tha thun v phng n kin trc h thng cho mi trm, cho nhu cu v d liu v x l cho trm . C cn hay khng v cc tr gip khng phi k thut. . C cn hay khng v h thng a phng, v ni mng. . C cn hay khng v cc cu hnh phn tn khc. 2.5. Cc chin lc phn tn d liu Vic nh v v phn tn d liu cc nt trong mt mng my tnh s quyt nh tnh hiu qu v ng n ca h thng phn tn. Hin nay ngi ta s dng 4 chin lc phn tn d liu c bn l: 2.5.1. Tp trung d liu Tt c cc d liu c tp trung mt ch. Cch ny n gin nhng c 3 nhc im D liu khng sn sng cho ngi s dng truy nhp t xa. Chi ph truyn thng ln. Ton b h thng ngng khi c s d liu b s c. 2.5.2. Chia nh d liu C s d liu c chia thnh cc phn nh lin kt nhau (khng trng lp). Mi phn d liu c a n cc v tr mt cch thch hp s dng. 2.5.3. Sao lp d liu C s d liu c nhn thnh nhiu bn tng phn hoc y v c t nhiu v tr trn mng. Nu bn sao ca CSDL c lu gi ti mi v tr ca h thng ta c trng hp sao lp y . Cch ny thng lm cc i vic truy nhp ti d liu mi a phng v ny sinh nhiu vn khi cp nht nh: khi c s thay i d liu mt v tr th cn x l li ng b ha d liu cho cc v tr khc. Hin nay c nhiu k thut mi cho php to bn sao khng y ph hp vi yu cu d liu mi v tr v mt bn y c
44
qun l server. Sau mt khong thi gian nht nh cc bn sao c lm ng b vi bn chnh bng mt ng dng no . V d, ng dng Briefcase ca Windows l mt chng trnh ng b ha trn c s d liu Access. 2.5.4. Phng thc lai C s d liu c phn thnh nhiu phn quan trng v khng quan trng. Phn t quan trng c lu gi mt ni v phn quan trng c lu tr nhiu ni khc. 2.6. Thit k c s d liu phn tn 2.6.1. S thit k tng th c s d liu phn tn Hin nay cha c mt k thut c th no ni mt cch chi tit cch thit k mt CSDL phn tn. Tuy nhin, mt cch tng qut chng ta c th thit k CSDL phn tn theo cc bc sau:
Thit k lc quan h tng th
Thit k phn on
Thit k nh v cc on (To cc nh vt l)
Thit k CSDL vt l
Hnh2.9: S thit k tng th
Thit k lc quan h tng th: thit k cc quan h tng th, v m t ton b d liu s c dng trong h thng. Thit k phn on: thc hin chia nh d liu thnh cc phn. Thit k nh v cc on: l qu trnh thc hin nh x cc on vo cc v tr khc nhau, to cc nh vt l ti cc v tr. Cc on d liu c a vo cc v tr lu tr thch hp vi yu cu hot ng thc t ca h thng.
45
Thit k c s d liu vt l: thit k d liu vt l cho cc quan h ti cc v tr. 2.6.2. Cc phng php thit k CSDL phn tn Hai chin lc chnh c xc nh trong vic thit k cc CSDL phn tn l phng php tip cn t trn xung v phng php tip cn t di ln. 2.6.2.1. Phng php thit k t trn xung Bt u bng vic phn tch yu cu nhm nh ngha mi trng h thng v thu thp cc nhu cu v d liu v nhu cu x l ca tt c mi ngi c s dng CSDL. Nghin cu cc yu cu cng xc nh xem h thng cui cng s nh th no so vi cc mc tiu ca mt DBMS phn tn. Cn nhc li rng nhng mc tiu ny c nh ngha theo cc vn v hiu qu hot ng, tin cy v tnh c sn, tnh kinh t v kh nng m rng. H s ghi chp cc yu cu l nguyn liu cho hai hot ng song song: thit k khung nhn v thit k quan nim. Thit k khung nhn c nhim v nh ngha cc giao din cho ngi s dng cui (end-user). Ngc li thit k khi nim l qu trnh xem xt tng th h thng nhm xc nh cc loi thc th v mi lin h gia cc hot ng c lin quan vi nhau: phn tch thc th v phn tch chc nng. Phn tch thc th c lin quan n vic xc nh cc thc th, cc thuc tnh v mi lin h gia chng. Phn tch chc nng cp n vic xc nh cc chc nng c bn c lin quan n h thng cn c m hnh ho. Kt qu ca hai qu trnh ny cn c i chiu qua li, gip chng ta bit c chc nng no s hot tc trn cc thc th no. C mt s lin h gia thit k quan nim v thit k khung nhn theo mt ngha no , thit k khi nim c th c din gii nh l s tch hp cc khung nhn ca ngi s dng. Tch hp khung nhn c s dng nhm bo m rng cc yu cu v thc th v cc mi lin h gia cc khung nhn u phi c bao qut trong lc khi nim. Trong cc hot ng thit k khi nim v thit k khung nhn, ngi s dng cn phi c t cc thc th d liu v phi xc nh cc ng dng s trn CSDL cng nh cc thng tin thng k v nhng ng dng ny. Thng tin thng k bao gm c t v tn s ng dng, khi lng cc thng tin khc nhau, v.v... Thc s cho n lc ny, qu trnh thit k hon ton ging vi qu trnh thit k trong mt CSDL tp trung. Thit k phn tn: lc khi nim ton cc GCS (Global Concept Schema) v thng tin v kiu mu truy xut thu c trong thit k khung nhn s l u vo (input) cho bc thit k phn tn. Mc tiu ca giai on ny l
46
thit k cc lc khi nim cc b LCS bng cch phn tn cc thc th cho cc v tr ca h thng phn tn. Thay v phn tn cc quan h, chng ta thng chia chng thnh nhiu quan h nh hn gi l cc mnh (fragment) v chnh cc mnh s c phn tn n cc v tr thch hp. V vy hot ng thit k phn tn bao gm c hai bc: phn mnh v cp pht cc mnh cho cc v tr. Bc cui cng l thit k vt l, l bc nh x lc khi nim cc b sang cc thit b lu tr c sn ti cc v tr tng ng. Nguyn liu cho qu trnh ny l cc lc khi nim cc b v thng tin v kiu mu truy xut cc mnh. Chng ta bit rng hot ng pht trin v thit k lun l mt qu trnh lin tc, i hi phi theo di, hiu chnh thng xuyn. V th chng ta cng a vn quan st v theo di nh mt hot ng chnh trong qu trnh ny. Cn ch rng chng ta khng ch theo di vn ci t CSDL m cn phi xem xt, theo di tnh thch hp ca cc khung nhn ca ngi s dng. Kt qu ny c tc dng phn hi, to tin cho vic ti thit k v sau. Tm li, qu trnh thit k mt h thng phn tn theo phng php trn xung s bao gm cc bc nh s di y Cc nh ngha: nh ngha mi trng h thng, d liu v cc tin trnh cho tt c nhng kh nng v d liu ca ngi s dng. Thit k view: xy dng khung nhn d liu cho ngi s dng. Thit k mc quan nim: l mt tin trnh kim tra v xc nh r hai nhm quan h: phn tch thc th v phn tch chc nng. Phn tch thc th: xc nh cc thc th, cc thuc tnh v cc mi quan h gia chng. Phn tch chc nng: xc nh cc chc nng ca h thng v a ra cc chc nng c s. Thit k phn tn: bao gm hai phn: thit k phn on v thit k nh v Lc quan nim a phng: to ra cc lc mc quan nim ti cc a phng Thit k vt l: thc hin nh x lc mc quan nim ti cc a phng ra cc n v lu tr vt l. Quan st v kim tra: kim tra cc giai on ca qu trnh thit k c s d liu.Nu mt giai on no b sai s tin hnh thit k li. C th m t qu trnh phn tch thit k mt h thng phn tn theo s sau:
47
Cc yu cu v phn
Cc yu cu h
Ci vo ca ngi dng
Tp hp cc khung nhn
Thit k
Cc nh ngha s ngoi
Thit k phn tn
Ci vo ca ngi dng
Thit k vt l
Lc vt l
Phn hi Phn hi
Quan st v kim Hnh 2.10: S thit k CSDL phn tn theo m hnh trn xung
Phng php thit k trn xung thc s c hiu qu khi xy dng mt h thng mi. Tuy nhin trong thc t, thng c mt s c s d liu tn ti trc c t chc trong mi trng tp trung v CSDL phn tn c pht trin bng cch lin kt chng li thnh mt CSDL mi thng nht th phng php tip cn trn xung l kh thc hin. Khi chng ta nn s dng phng php thit k di ln s c hiu qu hn.
48
2.6.2.2. Phng php thit k t di ln Phng php thit k di ln l ngc li vi phng php thit k trn xung. Khi im ca thit k t di ln l vic thit k cc s mc quan nim sao cho chng c lp vi nhau. Sau chng c tch hp li trong mt s khi nim tng th. Phng php thit k di ln l ph hp khi h thng CSDL c thit k t nhng thnh phn hn hp. Tm li, Phng php thit k di ln ca mt CSDL phn tn yu cu thc hin cc iu sau: Chn mt m hnh d liu chung m t lc tng th. Chuyn mi lc a phng theo m hnh d liu chung chn. Tch hp cc lc a phng vo lc tng th. 2.7. Phn mnh d liu Trong phn ny chng ta ch ra l do ti sao cc quan h trong mt lc CSDL thng c phn r thnh cc mnh nh hn. Cc cu hi di y s gi m cho ton b vn . Ti sao cn phi phn mnh? Lm th no thc hin phn mnh? Phn mnh nn thc hin n mc no? C cch g kim tra tnh ng n ca vic phn mnh ny hay khng? Chng ta s cp pht cc mnh nh th no? Nhng thng tin no s cn thit cho vic phn mnh v cp pht? 2.7.1. Cc l do phn mnh i vi phn mnh, iu quan trng l c c mt n v phn tn thch hp. Mt quan h khng phi l mt n v p ng c yu cu v nhiu l do. Trc tin, khung nhn ca cc ng dng thng ch l mt tp con ca quan h. V th n v truy xut khng phi l ton b quan h nhng ch l cc tp con ca quan h. Kt qu l xem tp con ca quan h l n v phn tn s l iu thch hp duy nht. Th hai, nu cc ng dng c cc khung nhn c nh ngha trn mt quan h cho trc nm ti nhng v tr khc th c hai cch chn la vi n v phn tn: hoc l ton b quan h hoc quan h khng c nhn bn m c lu mt v tr c chy ng dng. Chn la th nht gy ra mt s lng ln cc truy xut khng cn thit n d liu xa. Ngc li, chn la sau thc hin
49
nhn bn khng cn thit, gy ra nhiu vn khi cp nht v c th gy lng ph khng gian lu tr. Cui cng, vic phn r mt quan h thnh nhiu mnh, mi mnh c x l nh mt n v, s cho php thc hin nhiu giao dch ng thi. Ngoi ra vic phn mnh cc quan h s cho php thc hin song song mt cu vn tin bng cch chia n ra thnh mt tp cc cu vn tin con hot tc trn cc mnh. V th vic phn mnh s lm tng mc hot ng ng thi (song hnh) v nh th lm tng lu lng hot ng ca h thng. Kiu hot ng ng thi ny m chng ta gi l ng thi ni truy vn (interquery concurrency). Bn cnh vic phn mnh cng tn ti mt s khim khuyt. Nu ng dng c nhng yu cu ngn cn vic phn r thnh cc mnh c s dng c quyn, th nhng ng dng c cc khung nhn c nh ngha trn nhiu mnh s b gim hiu sut hot ng. Chng hn n c th cn phi truy xut d liu t hai mnh ri ni hoc hp chng li vi chi ph rt cao. Trnh c iu ny l mt vn c bn ca k thut phn mnh. Vn th hai lin quan n vic kim sot d liu ng ngha (semantic data control), c bit l vn kim tra tnh ton vn. Do kt qu ca phn mnh, cc thuc tnh tham gia vo mt ph thuc c th b phn r vo cc mnh khc nhau v c cp pht cho nhng v tr khc nhau. Trong trng hp ny, mt nhim v n gin nh kim tra cc ph thuc cng phi thc hin truy tm d liu nhiu v tr. 2.7.2. Cc kiu phn mnh Th hin ca cc quan h l cc bng, v th vn t ra l tm cch chia mt bng thnh nhiu bng nh hn, iu ny c gi l phn mnh quan h. C hai cch phn mnh mt quan h: phn mnh ngang (horizontal fragmentation) v phn mnh dc (vertical fragmentation). Phn mnh ngang c thc hin bng mt php ton chn trn cc quan h ca mt lc CSDL. Cn phn mnh dc c thc hin bng mt php chn cc thuc tnh ca mt quan h. Tuy nhin phn mnh ngang c s dng ph bin hn. Ngoi ra trong thc t, ngi ta cn s dng phn mnh hn hp (hibrid fragmentation) tc l kt hp c phn mnh ngang v phn mnh dc. Tt nhin qu trnh phn mnh phi c gn lin vi vn cp pht d liu v bi ton c th nh th no. V vy, vn chng ta bn lun di y ch mang tnh cht minh ha cho vic phn mnh. 2.7.2.1. Phn mnh ngang Phn mnh ngang mt quan h tng th n-b R l tch R thnh cc quan h con n-b R1, R2, ..., Rk sao cho quan h R c th c khi phc li t cc quan h con ny bng php hp: R = R1 R2 ..., Rk
50
C hai loi phn mnh ngang: Phn mnh ngang nguyn thy (primary horizontal fragmentation): phn mnh ngang nguyn thy ca mt quan h c thc hin da trn cc v t c nh ngha trn quan h . Phn mnh ngang dn xut (derived horizontal fragmentation): phn mnh ngang dn xut ca mt quan h c thc hin da trn cc v t c nh ngha trn quan h khc. Nh vy trong phn mnh ngang tp cc v t ng mt vai tr quan trng, n cho php xc nh cc phn mnh nh th no. 2.7.2.2. Phn mnh dc Phn mnh dc mt quan h tng th n-b R l tch R thnh cc quan h con R1, R2, ..., Rk sao cho quan h R c th c khi phc li t cc quan h con ..., Rk. Thc cht ca phn mnh dc l ny bng php ni: R = R1 R2 thc hin php chiu trn quan h tng th. Phn mnh hn hp Cc mnh d liu c hnh thnh phn mnh ngang v phn mnh dc c gi l phn mnh hn hp 2.7.3. Cc yu cu v vic phn mnh Phn mnh CSDL n mt mc no n s quyt nh thi gian thc hin cc truy vn. Mt mc nh th ch c nh ngha vi cc ng dng c th trn CSDL. Vic phn mnh mt quan h tng th cng phi tun theo mt s cc quy tc no khi ti thit li quan h c vn bo m ng ngha ca n. Mt phng php thit k cc phn mnh ng n phi tha mn ba rng buc sau: a. Tnh y (completeness): Nu mt quan h R c phn r thnh cc mnh R1, R2, ..., Rk th mi mc d liu c trong R phi c trong mt hoc nhiu mnh Ri b. Tnh ti thit c (reconstruction): Nu mt quan h R c phn r thnh cc mnh R1, R2, ..., Rk th phi tn ti mt ton t sao cho: R = (Ri), i. Ton t thay i ty theo tng loi phn mnh, iu quan trng l lm sao xc nh c n. Trong thc t khi cc mnh l c phn mnh ngang th l php hp v khi phn mnh dc th l php ni. c. Tnh tch bit (disjointness): Nu mt quan h R c phn mnh ngang thnh cc quan h R1, R2, ..., Rk v mc d liu ti nm trong mnh Ri th n s khng nm trong mt mnh Rk, ki. Tiu chun ny bo m cc mnh ngang phi c tch ri nhau. Nu quan h c phn mnh dc th cc thuc tnh
51
chung phi c lp li trong mi mnh. Do , trong trng hp phn mnh dc tnh tch bit ch c nh ngha trn cc trng khng phi l thuc tnh chung ca quan h. V d: Xt c s d liu ca mt cng ty phn mm c t chc nh sau: 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). 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). 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). 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 MA NV A1 A2 A3 A4 A5 A6 A7 A8 TEN NV Nam Trung ng Bc Ty Hng Dng Chin Phn tch HT Lp trnh vin Phn tch HT Phn tch HT Lp trnh vin K s in Phn tch HT Thit k DL CHUCVU MA NV A1 A2 A2 A3 A3 A4 A5 A6 A7 A8 D1 D1 D2 D3 D4 D2 D2 D4 D3 D3 HOSO MADA NHIEM VU Qun l Phn tch Phn tch K thut Lp trnh Qun l Qun l K thut Qun l Lp trnh THOI GIAN 12 34 6 12 10 6 20 36 48 15
52
DUAN MADA D1 D2 D3 D4 TENDA CSDL CI T BO TR PHT TRIN NGANSACH 20000 12000 28000 25000
TLUONG CHUCVU K s in Phn tch HT Lp trnh vin Thit k DL LUONG 1000 2500 3000 4000
Hnh 2.3: C s d liu ca mt cng ty phn mm my tnh V d v phn mnh ngang: xt cc php ton i s quan h sau: DUAN 1 = NGANSACH 20000 (DUAN) DUAN 2 = NGANSACH > 20000 (DUAN) DUAN 1
MADA TENDA NGANSACH
DUAN 2
MADA TENDA NGANSACH
D1 D2
CSDL CI T
20000 12000
D3 D4
BO TR PHT TRIN
28000 25000
D thy, cc mnh tha mn tnh ti thit c v tnh y : DUAN 1 DUAN ; DUAN 2 DUAN ; DUAN = DUAN 1 DUAN 2 V d v phn mnh dc: xt cc php ton i s quan h sau: DUAN 3 = $1,$3 DUAN ; DUAN 4 = $1,$2 DUAN DUAN 3 MADA D1 D2 D3 D4 NGANSACH 20000 12000 28000 25000 MADA D1 D2 D3 D4 DUAN 4 TENDA CSDL CI T BO TR PHT TRIN
53
D thy, cc mnh tha mn tnh ti thit c v tnh y DUAN 3 DUAN ; DUAN 4 DUAN ; DUAN = DUAN 3 DUAN 4
V d v phn mnh hn hp: xt cc php ton i s quan h sau: DUAN 5 = NGANSACH 20000 ($2,$3 DUAN ) DUAN 6 = NGANSACH > 20000 ($2,$3 DUAN ) DUAN 5 TENDA CSDL CI T NGANSACH 20000 12000 TENDA CSDL CI T DUAN 6 NGANSACH 28000 25000
2.8. Cp pht ti nguyn trong h phn tn Cp pht ti nguyn trong mt h thng phn tn l mt bi ton c nhiu ngi quan tm v nghin cu rng ri. Tuy nhin phn ln cc nghin cu ny khng tp trung vo vic thit k d liu m s dng cho cch thc t cc tp tin vo cc v tr ca h phn tn. 2.8.1. Bi ton cp pht ti nguyn Cp pht ti nguyn khng phi l mt bi ton ch ca h c s d liu phn tn, mc d i vi c s d liu phn tn n c nhng c trng ring. Bi ton ny c bit n trong cc l thuyt mng vi cch t vn v cp pht cc tp tin. Gi s c mt tp cc mnh F={F1, F2, ..., Fk} v mt mng my tnh bao gm cc v tr S={S1, S2, ..., Sm} trn c mt tp cc ng dng Q={Q1, Q2, ..., Qq} ang thc thi. Bi ton cp pht (Allocation Problem) l tm mt phn phi ti u cc mnh F cho cc v tr S. Mt phn phi c gi l ti u nu n tha mn hai yu t sau: a. Chi ph nh nht: hm chi ph bao gm chi ph lu mi mnh d liu Fi ti v tr Sj, chi ph vn tin Fi ti v tr Sj, chi ph cp nht Fi ti tt c cc v tr c cha n, v chi ph truyn d liu. V th bi ton cp pht s tm mt lc cp pht vi hm chi ph l cc tiu. b. Hiu qu: chin lc cp pht c thit k nhm cc tiu ha thi gian thc hin v tng ti a lu lng h thng ti mi v tr. Ngi ta chng minh c rng bi ton cp pht tng qut, k hiu DAP (Database Allocation Problem), l mt bi ton NP-y . V th hu ht cc
54
nghin cu c dnh cho vic tm ra c cc thut gii heuristic c c li gii ti u cho loi bi ton ny. Hin nay cha c mt m hnh heuristic tng qut no nhn mt tp cc mnh v sinh ra mt chin lc cp pht gn ti u ng vi cc rng buc cho trc m ch mi a ra mt s gi thit n gin ha v d p dng cho mt s cch t vn n gin. 2.8.2. Thng tin cp pht giai on cp pht, chng ta cn cc thng tin nh lng v c s d liu, v cc ng dng chy trn , v cu trc mng, v kh nng x l v gii hn lu tr ca mi v tr trn mng. a. Thng tin v c s d liu b. Thng tin v ng dng c. Thng tin v v tr d. Thng tin v mng Tm lai, thit k c s d liu phn tn l mt trong nhng cng vic quan trng trong qu trnh phn tch v thit k mt h thng thng tin trong mi trng phn tn. Vic thit k c s d liu phn tn c gi l hiu qu nu h thng c th p ng mi yu cu ca ngi s dng trn mi v tr phn tn. Do , lm tt cng vic ny yu cu phn tch vin phi hiu r mc ch v phn tch hin trng h thng y .
55
Cu hi v bi tp cui chng 2 1. M t kin trc c bn ca mt c s d liu phn tn. Cho mt v d trong thc t minh ho. 2. Cc kiu kt ni d liu trong h thng c s d liu phn tn. Dng Oracle hoc DB2 minh ho. 3. Cc loi trong sut c th c trong mt h c s d liu phn tn. Mi trng hp cho mt v d. 4. Cc chin lc phn tn d liu trong mt h thng phn tn. 5. Cc sn phm yu cu sau khi thit k h phn tn. 6. Cc phng php thit k CSDL phn tn. 7. Phn tch ngha ca cc quy tc phn mnh trong thit k h c s d liu phn tn. 8. Cho cc v d nu bt tng c bn ca cc phng php phn mnh ngang. 9. Bi ton cp pht 10. tng c bn ca phng php phn mnh dc l g? Cho v d minh ha. 11. Hy nu v gii thch ngha ca cc bi ton phn mnh v phn tn ti nguyn. 12. Ni dung ca phng php thit k t trn xung
56
3.1. Gii thiu v x l truy vn Trong DBMS phn tn, vic thc hin cc truy vn trn cc ngn ng bc cao thng rt tn km thi gian. Do trc khi thc hin truy vn, cc DBMS lin quan s thc hin bin i cu truy vn phc tp v cc cu truy vn n gin 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 phi tng ng vi truy vn ban u v 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.
57
3.2. Ti u ha cu truy vn trong CSDL tp trung Ti u ho truy vn trong c s d liu tp trung l nn tng hiu cc nguyn tc lm vic ca b ti u trong mi trng phn tn, do vic nghin cu c ch ca b ti u trong c s d liu tp trung l iu cn thit. Chng ta hy 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
MANV TENNV CHUCVU MANV MADA
HOSO
NHIEMVU THOIGIAN
A1 A2 A3 A4 A5 A6 A7 A8
Phn tch HT Lp trnh vin Phn tch HT Phn tch HT Lp trnh vin K s in Phn tch HT Thit k DL
A1 A2 A2 A3 A3 A4 A5 A6 A7 A8
D1 D1 D2 D3 D4 D2 D2 D4 D3 D3
Qun l Phn tch Phn tch K thut Lp trnh Qun l Qun l K thut Qun l Lp trnh
12 34 6 12 10 6 20 36 48 15
58
DUAN
MADA TENDA NGANSACH
TLUONG
CHUCVU LUONG
D1 D2 D3 D4
Chng ta s s dng CSDL ny minh ho cho cc v d trnh by trong phn tip theo. 3.2.1. S lc v ngn ng truy vn c cu trc-SQL 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.
59
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 INTO FROM hodem,ten,YEAR(GETDATE())-YEAR(ngaysinh) AS tuoi tuoisv sinhvien
3.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 c s d liu 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. 3.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 processorOVQP), 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 <A=value>, mt ch mc c trn thuc tnh A s c dng. Tuy nhin, nu v t c dng <Avalue>, 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).
60
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 R1, 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 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: q 1: SELECT FROM NHANVIEN.TENNV NHANVIEN, HOSO, DUAN
61
WHERE
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 WHERE q: SELECT FROM WHERE DUAN.MADA INTO TGIAN1 DUAN TENDA = CSDL NHANVIEN.TENNV NHANVIEN, HOSO, TGIAN1 NHANVIEN.MANV = HOSO.MANV
AND HOSO.MADA =TGIAN1.MADA Cc bc tch tip theo cho q c th to ra: q12: SELECT FROM WHERE q13: SELECT FROM WHERE HOSO.MANV INTO TGIAN2 HOSO, TGIAN1 HOSO.MADA =TGIAN1.MADA NHANVIEN.TENNV NHANVIEN, TGIAN2 NHANVIEN.MANV = TGIAN2.MANV
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 thc hin 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:
62
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: Xt tip cu truy vn q13 SELECT WHERE NHANVIEN.TENNV NHANVIEN.MANV = TGIAN2.MANV FROM NHANVIEN, TGIAN2 Quan h c nh ngha bi bin TGIAN2 chy trn thuc tnh duy nht MANV. Gi s rng n ch cha hai b: <E1> v <E2>. Php th cho TGIAN2 to ra hai cu truy vn con n quan h: q131: SELECT FROM WHERE q132: SELECT WHERE NHANVIEN.TENNV NHANVIEN NHANVIEN.MANV = E1 NHANVIEN.TENNV NHANVIEN.MANV = E2
FROM NHANVIEN 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
63
cc truy vn 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: Begin Output If n=1 then Output run(MRQ) h} ORQ1, ..., ORQm, MRQMRQ For i1 to m Output run(ORQi) Output output output 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) Output output output li} Endfor Endif End. {INGRES-QOA} 3.2.2.2. Thut ton 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.
64
Cu truy vn ti u
{gi qui}
{trn tt c cc kt qu
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 (internal relation). Chn phng php ni y l xc nh ng truy xut c chi ph thp nht n quan h ni. 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 quan h ni 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 quan h ni. 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 , v s qu cao khi n1 v n2 kh ln. Phng php th hai c gi l ni trn (merge-join) bng cch trn hai quan h sp theo thuc tnh ni. Ch mc trn thuc tnh ni c th c s
65
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.
dng lm ng truy xut. Nu iu kin ni l ng thc, chi ph ni hai quan h n1 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 s t l vi nlogn. Ni chung thut ton ni trn s hu ch khi cn ni cc quan h c kch thc 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 lc 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 2n ch khng phi l n!. 3.2.2.3. Thut ton R- QOA Input: QT: cy truy vn c n quan h Output: 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: Cu truy vn ti u
66
Chng ta hy minh ho thut ton ny vi cu truy vn q1 trn CSDL mu nu trn. q 1: 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
Cu trc ng ca cy cc chin lc la chn nh hnh 3.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.
67
Cc chin lc (EJ) v (JE) 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 EG loi b (G E) G E
G G E J G
J J E
loi b
loi b J (J G) E
loi b
Hnh 3.2: Cc th t kt ni la
68
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.
3.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
Lc tng th
3.3.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 ... pmn). 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
69
3. p1 (p2 p3) (p1 p2) p3 5. p1 (p2 p3) (p1 p2) (p1 p3) 7. p1 (p2 p3) (p1 p2) (p1 p3) 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 FROM WHERE
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.MANVG.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. 3.3.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 E# E
70
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 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 FROM WHERE E.MANV, G.NHIEMVU
E, G, J E.MANV=G.MANV
AND G.MADA.= J.MADA AND TENDA=CSDL AND THOIGIAN 36 AND CHUCVU=LTRINH
71
NHIEMVU
J TENDA=CSDL
G G.MANV=G.MANV G.MANV=J.MANV J
(b) th kt ni tng ng
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 FROM WHERE E.MANV, G.NHIEMVU
E, G E.MANV=G.MANV
AND TENDA=CSDL AND THOIGIAN 36 AND CHUCVU=LTRINH
72
Edited by Foxit Reader Copyright(C) by Foxit Software Company,2005-2008 For Evaluation Only.
NHIEMVU
J TENDA=CSDL
3.3.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. 3. 5. 7. 9. p p p p p p p true p p false p p false false 2. 4. 6. 8. 10. p true true p p false p p true p1 (p1 p2) p1 p1 (p1 p2) p1
WHERE (NOT(CHUCVU=Lp trnh) AND (CHUCVU=Lp trnh OR CHUCVU=K s in) AND NOT(CHUCVU=K s in) OR E.TENNV=Dung
WHERE E.TENNV=Dung
p3: <E.TENNV=Dung>. Khi , cc tn t sau mnh WHERE c m t li: p: ( p1 (p1 p2) p2) p3 ( p1 p1 p2) ( p1 p2 p2) p3 (false p2) ( p1 false) p3 false false p3 p3 (p dng lut 7) (p dng lut 5) (p dng lut 4)
3.3.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 FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND ETENNV <> Dng AND J.TENNV= CSDL
74
TENNV
THOIGIAN=12
THOIGIAN=24
Php chn
MADA
Php ni
MANV
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 SS 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.
75
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
p(Ai,Bk)
S) p(Ai) (R)
(AJ,Bk)
Php chn vi php hp: Nu R v T cng b thuc tnh. 6. Php chiu giao hon vi nhng php ton hai ngi Php chiu v tch Decartes: Nu C=AB vi A A, B B v A, B l tp cc thuc tnh trn quan h R, S ta c: C(RS) = 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 3.6 sau l tng ng vi cy hnh 3.5 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.
76
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 3.5, cho ra cy kt qu tt hn cy ban u, tuy nhin vn cn xa cy ti u. E.TENNV
MADA
MANV
MADA,MA
THOIGIAN=12 THOIGIAN=24
3.4. 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
77
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. 3.4.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 E 2 E 3. 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. R1 a. Rt gn vi php chn: 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, x: b d liu, p(x) tn t p chim gi x. V d: Xt truy vn SELECT FROM WHERE * E MANV=E5
p dng cch tip cn t nhin n vng E t E1, E2 v E3 cho truy vn ban u, hnh 3.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 E1 v E3, sinh ra cc quan h rng. Chng ta thu c truy vn rt gn hnh 3.8 b.
78
MANV=E5
MANV=E5
E1
E2
E3
E2
(b) Truy vn rt gn
b.Rt gn vi php ni (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) pj(y))
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=MANVE3(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 vn SELECT FROM WHERE * E, G E.MANV=G.MANV
Truy vn ban u tng ng vi hnh 3.9a. Vi phn phi php ni (><)trn cc php hp v p dng lut 2, ta c truy vn rt gn hnh 3.9 b, vi ba php ni b phn c th c thc hin song song.
79
MANV
E2 E3 G1
MANV
MANV
MANV
E1
G2 E 1
G1
E2
G2
E3
G2
(b) Truy vn rt gn
3.4.2. Rt gn theo phn mnh dc Chc nng ca vic phn mnh dc l tch quan h da vo thuc tnh ca cc php chiu. V php ton xy dng li i vi phn mnh dc l ni, nn chng trnh nh v mt quan h c phn mnh dc l ni ca cc mnh trong vng thuc tnh chung. V d: Quan h E c phn mnh dc thnh E1, E2, vi thuc tnh kho MANV c lp li nh sau: E1 = MANV,TENNV(E) v E2 = MANV,CHUCVU(E) E = E1
MANV
E2
Tng t nh phn mnh ngang, cc truy vn trn phn mnh dc c th rt gn bng cch xc nh nhng quan h trung gian v ch v loi b cc cy con cha chng. Cc php chiu trn mt phn mnh dc khng c thuc tnh chung vi cc thuc tnh chiu (ngoi tr kha ca quan h) l v ch, mc d cc quan h l khc rng. Lut 3: D,K(Ri) l v ch nu DA= . Trong , quan h R xc nh trn A={A1, ...,An}; Ri =A(R), AA , K l kho ca quan h, KA, D l tp cc thuc tnh chiu, D A. V d: Vi quan h E c phn mnh dc nh v d trn. Xt truy vn SQL SELECT FROM TENNV E
80
TENNV
TENNV
MANV
(b) Truy vn rt gn
Truy vn ban u tng ng hnh 3.10a. Bng cch giao hon php chiu vi php ni (chiu ln MANV, TENNV), chng ta thy rng php chiu trn E2 l v ch v TENNV khng c trong E2, nn php chiu ch cn gn vo E1, v vy truy vn rt gn c c nh hnh 3.10b. 3.4.3. Rt gn theo phn mnh gin tip S phn mnh ngang gin tip l mt cch tch hai quan h vic x l ni ca cc php chn v php ni c ci thin. Mt cch in hnh nh sau, nu quan h R ph thuc vo s phn mnh ngang gin tip nh quan h S, th cc mnh ca R v S, m c cng gi tr thuc tnh ni, c nh v ti cng trm. Ngoi ra, S c th c phn mnh ty thuc vo tn t chn. Khi cc b ca R c t tu theo nhng b ca S, th s phn mnh gin tip ch nn s dng mi quan h mt nhiu (phn cp) t SR (vi mt b ca S c th ph hp vi n b ca R, Nhng vi mt b ca R ch ph hp vi mt b ca S). Truy vn trn cc phn mnh gin tip cng c th rt gn c, nu cc tn t phn mnh mu thun nhau th php ni s a ra quan h rng. Chng trnh nh v mt quan h c phn mnh ngang gin tip l hp ca cc mnh. V d: Cho mi quan h mt nhiu t E n G, quan h G (MANV, MADA, NHIEMVU, THOIGIAN) c th c phn mnh gin tip theo nhng lut sau: G1=G MANV E1 v G2=G nh sau: E1=CHUCVU=Lp trnh(E)
MANV
Chng trnh nh v cho mt quan h c phn mnh gin tip l hp ca cc mnh G=G1G2. rt gn cc truy vn trn phn mnh gin tip ny, php ni s a ra quan h rng nu cc tn t phn mnh mu thun nhau. V d tn t G1 v E2 mu thun nhau, nn G1 V d: Xt truy vn
81
E2 =.
* E, G G.MANV=E.MANV
CHUCVU=KS c kh
Truy vn ban u trn cc mnh E1, E2, G1 v G2 tng ng hnh 3.10a. Bng cch y php chn xung cc mnh E1 v E2, c truy vn rt gn hnh 3.11b. Phn phi cc php ni vi php hp, chng ta thu c cy hnh 3.11c. Cy con bn tri a ra mt quan h rng, nn cy rt gn c c trong hnh 3.11d.
MANV MANV
G1 G2
CHUCVU=KS c kh
G1 G2
CHUCVU=KS c kh
E1
E2
E2
CHUCVU=KS c kh G1 E2 G2
CHUCVU=KS c kh E2 G2
CHUCVU=KS c kh
E2
(d) Truy vn rt gn
3.4.4. Rt gn theo phn mnh hn hp S phn mnh hn hp l s kt hp chc nng cc phn mnh tho lun trn. Mc ch ca phn mnh hn hp l h tr cc truy vn lin quan n php chiu, php chn, php ni mt cch c hiu qu. Chng trnh nh v cho mt quan h phn mnh hn hp s dng php hp v php ni ca cc mnh. V d: Xt quan h E c phn mnh hn hp nh sau:
82
E1=MANV E4(MANV,TENNV(E)), E2=MANV > 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 3.12a, c rt gn thnh hnh 3.12b. TENNV MANV=E5 TENNV MANV=E5
E2 E1 E2 E3
(b) Truy vn rt gn (a) Truy vn ban u
3.5. Ti u ho truy vn phn tn 3.5.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,
83
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. 3.5.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. 3.5.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. 3.5.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.
84
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. 3.5.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 . 3.5.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. 3.5.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. 3.5.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.
85
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. 3.5.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. 3.5.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. 3.5.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
86
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 CTR: chi ph truyn mt n v d liu t trm ny n trm khc, ta xem 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 Trm 3 Trm 2
Hnh 3.13: V d ca s bin i 1 truy vn 87
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. 3.5.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: card(R S) SFJ = 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
88
cc thuc tnh ca n, cn card(R) l s cc b ca R c tnh theo cng thc phn tip theo. 3.5.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. 3.5.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) max(A)-min(A)
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}) 3.5.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(RS) = card(R) * card(S) 3.5.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:
89
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) 3.5.5.4. Php na ni H s chn ca php na ni (SFSJ) xp x l: SFSJ(R S) = Card(A(S)) 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) 3.5.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). 3.5.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. 3.5.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 FROM WHERE TENNV E, G 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(NHIEMVU=Qun l E.MANV=G.MANV) (E G)
(1)
90
TENNV(E
MANV(NHIEMVU=Qun l(G)))
(2)
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. 3.6. So snh mt s thut ton ti u ho truy vn phn tn iu Hm khin mc ti u tiu ho thi gian tr li v tng chi ph Thnh phn ti Cu u ca trc hm chi mng ph kch thc thng bo v chi ph x l kch thc thng bo, s thng bo v chi ph (I/O v CPU) kch thc thng bo mng din rng hoc mng cc b S dng cc php na kt ni Thng S tin dng thng cc k on
Thut ton
INGR ES phn tn
ng
khng
c (phn on ngang)
SYST EMR*
tnh
tng chi ph
khng
1, 2
khng
SDD-1 tnh
1,3,4,5
khng
AHY
tnh
1, 3, 5
khng
91
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 liu
Hnh 3.14: S so snh cc thut ton ti u ho truy
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 3.14. 3.6.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.
92
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: Output: Begin For mi OVQi c th tch ra trong MVQ do {chy tt c cc truy vn mt bin} run(OVQi) 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 (3.4) (3.3) (3.2) (3.1) (2) (3) (1) MVQ: truy vn a bin Kt qu ca truy vn a bin cui cng
93
Endwhile {u ra ca thut ton l kt qu ca MVQ cui cng} End.{D-INGRES-QOA} 3.6.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 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: QT: cy truy vn Output: Begin 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
94
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 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,
95
Ri2)
Ri3)
...
Rin)
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. 3.6.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 Benefit(R
A
nh gi v li ch:
A
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-1-QOA sau: Thut ton SDD-1-QOA
96
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 {tp cc php na kt ni c li} for mi php kt ni SJ trong QG do if cost(SJ) < benefit(SJ) then BS BS I SJ end-if end-for {chn cc php na kt ni c li} 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}
{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. Giai on khi u: Sinh ra mt tp cc php na kt ni c li
97
BS={SJ1, ..., SJn} v mt chin lc thc thi (ES) bao gm cc x l a phng. 2. 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. 3. 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. 4. 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. V d : Xt truy vn SELECT FROM E, G, J WHERE AND E.MANV = G.MANV G.MANV = J.MANV *
Hnh 3.19 a ra th kt ni ca truy vn v thng k quan h. Gi s CMSG=0 v CTR=1 Quan h E J G lc lng 30 100 50 kch thc b 50 30 40 kch thc quan h 1500 3000 2000
98
J.MANV
0.4
200
Cc php kt ni c li ban u nh sau: SJ1: G SJ2: G E, li ch l 2100 = (1-0.3)*3000 v chi ph l 120 J, li ch l 1800=(1-0.4)*3000 v chi ph l 200
Hai php kt ni khng c li l: SJ3: E SJ4: J G, li ch l 300 = (1-0.8)*1500 v chi ph l 400 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 SJ3: E J, li ch l 540=(1-0.4)*900 v chi ph 200 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 SJ2 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. 3.6.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
99
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 T = (R2 ... T
r-1 r 2
R1) trm 3
r-2
= (Rr-1
T
-1
) trm r
Tr ) trm (r+1)
n-1
) trm r (r l kt qu)
100
R1) trm 3
r-2
= (Rr-1 = (Rr+1
r-1
Thut ton SERIAL: k hiu RiRj: truyn Ri ti trm Rj sau thc hin Ri. Thut ton: 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
101
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.
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
102
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 begin {gii php mm do ban u}
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
103
begin if mc tiu l thi gian p then ESj PARALLEL(SQG) else 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
104
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 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. 3.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.
105
Cu hi v bi tp cui chng 3
Cu hi:
1. Mc ch ca ti u ho truy vn trong CSDL phn tn 2. Chc nng ca ti u ho truy vn phn tn 3. Cc phng php x l truy vn c bn 4. tng ca thut ton Ingres. V d 5. S phn lp chung cho x l truy vn phn tn. 6. Cch chuyn mt truy vn php tnh quan h thnh mt cy i s quan h 7. S dng cc lut bin i php ton i s quan h bin i cy i s quan h thnh cc cy tng ng. 8. nh v d liu phn tn-Ti u ho cc b 9. Xc nh tng chi phi v thi gian tr li ca mt cu truy vn.
Bi tp:
Xt cc lc tng th v phn mnh sau: Lc tng th: DOCTOR(DNUM, NAME, DEPT) PATIENT(PNUM, NAME, DEPT, TREAT, DNUM) CARE(PNUM, DRUG, QUAN) Lc phn mnh: DOCTOR1= SL DEPT=SURGERY DOCTOR DOCTOR2= SL DEPT=PEDIATRICS DOCTOR DOCTOR3=SL DEPTSURGERY AND PATIENT1= SL DEPT=SURGERY AND PATIENT2= SL DEPT=SURGERY AND
DEPTPEDIATRICS TREAT=INTENSIVE TREATINTENSIVE
PATIENT3= SL DEPTSURGERY PATIENT CARE1=CARESJ PNUM= PNUM PATIENT1 CARE1=CARESJ PNUM= PNUM PATIENT2
106
CARE1=CARESJ PNUM= PNUM PATIENT3 Gi s rng mi bnh nhn phi thuc v mt khoa vi bc s iu tr h. Hy v cc th kt ni ca cc php ni di y: (a) DOCTOR JN DNUM= DNUM PATIENT (b) DOCTOR JN NAME= NAME PATIENT (c) DOCTOR JN DEPT= DEPT PATIENT (d) PATIENT NJN CARE
107
108
- giao tc T1 gi tr ca bin a ch c tng ln 2 v lnh a:=a+100 c thc hin trong khng gian ring m khng nh hng n c s d liu. - giao tc T2 gi tr ca bin a ch c tng thm 102. 4.1.1. Cc tnh cht ca giao tc Mt trong nhng cng vic quan trng ca qun l giao tc l lm cho mt giao tc phc tp xut hin di dng n gin nht, gi l nguyn t. Giao tc l mt ng dng hay mt phn ca ng dng c m t bi cc tnh cht sau: - Tnh nguyn t (Atomicity): Tnh nguyn t lin quan n s kin l mt giao tc c x l nh l mt n v hot tc. Chnh v th m khi thc thi mt giao tc th hoc l cc hnh ng ca giao tc c thc hin hoc l khng mt hnh ng no c thc hin c. Tnh nguyn t i hi rng nu vic thc thi giao tc b ct ngang bi mt loi s c no th h qun tr c s d liu s chu trch nhim xc nh nhng cng vic ca giao tc khi phc li sau s c. C 2 chiu hng thc hin l: hoc n s c kt thc bng cch hon tt cc hnh ng cn li, hoc c th kt thc bng cch hi li tt c cc hnh ng c thc hin. C hai l do c bn lm cho giao tc khng c hon thnh: giao tc t hu b (transaction aborts), chng hn khi gp mt php tnh khng hp l (php chia cho khng), hoc h thng b s c, chng hn giao tc b kt trong mt kho gi (deadlock). Vic t hy giao tc c th do yu cu ca bn thn giao tc (hoc ca ngi s dng n) do mt s d liu vo sai hoc l do mt vi iu kin khc lm cho qu trnh giao tc khng hon thnh hoc khng em li kt qu tt. S hy b ca giao tc cng c th l do s p buc ca h thng bi nhng l do nh qu ti h thng v hin tng kho gi. Duy tr c tnh nguyn t khi c s c m giao tc t hu b c gi l khi phc giao tc (transaction recovery), v duy tr c tnh nguyn t khi c s c h thng c gi l khc phc s c (crash recovery). S hon thnh mt giao tc c gi l u thc (commitment). Gi s rng mi giao tc c bt u bng mt lnh nguyn thu begin_transaction v kt thc bng lnh commit (u thc) hoc abort (hu b). S th hin giao tc nh hnh 4.1. Begin_Transaction Begin_Transaction Begin_Transaction
Forces abort
Trong thc t mi giao tc u c mt s tnh cht c bn nh c hoc ghi mt mc d liu (data item) vo c s d liu v thc hin cc tnh ton trong khng gian lm vic ring, hoc mt s cc bc c bn khc nh kho cht (lock) v gii phng kho (unlock), u thc (commit) giao tc. Chng ta gi s rng cc bc c bn ny l cc nguyn t. - Tnh bn vng (Durability): Tnh bn vng bo m rng mi khi giao tc u thc, kt qu ca n s c duy tr v khng b xo ra khi c s d liu. V th h qun tr c s d liu phn tn phi bo m rng kt qu ca giao tc vn s tn ti d c xy ra s c h thng. Bi v kt qu ca giao tc c duy tr bi s lu tr ca h thng ln c s d liu nn tnh bn vng c s dng nh l mt iu kin khi phc d liu, ngha l cch khi phc c s d liu v trng thi nht qun m mi hnh ng u thc u c phn nh. Vn ny s c tho lun nhiu hn trong phn sau. - Tnh tun t (Serializability): Nu c vi giao tc thc hin ng thi, th kt qu phi nh nhau nu n c thc hin tun t trong cng mt th t . Tnh tun t ca giao tc a ra vn iu khin ng thi (concurrency control). Nu mt h thng c tnh iu khin ng thi, ngi lp trnh c th ghi li giao tc nh khi n thc hin mt mnh. - Tnh bit lp (Isolation): Mt giao tc ang thc thi khng th a ra cc kt qu ca n cho nhng giao tc khc ang cng hot ng trc khi n u thc. Tnh cht ny l cn thit trong vic ngn nga s hy b dy chuyn (cascading abort-Cn gi l hiu ng domino). Nu mt giao tc cho php nhng giao tc khc s dng nhng kt qu cha hon tt ca mnh trc khi u thc, ri sau n quyt nh hu b, khi mi giao tc c nhng gi tr cha hon tt cng s phi c hu b nu khng xu mt xch ny d dng tng nhanh v gy ra nhng ph tn ng k cho h qun tr c s d liu phn tn. Ch rng nu nhng giao tc c u thc ri, chng ta s phi khng thc hin chng na, nh vy l vi phm tnh bn vng ca giao tc. Vi l do ny, bit lp giao tc l mt tnh cht rt quan trng trong vic thc thi giao tc mt cch hiu qu. Th d 4.1: Xt hai giao tc ng thi T1 v T2 cng truy xut n mc d liu x, Gi s gi tr ca x trc khi bt u thc hin l 50. T1: Read(x) x:= x + 1 Write(x) Commit T2: Read(x) x:= x + 1 Write(x) Commit
110
Nu hai giao tc thc hin ln lt, ta c dy thc thi cho cc hnh ng ca nhng giao tc l: T1: T1: T1: T1: T2: T2: T2: T2: Read(x) x:= x + 1 Write(x) Commit Read(x) x:= x + 1 Write(x) Commit
Trong trng hp ny giao tc T2 c c gi tr ca x l 51, sau khi kt thc c hai giao tc, x c gi tr l 52. Nu hai giao tc ang thc thi ng thi, dy hnh ng c thc hin c th xy ra nh sau: T1: Read(x) T1: x:=x + 1 T2: Read(x) T1: Write(x) T2: x:=x + 1 T2: Write(x) T1: Commit T2: Commit Trong trng hp ny, giao tc T2 c c gi tr ca x l 50. Gi tr ny khng ng bi v T2 c x trong khi gi tr ca n ang c thay i t 50 thnh 51. Hn na gi tr ca x s l 51 vo lc kt thc cc giao dch T1 v T2 bi v hnh ng ghi ca T2 s ghi ln kt qu ghi ca T1. Th d 4.2: Mt th d d hiu hn c th xem x l ti khon ngn hng v T1 l giao tc c thc hin khi chng ta gi tin vo ngn hng. Gi s rng T2 l mt giao tc ang c thc thi khi v (hoc chng) ca khch hng ang rt tin ti mt chi nhnh khc. Nu xy ra rc ri nh th d trc v kt qu ca T1 b mt, khch hng s khng hi lng. Ngc li nu kt qu ca T2 b mt, ngn hng s ph sn. Th d 4.3: Xt h thng k ton ca mt ngn hng, c mt giao tc T1 chuyn $1000 vo mt ti khon hin c $0. Mt giao tc th 2, T2 c quyt ton $1000 c ghi bi T1 trc khi T1 hon tt v ghi n $1000 vo cng mt
111
ti khon. T2 hon tt, v tin mt $1000 c chuyn cho ngi dng ngi yu cu thc hin T2. Gi s rng by gi T1 hy b v l do mt thao tc no bt hp l. Vic hy b T1 yu cu phi hy b T2, bi v thao tc thc hin bo T2 da vo cc thao tc thc hin bi T1. Tuy nhin, vic hy b T2 l khng th c v hu qu ca T2 trong th gii thc khng th c hon li bi h thng. V d ny cho thy ti sao tnh bit lp l mt thuc tnh rt cn thit. 4.1.2. Mc tiu ca qun l giao tc Mc tiu ca qun l giao tc l lm th no bo m tnh hiu qu, tin cy, v thc hin ng thi ca cc giao tc. Cc mc tiu ny c quan h cht ch vi nhau; vn t ra l c mt s dung ha gia chng, bi v nu chng ta c gng tha mn cng mt lc cc mc tiu trn ca mi giao tc th c th xy ra li khi h thng hot ng. Xt cho cng, mt h thng qun l giao tc c gi l c hiu qu nu thi gian p ng ca h thng l cc tiu v tnh hiu lc ca h thng l cc i. t c iu ny chng ta phi ch n cc kha cnh sau: Vic s dng CPU v b nh chnh: Kha cnh ny chung cho c CSDL phn tn ln tp trung. Cc ng dng CSDL in hnh thng b hn ch bi cc thao tc vo/ra d liu (Ngha l, tn nhiu thi gian ch cc thao tc vo ra d liu v thc hin cc tnh ton n gin), nn vic thc thi nhiu ng dng ng thi trong mt h thng ln s a n hin tng tht nt c chai (bottleneck) b nh chnh. Nu OS (operating system) phi to mt tin trnh cho mi giao tc, th hu ht chng s c chuyn vo v ra b nh chnh CPU thc hin. gim thiu hin tng khng mong mun ny, b qun l giao tc phi p dng mt vi k thut c bit m da vo s thun li ca cc c tnh in hnh ca cc ng dng CSDL, ch khng xem xt chng nh cc tin trnh ni chung c x l bi OS. Thng ip iu khin: Trong CSDL phn tn chng ta phi xem xt mt kha cnh hiu qu khc: l s lng thng ip iu khin trao i gia cc v tr. Mt thng ip iu khin khng c s dng chuyn d liu nhng n cn thit iu khin s hot ng ca ng dng. Chi ph cho mi thng ip khng nhng l chi ph vn chuyn n m cn tnh c s lnh ca CPU phi thc hin chuyn mt thng ip. Chi ph ny cn phi c tnh ton ngay c trng hp thng ip c trao i gia cc tin trnh ti cng mt v tr. Thi gian p ng: Kha cnh hiu qu quan trng th 3, l thi gian p ng ca mi giao tc ring l. R rng, iu ny cn thit trong ng dng phn tn hn l ng dng cc b, bi v cn c thi gian lin lc gia cc v tr khc nhau.
112
Tnh hiu lc: Trong mt h phn tn th khng th chp nhn trng hp mt s c mt mt trm no khin cho ton h thng ngng hot ng. Tm li, mc tiu ca qun l giao tc trong mt h qun tr c s d liu phn tn l kim sot vic thc thi cc giao tc sao cho: Cc giao tc c tnh nguyn t, tnh bn vng, tnh kh tun t v tnh c lp. Chi ph ca chng xt v cc kha cnh b nh chnh, CPU, v s thng ip iu khin c chuyn i v thi gian p ng ca chng l c cc tiu. Tnh hiu lc ca h thng l c cc i. 4.1.3. Cc giao tc phn tn Mt giao tc lun l mt phn ca mt ng dng. Ti thi im khi c yu cu bi ngi dng, ng dng s pht mt lnh begin_transaction, khi tt c cc hot ng c thi hnh bi ng dng cho n khi lnh commit hay abort c pht ra, c xem nh l mt phn ca cng mt giao tc. thc hin cc tnh nng cc v tr khc nhau, ng dng phn tn phi thc thi mt vi tin trnh . Chng ta gi cc tin trnh ny l cc tc nhn (agent) ca ng dng. Do , mt agent l mt tin trnh cc b thi hnh mt s hot ng no vi t cch i din cho ng dng. Cc agent phi lin lc vi nhau thng qua cc thng ip cng hp tc thc thi thao tc ton cc c yu cu bi ng dng. C nhiu cch t chc cc agent nhm xy dng cu trc ca cc tin trnh hp tc. iu ny s ni r hn chng sau. Vi mc ch tho lun v tnh nguyn t, chng ta gi s rng: Tn ti mt agent gc s khi ng ton b giao tc, v tr cha agent gc c gi l v tr gc ca giao tc. Agent gc chu trch nhim pht cc lnh begin_transaction, commit v abort. Ch c agent gc mi c th yu cu vic to ra mt agent mi. 4.1.4. Qun l kho trong giao tc Trong iu khin ng thi phn tn, c s d liu phi c phn nh thnh cc mc d liu (data item), l nhng n v d liu cn c truy xut c iu khin. Bn cht v kch thc ca mi mc d liu do nh thit k h thng la chn tu theo mc tiu ca bi ton. V d, trong m hnh d liu quan h chng ta c th chn mi mc d liu l mt quan h, hoc nh hn nh b hay thnh phn ca cc b. Phng php thng dng nht iu khin vic truy xut cc mc l s dng kho cht (lock). Kho cht
113
B qun l kho cht (lock manager) l mt thnh phn c bn ca h qun tr c s d liu phn tn, chu trch nhim theo di xem mt mc d liu no hin ang chu s c/ghi ca mt hoc nhiu giao tc hay khng. Nu c, th b qun l kho s ngn chn khng cho giao tc truy xut mc d liu nu trong trng hp truy xut ny c th xy ra xung t. Mi mc d liu c mt kho cht ngn chn s truy xut ca cc giao tc. Thng thng ti mi thi im ch c mt tp con cc mc d liu b kho cht, v vy b qun l kho cht c th lu cc kho cht hin hnh trong mt bng kho (lock table). Nh vy, kho cht l mt c quyn truy xut trn mt mc d liu m m b qun l kho cht c th u quyn cho mt giao tc no hoc thu hi li. V d di y cho chng ta thy vai tr quan trng ca kho cht. Th d: Ti cng mt thi im, hai i l bn v ca Vit nam Airline ang bn cho 2 khch hng 2 v i HCMC-HU. Hai thao tc ny c m t qua 2 giao tc T1 v T2 c chung mt chng trnh P nh di y. Cc giao tc ny cng truy xut n mc d liu x (chng hn, x l s v bn c ca chuyn bay). Gi s, gi tr ca x trc khi bt u thc hin cc giao tc l 50 ( bn c 50 v). T1: Read(x) x:= x + 1 Write(x) Commit T2: Read(x) x:= x + 1 Write(x) Commit
Nu 2 giao tc T1 v T2 thc hin ng thi vi cc m lnh ca P c xen k nh sau: Vn ny c th gii quyt bng cch s dng kho cht. Ngha l, trc khi c x phi kho x li (lock x), ngn khng cho cc giao tc khc truy xut x cho n khi T1 hon thnh. Hin nhin, giao tc T2 mun truy xut c mc d liu x th T1 phi m kha cho x (unlock x). Chng ta vit li on m ca P nh sau. T1:Lock(x) T1:Read(x) T2:Lock(x) T2: Read(x) T1: x:=x + 1 T2: x:=x + 1 T1: Write(x)
114
T1: Unlock(x) T2: Write(x) T2: Unlock(x) T1: Commit T2: Commit Khi giao tc T1 bt u trc v n c yu cu kho cht trn x. Nu nh khng c giao tc no ang kho x th b qun l kho cht s cho T1 kho cht ny. Nu T2 bt u trc khi T1 u thc (commit) th T2 thc hin lnh lock(x), h thng buc T2 phi i cho n khi T1 thc hin lnh Unlock(x). Cc lnh T1 v T2 ln lt c thc hin cho n khi c 2 u u thc. 4.2. S h tr nguyn t ca cc giao tc phn tn Vic thc hin nhng lnh ton cc begin_transaction, commit v begin_transaction, abort phi c thc thi nh vic thc hin mt tp cc hnh ng cc b thch hp ti cc v tr m giao tc phn tn c thc hin. xy dng mt qun tr giao tc phn tn thc hin y cc s cp trn cho cc giao tc phn tn, chng ta gi nh rng ti mi v tr c mt qun tr giao tc cc b (Local Transaction Manager) c kh nng thc thi cc giao tc cc b. Do , cc k thut phc hi chnh c s dng bi cc h qun tr giao tc trong mi trng tp trung v qun tr giao tc cc b. 4.2.1. S phc hi trong cc h thng tp trung Cc c ch phc hi c xy dng cho php s tr v cc thao tc thng thng ca mt h c s d liu sau khi c li xy ra; Nh vy, trc khi tho lun v s phc hi, chng ta phi phn tch cc loi li c th xy ra trong mt c s d liu tp trung. 4.2.1.1. Cc s c trong cc c s d liu tp trung T quan im v s phc hi cc b, c tnh quan trng nht ca cc li l s lng thng tin b mt do li. V vy, trong vic phn loi cc li chng ta xem xt thnh phn b nh v mt bn cht. T quan im ny, cc li c th c phn loi nh sau: 1. Cc s c khng lm mt thng tin: Trong cc li loi ny, tt c cc thng tin c ct gi trong b nh l c sn cho s phc hi. Chng hn nh, vic hy cc giao tc v mt iu kin li b pht hin, nh li trn s hoc li chia cho zero. 2. Cc s c c mt thng tin tm thi: Trong cc li loi ny, ni dung ca b nh chnh b mt; tuy nhin, tt c cc thng tin c ghi li trn a khng b nh hng bi li. in hnh cc li loi ny lm ph hy h thng.
115
3. Cc s c c mt thng tin lu tr: Cc li loi ny, c gi l cc li mi trng, ni dung ca b a lu tr cng b mt. in hnh cc li loi ny nh ph hy u t a nng. Xc sut xy ra cc li loi th 3 t hn so vi hai loi li kia. C th hn ch cc li loi th 3 bng cch to bn sao thng tin trn vi a c cc phng thc li c lp. Hai a c cc phng thc li c lp nu xc sut xy ra li ca mt trong hai a khng ph thuc vo tnh trng hot ng ca a kia. y l tng c bn cho s pht trin b lu tr n nh. B lu tr n nh l b lu tr trung gian d phc hi nht c sn trong b nh. B lu tr n nh c thc thi tiu biu bng vic to bn sao thng tin tng t trn vi a vi cc phng thc li c lp v s dng ci gi l chin lc thay th thn trng; ti mi thao tc cp nht. Ngha l, u tin mt bn sao thng tin c cp nht, sau s chnh xc ca vic cp nht c kim nh, v cui cng bn sao th hai c cp nht. Vic gii thiu b lu tr n nh gip chng ta c th a ra mt loi li mi: 4. Cc s c c mt d liu lu tr n nh: Trong cc li loi ny, nhiu thng tin c cha trong b lu tr n nh b mt do vi li loi th 3 xy ra ng thi. Mc d chng ta c th to xc sut cc li loi th 3 nh ty bng vic s dng nhiu bn sao v nhiu chin lc thay th thn trng hn nhng khng th lm gim xc sut ny xung zero. 4.2.1.2. Nht k (logs): K thut c bn cho vic thc thi cc giao tc khi c s c da trn vic s dng nht k. Mt nht k bao gm thng tin cho vic hy hoc lm li tt c cc hnh ng c thc hin bi cc giao tc. Hy cc hnh ng ca mt giao tc c ngha l xy dng li c s d liu trc s thc hin ca n. Lm li cc hnh ng ca mt giao tc ngha l thc hin li cc hnh ng ca n. Trc khi xem cch thc nht k c thc thi, chng ta hy nhc li l do ti sao thnh thong cn phi hy hoc thc hin li cc hnh ng ca mt giao tc. S cn thit ca vic hy cc hnh ng ca mt giao tc l s tht bi trc khi s y thc xy ra; bi v cc giao tc l nguyn t, nu nh s y thc l khng th xy ra th c s d liu phi c gi nguyn nh c. Do cc hnh ng cc b phi c hy. hiu c s cn thit phi lm li cc hnh ng ca mt giao tc, chng ta c th xem xt mt li lm mt b lu tr n nh. C th l khi li xut hin, nhiu hnh ng c thc hin bi giao tc c y thc ri cha c ghi vo b lu tr n nh (chng hn cho vic mt b lu tr n nh c th bao gm vic mt cc b m c ghi vo b lu tr n nh). Trong trng hp
116
ny, c ch phc hi phi lm li cc hnh ng ca giao tc c y thc m bo rng nhng hnh ng ny u c lu gi trong c s d liu. Ch rng cc hot ng hy v lm li phi c thay i gi tr, tc l, vic thc hin chng nhiu ln s tng ng vi vic thc hin chng mt ln. V vy, UNDO(UNDO(UNDO((hnh ng)))) = UNDO(hnh ng) REDO(REDO(REDO((hnh ng)))) = REDO(hnh ng) c im ny c yu cu bi v qui trnh phc hi c th tht bi v c khi ng li nhiu ln. Hn na, c im ny rt thun tin, bi v chng ta khng cn bit liu c mt hnh ng m chng ta mun hy hoc lm li sn sng c thc hin hay cha. Mt bn ghi nht k bao gm thng tin c yu cu cho vic hy hoc vic lm li cc hnh ng. Bt c mt giao tc thc hin mt hnh ng no trn c s d liu th mt bn ghi kha c ghi vo mt file nht k. Mt bn ghi nht k bao gm: - nh danh ca giao tc. - nh danh ca bn ghi. - Kiu hot ng (chn, xa, sa i). - Gi tr bn ghi c (dng hon li thao tc). - Gi tr bn ghi mi (dng thc hin li thao tc). - Thng tin ph dng cho th tc phc hi. Hn na, khi mt giao tc c khi ng, c y thc hoc c hy, th mt bn ghi giao tc ban u, c y thc hoc c hy tng ng s c ghi vo nht k. Vic ghi li s cp nht c s d liu v vic ghi li bn ghi nht k tng ng l 2 hot ng khc bit nhau; v vy, mt li c th xut hin gia chng. Trong trng hp ny, nu vic cp nht c s d liu c thc hin trc khi c ghi vo bn ghi nht k th qui trnh phc hi s khng th hy vic cp nht; bn ghi nht k tng ng trn thc t l khng c sn. trnh vn ny, giao thc log write-ahead c s dng, n bao gm 2 nguyn tc c bn sau: 1. Trc khi thc hin vic cp nht c s d liu, ti thiu vic hy phn bn ghi nht k tng ng phi c lu gi trong b lu tr n nh. 2. Trc khi y thc mt giao tc, tt c cc bn ghi nht k ca giao tc phi c lu gi trong b lu tr n nh.
117
4.2.1.3. Cc quy trnh phc hi: Khi mt s c c mt thng tin tm thi xy ra, quy trnh phc hi c file nht k v thc hin cc thao tc sau: 1. Xc nh tt c cc giao tc cha hon tt cn phi hon li. Cc giao tc cha hon tt c nhn ra bi v chng c mt lnh begin_transaction ghi trong file nht k nhng khng c mt bn ghi commit hoc abort. 2. Xc nh tt c cc giao tc cn thc hin li. Theo nguyn tc, tp ny gm tt c cc giao tc c mt bn ghi commit trong file nht k. Trong thc t, hu ht chng c lu tr an ton trc khi b s c, do chng khng cn phi thc hin li. phn bit giao tc no cn lp li, giao tc no khng cn, ta s dng cc im kim sot (checkpoints). 3. Hon li v lp li cc giao tc trn. Cc im kim sot l cc thao tc c thc hin nh k (vi pht) n gin ha 2 bc u tin ca quy trnh phc hi. Thc hin mt im kim sot yu cu 2 thao tc sau: - Ghi vo b lu tr n nh tt c bn ghi nht k v tt c cc cp nht c s d liu hin ang nm trong b nh tm thi. - Ghi vo b lu tr n nh mt bn ghi kim sot. N cha thng tin biu th cc giao tc ang hot ng ti thi im kim sot c thc hin xong (mt giao tc ang hot ng nu n c bn ghi begin_transaction trong log nhng cha c bn ghi commit hay abort). Khi c im kim sot, bc 1 v 2 c vit li nh sau: - Tm v c bn ghi kim sot cui cng. - t tt c cc giao tc c ghi trong bn ghi kim sot vo tp undo, tp redo ban u l rng. - c file log bt u t bn ghi kim sot cho n khi kt thc. Nu mt bn ghi begin_transaction c tm thy th t giao tc tng ng trong tp undo. Nu tm thy mt bn ghi commit c tm thy th chuyn giao tc tng ng t tp undo sang tp redo. Vic tho lun cc im kim sot trn cho php chng ta xem xt cc mt khc ca nht k. Theo quan nim, mt nht k s cha ton b lch s v s thay i ca c s d liu do cc giao tc to ra. Tuy nhin, trong thc t ch nhng phn mi nht trong nht k c s dng hy hoc c lm li. V vy, ch phn mi nht ny ca nht k phi c gi trc tuyn, trong khi phn cn li ca nht k c th c gi trong b nh th cp.
118
Cho ti nay chng ta ch mi xem xt s phc hi do cc li khng lm mt b lu tr n nh. Cc li ny c phn bit qua hai kh nng sau: 1. Cc li lm thng tin c s d liu b mt nhng nht k th khng b mt. 2. Cc li lm thng tin nht k b mt. Trong trng hp u tin, k thut phc hi c bn bao gm vic thc hin thao tc lm li ca tt c cc giao tc c y thc s dng nht k. Vic lm li c thc hin sau khi c s d liu c xc lp li mt kho tm thi, l nh ca trng thi trc c cha trong b nh th cp. Trong trng hp th hai, bi v thng tin nht k b mt, v mt tng qut chng ta khng th khi phc hon ton trng thi c s d liu gn nht, v v vy tnh bn vng ca giao tc b thay i. S kin nguy him ny khng nn xy ra trong bt k h thng phn tn no. cu nguy trong trng hp ny, trng thi lu nht cc c s d liu c ghi li trong nht k s c thit lp, bng vic xc lp li c s d liu t kho tm thi cui cng v bng vic p dng phn b hng ca nht k. 4.2.2. Cc s c truyn thng trong c s d liu phn tn Trong phn 4.2.1.1 trc, chng ta kho st cc s c c th xut hin ti mi v tr (c gi l cc s c v tr). C ch phc hi cho cc giao tc phn tn cng i hi vic hiu cc s c c th xy ra trong cc truyn thng gia cc v tr. Trong phn ny, chng ta phn loi cc loi s c truyn thng chnh v cch x l thch hp cho tng loi. Khi mt thng ip c gi i t v tr X n v tr Y, nhng yu cu di y i vi mng truyn thng phi c: 1. X nhn c mt thng ip ACK trc khi ht hn tr (DMAX). Sau mt khong thi gian DMAX, nu X khng nhn c mt ACK, th X khng th bit c liu thng ip c c chuyn hay cha. Trong trng hp ny, c th l thng ip gc b mt hoc ACK b mt. 2. Thng ip c chuyn n Y phi ng th t i vi cc cp thng ip X-Y khc. 3. Thng ip l chnh xc. Trong qu trnh di chuyn mt thng ip, cc li c th xy ra nh: thng ip c th khng chnh xc, thng ip c th b hng, X c th khng nhn c thng bo nhn c vi cc thng ip ang c chuyn i, X c th nhn c thng bo nhn c m khng c thng ip no ang c chuyn i,. Hu ht cc mng truyn thng u c kh nng loi tr phn ln cc li ny, do chng ta c th kt lun nh sau:
119
1. Nu mt thng ip c chuyn t X n Y th thng ip l chnh xc v trnh t cc thng ip X-Y khc lun c tn trng. 2. Nu X nhn c mt thng bo nhn c th thng ip c chuyn i. Tuy nhin cn ch rng, nu sau mt tr DMAX, v tr X khng nhn c thng bo nhn c th X c th khng bit liu thng ip c chuyn i hay cha. iu ny khng chc chn bi v trong thc t thiu mt thng bo nhn c c th mun ni 2 iu: hoc thng ip gc b mt (khng c chuyn i), v do khng thng bo nhn c no c tr li; hoc thng ip gc c chuyn i nhng thng ip thng bo nhn c b mt. Trong trng hp ny X s c gng gi thng ip vi s ln c hn v sau kt lun rng mng truyn thng hoc im Y b s c. Vi cc mng truyn thng hin i, c kh nng nh tuyn cc thng ip, th nu X khng lin lc c vi Y nhng X c th lin lc c vi Z, nhng Z khng th lin lc c vi Y th c th kt lun mng b phn on thnh hai hay nhiu mng con khng lin thng nhau. Vic gii quyt phn on mng l kh phc tp so vi gii quyt vic mt thng ip hay v tr s c. Tm li, c hai loi li truyn thng c bn c th xy ra: thng tin b mt v cc mng b phn on. Khi mt v tr X khng nhn c mt thng bo nhn c ca mt thng ip t v tr Y trong mt khong thi gian xc nh trc, X khng c m bo theo nhng iu sau y: 1. Phi chng c mt li xut hin, hay n gin l h thng chy chm? 2. Nu li xut hin th l li truyn thng ca n hay mt s c v tr Y? 3. Thng ip c chuyn n Y hay cha? Vic tr li cu hi 3 kh hn cu hi 2 bi v, hoc l s c truyn thng hoc l s c v mng c th xy ra trc hoc sau khi pht mt thng ip. S phn chia cc phn vng mng l kh hn s phn chia nhng s c v tr hoc nhng thng ip b mt. May thay, s phn vng trong nhiu mng my tnh l t xy ra thng xuyn hn nhng s c v tr. V th, nhiu mc ca nhng thut ton tin cy c th c thit k m n c kh nng phn chia nhng s c nh di y, ph hp vi mc kh tng dn. Lp 1: Ch c nhng s c v tr. Lp 2: Nhng s c v tr v thng ip b mt, nhng khng c s phn vng. Lp 3: Bao gm c s c v tr, thng ip b mt v c nhng s phn vng.
120
Nhng thut ton ca lp 1 xem nh mng truyn thng tin cy hon ton v phn chia nhng s c v tr di s tha nhn ny. Do vy, nu s c truyn thng xy ra, h thng s chy khng ng. 4.2.3. Khi phc cc giao tc phn tn By gi chng ta c th xem xt vn khi phc trong mt c s d liu phn tn ang c s dng. Gi s ti mi v tr c mt b qun l giao tc cc b (LTM), hy s dng LTM ti mi v tr phc hi cc b c s d liu. Mi tc nhn c th pht lnh begin_transaction, commit v abort cho LTM ca n. Sau khi a ra lnh begin_transaction cho LTM, tc nhn s chim nhng thuc tnh ca mt giao tc cc b. Chng ta gi tc nhn ny l mt giao tc con (subtransaction). Vi mc ch xy dng s qun l giao tc phn tn (DTM), chng ta cn qun l giao tc cc b (LTM) c nhng kh nng sau: 1. m bo tnh nguyn t ca mt giao tc con. 2. Ghi mt s bn ghi vo lu tr n nh vi t cch l i din cho b qun l giao tc phn tn. Chng ta cn kh nng 2 v trong khi thc thi mt DTM, mt s thng tin a vo (nhng dng mi ca bn ghi nht k) cng c ghi li theo mt cch m n vn cn s c. Cc tc nhn tham gia thc hin giao tc phn tn l cc giao tc con cc b v chng khng m bo cc c tnh ca mt giao tc phn tn. Ni cch khc, cc b qun l giao tc cc b cung cp tnh nguyn t cho cc giao tc con nhng khng cung cp tnh nguyn t cho giao tc mc phn tn. Do , m bo hoc tt c hoc khng c giao tc no ca mt giao tc phn tn c thc thi th cc vn sau phi c bo m. 1. Ti mi v tr hoc l tt c cc hnh ng c thc hin hoc l khng c hnh ng no c thc hin. 2. Ti tt c cc v tr cn phi quyt nh nh nhau i vi y thc (commit) hoc hy b (abort) ca nhng giao tc con (thc ra phi c kh nng thc hin n). Mc d qun tr giao tc cc b, t n khng c kh nng cho vic thc thi mt giao tc phn tn, nhng n t ra rt hu ch v cho chng ta thy hiu qu ca vic cc qun l cc b u quyt nh nh nhau, v n khai thng cho chng ta t bi ton thc thi s quyt nh ny ti mi v tr.
121
Tc nhn Thng ip gc
Tc nhn Thng ip
Tc nhn DTM
Thng ip
Tc nhn DTM
Thng ip
Tc nhn DTM
LTM ti v tr i
LTM ti v tr j
LTM ti v tr k
Giao din 1: local_begin, local_commit, local_abort, local_create Giao din 2: begin_transaction, commit, abort, create
Hnh 4.3. Mt m hnh tham chiu phc hi giao tc phn tn
Mi quan h gia qun l giao tc phn tn v qun l giao tc cc b c m t nh m hnh tham chiu phc hi giao tc phn tn nh trong hnh 4.3. mc di cng l qun l giao tc cc b, n khng cn truyn thng tin gia cc v tr. Giao din thc thi ca nhng LTM l (1): local_begin, local_commit v local_abort. Lnh gc local_create c s dng to thnh mt tc nhn, l mt chc nng ca nhng h thng qun l cc b nh l mt phn ca giao din v khng hon ton lin quan n s thc thi ca nhng thuc tnh giao tc. mc cao hn l qun l giao tc phn tn DTM. DTM l lp phn tn bi tnh t nhin ca n. DTM s c thc thi bi mt tp cc tc nhn DTM cc b m gia chng c s trao i thng ip. DTM nh l nhng giao din thc thi (2):
122
begin_transaction, commit, abort v create (remote). S to thnh mt tc nhn mi phi c a n DTM, ti v DTM phi c mt khi nim ca nhng tc nhn no cu thnh mt giao tc phn tn. mc cao nht l giao tc phn tn, c to thnh t tc nhn gc (root) v nhng tc nhn khc. Chng ta tha nhn rng ch c tc nhn gc mi c th a ra begin_transaction, commit v abort, giao din (2) ch c dng bi tc nhn gc. Ch rng m hnh giao din ni trn khng nn xem nh t chc thi gian chy (run-time organization) ca giao tc phn tn. Trong hu ht cc h thng khng thc thi dt khot tt c cc lp ti thi gian chy thng c quy v l do hiu nng. V vy, m hnh tham chiu l mt m hnh khi nim cho s hiu bit cch thc nhng thut ton lm vic v n mc no mt thao tc thuc v, v khng nht thit phi l mt cu trc thc thi. By gi chng ta c th phn tch cch thc qun l giao tc phn tn thc thi nguyn thy ca giao din trong hnh 4.3. Begin_transaction: khi lnh Begin_transaction c a ra bi tc nhn gc (root agent), DTM s a ra mt lnh nguyn thy local_begin ti LTM ti v tr gc v ti tt c nhng v tr m ti nhng tc nhn ng dng hot ng ri, bin i tt c cc tc nhn vi nhng giao tc con. T thi im ny s kch hot mt tc nhn mi bi cng giao tc phn tn s cn n local_begin c a n LTM ni tc nhn c kch hot, tc nhn mi c to nh mt giao tc con. Xt v d trong hnh 4.4, Nhng thng ip v nguyn thy cho thy c a ra bi nhiu thnh phn ring bit ca m hnh tham chiu cho vic thi hnh giao tc phn tn FUND_TRANSFER ca hnh 4.2 ln ti ni nhng tham s c gi t tc nhn gc n AGENT1. Nhng con s trong hnh 4.4 ch th bc (order) trong nhng hnh ng (action) c thc hin v nhng thng ip c gi. Abort: Khi lnh abort c a ra bi tc nhn gc, tt c nhng giao tc con sn c phi c hy b. iu ny c thc hin bi vic a ra lnh local_aborts ti nhng LTM ti tt c nhng ni c mt giao tc con hot ng. R rng, bng s hy b tt c nhng giao tc con, tc dng ca mt s hy b ton cc thu c, ti v tt c nhng hot ng thc hin bi nhng tc nhn t lnh begin_transaction c hon li bi nhng LTM. Commit: S thc thi ca lnh commit nguyn thy l kh nht. S kh khn chnh bt ngun t s kin y thc ng ca mt giao tc phn tn cn n tt c nhng giao tc con ca n hy b cc b trong trng hp khng thc hin c, cho nn n khng chp nhn mt giao tc con c hy b cc b t v
123
khng thc hin c v y thc nhng giao tc con khc. thc thi tnh nguyn thy cho mt giao tc phn tn, khi nim tng qut ca 2-phasecommitment (2PC) c trnh by. C bn v giao thc 2-phase-commitment c m t trong phn tip theo. Tuy nhin, c vi s thay i ca giao thc c bn ny c trnh by tng thm hiu lc v kh dng ca n. Nhng s thay i ny s c m t trong nhng phn sau. ROOT AGENT Begin transaction Create AGENT1 Send to AGENT1 8 Receive AGENT1
Hnh 4.4. Nhng hnh ng v thng ip trong phn u tin ca giao tc FUND_TRANSFER
124
4.2.4. Giao thc y thc 2 pha (2-Phase Commitment Protocol) Trong giao thc y thc 2 pha c bn, c mt tc nhn (mt tc nhn DTM trong m hnh tham chiu), c mt vai tr c bit, c gi l iu phi vin (coordinator), tt c nhng tc nhn khc y thc cho nhau c gi l cc thnh vin (participants). iu phi vin chu trch nhim cui cng v quyt nh y thc hoc hy b. Mi thnh vin tng t nh mt giao tc con m n thc hin vi hnh ng ghi (write action); n l trch nhim cho hiu nng hnh ng ghi ti c s d liu cc b ca n. Chng ta tha nhn rng mi thnh vin ti mt v tr khc nhau. Ch rng khi giao tc thc hin vi hnh ng ghi ti v tr iu phi vin ca n, khi iu phi vin v mt thnh vin cng v tr; mc d n khng cn s dng mng truyn thng, nhng chng ta tha nhn rng n tun theo giao thc nu n nhng v tr khc nhau. Khi nim c bn ca giao thc u thc hai pha l xc nh mt quyt nh duy nht cho tt c thnh vin v vic y thc hoc hy b tt c cc giao tc con cc b. Nu mt thnh vin khng th y thc cc b giao tc con ca n th tt c cc thnh vin khc phi hy b cc b. Giao thc gm c 2 pha: Mc tiu pha u tin ca giao thc l i n quyt nh chung. Mc tiu ca pha th 2 l thc thi quyt nh. Trc tin chng ta gi s rng giao thc u thc hai pha c thc hin trong iu kin khng c s c, sau chng ta tho lun v vic phc hi t tt c cc dng c th xy ra ca s c. Giao thc tin hnh nh hnh 4.5. Pha 1: C mt pha u tin trong khong thi gian iu phi vin yu cu tt c thnh vin chun b y thc (prepare for commitment); mi thnh vin tr li READY nu thc s sn sng y thc v sn sng thc hin. Trc khi gi s chun b u tin v thng tin y thc, iu phi vin lu li an ton bng vic ghi nht k (log record) ca mt dng mi, c gi l ghi nht k prepare, trong , s nhn dng tt c nhng giao tc con tham gia vo giao thc y thc 2 pha u c ghi li. Khi mt thnh vin tr li READY, n m bo rng s c th y thc giao tc con cho d tm thy s khng thch hp ti v tr ca n. Trong thc t, vi cch thc ny mi thnh vin phi lu li an ton 2 iu sau: 1. Tt c thng tin yu cu cho vic y thc cc b giao tc con. Tt c nhng iu lu vo nht k ca giao tc con phi c lu li mt cch an ton. 2. S kin m giao tc con biu th l sn sng cho vic y thc. iu ny c ghi vo nht k di mt dng mi, gi l nht k ready, v c lu li mt cch an ton.
125
iu phi vin:
Ghi prepare vo nht k Gi thng ip PREPARE v kch hot thi gian qu hn Ch thng ip PREPARE If thnh vin sn sng y thc then begin Ghi giao tc con vo nht k Ghi mu tin ready vo nht k Gi thng ip tr li READY n iu phi vin end Else begin Ghi mu tin abort vo nht k Gi thng ip tr li ABORT n iu phi vin end Ch thng ip tr li (READY hoc ABORT) t tt c thnh vin hoc thi gian qu hn If thi gian qu hn ht hoc c vi thng ip tr li l ABORT then Begin Ghi mu tin global_abort vo nht k Gi thng ip ABORT dn tt c thnh vin End Else Begin Ghi mu tin global_commit vo nht k; Gi thng ip COMMIT n tt c thnh vin End Ch thng ip Ghi mu tin abort hoc commit vo nht k Gi thng ip ACK n iu phi vin Thi hnh lnh Ch thng ip ACK t tt c thnh vin Ghi mu tin complete vo nht k
Thnh vin
iu phi vin
Vic iu phi vin quyt nh y thc hoc hy b giao tc nh l kt qu ca nhng cu tr li m n nhn c t cc thnh vin. Nu tt c cc thnh vin u tr li READY th quyt nh y thc giao tc. Nu c mt thnh vin tr li ABORT hoc cha tr li khi thi gian qu hn ht th n s quyt nh hy b giao tc. Pha 2: iu phi vin bt u pha 2 ca giao thc u thc hai pha bng vic lu li an ton nhng quyt nh. iu ny tng t nh vic ghi mu tin global_commit hoc global_abort vo nht k ( l 2 dng mi ca vic ghi vo nht k). S vic iu phi vin lu li an ton nhng quyt nh l phng php m giao tc phn tn s c y thc hoc hy b, mc d khng ph hp. Khi iu phi vin khai bo (inform) tt c thnh vin m quyt nh, bng cch gi cho h thng ip. Tt c thnh vin ghi lnh commit hoc abort vo nht k, lm c s cho thng ip thu c t iu phi vin. T by gi, quy trnh phc hi cc b c kh nng m bo hiu qu ca giao tc con v s khng b tht bi (lost). Nh trong c s d liu tp trung, tt c nhng mu tin trong nht k c quan h vi nhng giao tc con c th hot ng c lp (taken offline) sau im kim tra (checkpoint) tip theo. Cui cng, tt c thnh vin gi thng ip xc nhn (ACK) n iu phi vin, v thc hin nhng hnh ng cn thit cho vic y thc hoc hy b giao tc con. Khi iu phi vin thu c mt thng ip ACK t tt c cc thnh vin, v s ghi vo nht k di mt dng mi, gi l mu tin complete. Sau khi ghi mu tin ny, iu phi vin c th qun kt qu ca giao tc; v vy, tt c nhng mu tin c quan h vi giao tc ny c th hot ng c lp sau im kim tra tip theo. Ch rng thng ip ACK khng hon ton xc nhn rng thng ip c nhn, nhng n l mt thng ip bnh thng ca giao thc, cho bit lnh c lu li an ton. V vy, mc d mng truyn thng t ng gi nhng xc nhn tr v, nhng mt thng ip ACK r rng l cn thit. Giao thc giao thc u thc hai pha phc hi nhanh nhng s c c lu li trong nht k. By gi chng ta i phn tch cch x l giao thc khi c cc s c khc nhau. 1. S c v v tr (site failures) a. Mt thnh vin gp s c trc khi ghi mu tin readyghi vo nht k Trong trng hp ny, thi gian qu hn ca iu phi vin ht, v quyt nh hy b. Tt c cc thnh vin trc thuc hy b nhng giao tc con ca n. Khi thnh vin b s c c phc hi, quy trnh s bt u li (restart) m khng cn phi tp hp thng tin t nhng v tr khc.
127
b. Mt thnh vin gp s c sau khi ghi mu tin ready vo nht k Trong trng hp ny, nhng v tr ng s kt thc giao tc (y thc hoc hy b). Khi v tr s c phc hi, quy trnh bt u li yu cu iu phi vin hoc mt s thnh vin khc v kt qu (outcome) ca giao tc, v khi n s thc hin hnh ng thch hp (y thc hoc hy b). Trong trng hp ny, truy cp thng tin phc hi t xa l cn thit. Trong s tho lun trn, chng ta coi vic ghi vo nht k v vic gi thng ip nh l mt hnh ng nguyn t (atomic action). Tuy nhin, trong h thng thc th mt s c c th xy ra sau khi nht k c ghi v trc khi thng ip c gi. Trong trng hp ny iu phi vin v tt c nhng thnh vin trc thuc khc s thc hin nh phn (1a), trong khi thnh vin b s c th s thc hin bt u li nh m t. Trong phn tip theo chng ta s tha nhn rng vic ghi vo nht k v vic gi thng ip nh to thnh mt hnh ng nguyn t. c. iu phi vin gp s c sau khi ghi mu tin prepare nhng trc khi ghi mu tin global_commit hoc global_abort vo nht k. Trong trng hp ny, tt c nhng thnh vin tr li READY phi ch s phc hi ca iu phi vin. Quy trnh bt u li ca iu phi vin tha nhn giao thc y thc t lc khi u, gii thch tnh ng nht ca nhng thnh vin t vic ghi mu tin prepare vo nht k, v gi li thng ip PREPARE cho h. Mi thnh vin sn sng phi tha nhn rng thng ip PREPARE mi l mt s ti din ca mt thng ip trc. d. iu phi vin gp s c sau khi ghi mu tin global_commit hoc global_abort nhng trc khi ghi mu tin complete vo nht k. Phn ny, iu phi vin ti vic bt u li phi gi li cho tt c cc thnh vin nhng quyt nh. Tt c nhng thnh vin khng nhn c lnh phi ch cho n khi iu phi vin phc hi. Nh phn trc, nhng thnh vin khng nn b nh hng bi vic nhn thng ip th hai. e. iu phi vin gp s c sau khi ghi mu tin complete vo nht k. Trong trng hp ny, giao tc c kt thc ri v khng c hnh ng cn thit ti vic bt u li. 2. Thng ip b mt a. Mt thng ip tr li (READY hoc ABORT) t mt thnh vin b mt. Trong trng hp ny thi gian qu hn ca iu phi vin ht, v giao tc b hy b. Ch rng s c ny ch c quan st bi iu phi vin t im nhn chnh xc mt s c ca thnh vin. Tuy nhin, thnh vin khng lm cho t n b s c v khng thi hnh quy trnh bt u li. b. Mt thng ip PREPARE b mt.
128
Trong trng hp ny, thnh vin vn i. Kt qu ton cc l nh trng hp trc, v iu phi vin khng nhn c tr li. c. Mt thng ip lnh (COMMIT hoc ABORT) b mt. Vi giao thc nh hnh 4.5, thnh vin vn khng chc chn v quyt nh. Rt n gin loi tr vn ny bng cch m u thi gian qu hn trong thnh vin; nu khng c lnh no c nhn sau khong thi gian qu hn th khi tr li, mt yu cu nhc li l lnh c gi. d. Mt thng ip ACK b mt. Vi giao thc nh hnh 4.5, iu phi vin vn khng chc chn v s kin m thnh vin nhn thng ip lnh. Vn ny c th c loi tr bng vic m u thi gian qu hn trong iu phi vin; Nu khng c thng ip ACK c nhn sau khong thi gian qu hn t lc pht lnh, iu phi vin s gi li lnh . Phng n tt nht x l trng hp ny l gi li thng ip ACK ti v tr thnh vin, mc d giao tc con c hon thnh trong thi gian ch v khng hot ng lu hn. 3. Nhng phn vng mng Gi s rng mt phn vng n xut hin, nhng v tr c phn chia thnh 2 nhm, nhm m n bao hm iu phi vin v c gi l nhm iu phi vin (coordinator-group), nhm cn li l nhm thnh vin (participantgroup). T im nhn ca iu phi vin, phn vng c gi l tng ng vi s c phc tp ca mt tp cc thnh vin, v tnh hung l tng t nh phn (1a) v (1b) trn: iu phi vin quyt nh v gi lnh cho tt c cc thnh vin thuc nhm iu phi vin, cho nhng v t ny c th hon thnh ng giao tc. T im nhn ca nhng hi vin (members) trong nhm thnh vin, phn vng l tng ng vi mt s c iu phi vin v c gii quyt tng t nh trng hp (1c) v (1d). Ghi ch rng quy trnh phc hi v tr m n bao hm trong vic x l giao tc phn tn l phc tp hn trong c s d liu tp trung. Vi nhng c s d liu tp trung: ch 2 trng hp xy ra: Nhng giao tc hoc l y thc hoc l khng y thc, v c ch phc hi thc hin tng ng vi vic hi li nhng hnh ng. Trong c s d liu phn tn, cn c nhng trng hp c th xy ra: 1. Mt thnh vin sn sng (trng hp 1b): trng thi ny c nhn ra bng c ch phc hi ti v mu tin sn sng l trong nht k, nhng khng y thc hoc hy b mu tin. 2. Mt iu phi vin bt u pha 1 (trng hp 1c): Trng thi ny c nhn ra bng c ch phc hi ti v mu tin prepare l trong nht k, nhng mu tin khng global_commit hoc global_abort.
129
3. Mt iu phi vin bt u pha 2: Trng thi ny c nhn ra bng c ch phc hi ti v mu tin prepare v mt mu tin global_commit hoc global_abort l trong nht k, nhng mu tin khng hon thnh.
130
Cu hi v bi tp cui chng 1. Qun l giao tc l g? Cc tiu chun, mc tiu ca giao tc. 2. Vn qun l kho trong giao tc. 3. Cc loi li thng xy ra tr h thng phn tn v cch phc hi chng 4. Cch khi phc mt giao tc phn tn 4. Nguyn tc hot ng cc giao thc y thc 2 pha
131
ton iu khin tng tranh tch bit vi thut ton con trong mi bi ton con. Thc ra, cc thut ton con u c cc thut ton iu khin tng tranh trong h qun tr c s d liu phn tn dng vi hai k thut chnh: kha hai pha v th t nhn thi gian. 5.1. M hnh x l giao tc hiu mt thut ton iu khin tng tranh hot ng nh th no, trc ht phi hiu xem thut ton tc ng ln ton b c s d liu phn tn nh th no. 5.1.1. Cc nh ngha Thng thng mi trm trong mt h phn tn l mt my tnh chy mt hoc hai modul phn mm: qun l giao tc (TM-Transaction Management) hoc qun l d liu (DT-Data Management). Cc TM qun l mi tng tc gia ngi dng v h qun tr c s d liu phn tn (DDBMS) trong khi DM qun l c s d liu hin ti. d dng trnh by cc nh ngha lin quan n TM v DM chng ta gi s rng, mng l mt h thng giao tip gia cc my tnh, c tin cy tuyt i, ngha l: nu trm A gi thng ip ti trm B th trm B c m bo l nhn c thng ip m khng h c li, ng thi vic phn phi cc thng ip ti cc trm theo th t m chng c gi i. Di gc ngi s dng, mt c s d liu bao gm mt tp cc mc d liu logic k hiu l X, Y, Z. Trng thi ca mt c s d liu logic l mt ch nh cc gi tr n cc mc d liu logic trong c s d liu. Mi mc d liu logic c lu ti bt c DM no trong h thng hoc d tha ti mt vi DM. Mt bn sao c lu tr ca mt mc d liu logic c gi l mc d liu lu tr, cc bn sao ca X k hiu l x1,, xm v k hiu x ch n mt mc d liu lu tr bt k. Trng thi ca c s d liu lu tr l mt ch nh cc gi tr ti cc mc d liu lu tr trong mt c s d liu. Ngi dng tng tc vi DDBMS thng qua cc giao tc ang thc thi. Cc giao tc ny l cc truy vn trc tuyn biu din bng ngn ng truy vn c lp hoc cc chng trnh ng dng c vit bi mt ngn ng lp trnh a nng. Tp c logic (logical Readset) v tp ghi logic (logical writeset) ca mt giao tc l mt tp cc mc d liu logic m cc giao tc c, ghi s dng. Tng t, tp c lu tr (stored readset), tp ghi lu tr (stored writeset) l tp cc mc d liu lu tr m giao tc c, ghi s dng. chnh xc ca cc thut ton iu khin tng tranh c nh ngha lin quan ti vic ngi s dng mun bit r s thc thi ca cc giao tc. C hai tiu chun lin quan n vn ny: (1) Ngi dng mong mun rng mi giao tc c bo cho h thng bit l n s c thc hin;
133
(2) Ngi dng mong rng vic tnh ton c thc hin bi mi giao tc l nh nhau cho d n thc thi mt mnh trong mt h thng chuyn dng hay song song vi cc gio tc khc trong mt h thng a chng trnh. y chnh l vn c bn trong iu khin tng tranh. Mt DDBMS gm bn thnh phn (hnh 5.1): cc giao tc, TM, DM v d liu. Cc giao tc kt ni vi cc TM, TM kt ni vi DM v DM qun l d liu (cc TM khng kt ni vi cc TM khc, cc DM cng khng kt ni vi nhau). Chc nng ca TM l qun l cc giao tc. Mi giao tc c thc thi trong DDBMS di s gim st ca mt TM, ngha l giao tc chuyn mi thao tc c s d liu ca n ti TM. Mi tnh ton phn tn cn thit thc thi mt giao tc u c qun l bi TM.
Bn loi thao tc c nh ngha ti giao din giao tc-TM l: READ(X): tr li gi tr ca X trong trng thi c s d liu logic hin hnh.
134
WRITE(X-new value): to mt trng thi c s d liu logic mi trong X c gn gi tr new-value. BEGIN: bt u tnh ton. END: kt thc giao tc. Chc nng chnh ca DM l qun l c s d liu lu tr. tr li cc yu cu t cc giao tc, TM pht lnh ti DM c cha mc d liu lu tr cn thit c hoc ghi vo mc d liu lin quan. 5.1.2. M hnh x l giao tc tp trung. Mt h qun tr c s d liu tp trung bao gm mt m un qun l giao tc (TM-Transaction Manager) v mt m un qun l d liu (DM- Data manager) x l mt ni khc. Mt giao tc T truy cp h qun tr c s d liu bng cch pht ra cc thao tc BEGIN, READ, WRITE v END, cc thao tc ny c x l nh sau. BEGIN: Module qun l giao tc TM khi to mt khng gian lm vic c nhn cho giao tc T, khng gian ny c chc nng nh mt b nh m tm thi lu tr cc gi tr c v ghi vo c s d liu. READ(X): TM tm mt bn sao ca X trong khng gian lm vic ca T. Nu bn sao ny tn ti, gi tr ca n s tr li cho T. Ngc li, TM pht ra mt tn hiu c(X) ti c s d liu ly bn sao ca X t c s d liu, sau gn gi tr va ly cho T v a n vo khng gian lm vic ca T. WRITE(X, new value): TM kim tra li khng gian lm vic ring ca bn sao X. Nu tn ti, gi tr X c cp nht cho gi tr mi. Ngc li, mt bn sao ca X vi gi tr mi c to ra trong khng gian lm vic. Gi tr mi ca X khng c lu trong c s d liu ti thi im ny. END: TM pht ra lnh dm-write(X) cho mi mc d liu logic X c cp nht bi T. Mi lnh dm-write(X) yu cu module qun l d liu cp nht gi tr ca X trong c s d liu c lu bng gi tr ca X trong khng gian lm vic ca T. Khi tt c cc lnh dm-write c thc hin, giao tc T s kt thc qu trnh x l v khng gian lm vic ring ca n c xa i. H qun tr c s d liu c th khi to li T trc mi qu trnh x l lnh dm-write. Tc dng ca vic khi to li T l xa khng gian lm vic ring ca n v thc hin li giao tc T t u. Rt nhiu thut ton iu khin tng tranh s dng thao tc khi ng li nh mt cch lm ng cc hot ng ca giao tc. Tuy nhin, khi mt lnh dm-write n c x l, T c th khng
135
c khi ng li. Mi lnh dm-write ci t mt cch c nh vic cp nht vo c s d liu v chng ta khng c php tc ng n tng phn ca cc giao tc. Mt h qun tr c s d liu phn tn c th trnh nhng kt qu tng phn nh th bng cch s dng mt thuc tnh nguyn t, thuc tnh ny yu cu cc thuc tnh khc ca lnh dm-write ca giao tc c c thc thi hay khng. Thao tc chun ca thuc tnh nguyn t ny l mt th tc gi l cam kt hai pha. Gi s T ang cp nht hai mc d liu X v Y. Khi T pht lnh END th giai on u tin ca cam kt hai pha s bt u, trong khi DM a ra yu cu ghi i vi X v Y. Nhng lnh ny yu cu DM sao chp d liu X v Y t khng gian lm vc ring ca T vo ni lu tr an ton. Nu h qun tr c s d liu b treo giai on u tin, th s khng c thit hi no kho d liu, k t khi khng c mt cp nht no ca T c ghi nhn vo kho lu tr ca c s d liu. Trong sut giai on th hai, TM pht ra lnh dm-write i vi X v Y, yu cu DM sao chp gi tr ca X v Y vo kho d liu. Nu h qun tr c s d liu b treo trong sut giai on th hai, c s d liu c th cha thng tin khng ng, nhng gi tr ca X v Y c lu trong kho lu tr an ton, mu thun ny c th c khc phc bng cch khi phc li h thng: th tc khi phc li c gi tr ca X v Y t ni lu tr an ton v khi phc li cam kt. Ch rng y l m hnh ton hc ca qu trnh x l giao tc, mt c lng chc nng thc ca cc h qun tr c s d liu. Trong khi cc chi tit hot ng ca nguyn t cam kt l quan trng trong vic thit k mt h qun tr c s d liu, nhng chng khng phi l chi tit trng tm hiu v iu khin tng tranh. gii thch cc thut ton iu khin tng tranh, chng ta cn mt m hnh x l giao tc vi nguyn t cam kt nhn thy c, nhng khng bao qut. 5.1.3. M hnh x l giao tc phn tn. M hnh x l giao tc trong mi trng phn tn khc vi trong mi trng tp trung hai im: iu khin cc khng gian lm vic ring v x l cam kt hai pha. - Trong cc h qun tr c s d liu tp trung, chng ta gi thit rng: - Khng gian lm vic ring l mt phn ca TM; - D liu di chuyn mt cch t do gia giao tc v khng gian lm vic ca n, cng nh gia khng gian lm vic ca giao tc v DM. Nhng gi thit trn khng cn thch hp trong h qun tr c s d liu phn tn v cc TM v DM thc hin nhng a im khc nhau v chi ph di chuyn d liu gia TM v DM l kh ln. gim chi ph ny, nhiu h qun tr c s d liu phn tn s dng cc th tc truy vn ti u hoc t chc b nh
136
m cho khng gian lm vic c nhn ca giao tc nhm iu chnh lung d liu gia cc a im. Chng hn, trong SDD-1 khng gian lm vic c nhn ca giao tc T c phn b ti mi a im m T truy xut d liu. Gi s T ang cp nht cc mc d liu x, y, z c lu tr tng ng ti DMx, DMy, DMz v gi s TM ca T b tht bi sau khi pht ra lnh dmwrite(x) nhng trc khi pht ra lnh dm-write i vi y v z. Lc ny, chc chn c s d liu khng cn chnh xc. i vi h qun tr c s d liu tp trung hin tng d thng ny khng c g nguy hi v khng c mt giao tc no c th truy xut vo c s d liu cho n khi TM khi phc li. Tuy nhin, trong cc h qun tr c s d liu phn tn, cc TM khc vn c th thc hin lnh v truy xut vo c s d liu khng chnh xc. trnh hin tng ny, cc lnh tin ghi d liu phi c thay i mt t. Thm vo , cc mc d liu c t phi c sao chp vo mt vng nh an ton, ng thi cc lnh tin ghi d liu cng phi ch r nhng DM no c lin quan n s dch chuyn. Sau , nu TM cn b tht bi trong sut giai on th hai ca qu trnh dch chuyn hai giai on, cc DM ca cc lnh dm-write khng c pht ra c th nhn ra trng thi v kt qu ca cc DM c lin quan n vic dch chuyn. Nu bt k mt DM no nhn mt lnh dm-write, cc DM cn li s hnh ng nh th chng cng nhn c lnh. Nh trong cc h qun tr c s d liu tp trung, mt giao tc T truy xut h thng bng cch pht ra lnh BEGIN, READ, WRITE v END. Trong h qun tr c s d liu phn tn, nhng qu trnh din ra nh sau: BEGIN: TM to mt khng gian lm vic ring cho T. Chng ta khng bit c v tr v t chc ca khng gian lm vic ny. READ(X): TM kim tra khng gian lm vic ring ca T xem c tn ti bn copy ca X khng. Nu c, gi tr sao chp c gn cho T. Ngc li, TM chn mt s gi tr sao chp ca X c lu li, gi l xi v pht ra lnh dmread(x) ti DM m x c lu li. DM tr li bng cch to ra gi tr lu li ca x t c s d liu, a n vo khng gian lm vic ring. Sau TM tr li gi tr ny cho T. WRITE(X, new-value): gi tr ca X trong khng gian lm vic ring ca T c cp nht bng gi tr mi l new-value, khng gian lm vic cha bn sao ca X. Ngc li, bn sao ca X vi gi tr mi s c to ra trong khng gian lm vic. END: Qu trnh dch chuyn hai giai on bt u. Vi mi cp nht X bi T, v vi mi bn sao c lu li x ca X, TM pht ra lnh tin ghi d liu prewrite(xi) ti DM c cha xi. DM tr li bng cch copy gi tr ca X t khng gian lm vic ring ca T vo vng nh trong an ton ca DM. Sau khi tt c cc
137
lnh prewrite c x l, TM pht lnh dm-write i vi mi bn sao chp ca mi mc d liu logic c cp nht bi T. Mt DM tr li lnh dm-write(xi) bng cch copy gi tr ca x t vng nh an ton vo khng gian nh ca c s d liu. Sau khi tt c cc lnh dm-write u c thc hin, qu trnh x l T kt thc. 5.2. Phn tch bi ton iu khin tng tranh Trc khi phn tch bi ton iu khin tng tranh, ta xt mt s v d v d thng thy c tm quan trng ca vic iu khin tng tranh. V d v cc d thng trong iu khin tng tranh. Mc ch ca iu khin tng tranh l ngn chn nhiu t nhng ngi dng ang truy xut vo c s d liu. Chng ta s tm hiu vn ny thng qua hai v d v cc my rt tin t ng ATM (automated teller machine). Tng ng vi cc yu cu ca khch hng, ATM ly d liu t mt c s d liu, tnh ton v lu kt qu tr li vo c s d liu. D thng 1: Mt cp nht Gi s ti mt thi im c hai khch hng ang c gng gi tin vo cng mt ti khon. Trong trng hp khng c iu khin tng tranh, hai hnh ng ny c th gp rc ri (hnh 5.2). Hai my ATM x l thao tc ca hai khch hng c th c s d ti khon ti cng mt thi im, tnh s d mi mt cch song song ri lu s d mi vo li c s d liu. mng hot ng khng chnh xc: mc d c hai khch hng u gi tin, c s d liu ch phn hi mt hnh ng, hnh ng gi tin ca khch hng cn li b mt bi h thng.
138
D thng 2: Cc kt qu tr v khng thng tht. Gi s c hai khch hng thc hin cc giao tc sau: Khch hng1: Chuyn 1,000,000 $ t ti khon tit kim ca Acme Corporation sang ti khon kim tra ca n. Khch hng 2: In tng s d trong ti khon tit kim v kim tra ca Acme Corporation. Trong trng hp khng c iu khin tng tranh, hai giao tc ny s c rc ri (hnh 5.3). Giao tc u tin c th c s d ti khon tit kim, tr 1,000,000$ v lu kt qu tr v vo c s d liu. Ri giao tc th hai c s d ti khon tit kim v ti khon kim tra, in tng s. Sau , giao tc th nht hon thnh vic chuyn tin bng cch c s d ti khon kim tra, cng thm 1,000,000$ v lu kt qu cui cng vo c s d liu. Khng ging nh trng hp d thng 1, cc gi tr lu trong c s d liu bi thao tc ny l chnh xc. Tuy nhin, thc thi khng ng v s d c in ra bi khch hng 2 l 2,000,000$.
Hai v d ny khng phi l mi tnh hung c th xy ra khi nhiu ngi dng cng truy xut c s d liu. Tuy nhin, chng l nhng v d in hnh ca
139
cc vn iu khin tng tranh ny sinh trong cc h qun tr c s d liu phn tn . 5.2.1. Tnh kh tun t K hiu E ch n s thc thi ca cc giao tc T1, , Tn. E l mt chui thao tc nu khng c cc giao tc thc hin ng thi. Ngha l, mi giao tc c thc hin mt cch hon chnh trc khi giao tc tip theo bt u. Gi s mi thao tc u c nh ngha ng, kt thc mt cch hp l v bo v tnh ton vn d liu. Mt thc thi gi l c tnh kh tun t nu n tng ng vi mt chui thao tc, ngha l nu n to ra cng mt kt qu v c cng tc ng ln c s d liu nh cc chui thao tc. Mt trong nhng yu cu ca iu khin tng tranh trong c s d liu phn tn l phi m bo rng tt c cc thc thi u c tnh kh tun t. Ch cc thao tc truy xut vo c s d liu c lu li l dm-read v dm-write, do n c kh nng to nn mt thc thi mu cho cc giao tc bng cch thc hin cc lnh dm-read v dm-write ti cc DM khc nhau ca h qun tr c s d liu phn tn. Theo tinh thn ny, chng ta to ra mt m hnh thc thi mu chun ca cc giao tc bng mt tp cc log, mi log biu th trt t m ti dm-read v dm-write xy ra trn mt DM (hnh 5.4). Mt thc thi l mt chui nu tn ti mt trt t tuyt i cc giao tc m nu T trc Tj trong th t tuyt i th mi thao tc ca Ti xy ra trc mi thao tc ca Tj trong mi log m c hai xut hin (hnh 5). Bng trc gic, iu ny cho thy cc giao tc thc thi mt cch tun t c cng th ti ti mi DM.
Mt thc thi c th ca T1, T2, T3 c biu din bi cc log sau (ri[x] l thao tc dm-read(x) pht ra bi Ti , wi[x] l mt dm-write(x) do Ti pht ra) Log ca DM A: r1[x1]w1[y1]r2[y1]w3[x3] Log ca DM B: w1[y2]w2[z2] Log ca DM C: w2[z3]r3[z3]
Hnh 5.4: Mt m hnh thc thi mu chun bng cc log 140
Hai thao tc xung t nhau nu chng thc thi trn cng mt mc d liu v u thc hin lnh dm-write. Trong trng hp cc thao tc l xung t nhau th th t m cc thao tc thc hin c ngha quan trng. minh ha cho khi nim xung t, chng ta xt mt mc d liu x v cc giao tc T, Tj. Nu T pht ra lnh dm-write(x) v Tj pht lnh dm-write(x), gi tr c bi giao tc T s ph thuc vo lnh dm-read xy ra trc hay sau lnh dm-write. Tng t, nu c hai giao tc u pht lnh dm-write(x), gi tr cui cng ca x ph thuc vo lnh dm-write no xy ra cui cng. Nhng tnh hung xung t nh vy xy ra tng ng c gi l xung t c-ghi(rw) v xung t ghi-ghi(ww). Thc thi c m hnh ha trong hnh 5.4 theo tng chui. Mi log l mt chui, ngha l khng c s chen ngang ca cc thao tc t cc giao tc khc. Ti DM A, T1 ri n T2 n T3; ti DM C: T2 trc T3. Do , T1, T2, T3 l mt th t ton phn tho mn nh ngha ca chui. Cc thc thi sau khng to thnh chui. DM A: r1[x1]r2[y1]w3[x1]w1[y1] DM B: w2[z2]w1[y2] DM C: w2[z3]r3[z3] Cc thc thi sau khng theo tng chui. Mc d mi log l chui, khng c mt trt t ton phn no thch hp vi mi log. DM A: r1[x1]w1[y1]r2[y1]w3[x1] DM B: w2[z2]w1[y2] DM C: w2[z3]r3[z3] Khi nim xung t cho php m t s tng ng ca cc thc thi. Hai thc thi c gi l tng ng theo tnh ton nu (1) mi lnh dm-read c gi tr d liu c to ra bi cc lnh dm-write ging nhau trong mi thc thi; v (2) lnh dm-write cui cng trn mi mc d liu l ging nhau trn mi thc thi. iu kin (1) m bo rng mi giao tc c cng mt d liu u vo v do vy cho kt qu tnh ton nh nhau. Kt ni vi iu kin (2), n m bo cho c hai thc thi to nn trng thi cui cng ca c s d liu l nh nhau. T ta c th m t cc thc thi c tnh tun t nh sau. Mnh 5.1 Cho T = {T1,,Tm} l mt tp cc giao tc, E l mt thc thi ca nhng giao tc ny v c to mu bi log {L1,..,Lm}. E c tnh kh tun t nu tn ti mt trt t tuyt i ca T sao cho mi cp thao tc xung t Oi v Oj t cc giao tc phn bit T v Tj, Oi din ra trc Oj trong mi log L1Lm nu v ch nu Ti din ra trc Tj theo trt t tuyt i.
141
Gi thuyt trt t tuyt i trong mnh 5.1 c gi l th t kh tun t (serialization order). Nu cc giao tc thc thi mt cch tun t theo th t kh tun t th hiu sut theo tnh ton ca cc giao tc s trng vi tnh ton theo E. c c tnh kh tun t, cc DDBMS phi m bo sao cho mi thc thi thi tha mn iu kin trong mnh 5.1, c th l cc xung t dm-read, dm-write c thc hin theo cc th t lin quan. iu khin tng tranh l mt hot ng iu khin th t c lin quan ca cc thao tc xung t; mt thut ton th hin s iu khin gi l k thut ng b ha (synchronization technique). m bo s chnh xc, cc DDBMS phi tch hp k thut ng b ha nhm m bo cc iu kin trong mnh 5.1. 5.2.2. M hnh iu khin tng tranh. Trong mnh 5.1, xung t rw v ww c xem nh nhau theo khi nim xung t thng thng. Tuy nhin, chng ta c th phn tch khi nim tnh kh tun t bng cch phn bit hai loi xung t ny. Cho E l mt thc thi c to mu bi mt tp cc log. Ta nh ngha cc quan h nh phn trn cc giao tc trong E, k hiu vi cc ch s di khc nhau. Vi mi cp giao tc Ti v Tj: (1) Ti ri mi ghi. (2) Ti mi c. rwTj nu trong mt s log ca E, Ti c mt s mc d liu vo Tj wrTj nu trong mt s log ca E, Ti ghi mt s mc d liu ri Tj
(3) Ti wwTj nu trong mt s log ca E, Ti ghi mt s mc d liu ri Tj mi ghi. (4) Ti rwrTj nu Ti rwTj hoc Ti wrTj (5) Ti Tj nu Ti rwrTj hoc Ti wwTj Ta thy, (km theo ch s di) c ngha l phi c thc hin trc trong mi chui kh tun t. Mi xung t gia cc thao tc trong E c biu din bng mt miquan h . Do , ta c th pht biu li mnh 5.1 di dng . Theo mnh 5.1, E l kh tun t nu tn ti mt th t tuyt i ca cc giao tc m ph hp vi . iu kin sau cng ny c m bo nu v ch nu khng l quan h vng trn (mt quan h khng l quan h vng trn nu khng tn ti mt chui T1 T2, T2 T3,,Tn-1 Tn m T1 =Tn) . Chia thnh cc phn rwr v ww v pht biu li mnh 5.1 nh sau: Mnh 5.2 Cho rwr v ww kt hp vi thc thi E. E c tnh kh tun t nu: rwr v ww khng l quan h vng trn.
142
Tn ti mt th t tuyt i ca cc giao tc ph hp vi mi quan h rwr v ww. Mnh 5.2 l h qu trc tip ca mnh 5.1. Tuy nhin, cch m t tnh kh tun t xut mt phng php phn chia bi ton thnh hai phn n gin hn. Mnh 5.2 gi rng xung t rw v ww c th ng b ha mt cch c lp khng gii hn mc v phi tn ti mt th t tuyt i ca cc giao tc tha mn c hai hoi xung t. iu ny gi cho chng ta s dng mt k thut nhm m bo mt quan h rwr khng l quan h vng trn v mt k thut khc m bo quan h ww khng l quan h vng. Tuy nhin, ngoi vic hai quan h rwr v ww khng vng trn, phi tn ti mt chui th t tha mn mi quan h . Chui th t ny l cht keo kt ni cc k thut ng b ha rw v ww vi nhau. Chia tnh kh tun t thnh ng b ha rw v ww c vai tr quan trng trong tng lai phn bit cc thut ton to nn s ng b rw v ww t cc thut ton gii quyt bi ton iu khin tng tranh i vi c s d liu phn tn. Chng ta s dng cm t k thut ng b ha i vi cc thut ton c v phng php iu khin tng tranh cho cc thut ton mi sau ny. 5.2.3. Thi gian v nhn thi gian trong CSDL phn tn Trong h thng tp trung vic xc nh th t ca s kin A xy ra trc s kin B hoc ngc lai th n gin, t chng ta c th d dng s dng ng h xc nh thi gian mi s kin xut hin. Tuy nhin trong h thng phn tn xc nh mt s kin A mt v tr no xy ra trc hoc sau s kin B ti v tr no li phc tp hn, do ngi ta yu cu ng h tt c cc im phi tuyt i ng b. Mt s iu khin tng tranh phn tn v kho cht trong cc DDBMS cn nhng thut ton ngn cn vic xc nh sp t ca s kin. Xc nh sp t ca s kin l qu trnh gn mi s kin A xy ra trong h thng phn tn vi nhn thi gian TS(A) vi nhng thuc tnh sau: 1. TS(A) nhn duy nht A (tch s kin v tch nhn thi gian). 2. Vi hai s kin A v B, nu A xut hin trc B th TS(A)<TS(B). Bt tin chnh ca nh ngha trn l ngha ca mi quan h "xut hin trc". Bi v n s khng khai bo ng nu hai s kin A v B cng xut hin ri tch ra hai v tr, t chng khng c "ng h chung" o thi gian chnh xc ca tt c s kin xut hin trong h thng phn tn. Bi vy, cn phi nh ngha chnh xc mi quan h no xut hin trc trong h thng phn tn, v gii thiu mt gii thut sn sinh ra nhn thi gian trn hai thuc tnh .
143
Gi s rng chng ta bit ngha ca vic "s kin A xut hin trc s kin B ti a im i", chng ta cng bit ngha ca thi gian t ti v tr . Mi quan h xut hin trc, biu th , c th c khi qut ho trong mi trng phn tn bng cc lut sau: 1. Nu A v B l hai s kin ti cng 1 a im v A xut hin trc b th AB. 2. Nu s kin A c mt thng bo c gi i v s kin B nhn c mt thng bo th AB. 3. Nu AB v BC th AC. Mi quan h l mt quan h th t. Chng ta gi hai s kin A v B khng ng thi xy ra nu khng AB cng khng BA. Xt v d hnh 5.6, s kin A v D, B v E, B v F, C v E v C v F chng khng ng thi. Mi quan h chnh xc ca hai s kin khng ng thi khng xc nh v khng lin quan. Site 1 Site 2
Message M1
Message M2
Local time
Local time
Thuc tnh th hai ca nh ngha nhn thi gian c th trnh by chnh xc hn nh sau: Vi bt k hai s kin A v B, nu AB th TS(A)<TS(B) Chng ta ni rng s kin A l em (anh) ca s kin B nu TS(A) > TS(B) (TS(A) < TS(B)). By gi chng ta xem xt vic pht sinh nhn thi gian c thc hin nh th no. Trc tin cn hiu rng vic gn nhn thi gian duy nht cho mt s kin l cn thit trong h thng phn tn. Khi thm vo mi v tr mt nhn thi gian v v tr c khai bo c ngha quan trng h phn tn xc nh v tr. R rng, h phn tn xc nh v tr c s dng trnh v tr trng vi tt c nhn thi gian v tr khc.
144
Vic bo m yu cu trn phc tp hn nhiu. Trc ht, chng ta s dng ti mi v tr mt b m u n tng, nh vy nhng tin trnh nhn nhn thi gian ti mi v tr c sp t mt cch chnh xc. Qua b m ny, nu tng mi n v thi gian th pht sinh mt nhn thi gian mi. Tuy nhin, vic ng b ho nhng b m ti nhng v tr khc nhau th kh i vi cch tip cn ny. C th thy rng, b m mt v tr, chng hn v tr 1, c s dng sinh ra nhng nhn thi gian th b m ti mt v tr khc, chng hn v tr 2, t y tng nhanh hn. May mn, b m ca hai v tr c th c gi xp x khi mi im gi thng bo gi tr ca b m n cc im khc. Nu mt im nhn mt thng bo vi gi tr nhn thi gian TS ln b m ca n, n tng b m ln TS+1. Trong cch ny, b m ca cc im hp tc vi nhau ng b ho xp x, nu hai im khng hp tc, n khng quan trng nu b m s kin i qua. Xem xt v d hnh 5.1 v gi thit rng b m ti v tr 1 ban u c gi tr l 0 trong khi b m cc b ti v tr 2 ban u mang gi tr 10. Vi (x,y) tng ng vi nhn thi gian xut pht t v tr y khi b m cc b c gi tr x. Bi vy, ban u TS(A)=(0,1) v TS(D)=(10,2). A v D khng ng thi, t trnh t bt k. Khi thng bo M2 ti v tr 1, n mang theo nhn thi gian D, t y b m cc b ca v tr 1 c y xung v TS(B)=(11,1). Khi thng bo M1 ti v tr 2, t n mang theo nhn thi gian nh th i theo b m ca v tr 2, b m n c tng ln v TS(E)=(11,2). Ch rng TS(E) bt ng t TS(B) trong v tr c khai bo. Hai s kin khng thi c c "ng" nhn thi gian. Cui cng, ch rng chng ta lun s dng b m, khng u n trong khi thc hin nhn thi gian. Tuy nhin, trong mt vi ng dng n c th thun tin khi s dng b m u n. Trong cch ny nhn thi gian phn nh mt cch gn gi khi mt s kin xut hin trong thi gian thc. 5.3. Cc k thut iu khin tng tranh 5.3.1. Cc k thut ng b ha da trn kha hai pha Kha hai pha (2PL-Two-Phases Locking) c s dng ng b ha vic c v ghi bng cch pht hin v ngn chn mt cch dt khot cc xung t gia cc thao tc hin hnh. Trc khi c mc d liu x, mt giao tc phi s hu mt kha c (readlock) trn x. Trc khi ghi ln x, n phi s hu mt kha ghi (writelock) trn x. Quyn s hu cc kha b chi phi bi hai quy tc: (1): Cc giao tc khc nhau khng th ng thi s hu cc kha xung t. (2): Khi mt giao tc t chi quyn s hu mt kha, n khng bao gi c c kha no khc.
145
nh ngha kha xung t (conflicting lock) ph thuc vo loi ng b ha ang thc hin: i vi ng b ha rw, hai kha xung t nhau nu: (a) c hai kho u thuc v mt mc d liu v (b) khi mt kha l kha c v kha kia l kha ghi; i vi ng b ha ww, hai kha xung t nhau khi: (a) c hai kho u thuc v mt mc d liu v (b) c hai u l kha ghi. Quy tc th hai v quyn s hu kha xut pht t nguyn nhn mi giao tc u c kha theo kiu hai pha. Trong sut qu trnh pht trin pha, giao tc thu c cc kha m khng cn phi gii phng bt k mt kha no. Bng cch gii phng kha, giao tc chuyn sang pha co li (shrinking phase). Trong sut pha ny, giao tc gii phng cc kha v quy tc 2 ngn chn vic thu thn thm kha mi. Khi mt giao tc kt thc (hoc b hng), mi kha cn li t ng c gii phng. Trong cc DDBMS cc giao tc c yu cu s hu mi kha trc khi thc hin v mt s h thng cng yu cu cc giao tc gi li mi kha cho n khi kt thc. Kha hai pha l mt k thut ng b chnh xc, ngha l 2PL thu c mt quan h khng vng trn rw( ww) khi dng s ng b rw (ww). Th t chui tun t thu c t 2PL c xc nh bi trt t cc giao tc s hu kha. Khi mt giao tc s hu mi kha m n tng s hu, gi l thi im kha ca giao tc. Cho E l mt thc thi s dng 2PL ng b ha rw (ww). Quan h rw ( ww) sinh ra bi E c ng nht vi quan h sinh ra bi mt chui thc thi E m trong mi giao tc u thc hin thi im kha ca n. Do , cc im kha ca E xc nh th t tun t ca E. 5.3.2. Qu trnh thc hin 2PL c bn Qu trnh thc hin ca 2PL thc cht l mt qu trnh lp lch 2 PL, mt m un phn mm s nhn cc kha yu cu v kha gii phng ng thi x l chng theo ch nh ca 2PL. Cch thc hin 2PL c bn trong mt c s d liu phn tn l phn b lch trnh theo c s d liu, thay lch trnh i vi mc d liu x ti DM m x c lu li. Trong s thc hin ny, cc kha c s c cc lnh dm-read v dmwrite yu cu, cng c th c cc lnh tin ghi d liu yu cu. Nu kha c yu cu khng c cp, thao tc c a vo hng i, dn ti tnh trng nghn (deadlock). Cc kha ghi c gii phng hon ton bi lnh dm-write. Tuy nhin, gii phng cc kha c, mt thao tc gii phng kha c bit c yu cu. Nhng qu trnh gii phng kha ny c thc hin song song vi lnh dm-write, khi tn hiu dm-write bt u pha co li. Khi mt kha c gii phng, cc thao tc trong hng i ca mc d liu c x l theo th t vo trc ra trc (FIFO).
146
Ch rng qu trnh thc hin ny t ng x l d liu tha mt cch chnh xc. Gi s mc d liu logic X c cc bn copy x1, ,xm. Nu 2PL c bn c dng trong ng b rw, mt giao tc c th c bt c mt bn copy no v ch cn thu c mt kha c trn bn copy ca X m n c thc s. Tuy nhin, nu mt giao tc c cp nht th n phi cp nht mi bn copy ca X v do phi thu kha ghi ca tt c cc bn copy (d 2PL c bn dng c c cho ng b rw hay ww hay khng). 5.3.3. K thut 2PL sao chp chnh 2PL sao chp chnh (Primary Copy 2PL) l mt k thut 2PL hng s ch vo d liu d tha. Mt bn sao ca mi mc d liu logic xc nh mt bn sao chnh; trc khi truy xut bt c bn sao no ca mc d liu logic, kha thch hp phi c thu trn bn sao chnh. i vi mi kha c, k thut ny i hi nhiu s giao tip hn 2PL. Gi s x1 l bn sao chnh ca mc d liu logic X, giao tc T mong c nhng bn sao khc, xi ca X. c xi T phi kt ni vi hai DM, DM m x1 c lu v DM m xi c lu. Ngc li, i vi 2PL c bn, T s ch kt ni vi DM ca xi. Tuy nhin i vi kha ghi, bn sao chnh 2PL s khng kt ni thm. Gi s T mun cp nht X, dng 2PL c bn, T s pht ra cc lnh tin ghi d liu ti cc bn sao ca X v sau pht lnh dm-write ti mi bn sao ny. Nu dng bn sao chnh 2PL, cc thao tc tng t s c yu cu, nhng ch c lnh prewrite(X1) yu cu mt kha ghi. l cc lnh tin ghi d liu c gi ti cho x1, , xm nhng cc lnh tin ghi d liu cho x2,,xm hon ton khng yu cu kha ghi. 5.3.4. K thut 2PL biu quyt 2PL biu quyt (voting 2PL) l mt dng hot ng khc ca 2PL nhm tc ng ti d liu d tha. 2PL biu quyt c bt ngun t k thut majority consensus ca Thomas v ch thch hp vi kiu ng b ww. Ta s kho st khi nim biu quyt trong ng cnh chuyn d liu hai pha. Gi s giao tc T mun ghi d liu ln X. TM ca n gi lnh tin ghi d liu ti mi DM ang kim sot bn sao ca X. Vi giao thc biu quyt, DM lun hi p tc th. N thng bo nhn cc lnh prewrite v tr li thit lp kha (lock set) hoc ng kha (lock blocked) (theo cch thc hin c bn th n s khng thng bo cho n khi kho c thit lp). Sau khi TM nhn thng bo t cc DM, n s m s kha c thit lp v tr li: nu s lng c thit lp chim a s, TM xem nh mi kha u c thit lp. Ngc li, n i thao tc thit lp kha t cc DM m trc ng kha. Khi ch c mt giao tc chim a s kha trn X ti mt thi im no th ch c mt giao tc ghi ln X c th chuyn sang giai on th hai ca qu
147
trnh chuyn d liu. Mi bn sao ca X do s cng th t c ghi d liu ln. im kha ca mt giao tc din ra khi a s kha ca n l kha ghi ln mi mc d liu trong tp ghi ca n. Khi cp nht nhiu mc d liu, mt giao tc phi c c a s kha trn mi mc d liu trc khi pht ra bt k lnh dm-write no. Theo nguyn tc, 2PL biu quyt thch hp vi ng ha rw. Trc khi c bt k bn sao no ca X, mt giao tc yu cu cc kha c trn mi bn sao ca X , khi a s kha c thit lp, giao tc c th c d liu. 5.3.5. K thut 2PL tp trung. Thay v phn phi lch trnh 2PL ta c th tp trung n ti mt trm n. Trc khi truy xut d liu ti bt k trm no, cc kha thch hp phi c thu li t lch trnh 2PL trung tm. Do , chng hn khi thc hin lnh dm-write(x) m x khng c lu ti trm trung tm, TM trc ht phi yu cu mt kha c trn x t trm trung tm, i trm ny tr li l kha c thit lp ri gi dm-read(x) ti DM ang kim sot x. Ging nh bn sao chnh 2PL, phng php tip cn ny hng n yu cu nhiu kt ni hn phng php 2PL c bn, khi cc lnh dm-read prewrite hon ton khng yu cu kha. 5.3.6. Pht hin v ngn chn tc nghn Cc cch thc hin ca phng php 2PL ni trn bt buc cc giao tc phi i cc kha khng c hiu lc. Nu qu trnh ch i ny khng c iu khin s dn n tc nghn (hnh 5.7). Cc khi tc nghn c m t bng cc th ch (waits-for graph). th ch l mt th c hng dng ch ra giao tc no ang i cc giao tc khc. Cc nh ca th l cc giao tc, cung biu th mi quan h ch: mt cung i t giao tc T n giao tc Tj nu T ang i mt kha m Tj ang s hu. Tn ti mt khi tc nghn trong h thng nu v ch nu th ch c cha chu trnh (hnh 5.8). Hai k thut thng dng gii quyt vn tc nghn l ngn chn tc nghn v pht hin tc nghn. Chng ta gi th ch cc b (Local wait-for graph - LWFG) l phn ca th ch ch gm cc nt v cc cnh m hon ton c cha trong mt trm.
148
Gi s cc giao tc thc thi ng thi, mi giao tc pht lnh READ trc khi c bt k giao tc no pht lnh END. S thc thi tng phn ny c biu din bi cc log sau: DM A: r1[x1] DM B: r2[y2] DM C: r3[z3] Ti mi im ny: T1 c kha c trn x1 T2 c kha c trn y2 T3 c kha c trn z3 Trc khi tip tc, mi giao tc phi thu c kha ghi T1 yu cu kha ghi trn y1 v y2 T2 yu cu kha ghi trn z2 v z3 T3 yu cu kha ghi trn x1 Nhng T1 khng th nhn kha ghi trn y2 cho n khi T2 gii phng kha c T2 khng th nhn kha ghi trn z3 cho n khi T3 gii phng kha c T3 khng th nhn kha ghi trn x1 cho n khi T2 gii phng kha c y l 1 trng hp tc nghn.
Hnh 5.7: Tc nghn
149
T1 phi i T2 gii phng kha c trn y2 T1 T3 phi i T1 gii phng kha c trn x1 T3 5.3.6.1. Ngn chn tc nghn Vn ngn chn tc nghn cn phi c ch k khi mt giao tc b khi ng li v h thng c nguy c xy ra tc nghn. thc hin vic ngn chn tc nghn, lch trnh 2PL c iu chnh nh sau: Khi c mt kha c yu cu b t chi, lch trnh kim tra giao tc pht ra yu cu (gi l Ti) v giao tc ang s hu kha (Tj). Nu Ti v Tj qua c cuc kim tra th Ti c php i Tj din ra, ngc li, mt trong hai giao tc s b hy b. Nu Ti khi ng li, thut ton ngn chn tc nghn gi l khng u tin theo th t (nonpreemptive), nu Tj khi ng li th thut ton gi l u tin theo th t (preemptive). Bi kim tra a vo lch trnh phi m bo rng nu Ti i Tj th tc nghn khng th cho ra kt qu. Mt cch tip cn n gin l khng bao gi cho Ti i Tj. iu ny khng c ngha i vi vic ngn chn tc nghn nhng li c hiu lc trong nhiu trng hp khi ng li. Mt cch tip cn hay hn l nh du cc thuc tnh ca cc giao tc v kim tra quyn u tin quyt nh xem Ti c i Tj khng. V d Ti i Tj nu Ti c u tin thp hn Tj (nu c hai c cng u tin, Ti khng th i Tj hoc ngc li). Vic kim tra ny ngn chn c tc nghn v vi mi cung (Ti,Tj) trong th ch, Ti c u tin thp hn Tj. V chu trnh l ng i t mt nh n chnh n v v Ti khng th c u tin thp hn chnh n nn khng th tn ti chu trnh. Mt vn ny sinh khi s dng phng php ny l s khi ng li theo chu k. Mt s giao tc c th lin tc khi ng li m khng th kt thc. trnh li ny, Rosenkrantz et al. ngh dng nhn thi gian (timestamps) lm u tin. Nhn thi gian ca mt giao tc l thi im n bt u thc hin, do , mt giao tc c c u tin ln hn giao tc mi. K thut ny yu cu mi giao tc phi c TM ca n gn cho mt nhn thi gian duy nht. Khi mt giao tc bt u, TM c ng h a phng v gn mt du hiu nhn dng TM duy nht cho cc bt c th t thp. S thu c l nhn thi gian. TM s khng gn nhn thi gian khc cho n khi ng h pht tn hiu tip theo. Do vy, cc nhn thi gian do cc TM khc nhau gn l khc
150
nhau trong cc bit c th t thp, trong khi cc nhn thi gian c gn bi cng mt TM li khc nhau cc bit c th t cao (v TM khng dng mt ng h hai ln). V th, nhn thi gian l duy nht trong h thng. K thut ny khng yu cu ng h ti cc trm khc nhau phi c ng b ha trc khi tin hnh thut ton. Hai s ngn chn tc nghn d trn nhn thi gian l Wait-Die v Wound-Wait . Wait-Die l k thut khng theo ch u tin. Gi s giao tac Ti c i Tj. Nu Ti c u tin thp hn Tj th Ti c php i. Ngc li, n b hy v phi khi ng li. Mt iu quan trng l Ti khng c gn li nhn thi gian mi khi khi ng li. Wound-wait l mt bn sao c thc hin ch u tin ca wait-die. Nu Ti c u tin cao hn Tj th Ti i, ngc li Tj b hy. C Wait-Die v Wound-Wait u trnh c hin tng khi ng theo chu k. Tuy nhin, trong k thut wound-wait, mt giao tc c c th khi ng nhiu ln, trong khi nu s dng k thut wait-die th giao tc c s khng bao gi khi ng li. Khi dng k thut ngn chn tc nghn trong chuyn giao d liu hai pha, phi ch rng mt giao tc khng c php hy khi pha th hai dx bt u. Nu mt k thut c s dng ch u tin mun hy Tj, n s kim tra TM ca Tj v hy lnh hy Tj nu Tj bt u chuyn sang giai on th hai. Kt qu thu c l khng c tc nghn nu Tj ang pha th hai, n khng th i bt k mt giao tc no c. Sp xp trc cc ti nguyn (Preordering of resources) l mt k thut trnh tc nghn m hon ton trnh c vic khi ng li. K thut ny yu cu phi khai bo trc cc kha ( mi giao tc phi thu nhn mi kha trc khi bt u). Cc mc d liu c nh s v mi giao tc yu cu tng kha mt theo th t c nh s. u tin ca cc giao tc l gi tr cao nht ca kha c nh s ca ca n. V mt giao tc ch c th i cc giao tc c u tin cao hn nn khng x ra tc nghn. Ngoi yu cu khai bo trc, bt tin chnh ca k thut ny l n i hi cc kha phi c th t, iu ny lm tng thi gian tr li. Xt thc thi trong hnh 5.7 v 5.8 Cc kha c yu cu ti cc DM theo th t sau: DM A kha c x1 choT1 kha ghi y1 cho T1 *kha ghi x1 cho T3 DM B kha c x1 cho T1 kha ghi y1 cho T1 *kha ghi x1 cho T3 DM C kha c x1 cho T1 kha ghi y1 cho T1 *kha ghi x1 cho T3
151
Khng mt kha c nh du * no c chp nhn v h thng ri vo tnh trng tc nghn. Tuy nhin th ch ti mi DM khng xp vng.
DM A T3 T1 T1
DM B T2 T2
DM C T3
5.3.6.2. Pht hin tc nghn Cc khi tc nghn c pht hin nh vo vic tm kim chu trnh trn th ch. Nu tm thy chu trnh, mt giao tc trn chu trnh c chn hu, gi l victim, do ph hy c tc nghn. cc tiu ha chi ph khi ng li victim, vic chn victim thng c da vo s ti nguyn c dng bi mi giao tc trong chu trnh. Kh khn ln nht trong vic pht hin tc nghn trong mt h thng phn tn l xy dng th ch mt cch c hiu qu. Mi lch trnh 2PL c th xy dng th ch mt cch d dng da vo mi quan h ch cc b. Tuy nhin, nhng th ny khng c tc dng trong vic m t tt c cc tc nghn trong c s d liu phn tn (hnh 5.8). Thay vo , cc th ch cc b phi kt ni thnh th ch tng th. Chng ta hy bn v mt s k thut xy dng th ch tng th pht hin tc nghn: tp trung v phn cp. Trong k thut tp trung, theo nh k, mi lch trnh gi th ch cc b ca n ti b phn pht hin tc nghn. B phn ny kt hp cc th cc b thnh mt h thng th ch bng cch hp cc th cc b li. Trong k thut phn cp, cc trm d liu c t chc thnh cy phn cp vi b phn pht hin tc nghn ti mi nt ca cy. Cc khi tc nghn a phng ti cc trm n c pht hin ti trm; cc khi tc nghn lin quan n hai hay nhiu trm ca cng mt min c pht hin bi b phn pht hin tc nghn min. Mc d hai k thut c cp y khc nhau mc chi tit, nhng c hai u lin quan n chu k chuyn d liu ti b phn pht hin tc nghn ca mt hay nhiu trm. Chu k t nhin ca qu trnh sinh ra hai vn . Th nht, mt khi tc nghn c th tn ti trong vi pht m khng b pht hin v thi gian tr li khng c m bo. gii quyt iu ny, cc b phn pht hin
152
tc nghn phi hot ng thng xuyn hn, tng chi ph pht hin tc nghn. Th hai, mt giao tc T c th khi ng li v nhiu l do khc hn l vn tng tranh (chng hn trm b hng). Cho n khi vic khi ng li ca T c truyn n b phn pht hin tc nghn, b phn ny c th tm thy chu trnh trong th ch c cha T. Mt chu trnh nh th gi l khi tc nghn o (phantom deadlock). Khi pht hin ra mt khi tc nghn o, b phn pht hin tc nghn khng cn khi ng li giao tc khc hn T. S phng c bit cn thit trnh vic khi ng li khng cn thit trong 2PL biu quyt. Chi ph chnh trong vic pht hin tc nghn l khi ng li cc giao tc thc hin cha hon chnh. Vic khai bo trc c th gim c chi ph ny. Bng cch thu cc kha ca giao tc trc khi thc thi, h thng ch phi khi ng li cc giao tc cha thc hin. 5.4. Cc k thut ng b ha da trn th t nhn thi gian Vi mi giao tc c gn mt nhn thi gian duy nht bi TM ca n. TM gn kt nhn thi gian tt c cc dm-read v dm-write thc hin i din cho mt giao tc v cc DM ph thuc x l php ton mu thun trong trt t nhn thi gian. Nhn thi gian ca php ton O k hiu l ts(O). Vic nh ngha nhng php ton mu thun cn ph thuc vo loi ng b ha ang c thc hin v cc kha i lp: - Vi s ng b rw, hai php ton l mu thun nu: (a) c hai php ton trn cng mt phn t d liu v (b) mt l dm-read v mt l dm-write. - vi s ng b ww, hai php ton mu thun nu: (a) c 2 php ton trn cng mt phn t d liu v (b) tt c l dm-write. iu d dng chng minh rng T/O t c mt xp xon rwr (ww) quan h khi s dng cho s ng b rw (ww). Khi mi DM x l nhng cc php ton mu thun trn th t nhn thi gian, mi cnh ca rwr (ww) quan h trng mt th t nhn thi gian. Mt cch tun t, tt c cc ng trong quan h l trong mt trt t nhn thi gian v tt cc giao tc c nhn duy nht, ng thi th t nhn thi gian l dy gi tr c th t. 5.4.1. S thc hin T/O c bn S thc hin ca T/O bao gm vic xy dng chng trnh T/O, l mt phn mm ng gi , phn mm ny nhn cc dm-read v cc dm-write v output cc php ton ny ty theo c im T/O. Trong thc t, cc prewwrite cng phi c x l sut chng trnh T/O cho vic u thc hai pha php ton ng n. Nh trng hp vi 2PL, s thc hin T/O c bn phn bit c cc chng trnh vi c s d liu.
153
Nu chng ta s dng c ch u thc hai pha th chng trnh T/O c bn l kh n gin. Khi , mi DM v mi thnh phn d liu x lu tr DM, chng trnh s ghi li nhn thi gian ln nht ca bt dm-read(x) hoc dmwrite(x) c x l. iu ny chng t R-ts(x) v W-ts(x) l c lp nhau. Vi s ng b rw, chng trnh S hot ng nh nh sau: xt mt dm-read(x) vi nhn thi gian TS. Nu TS<W-ts(x), th S t chi dm-read(x) v b qua thc hin giao tc, ngc li S a ra kt qu dm-read(x) v t li R-ts(x) =Max(Rts(x), TS). Vi dm-write(x) v nhn thi gian TS, S s loi b dm-write nu TS<R-ts(x), ngc li S s a ra kt qu dm-write(s) v t li W-ts(x) = max(W-ts(x),TS). Vi s ng b ha ww, S loi b dm-write(x) vi nhn thi gian TS nu TS<W-ts(x), ngc li a ra kt qu dm-write v thit lp li Wts(x)=TS. Khi mt giao tc b b qua, n c gn mt nhn thi gian mi ln hn nhn c bi TM ca n v khi ng li. K thut khi ng li c cp k hn di y. C ch u thc hai pha l s kt hp nhn thi gian cc prewrite v vic chp nhn hay loi b cc priwrite thay cho cc dm write. u tin chng trnh chp nhn prewrite, n phi m bo chp nhn dm-write tng ng khng c vn g khi dm-write n. Vi rw (hoc ww) ng b, mt S chp nhn prewrite(x) vi nhn thi gian TS n khng phi a ra bt k dm-read(x) no (hoc dm-write(x)) vi nhn thi gian ln hn TS cho n khi dm-write(x) c a ra. Hiu qu cng tng t thit lp kha ghi trn x cho khong thi gian tn ti vic u thc hai pha. thc hin qui tc trn, S m cc dm-read, cc dm-write v cc prewrite. Min-R-ts(x)=Min cc nhn thi gian m cho dm-read(x), Min-W-ts(x) = Min cc nhn thi gian cc bt m cho dm-write(x), Min-P-ts(x) = Min cc nhn thi gian m cho dm-prewrite(x). S ng b Rw c thc hin nh sau: 1. R l mt dm-read(x). Nu ts(R)<W-ts(x), R b loi b ngc li nu ts(R)>Min-P-ts(x), R c lm b m. Ngc li R l output. 2. P l mt prewrite(x). ts(P)<R-ts(x), P b loi b ngc li P c lm vt m. 3. W l mt dm-write(x). W khng bao gi b loi b. Nu ts(W)>Min-Rts(x), W c lm vt m, (nu W l output th n s l nguyn nhn gy ra vt m dm-read(x) b loi b) ngc li W l output. 4. Khi W l output, prewrite tng ng c dng lm vt m. Nu y l l do min-P-ts(x) tng th vt m dm-reads c kim tra li (retested) nhn thy nu c dm-reads no c th l output. Nu y l nguyn nhn
154
tng min-R-ts(x), th b m dm-writes cng c kim tra li, .... iu ny c din t hnh 10. R=dm-read(x). W=dm-write(x). R sn sng nu n n trc yu cu prewrite sm nht: Nu ts(R)<min-P-ts(x). W sn sng nu n n trc yu cu dm-read sm nht Nu tx(W)<min-R-ts(x). Khi dm-write(x) n, thc hin nh sau:
m it
m R or W sn sng
Sai
Dng
ng a ra tt c Ws sn sng v m cc prewrite ca n.
a ra tt c Rs sn sng v m prewrite ca n.
Hnh 5.10: Lm rng b m trong ng b ha T/O rw
Tng t, vic ng b Ww c thc hin nh sau: 1. P l mt prewrite(x). Nu ts(P)<W-ts(x), P b loi b ngc li P l b m. 2. W l mt dm-write(x). vW khng bao gi b loi b. Nu ts(W)>min-Pts(x) th W l vt m ngc lai W l output. 3. Khi W l output, prewrite tng ng lm b m. y l nguyn nhn min-P-ts(x) tng, b m dm-writes c retested nhn thy nu bt k mt dm-write no l output. Nh hnh 5.11 Khi dm-write(x) n, thc hin nh sau:
155
m it
C b m vW no sn sng khong?
Sai
Dng
ng
Vi 2PL, mt bin thng thng c yu cu giao tc khai bo trc cc readsets v writesets ca n, thc hin tt c dm-reads v prewrites trc khi s thc hin bt u. Nu tt c cc ton t c chp nhn, giao tc c m bo thc hin khng cn khi ng li nguy him no. Mt bin khc phi dng li trong qu trnh x l cc ton hng i cho nhng ton hng vi nhn thi gian nh hn. 5.4.2. Lut ghi Thomas Vi s ng b ha ww, chng trnh T/O c bn c th c nh gi mt cch lc quan vic s dng li nhn xt ca THOM79. W l mt dm-write(x) v gi s ts(W)<W-ts(x). Thay cho W b loi b chng ta c th b qua n mt cch d dng v ta gi n l Thomas Write Rule (TWR). Mt cch trc gic, TWR cung cp mt dm-write c gng thay th thng tin lc hu trong c s d liu. Qui lut ny m bo rng hiu qu ca vic cung cp mt bng dm-writes n x l ng nhng ci s xy ra c mt dmwrite c cung cp trong trt t nhn thi gian. Nu TWR c s dng, iu ny khng cn kt hp two-phase commit vo trong thut ton ng b ha ww, mt chng trnh ww thng chp nhn cc prewrite v khng bao gi m cc dm-write. 5.4.3. a phin bn T/O Vi s ng b ha rw chng trnh T/O c bn c th c ci tin nhng thnh phn d liu a phin bn. Vi mi thnh phn d liu x c mt bng R-
156
tss v mt bng gm b i (W-ts,value), gi l cc phin bn. Mt R-tss ca x bn ghi nhn thi gian ca tt c cc ton t dm-read(x) thc hin v cc phin bn bn ghi nhn thi gian v gi tr ca tt c cc ton t md-read(x) thc hin. (Trong thc t th khng th lu tr R-tss v cc phin bn mi ; k thut ny xa cc phin bn c v nhn thi gian c m t trong phn 5.5) a phin bn T/O thc hin k thut ng b rw nh sau : R l mt dm-read(x). R c x l bi vic c mt phin bn ca x vi nhn thi gian ln nht nh hn ts(R) v thm ts(R) vo xs ca bng R-tss ; nh hnh 11a/ R s khng bao gi b loi b. W l mt dm-write(x) v thit lp Interval(W) l khong thi gian t ts(W) n Min W-ts(x)>ts(W) ; nh hnh 11b. Nu bt k R-ts(x) no nm trong Interval(W), W b loi b ngc li W l output v to ra mt phin bn mi ca x vi nhn thi gian l ts(W). Biu din cc phin bn ca mc d liu x trn trc thi gian : Gi tr Nhn thi gian ca W V1 V2 5 10 V3 20 .... ... . 92 100 Vn-1 Vn
x l mt dm-read(x) vi nhn thi gian 95, tm nhn thi ca vW ln nht m nh hn 95, trong trng hp ny l 92. l phin bn bn c. Bi vy trong trng hp ny, gi tr c bi dm-read l Vn-1. Chng ta miu t cc nhn thi gian ca x tng t Cc nhn thi gian R Cc gi tr Cc nhn thi gian W 5 V1 5 7 15 .... . 92 100 Vn-1 Vn 92 100
V2 V3 10 20
W l mt dm-write(x) vi nhn thi gian 93. Interval(W) =(93,100) x l W chng ta to ra mt phin bn mi ca x vi nhn thi gian Cc nhn thi gian R Cc gi tr Cc nhn thi gian W 5 V1 5 7 V2 15 V3 .... . 92 95 Vn-1 Vn 92 100
10 20
157
Tuy nhin, phin bn mi ny lm mt hiu lc dm-read ca phn (a) bi v nu dm-read n sau mt dm-write, n s c gi tr V thay v c gi tr ca Vn-1. Bi vy, chng ta phi loi b dm-write. chng minh tnh ng n ca a phin bn T/O, chng ta phi nhn thy rng mi s thc hin l tng ng cho dy cc thc hin trong trt t nhn thi gian. Thit lp R l mt dm-read(x) n c x l out of order , gi s R c thc hin sau mt dm-write(x) nhn thi gian ca n vt qu ts(R). T R khng tt c cc phin bn vi nhn thi gian ln hn ts(R). Gi tr c bi R l vi gi tr n s c khi n c x l trong trt t nhn thi gian. By gi thit lp W l mt dm-write(x) n c x l out of order ; gi s rng n c thc hin sau mt dm-read(x) nhn thi gian vi nhn thi gian vt qu ts(W). V W khng b loi b, tn ti mt phin bn ca x vi nhn thi gian TS lc ts(W)<TS<ts(dm-read). p li hiu qu ging nh s thc hin theo trt t nhn thi gian. Vi k thut ng b ha ww, a phin bn T/O v c bn l mt phin bn nng cao ca TWR. Mt dm-write(x) thng to ra mt phin bn mi vi nhn thi gian ts(dm-write) v khng bao gi b loi b. S hp nht two-phase commit yu cu rng cc dm-read v cc dmprewrite (nhng khng dm-write) c m nh T/O c bn. Thit lp P l mt vt m prewrite(x) : interval(P) l khong thi gian t ts(P) n min W-ts(s) >ts(P). K thut ng b ha Rw c thc hin nh sau: 1. R l mt dm-read(x). R khng bao gi b loi b. Nu ts(R) nm trong khong interval(prewrite(x)) vi mt vi m prewrite(x) th R c m ngc li R l output. 2. P l mt prewrite(x). Nu mt vi R-ts(x) trong trong interval(P), P b loi b ngc li P c m. 3. W l mt md-write(x). W lun lun output ngay tc khc. 4. Khi W l output, prewrite ca n c m v m cc dm-read c khi ng li nhn thy nu n c th l output. Two-phase commit khng phi l mt kt qu ca k thut ng b ha ww, v dm-write khng bao gi b loi b vi k thut ng b ha ww. R=dm-read(x). R sn sng nu ts(R)interval(P), trong P l b m prewrite(x) bt k. Khi mt dm-write n thc hin nh sau:
158
Output n v b m prewrite ca n
Dng
Hnh 5.13. B m trng cho a phin bn T/O
5.4.4. Duy tr T/O Duy tr trt t nhn thi gian l mt k thut loi tr vic khi ng li trong sut chng trnh T/O. Khi chng trnh nhn mt ton t O n c th l nguyn nhn vic khi ng li trong tng lai, chng trnh dng O cho n khi n chc chn rng khng c s khi ng li sau ny c th. Duy tr T/O i hi rng mi chng trnh nhn cc dm-read (hoc dmwrites) t mi TM trong trt t nhn thi gian. V d nu chng trnh Sj nhn dm-read(x) tip theo bi dm-read(y) t TMi, th ts(dm-read(x)<=ts(dm-read(y)). V mng nhn knh FIFO, trt t nhn thi gian ny c hon thnh bi yu cu TMi gi cc dm-read (hoc cac dm-write) ti Sj trt t nhn thi gian. C ch duy tr T/O b m dm-reads v dm-writes nh l mt phn ca cc ton t thng thng ca n. Khi mt chng trnh lm vt m cho mt ton hng, n nh TM gi n n. Min-R-ts(TM) bng gi tr nh nht nhn thi gian ca bt k b m dm-read t TMi, vi min-R-ts(TMi)=- nu khng mt dm-read no c lm b m. Min-vW-ts(TMi) tng t. C ch duy tr T/O thc hin k thut ng b rw nh sau : 1. R l mt dm-read(x). Nu ts(R)>min-W-ts(TM) bt k Tm no trong h thng, R s b loi b ngc li R l output. 2. W l mt dm-write(x). Nu ts(W)>min-R-ts(TM) vi bt k TM no trong h thng th W l b m ngc li W l output. 3. Khi R hoc vW l output hoc b m iu ny c th lm tng min-Rts(TM) hoc min-W-ts(TM), cc ton t m b khi ng li nhn thy nu n c th l output. Tnh hiu qu l R l output nu v ch nu (a) chng trnh c mt b m dm-write t mi TM, v (b) ts(R)<gi tr nhn thi gia nh nht ca bt k b m dm-write. Tng t, vW l output nu v ch nu (a) c mt b m dmread t mi TM v (b) ts(W)<gi nhn thi gian nh nht ca bt k b m dm-
159
read. Tht vy, R hoc W l output nu v ch nu chng trnh nhn mi dmwrite (hoc dm-read) vi nhn thi gian nh hn nh th n s c bao gi nhn. K tht ng b ha Ww c thc hin nh sau : 1. W l mt dm-write(x). Nu ts(W)>min-W-ts(TM) vi bt k TM no trong h thng, W l b m ngc lai W l output. 2. Khi W l b m hoc output, iu ny c th lm tng min-Wts(TM) b m dm-write b khi ng li ph hp. ngha l chng trnh i cho n khi n c mt b m dm-write t mi TM v sau cc output dm-write vi nhn thi gian nh nht. C ch two-phase commit khng cn phi kt hp cht ch trong c ch T/O bi v md-write khng bao gi b loi b. Mt du prewrite phi c thc thi cho tt c cc mu d liu cp nht, nhng ton t ny khng c x l bi nhng chng trnh c c ch t duy try T/O. S thc hin c ch t duy tr T/O trn tri qua 3 vn nguy him : (1) Nu mt vi TM khng bao gi gi ton t n mt vi chng trnh, chng trnh s get stuck v ngng outputting. (2) Trnh vn th nht, mi TM phi giao tip u n vi mi chng trnh iu ny khng th lm c trong mng rng ln. (3) S thi hnh duy tr qu mc ; thut ton ww l mt trng hp, x tt c dm-writes trong trt t nhn thi gian, khng ch n thun l i lp vi nhau. Cc vn ny c cp di y. Mt lp c nh ngha bi mt readset v mt writeset . V d , C1 : readset={x1}, writeset={y1, y2} C2 : readset={x1, y2}, writeset={y1, y2, z2, z3} C3 : readset={y2, z3}, writeset={x1, z2, z3} Mt giao tc l mt thnh vin ca mt lp nu readset ca n l tp con ca readset ca lp v writeset ca n l mt tp con ca writeset ca lp. V d: T1: readset={x1}, writeset={y1,y2} T2: readset={y2}, writeset={z2,z3} T3: readset={z3}, writeset={x1} T1 l mt thnh vin c C1 v C2 T2 l mt thnh vin ca C2 v C3 T3 l mt thnh vin ca C3
Hnh 5.14 : Cc lp giao tc
160
Cc ton t Null. gii quyt vn u tin, cc TM c yu cu gi n nhn thi gian cc ton t null mt cch nh k mi chng trnh trong s thiu lu lng thc. Mt ton t null l mt dm-read hoc dm-write vi mc ch duy nht l vn chuyn thng tin nhn thi gian v bng cch khai ph ro cn real dm-reads v dm-write. Mt chng trnh ph bin c th thc y TM vi ton t null by vic gi thng ip yu cu. V d vi k thut ng b ha rw. Gi s chng trnh S mun x l mt dm-read vi nhn thi gian TS nhng n khng c b m dm-write n TMi. S c th gi mt thng bo n TMi yu cu mt nul-dm-write vi nhn thi gian ln hn TS. Mt bin s dng ton t null vi nhn thi gian rt ln. V d nu TMi him khi cn thc thi dm-reads n S, TMi c th gi S mt nul-dm-read nhn thi gian v hn vic bo rng TMi khng c nh giao tip vi S cho n khi c thng bo mi. Giao tc classes. Giao tc classes l mt k thut gim bt giao tip trong c ch duy tr T/O v chnh sch chng trnh duy tr t hn. Nh trong s khai bo trc, chc chn rng mi read-set ca giao tc v write-set c bit mc cao. Mt lp c nh ngha bi mt readset v writeset nh hnh 13. Giao tc T l thnh vin ca lp C nu readset(T) l mt tp hp con ca read-set(C) v writeset(T) l mt tp con ca writeset(C). Cc nh ngha khng c mong i thay i tnh tun t trong sut ton t thng thng ca h thng. Vic thay i nh ngha mt lp gn ging nh thay i lt c s d liu v yu cu k thut khng c cp bi ny. Chng ta chc chn rng cc nh ngha lp c lu tr trong cc bng tnh nhng bng ny cha gi tr cho cc site c yu cu chng. Cc lp c truy xut vi cc TM. Mi giao tc thc hin mt TM phi l thnh phn ca mt lp kt hp vi TM. Nu mt giao tc c submitted n mt TM, TM khng c lp cha n, mt giao tc tip ti mt Tm khc ang hot ng. Chng ta chc chn rng mi lp vi chnh xc mt TM, biu th Ci. Thc hin cc giao tc m cc giao tc l thnh vin ca lp C 2 TM, chng ta nh ngha mt lp C khc vi cng mt gii hn nh C v kt hp vi mt TM v C vi mt TM khc. thc hin cc giao tc m cc giao tc l thnh vin ca 2 lp cng mt site chng ta c a chng trnh 2 TM site . Cc lp c khai thc bi cc chng trnh T /O c c ch t duy tr nh sau : Xem xt k thut ng b ha rw v gi s rng chng trnh S mun output dm-read(x). Thay v i cc dm-write vi nhn thi gian nh hn t tt c cc TM, S ch i cc dm-write t cc TM m cc lp writeset ca n cha x. Tng t, x l mt dm-write(x), S ch i cc dm-read vi nhn thi gian nh hn t cc TM m cc lp readset cha x. Tht vy cc yu cu giao tip
161
gim bt v mc ca tnh tun t trong h thng tng ln. K thut ng b ha Ww x l tng t. Phn tch th mu thun (CGP). CGP l mt k thut ci tin s thc hin ca c ch t duy tr T/O vi cc lp. Mt th mu thun l mt th v hng tm tt cc kh nng mu thun gia cc giao tc trong cc lp khc nhau. Vi mi lp Ci th cha 2 nt, gm ri v wi n biu din cho readset v writeset ca Ci. Cnh ca th c nh ngha nh sau (xem hnh 15) : (1) vi mi lp Ci c mt cnh ni (dc) gia ri v wi : (2) vi mi cp ca lp Ci v Cj (ij) c mt cnh ngang gia wi v wj nu v ch nu writeset(Ci) ct writeset(Cj) ; (3) vi mi cp ca cc lp Ci v Cj (i<>j) c mt canh cho gia ri v wj nu v ch nu readset(Ci) ct writeset(Cj). C1: readset ={x1} C2: readset = {X2} C3: readset = {x3}
C3:writeset= {x1,z2,z3}
Bng trc gic, ta thy rng mt cnh ngang biu din rng chng trnh S c th b p phi dng cc dm-write cho mc ch ca k thut ng b ha ww. Lp mc ch Ci v Cj c kt ni bi mt cnh ngang (wiwj), biu din rng cc lp writeset ca n ct. Nu S nhn mt dm-write t Ci n phi dng dmwrite cho n khi n nhn tt c cc dm-write vi nhn thi gian nh hn t Ci. Tng t, mt cnh cho biu th rng S c th cn phi dng cc php ton vi k thut ng b ha rw. S phn tch th mu thun ci tin tnh hung bi vic nhn dng cc lp trong mu thun cc lp ny khng th l nguyn nhn hnh vi nonserializable. iu ny dng nhn dng cc cnh ngang v cho rng khng yu cu ng b ha. Trong trng hp c bit, cc chng trnh ch cn cc dm-write ng b t Ci v Cj. Nu (1) cnh ngang ni wi v wj c gn vo mt vng ca th mu thun hoc v tr ca cc im ct ca cc writeset Ci v cc writeset Cj c lu tr hai hoc nhiu hai DM. Tht vy, nu iu kin (1) v (2) khng tha mn chng trnh S khng cn phi x l cc dm-write t Ci v Cj trong trt t nhn thi gian. Tng t, cc dm-read t Ci v cc dm-write t Cj ch cn c x l trong mt trt t nhn thi gian nu (1) cnh cho ni ri v wj c gn vo mt vng trn ca th mu thun hoc v tr ca im ct
162
trong ca readset ca Ci v writeset ca Cj c lu tr 2 hoc nhiu hn 2 DM. T classes c nh ngha mt cch tnh, s phn tch th mu thun cng c thc hin mt cch tnh. S phn tch cc th t a mt bng ch ra cnh ngang hay thng ng no yu cu s ng b v ci no khng yu cu s ng b. Bng ny ging nh cc nh ngha lp c phn b trong s ci tin tt c cc chng trnh cn n. 5.4.5. Qun l nhn thi gian Mt nhc im ca cc chng trnh T/O l tn qu nhiu b nh lu tr cc nhn thi gian. Vn ny c th gii quyt bi qun cc nhn thi gian c. Cc nhn thi gian c s dng trong T/O c bn t chi cc php ton n tr, v d t chi mt dm-read(x) vi nhn thi gian TS1 m n n sau mt dm-write(x) vi nhn thi gian TS2 trong TS1<TS2. Trong trng hp c bit, TS1 v TS2 c th khc nhau vi bt k gi tr thc no. Tuy nhin, trong trng hp c bit n khng chc chn rng cc nhn thi gian ny s khc nhau nhiu hn mt pht. Mt cch tun t, cc nhn thi gian c th c lu tr trong cc bng nh m cc bng c dn dp mt cch mt nh. Cc nhn thi gian ca R-ts c lu tr trong bng R vi mc vo cu cc mu <x,R-ts> ; vi bt k phn t d liu x, c t nht mt mc vo. S b sung, mt gi tr, R-min ni ln gi tr ln nht ca bt k nhn thi gian no m n c dn dp t bng. tm R-ts(x), chng trnh tm bng R t <x,TS> mc vo. Nu mt mc vo c tm thy, R-ts(x)=TS ngc li R-ts(x)<=R-min. li trn cnh ca safety, chng trnh cho R-ts(x)=R-min. cp nht R-ts(x), chng trnh sa i mc vo <x,TS> nu n tn ti. Ngc li mt mc vo mi c to ra v thm vo bng. Khi bng R y, chng trnh s la chn gi tr thch hp cho R-min v xa tt c cc mc vo t bng vi nhn thi gian nh hn. Cc nhn thi gian ca W-ts cng c qun l tng t v cc k thut tng t c th c pht minh cho cc c s d liu a phin bn. S bo tr cc nhn thi gian vi c ch t duy tr T/O t tn km, C ch t duy tr T/O i hi ch cc ton t gn nhn, khng cn d liu gn nhn. Nu c ch t duy tr T/O c s dng cho s ng b rw, cc nhn thi gian ca T-ts ca cc mu d liu c th b loi b. Nu c ch t duy tr T/O c s dng cho c s ng b rw v ww, cc nhn thi gian ca W-ts c th cng b loi b. 5.5. DC-ROLL Ti to bn sao d liu l mt phng php ph bin trong c s d liu phn tn cn bng chuyn ti d liu (load balancing). s dng c hiu qu
163
phng php 2PL truyn thng trong mi trng bn sao, mt bn sao ca mi mc d liu c ch nh lm mc chnh. iu ny dn ti kt qu l lm tng gnh nng cho vic iu khin tng tranh trn cc trm lu d liu "nng". Ni cch khc, cch ny khng th gii quyt vn cn bng chuyn ti d liu mt cch trit c. Chu k d liu (datacycle) l mt cch qun l c s d liu phn tn khng mang tnh truyn thng. Chu k d liu gii quyt mt cch c hiu qu bi ton linh hot (scaleability) nhng t cc rng buc ng k ln kch thc c s d liu v mc ganh ua. DC-ROLL l mt phng php iu khin tng tranh mi trong mi trng phn tn da trn c s "Yu cu trt t danh sch lin kt- Request Order Linked List (ROLL)- v cu trc chu k d liu. DC-ROLL trnh c tht nt c chai ca 2PL truyn thng. N cng n gin ho vic qun l nht qun ca c s d liu trong mi trng bn sao v khng cn b phn iu khin tng tranh trung tm. Khng ging vi chu trnh d liu truyn thng, DC-ROLL khng yu cu gp c s d liu thnh mt khi. Ging ROLL, c s d liu c chia ra, v vy DC-ROLL yu cu rng ng truyn thp hn. 5.5.1. ROLL (Request Order Linked List ). ROLL l mt i tng lu tr d liu iu khin tng tranh, c x l trc tip bng cc giao tc, ngha l hin tng tht nt c chai b loi b. Thnh phn c bn ca ROLL l mt vector bit nhn dng cc yu cu truy xut d liu ca cc giao tc. V tr ca mi bit trong vector bit tng ng vi mt mc d liu khc nhau. Bit c gi tr 1 cho bit giao tc yu cu truy xut vo mc d liu c v tr tng ng vi v tr ca bit, trong khi gi tr 0 bo hiu l giao tc khng truy xut d liu. i tng ROLL l mt danh sch lin kt cc vector bit, mt vector thuc mt giao tc hnh ng. Th t ca cc vector ny trong danh sch lin kt xc nh chui th t thnh phn ca cc giao tc. ROLL cng c mt con tr ui tr ti thnh phn cui cng ca danh sch.
164
5.5.1.1. Cc thao tc ROLL c bn ROLL c th thc hin ba thao tc c bn : POST, CHECK v RELEASE. POST: l mt thao tc nguyn t xc lp chui th t thnh phn ca cc giao tc. Vi mt vector bit yu cu (RBV) c to ra nh trn, mt giao tc POST (chuyn vo hng i) RBV ca n vo danh sch. thc hin thao tc ny, giao tc phi truy xut ti con tr ui, ngha l khng mt giao tc no khc c th POST vo lc ny. Sau , giao tc copy gi tr ca con tr ui vo con tr lin kt ca n v ghi a ch ca RBV vo con tr ui. Giao tc ch POST cc RBV ca n mt ln vo lc bt u qu trnh thc hin ca n, ngha l phng php ROLL c bn i hi khai bo trc. CHECK: cho php mt giao tc kim tra tp d liu ton vn ca cc mc d liu cn thit ca ROLL trong mt thao tc. Thao tc ny khng i hi phi truy xut vo ROLL, tc l mt s giao tc c th thc hin CHECK ng thi. Mt giao tc CHECK bng cch thc hin cc php OR ca cc vector bit trong danh sch. Vector bit tr v l du hiu truy xut ca giao tc. RELEASE mt mc d liu khi hon thnh cc thao tc vi n, giao tc gn gi tr ca bit tng ng bng 0. Nu c giao tc no khc CHECK ROLL sau , n s tm mc d liu thch hp. Cng ging nh CHECK, RELEASE khng yu cu truy xut ring bit. 5.5.1.2. ROLL da trn s iu khin tng tranh. Mt thut ton iu khin tng tranh da trn cc thuc tnh ca giao thc ROLL c tm tt bng nm quy tc sau: 1. Cc giao tc bit c cc mc d liu m chng s dng n khi bt u khi ng. Khi c mt giao tc mi n, n POST mt RBV yu cu truy xut cc mc d liu m n cn. 2. Giao tc mi CHECK ROLL tm mc d liu thch hp. Nu c, n truy xut ngay lp tc, giao tc tip tc.Nu khng c mc d liu thch hp, giao tc phi i, ngha l n b chn li. 3. Cc giao tc b chn theo nh k s CHECK li ROLL th ly li hot ng ca n. 4. Khi mt giao tc hon tt thao tc trn mt mc d liu, n RELEASE mc d liu ngay lp tc. 5. Khi mt giao tc ngng, phi xo RBV ca n ra khi ROLL. Mt b phn lp lch cn c trn nm quy tc ny sinh ra cc chui thc thi thch hp.
165
Phng php ROLL c nhiu li ch ng k. Khng ging cscs s khc da vo khai bo trc, ROLL khng bo th. Mt giao tc khng phi i mi mc d liu n cn. Thay vo , n thc hin vi mt s mc d liu va tr thnh hp l cho thc thi tip theo ca mnh. * Trnh tc nghn. Khi dng ROLL trong iu khin tng tranh th khng c xy ra tc nghn, v mt giao tc ch i cc giao tc nm trc n trong danh sch ROLL. y l mt c trng ca cc phng php iu khin tng tranh theo kiu khai bo trc. Tuy nhin, nh ni, ROLL khng bo th. Nu c mc d liu no khng hp l, giao tc vn tip tc qu trnh thc hin ca n v truy xut vo cc mc d liu hp l khc. 5.5.2. Kin trc chu trnh d liu gc. Khng ging vi cc h c s d liu truyn thng l cc giao tc c chuyn ti cc trm d liu, trong chu k d liu, d liu c chuyn ti cc trm m giao tc ang thc hin. Hnh 16 l cu trc ca m hnh chu trnh d liu. Data Pump pht ton b ni dung d liu cng vi thng tin iu khin tng tranh theo nh k thng qua mt knh c rng bng truyn ln ti b qun l truy xut (Access Manager). B qun l truy xut l cc nt thc ni m giao tc c thc hin. x l dng d liu, b qun l truy xut dng phn cng khch hng lc d liu tng ng vi iu kin c cho v cc thao tc c bn khc. Nu mt giao tc cn chnh sa mt mc d liu, n gi yu cu ti b qun l cp nht (Update Manager) l h thng con ca Data Pump. B qun l cp nht dng mt phng thc iu khin tng tranh m bo tnh kh tun t.
166
Li ch chnh ca cu trc chu k d liu l rng bng tn ca knh d liu yu cu khng ph thuc vo s b qun l truy xut. Tuy nhin, chu k d liu cng c im bt tin. rng bng tn ca knh d liu to ra gii hn ng k ca kch thc c s d liu. Thm ch i vi cc c s d liu c kch thc trung bnh (<100M), rng bng tn ca knh d liu cng phi ln hn 1Gb nu khng th s km hiu qu hn phng php c s d liu phn tn truyn thng. B qun l cp nht s tr thnh mt im tht nt c chai nu s lng cp nht ln. Mt giao tc vi mt chui cc lnh c ph thuc s khng hon thnh mt lnh c sm hn bt c mt chu k no. Do , chu k d liu ch ph hp vi h thng gm t cp nht v truy vn n gin. 5.5.3. DC-ROLL. s dng cc tin li ca chu k d liu v trnh cc nhc im ca n, ta gi s ch dng chu k d liu chuyn d liu iu khin tng tranh. C s d liu vn s c truy xut bng phng php truyn thng: truy xut vo cc mc d liu, cc giao tc gi yu cu ti cc trm ang cha cc mc d liu . Vic x l d liu yu cu l vic n gin v khng bao hm bt c thao tc iu khin tng tranh no. ROLL l mt cu trc iu khin d liu tng tranh l tng. B cp nht d liu ca m hnh chu k d liu gc lc ny s hot ng nh mt b qun l ROLL chung. Cc giao tc POST cc vector bit yu cu ca n ti b qun l ROLL v ton b ROLL c chuyn ti tt c cc trm. Ti mi trm, cc giao tc CHECK xem d liu cn n c hp l khng. Nu c v lnh c l cn thit, yu cu c gi ti cc trm ang cha d liu. Nu mt giao tc ch cn ghi vo mt mc d liu th s dng khng gian lm vic ring cc b thc hin nhim v. chng minh cc li ch ca DC-ROLL, xt mt c s d liu phn tn vi c ti to cho mc x l cao hn. Trong c s d liu c ti to,cc bn sao ca cc mc d liu c lu ti nhiu trm. Cc cp nht phi thc hin trn mi bn sao cu mc d liu c chnh sa. Tr hon cc cp nht c th ci tin hiu sut nhng li sinh ra mt s xung t khng th pht hin: mt giao tc kha bn sao ca cc mc d liu ti mt trm v hi chnh chng trong khi mt giao tc khc thao tc vi mt s bn sao ca cng mt mc d liu. Mt trong nhng giao tc b hy khi n c gng vi phm v chuyn cp nht ca n ti trm khc. trnh tnh trng ny, mt bn sao ca mi mc d liu c nh du l chnh. Mi giao tc c yu cu dng bn sao chnh ca mc d liu m n truy xut.
167
Nh vy, trm cha bn sao chnh ca mc d liu nng s tr thnh im tht nt c chai. Gi s dng 2PL iu khin tng tranh. Cng vi mt s lng ln yu cu ti d liu nng, cc trm nh th s phi x l mt s lng ln nh nhau cc yu cu kha/gii phng. Ngc li, DC-ROLL loi b gnh nng ca iu khin tng tranh mt cch ng k t cc trm lu d liu thc. Khng mt yu cu kha/gii phng no c gi. Thay vo , mi chc nng iu khin tng tranh c x l ti cc trm m giao tc ang thc thi. Hn na, khng cn phi nh du bn sao chnh cho cc mc d liu. Khi mt giao tc hiu chnh bt c bn sao d liu no, vector yu cu cho bit l mc d liu ang c truy xut. Do nhng giao tc khc nhn bit c iu ny v i cho n khi mc d liu hp l trc khi hiu chnh bt k bn sao no ca n. Kt lun, iu khin tng tranh l mt vn ht sc quan trng, c bit l trong mi trng phn tn gip cc DDBMS trnh c cc d thng khng mong mun, m bo tnh chnh xc cho c s d liu. Trong chng ny chng ta bn v m hnh x l giao tc trong mi trng phn tn, trnh by cc khi nim, nh ngha c bn v cu trc ca mt h qun tr c s d liu phn tn , t phn tch c ch iu khin tng tranh. Chng ta cng i nghin cu chi tit cc k thut iu khin tng tranh trong mi trng phn tn l kha hai pha v ng b ha theo th t nhn thi gian cng vi cc phng php pht hin v ngn nga tc nghn. y l hai nhm k thut thng c s dng nht. Ngoi ra cn trnh by mt k thut mi l DCROLL gip trnh c tht nt c chai ca 2PL truyn thng. N cng n gin ho vic qun l nht qun ca c s d liu trong mi trng bn sao v khng cn b phn iu khin tng tranh trung tm.
168
Cu hi v bi tp cui chng 5 1. Cc m hnh x l giao tc trong h tp trung v h phn tn 2. iu khin tng tranh v cc d thng trong iu khin tng tranh 3. Cc k thut iu khin tng tranh thng dng
169
CHNG 6.
6.1. Tng quan v c s d liu hng i tng C s d liu hng i tng thc s pht trin vo cui nhng nm 1980, cc khi nim c s d liu hng i tng hnh thnh mt cch t nhin cng mt lc t cc khi nim ca cc ngn ng lp trnh hng i tng, cc h thng c s d liu v cc m hnh d liu khi nim. Trong nhng thp nin qua, cc h thng c s d liu hng i tng c nhiu ngi quan tm nghin cu v pht trin cc ng dng. Mt s ngi xem h thng ny nh l mt i th quan trng ca h thng c s d liu quan h, t nht l trong mt s cc ng dng phc tp, cc h thng ln, phc hp nh cc h a phng tin, cc h c s d liu thi gian thc, ... S d cc h thng hng i tng ngy nay ang c nhiu ngi quan tm chnh l v trong mt s trng hp cc h thng SQL kinh in khng cn thch hp, v nguyn nhn l do nhng hn ch nht nh ca m hnh quan h. Trong khi cc h thng c xy dng trn m hnh hng i tng li m bo c tnh mm do, tnh linh hot, v tnh m ca h thng. Mc d cha c mt m hnh chung v tiu chun cho cc m hnh hngi tng, cc khi nim trong lnh vc c s d liu hng i tng ang tr nn r rng hn v dch chuyn theo hng tin n chun ho. Bi v rt nhiu khi nim quan h mt cch mt thit vi cc khi nim tng t trong lnh vc ngn ng lp trnh hng i tng, nn chng ta k n cc tham chiu trong ngn ng lp trnh hng i tng. Bn cnh vi u th ni bt ca mnh, cc ngn ng lp trnh hng i tng ngy cng c s dng rng ri. Nhng vic s dng ngn ng lp trnh hng i tng thao tc cc c s d liu quan h c nhng bt cp. Cc h qun tr khng h tr cc khi nim trong cc ngn ng lp trnh hng i tng, cho nn chng ta cn phi nh x qua li gia ngn ng lp trnh hng i tng v cc c s d liu quan h. Khong 30% m (code) trong ng cc dng c dng nh x thit k hng i tng ca ng dng sang m hnh quan h ca cc c s d liu.
170
Khi thit k mt c s d liu, chng ta cn ch trng n trnh by tng th v nh ngha mt lc cho cc quan h tng th. Lc trong m hnh hng i tng bao gm nhng mu i tng v mi quan h gia nhng mu ny. Nhng mu i tng m t cu trc ca cc i tng, bao gm cu trc ca c d liu v c mt hnh vi ca i tng. Nhng mu i tng c gi l cc lp hay cc kiu. Thut ng lp v kiu thng c s dng c th thay th cho nhau. Thng thng, trong ngn ng lp trnh khng c s khc bit gia hai khi nim . Trong cc ngn ng m c phn bit s khc nhau gia kiu v lp, th kiu l mt khi nim tnh nhng ngc li lp l mt khi nim ng. Cc kiu c s dng kim tra tnh chnh xc ca mt chng trnh v khng th thay i vo thi gian chy. Cc lp th khng c s dng kim tra tnh chnh xc ca mt chng trnh. Chng c s dng sinh ra v nhm cc i tng. Mt lp c th c thay i vo thi gian chy. Vi cc thut ng khc nhau cho hai khi nim ny thng s lm lm phc tp v khng cn thit cho s m t, v vy chng ta s tip tc s dng kiu thut ng bao trm cho c hai khi nim. l mt kiu thut ng nh ngha trng thi v hnh vi ca cc th hin ca n. 6.1.1. i tng v nh danh i tng Trong cc h c s d liu hng i tng, mi thc th trong th gii thc c biu din bng mt i tng. Mi i tng l mt th hin ca mt lp, do mt i tng s thuc v mt lp. Mi i tng c xc nh bi mt nh danh i tng (OID) duy nht. i tng phc l nhng i tng m c hnh thnh t cc cu trc d liu khc (tc l tuples, set, bag, danh sch, mng,), v k c nhng i tng khc. Cc nh danh i tng to iu kin thun li cho vic kim sot i tng. 6.1.2. Thuc tnh v phng thc Mi i tng c mt trng thi v mt hnh vi. Thc ra, mt i tng c gi l ng gi c trng thi v hnh vi. iu c ngha l khng c thao tc no bn ngoi nhng g nh r trong giao din c th c thc hin trn
171
i tng. Tnh ng gi cung cp mt dng ph thuc d liu logic m cc chng trnh ng dng c bo v khi b cc thay i thc thi trong cc tng thp hn ca h thng. Trng thi c biu din bi mt tp cc thuc tnh v hnh vi c biu din bi mt tp cc phng thc. Cc phng thc ch r cc thao tc trn thuc tnh v c s dng truy cp n cc thuc tnh. Do vy, cc phng thc hnh thnh nn s kt ni gia d liu v ngi dng. C mt s h thng khng c s phn bit gia phng thc v thuc tnh. Mt phng thc c hai thnh phn: k hiu v thn. K hiu ch r tn ca phng thc, kiu ca cc i s v kiu ca kt qu (nu nh ch c mt kt qu). Mt s ngn ng khng yu cu phn k hiu v mt vi ngn ng khc th phn k hiu l ty chn. Phn thn m t s thc thi ca phng thc v gm mt tp cc cu trc c biu din trong mt ngn ng lp trnh. Cc phng thc c th l hm hoc a tr. Mt phng thc hm ch tr v mt gi tr khi phng thc c p dng cho mt i tng vi mt tp cc i s cho. Nhng phng thc ny cng c gi l cc phng thc n tr. Chng hn, mi ngi c duy nht mt ngy sinh. V vy ngy sinh (birthdate) c th c thc thi nh l mt phng thc hm. Mt phng thc a tr tr v mt hoc nhiu gi tr khi phng thc c p dng cho mt i tng vi mt tp cc i s cho. Cc phng thc a tr cng cn c gi l cc phng thc quan h. Chng hn, mi ngi c th c nhiu con. V vy con (children) c th c thc thi nh l mt phng thc a tr. 6.1.3. Lp Chng ta ni rng mt lp xc nh cu trc v hnh vi ca cc i tng thuc mt dng ring bit. N xc nh cc thuc tnh v cc phng thc ca i tng thuc lp v cc mi quan h m trong cc i tng c kiu lp ny c th tham gia. V d nh, cc i tng ca lp nguoi c th c cc thuc tnh ten, dia_chi v so_dien_thoai, v cc phng thc truy cp n cc thuc tnh ny. Dia_chi c th l mt i tng v vy c mt quan h gia cc i tng lp nguoi v lp dia_chi. V d: Di y l mt khai bo v cc thuc tnh c trong lp GIAOVIEN l tp cc i tng gio vin thuc mt trng i hc. Class GIAOVIEN properties OID: allOID; Hoten: String;
172
Tuoi: Integer; Sothich: set(String); Thuoc: KHOA; Giang: set(MONHOC); Diachi: tuple (Sonha: Integer; Duong: String; Thanhpho: String); operations ........... end GIAOVIEN. Mi i tng trong mt lp c xc nh thng qua tn ca i tng (object-identifier). Chng ta s dng thuc tnh nh danh OID xc nh tn duy nht cho cc i tng trong mi lp vi kiu l allOID. Mt cch hnh thc, ta c mt s k hiu c quy c nh sau: allOID : tp tt c cc nh danh i tng C : tp cc tn lp A : tp cc tn thuc tnh Integer, Real, Boolean, String : tp cc kiu nguyn t (kiu c s) c min tr tng ng ln lt l D1, D2, D3, D4 D : tp cc gi tr nguyn t, hay: D = D1 D2 D3 D4 O : tp cc i tng Mi i tng c th c biu th bi b ba (oid, class_name, value). Trong oid l gi tr thuc tnh nh danh OID ca i tng (nh danh i tng), class_name l tn lp cha i tng ny v value l gi tr ca i tng . Trong m hnh hng i tng, khi nim v gi tr c m rng nh nh ngha sau. Gi tr Cc gi tr trn O c nh ngha nh sau: Mt phn t thuc D hoc thuc allOID l mt gi tr (c gi l gi tr nguyn t). Nu v1, v2, ..., vn l cc gi tr v a1, a2,..., an l cc tn thuc tnh, th [a1: v1, a2: v2, ..., an: vn] l mt gi tr (c gi l gi tr b). Nu v1, v2, ..., vn l cc gi tr phn bit, th { v1, v2, ..., vn } l mt gi tr (c gi l gi tr tp). Ngoi ra, khi nim v kiu (type) cng c m rng nh sau.
173
Kiu (types) Mt lp bao gm mt tp cc i tng c cng kiu. Cc kiu trn C, k hiu l types(C), c nh ngha nh sau: Integer, Real, String, Boolean l cc kiu (cn gi l kiu nguyn t). Cc tn lp trong C cng l cc kiu. Nu T1, T2, ..., Tn l cc kiu v a1, a2,..., an l cc tn thuc tnh phn bit ca A, th [a1: T1, a2: T2, ..., an: Tn] cng l mt kiu (cn c gi l kiu b). Nu T l mt biu thc kiu, th {T} (hoc set(T)) cng l kiu (cn c gi l kiu tp). Lc hng i tng Mt lc hng i tng l mt tp cc lp i tng km cc rng buc, k hiu <C, >, y C l tp cc lp i tng ca lc , v l rng buc d liu trn C. Mt lc hng i tng km vi cc th hin ca cc i tng c trong cc lp i tng l xc nh mt c s d liu hng i tng, k hiu < <C, >, I >, y I l th hin cc phn t ca C. Cc i tng ca cc lp khc nhau c th c cc mi quan h vi nhau. Bi v mt lp c th c xem nh mt kiu d liu tru tng, nn mt mi quan h lin kt gia cc lp i tng cng c th biu din bi mt thuc tnh gi l thuc tnh mi quan h. Ta ni rng: mt lp C1 c thuc tnh mi quan h R vi kiu d liu l lp C2, c ngha l mi i tng thuc lp C1 c quan h nhiu nht vi mt i tng thuc lp C2, v gi tr ca thuc tnh R ti i tng ny chnh l nh danh ca i tng tng ng thuc lp C2. Hin nhin rng nu mi i tng thuc lp C1 c quan h vi nhiu i tng thuc lp C2 th thuc tnh R c xem nh thuc tnh a tr. Khi khai bo kiu d liu ca thuc tnh R trong lp C1 s l set(C2), v gi tr tng ng ca chng chnh l tp cc nh danh ca cc i tng thuc lp C2. Trong c hai trng hp trn, ta cng ni rng: lp C1 c thuc tnh mi quan h R tham chiu n lp C2. Nh vy, thng qua cc thuc tnh mi quan h ca tt c cc lp trong mt lc c s d liu hng i tng, cc lin kt gia cc i tng thuc cc lp khc nhau s c thit lp. iu ny cho php ta c th xy dng mt th phn cp phc hp (composition hierarchy) gia cc lp khc nhau bn trong lc . 6.1.4. K tha Cc lp c th c t chc di dng mt cu trc phn cp. S k tha xc nh mt phn cp k tha m mt lp con l mt c th ha ca cc siu lp ca n. C ngha l, mt lp con k tha cc thuc tnh v cc phng
174
thc ca cc siu lp ca n v cng c th c cc thuc tnh v phng thc ca chnh n. a k tha l k tha m mt lp k tha trc tip t nhiu hn mt cha m. Trong trng hp ny, cc lp c t chc trong mt th c hng khng cha chu trnh. a k tha c th dn n cc nh ngha xung t, mt lp c th k tha mt thuc tnh hoc phng thc vi cc i s nh nhau t cc siu lp khc bit nhau. Cc xung t c th xy ra trong phng thc v cc k hiu thuc tnh hoc trong phng thc v cc nh ngha thuc tnh. Cc truy vn c s dng trch thng tin t cc h c s d liu. Trong mi trng hng i tng, mt truy vn ni chung c hnh thnh trn tp cc th hin ca mt kiu v gm c mt t hp logic ca cc v t biu din cc iu kin trn nhng thuc tnh ca i tng. Truy vn cng c th gi cc phng thc. Li th ca c s d liu hng i tng so vi c s d liu quan h lin quan n cc kh nng m hnh ha d liu ca chng, nh l kh nng m hnh ha cc i tng phc mt cch trc tip, v kh nng xc nh mt lp thc th nh mt c th ha ca mt lp thc th hin hnh. Cc thun li khc lin quan n c ch i vi cc php ton kt hp vi d liu, s phn chia cc nh ngha phng thc thng qua k tha, s loi b cc ng ngha hnh vi ca cc i tng t cc chng trnh ng dng v c ch cung cp mt tn gi cho trng thi ring bit ca i tng. Mt nn tng ton hc c th a ra ng ngha cho d liu, cung cp mt c s thit k c s d liu, cho php s dng cc ngn ng truy vn khai bo n gin, v cc truy vn c th c ti u ha mt cch t ng. Mt trong nhng hn ch ph bin l c s d liu hng i tng khng da trn mt m hnh cht ch hoc nn tng ton hc c th cung cp ng ngha cho d liu cng nh cho php s dng ngn ng truy vn khai bo. Trong tnh hung ngy cng nhiu h thng thng tin vi c s d liu hng i tng, c bit chng hot ng trn mi trng phn tn, th vn nghin cu c s d liu hng i tng phn tn l iu ng quan tm. Trong chng ny chng ta s bn lun mt s vn c s dng cho d liu hng i tng trn mi trng ny. Hin nay hu ht cc ng dng thng mi s dng c s d liu quan h nhng li s dng ngn ng lp trnh hng i tng. Do cn phi c s nh x nhng i tng trong ng dng sang cc bng trong CSDL quan h. Nhng lp c lp, c cu trc n gin th d dng nh x c thnh nhng bng c lp trong CSDL, nhng nu nhng lp c cu trc phc tp th phi cn nhc nh
175
x lm sao cho d liu c truy xut mt cc c hiu qu nht. C 3 cch nh x c bn cc i tng vo CSDL quan h: nh x theo chiu dc
Cch ny thng c s dng khi cc i tng dng chung cc thuc tnh v s thay i gi tr trn cc thuc tnh l s thay i chung. u im ca loi nh x ny l hn ch d tha d liu v ng b nhng n c nhc im l d liu phi tp trung kh phn tn. nh x theo chiu ngang Cch ny c s dng khi cc i tng dng chung mt s cc thuc tnh. S thay i gi tr trn cc thuc tnh khng phi l s thay i chung. Nhc im ca phng php ny l c d tha d liu v khng c ng b nhng li c u im l d liu c th phn tn c.
176
nh x lc S dng cch ny khi khng quan tm n s k tha. N c u im l linh hot d phn tn nhng c nhc im l d tha d liu ln v khng ng b.
Chng ta s bn chi tit vn ny trong phn 6.2. 6.2. Thit k c s d liu hng i tng Nh chng ta bn lun chng 3, hai kha cnh quan trng ca vic thit k c s d liu phn tn l phn mnh v cp pht. Tuy nhin thit k c s d liu phn tn li phc tp hn nhiu. V mt khi nim, cc i tng bao gm cc phng thc v cc trng thi nhng trong thc t, phng thc c ci t trn cc kiu v c chia s bi cc i tng th hin ca ku . Chng ta s xt im tng ng ca vic thit k c s d liu i tng vi bi ton thit k c s d liu phn tn gii thiu chng 3, bng cch xem xt vic phn mnh v cp pht trong ng cnh ca m hnh hng i tng. Thit k c s d liu hng i tng dn n vn phc tp do vic bao gi cc phng thc cng vi trng thi i tng. iu ny dn n rc ri bi phng thc c ci t trn kiu v c s dng chung ca tt c cc i tng th hin ca kiu . Do , ngi ta phi quyt nh xem c nn phn mnh trn cc thuc tnh v nhn cc phng thc ra cho mi mnh d liu hoc phn mnh lun c cc phng thc. V tr cc i tng ng vi kiu ca chng v kiu cc thuc tnh tr thnh mt vn cn xem xt. Bi v min cc thuc tnh c th l cc lp khc. Nh vy, nu phn mnh cng c thc hin ng vi cc phng thc, chng ta cn phn bit gia cc phng thc gin n v phng thc phc. Cc phng thc gin n l cc phng thc khng kch hot nhng
177
phng thc khc, cn nhng phng thc phc c th kch hot phng thc ca cc lp khc. Nh trong c s d liu quan h, chng ta cng c ba loi phn mnh c bn: phn mnh ngang nguyn thu, phn mnh dc v phn mnh hn hp. Ngoi nhng trng hp c bn ny, ngi ta cn nh ngha phn hoch ngang dn xut (dereved horizontal partioning), phn hoch ngang kt hp (associated horizontal partioning) v phn hoch ng dn (path partioning). Phn hoch ngang c ng ngha tng t nh i tc ca chng trong c s d liu quan h. Phn hoch ngang kt hp tng t nh phn hoch ngang dn xut ch tr khng c mnh v tr rng buc cc th hin i tng. 6.2.1. Phn hoch ngang lp Phn mnh ngang nguyn thu trong c s d liu hng i tng ging nh trng hp quan h, Tuy nhin phn mnh ngang dn xut th c s khc bit. Trong c s d liu hng i tng phn mnh dn xut c th xy ra mt s cch: a) Phn hoch mt lp ny sinh t phn mnh cc lp con ca n. iu ny xy ra khi mt lp chuyn bit hn c phn hoch, v th kt qu ca phn mnh ny phi c phn nh trong trng hp tng qut hn. Cn ch l phn mnh theo mt lp con c th gy xung t vi phn mnh ca cc lp con khc. V vy, ngi ta s bt u phn mnh lp chuyn bit nht v di chuyn dn ln trong gin lp. b) Phn mnh ca mt thuc tnh phc hp c th nh hng n vic phn mnh lp cha n. c) Phn mnh ca mt lp da vo mt dy kch hot phng thc t mt lp n mt lp khc c th cn c phn nh trong thit k. Chng ta bt u xt trng hp n gin nht, l phn mnh mt lp c cc thuc tnh v phng thc n gin. Trong trng hp ny, phn mnh ngang nguyn thu c th c thc hin theo mt v t c nh ngha trn cc thuc tnh ca lp. Khi phn hoch hon ton d dng: cho trc lp C cn phn hoch, chng ta to ra cc lp C1,..., Cn, mi lp nhn cc th hin ca C tho mn v t phn hoch c th. Nu nhng v t ny c quyn tng h th cc lp C1,..., Cn l tch bit. Trong trng hp ny chng ta c th nh ngha li C1,..., Cn nh cc lp con ca C v sa li nh ngha ca Cthnh mt lp tru tng (l lp m khng c th hin no ring ca n). S phc tp ny ny sinh nu v t phn hoch khng c quyn tng h. Mt s m hnh hng i tng cho php mt i tng thuc v nhiu lp. Nu khng, chng ta cn nh ngha cc lp gi chng gi cc i tng tho nhiu v t.
178
Phn mnh ngang nguyn thu cc lp c s dng cho tt c cc lp trong cn phi phn mnh trong h thng. cui qu trnh ny chng ta s thu c lc phn mnh trong cho mi lp. V vy, bc tip theo l to ra mt tp cc mnh dn xut cho mi lp cha. Thnh phm ca bc ny l tp cc mnh nguyn thu c to ra trong bc hai v tp cc mnh dn xut trong bc ba. Bc cui cng l t hp hai tp mnh ny mt cch nht qun. Cc mnh ngang cui cng ca mt lp cu to bi cc i tng c truy xut bi c nhng ng dng ny ch chy trn mt lp con ca n. V vy chng ta phi xc nh mnh nguyn thu thch hp nht trn vi mi mnh dn xut ca mi lp. 6.2.2. Phn mnh dc lp Phn mnh dc phc tp hn nhiu. Cho trc mt lp C, phn mnh dc C thnh C1,..., Cn s sinh ra mt s lp, mi lp cha mt s thuc tnh v mt s phng thc. V vy mi mnh s c nh ngha t hn so vi ban u. Cc vn cn gii quyt, gm c, mi lin h sinh kiu con gia cc lp cha, cc lp con ca lp ban u v cc lp phn mnh, mi lin h ca cc lp phn mnh vi nhau, v v tr cc phng thc. Nu tt c cc phng thc u n gin th chng c th c phn hoch d dng. 6.2.3. Phn hoch ng dn Phn hoch ng dn (path partioning) l mt khi nim m t vic lm t tt c cc i tng to ra mt i tng hp phn vo mt phn hoch. Mt Phn hoch ng dn bao gm vic nhm cc i tng thuc lun lun cc lp tng ng vi tt c cc bin th hin trong cy con c gc ti i tng hp phn . Mt phn hoch ng dn c th c trnh by nh mt cy phn cp vi cc nt to thnh ch mt cu trc. Mi nt ca ch mc ch n cc i tng thuc lp min ca i tng thnh phn. V vy ch mc cha cc tham chiu n tt c cc i tng thnh phn ca mt i tng hp phn, loi b nhu cu duyt qua cy phn cp hp phn. Cc th hin ca ch mc cu trc l mt OID ch n tt c cc i tng thnh phn ca mt lp hp phn. 6.2.4. Cc thut ton phn hoch lp Vn chnh ca phn hoch lp l ci thin hiu nng cc vn tin v ng dng bng cch lm gim i cc truy xut d liu khng cn thit. Do phn hoch lp l mt k thut thit k c s d liu logic, trong n cu trc li lc c s d liu i tng da trn ng ngha ng dng. Cn ch rng phn hoch lp phc tp nhiu hn so vi phn mnh quan h, v n cng l mt bi ton NP-y .
179
6.2.4.1. Phng php da vo chi ph Ngi ta pht trin mt m hnh chi ph theo s lng truy xut a x l cc vn tin ln phng thc trn mt c s d liu hng i tng. Mt heuristic leo i c s dng phng php i lc (cho gii php khi u) v phng php chi ph ( iu chnh) c xut vo nm 1996 v nghin cu ny cng pht trin cc phn cp ch mc ni cu trc cho cc truy xut i tng phc hp, v nghin cu tnh hiu qu ca n i vi phng php duyt tr v nhng phng php khc, chng hn nh phn cp ch mc ni cu trc, quan h a ch mc v h tr truy xut. 6.2.4.2. Cp pht Bi ton cp pht d liu trong cc c s d liu hng i tng gm c cp pht phng thc v lp. Bi ton cp pht phng thc c lin quan cht ch vi bi ton cp pht lp do vn bao gi. V cp pht lp ko theo cp pht phng thc cn truy xut nhiu lp nm cc v tr khc nhau li l mt bi ton cha c gii quyt. 6.2.5. Nhn bn i tng, lp cc i tng hoc tp th cc i tng u c th l n v nhn bn. Quyt nh ny t nht cng ph thuc mt phn vo m hnh i tng. c t kiu c c ti mi v tr hay khng u c xem nh mt bi ton nhn bn. 6.3. Qun l i tng Qun l i tng bao gm cc tc v nh qun l nh danh i tng, iu ch con tr, di tr i tng, xo i tng, thc thi phng thc v cc tc v lin quan n i tng. 6.3.1. Qun l nh danh i tng nh danh i tng OID c h thng pht sinh v c dng xc nh mt cch duy nht mi i tng (ngn hay trng tn) trong h thng. Ci t nh danh cho cc i tng trng tn khc vi ci t i tng ngn hn, C th nh danh cho i tng ngn hn c th c ci t hiu qu hn. Ci t OID ca cc i tng trng tn tn ti hai cch thng dng, da trn nh danh logic hoc nh danh vt l. nh danh vt l POID (physical OID) lm cho OID ging vi a ch ca i tng. a ch ny c th l a ch trang v mt offset tnh t a ch c s ca trang. nh danh logic LOID (logical OID) gm c cp pht mt OID duy nht cho mi i tng trn ton b h thng. V OID l bt bin nn khng phi tr chi ph khi di chuyn i tng. iu ny c c qua mt bng ID lin kt mi OID vi mi i tng vt l, b li phi tn mt chi ph tm kim bng cho mi truy xut i tng. trnh phi tr cp pht
180
ca OID cho cc i tng nh khng c dng chung, c hai phng php u c th xem i tng nh nh danh ca chng. Cc h c s d liu ban u l mng v phn cp s dng phng php nh danh vt l ny. Cc h c s d liu hng i tng c xu hng dng phng php nh danh logic, v n h tr cc mi trng ng tt hn. Trong cc h c s d liu i tng phn tn, s dng LOID c th s thch hp hn v cc thao tc lm ti t d liu, di tr, nhn bn v phn mnh xy ra thng xuyn. Tuy nhin, s dng LOID s lm ny sinh cc vn phn tn sau y: - Pht sinh LOID phi l duy nht bn trong tm vc ca ton b min phn tn. Chng ta d dng bo m tnh duy nht nu LOID c sinh ra ti v tr trung tm. Trong cc mi trng nhiu i l, mi v tr i l pht sinh LOID cho cc i tng c lu ti v tr . Tnh duy nht ca LOID c bo m bng cch gn nh danh i l lm thnh phn ca LOID. V th LOID c cu to bi nh danh i l v mt con s tun t. Con s tun t l mt biu din logic cho v tr trn a cc i tng. S tun t l duy nht bn trong mt i l c th, v thng c s dng trnh tham chiu hin c n i tng b xo do ch n i tng mi nhng c nhn con s c. Trong thi gian truy xut i tng, nu phn nh danh i tng ca LOID khng c dng trc tip nhn din v tr i tng, nh danh i tng ch ng vai tr l mt LOID n thun. Tuy nhin nu phn nh danh i l ca LOID c dng, LOID ng vai tr nh l mt LOID gi. - V tr nh x v cu trc cho LOID, v tr cc thng tin nh x LOIDPOID l quan trng, nu cc LOID n thun c dng v nu mt khch LOID-POID l quan trng. Nu cc LOID n thun c dng v nu mt khch c kt ni trc tip v ng thi nhiu i l th thng tin nh x LOIDPOID phi hin din ch khch. Nu LOID gi c dng th thng tin nh x ch cn c i l. Thng tin nh x c ch khch l iu khng mong mun v gii php ny khng nng tm c (ngha l, thng tin nh x phi c cp nht cho tt c cc khch c truy xut i tng). 6.3.2. iu ch con tr Trong cc h qun tr c s d liu hng i tng, ngi ta c th duyt t mt i tng n mt i tng khc bng cch dng cc biu thc ng dn (path expression) c cha cc thuc tnh vi gi tr ca chng da trn i tng (th d nu c thuc kiu Car th c.engine.manufacturer.name l mt biu thc ng dn). V c bn chng u l con tr thng thng trn a, nh danh i tng c dng biu din nhng con tr ny. Tuy nhin trong b nh, ngi ta mun dng cc con tr ni nh (inmemorypointer) duyt t i
181
tng ny n i tng khc. Qu trnh chuyn phin bn con tr a sang con tr ni nh c gi l iu ch con tr. Cc lc da trn phn cng v da trn phn mm l hai loi c ch iu ch con tr. Trong cc lc d phn cng, c ch khuyt trang (Page fault) ca h iu hnh c dng, khi mt trang c a vo b nh, tt c cc con tr trong u c iu ch, v chng ch n cc khung nh o dnh ring (reseved virtual memory frame). Cc trang d liu tng ng vi cc khung o ny ch c ti vo b nh khi c truy xut n chng. Sau vic truy xut trang s sinh ra mt khuyt trang ca h iu hnh m n c ghi nhn v x l. Trong cc lc phn mm, bng i tng c dng iu ch con tr. Ngha l mt con tr c iu ch ch n mt v tr trong bng i tng. C cc th h hng hi v tr ni ca cc lc da vo phn mm, tu thuc vo lc con tr cn c iu ch. V th mi truy xut i tng u c mt mc gin nh i km vi n. u im ca lc phn cng l n dn n mt hiu qu tt hn khi phi duyt lp i lp li mt cy phn cp i tng do khng c mc gim nh cho mi truy xut i tng. Tuy nhin, trong nhng tnh hung t km khi ch c mt t cc i tng cn truy xut mi trang, chi ph cao cho c ch x l khuyt trang lm cho lc phn cng khng c hp dn lm. Lc phn cng cng khng ngn c cc ng dng khch trnh truy xut cc i tng b xo trn mt trang. Hn na, trong nhng tnh hung t km, lc phn cng c th vt cn ton b khng gian a ch b nh o do cc khung trang ngy cng c dnh ring cng nhiu, bt k cc i tng trong trang c thc s truy xut hay khng. Cui cng, v lc phn cng ngm hng trang nn rt kh cung cp mt kh nng iu khin ng thi, qun l vng tr, chuyn ti liu v khi phc mc i tng. 6.3.3. Di tr i tng Mt kha cnh ca cc h phn tn l thi gian cc i tng cn di chuyn gia cc v tr. iu ny lm ny sinh mt vn . Trc tin, l n v di tr (unit of migration). Trong cc h thng c cc trng thi tch ri phng thc, chng ta c th di chuyn trng thi ca i tng m khng di chuyn phng thc. Tng ng ca tnh hung ny trong cc h thng ch thun tu l phn mnh mt i tng theo cc hnh vi ca n. Trong mi trng hp, vic p dng cc phng thc cho mt i tng i hi phi kch hot cc th tc xa. Vn ny c tho lun trn trong phn phn tn i tng. Ngay c nu tng i tng l n v di tr, vic ti nh v tr ca chng c th a chng xa khi cc c t kiu v ta phi quyt nh xem cc kiu c c phn i ti mi v tr c cha cc th hin hay phi truy xut kiu t xa khi cc hnh vi hoc phng thc c p dng cho cc i tng. Ba kh nng c th c xem xt khi di tr cc lp (kiu):
182
(1) M ngun c di chuyn v c bin dch ti v tr ch. (2) Phin bn c bin dch ca mt lp c di tr ging nh mt i tng khc. (3) M ngun ca nh ngha lp c di chuyn nhng khng di chuyn cc thao tc c bin dch ca n m s dng n chin dch di chuyn mun. Mt vn khc, l vic di chuyn i tng phi c theo vt c th tm ra nhng ch mi ca chng. Mt cch thng dng theo vt cc i tng l li cc i din (surrogate), hoc cc i tng u nhim (poxy object). y l nhng i tng gi ch c li ti v tr c ca i tng v ch n v tr mi. Truy xut n cc i tng u nhim c h thng chuyn hng mt cch v hnh n ng cc i tng ti v tr mi. Di tr cc i tng c th c thc hin da trn trng thi hin hnh ca chng. i tng c th mt trong bn trng thi: Sn sng (ready): Cc i tng sn sng hin khng c kch hot, hoc cha nhn c thng bo no nhng sn sng c kch hot khi nhn c mt thng bo. ng hot (active): Cc i tng ang hot ng hin c mt trong mt hot ng p li mt kch hot hoc mt thng bo. Ch (Waiting): i tng ch kch hot (hoc gi mt thng bo ch) mt i tng khc v ang ch tr li. Treo (suspended): Cc i tng treo (tm ngng) thc hin tm thi khng sn sng i vi kch hot. Cc i tng ang trong trng thi ng hot hoc ch khng c php di tr v hot ng m chng ang tham gia s b ph v. Vic di tr gm c cc bc: (1) Chuyn ti i tng t ngun n ch; (2) To ra mt u nhim ti ngun thay i i tng ban u. C hai vn cn quan tm y. Vn th nht c lin quan n vic bo tr th mc h thng. Khi i tng di chuyn, th mc h thng phi c cp nht phn nh v tr mi. iu ny c th c thc hin mun khi mt i tng i din hoc u nhim nh hng li b kch hot ch khng phi hng hi vo lc di chuyn. Vn th hai l trong mt mi trng nng ng ni m cc i tng di chuyn thng xuyn, xu i din hoc xu u nhim c th rt di. H thng khi cn c c nhng xu ny li theo thi gian. Tuy nhin, kt qu c c phi c phn nh vo th mc, v n c th khng c thc hin mun.
183
6.3.4. Lu tr i tng phn tn Trong nhng vn c lin quan n vic lu tr i tng, c hai vn lin quan c bit vi mt h phn tn; lm t i tng (object clustering) v dn rc phn tn (distributed garbage collection). Cc i tng phc hp v hp phn cung cp nhiu c hi cho vic lm t d liu trn a, chi ph xut nhp a cn cho vic truy xut chng c gim. Dn rc l mt bi ton ny sinh trong cc CSDL i tng v chng cho php chia s da trn tham chiu. 6.3.5. Lm t i tng Lm t i tng (object clustering) l vic nhm cc i tng trong cc vt cha vt l (ngha l cc cng a-disk extent) theo nhng tnh cht chung, chng hn theo gi tr ging nhau ca mt thuc tnh hoc cc i tng con ca cng mt i tng c lm t. Lm t i tng l mt vic kh khn v hai l do. Trc tin n khng lin quan trc tip n vic ci t nh danh i tng (ngha l cc OID logic v vt l). OID logic mt nhiu chi ph (v bng gin nh-indirection table) nhng cho php phn hoch dc cc lp. nh danh i tng phi cha tt c cc thuc tnh k tha. Th hai, lm t cc i tng phc theo mi lin h hp phn phc tp hn do vic dng chung i tng (i tng c nhiu cha). Cho trc mt th lp (class graph), c ba m hnh lu tr c bn cho vic lm t i tng: 1. M hnh lu tr phn r DSM (decomposition storage model) phn hoch mi lp i tng vo cc quan h hai ngi (OID, attribute) v v vy n da trn nh danh logic. u im ca DSM l tnh n gin. 2. M hnh lu tr chun tc NMS (normanlized storage model) lu tr mi lp nh mt quan h ring bit. N c th c dng vi cc OID logic v vt l. Tuy nhin ch c nh danh logic mi cho php phn hoch dc cc i tng theo mi lin h k tha. 3. M hnh lu tr trc tip (direct storage model) cho php lm t nhiu lp i tng phc da trn mi lin h hp phn. M hnh ny tng qut ha cc k thut ca cc c s d liu phn cp v mng, v hot ng tt nht vi cc nh danh vt l. N c th nm bt c tnh cc b truy xut i tng v v cy n u vit hn khi cc kiu mu truy xut c bit r. Tuy nhin kh khn chnh ca n l lm t li mt i tng cha b xa. Trong h phn tn, c hai m hnh DSM v NMS u n gin khi dng phn hoch ngang. Goblin (1993) [8] ci t DSM nh c s cho mt DBMS i tng phn tn c mt b nh ln. DSM cung cp tnh linh hot v khim khuyt hiu nng ca n c b tr li bng cch dng mt b nh v vng tr tht ln. Gruber v Amsaleg (1993) [6] ci t m hnh lu tr trc tip trong
184
mt kin trc lu tr n cp phn tn, trong mi i tng c mt nh danh vt l c gi tr i vi ton h thng. 6.4. Qun l giao dch i tng Trong cc h qun tr c s d liu i tng phn tn vic qun l giao dch (transaction management) cha c nghin cu nhiu, ngoi tr cc phn c lin quan n bi ton vng lu tr nh tho lun chng 5. Tuy nhin, cc giao dch trong cc i tng lm ny sinh mt s vn ng ch , v vic thc thi ca chng trong mt mi trng phn tn l mt thch thc. y l mt lnh vc cn c nghin cu nhiu hn. Trong phn ny chng ta ch tho lun cc vn c bit ny sinh khi m rng khi nim giao dch cho cc h qun tr c s d liu i tng phn tn. Trong mt s lnh vc ng dng, m thc ng b ha giao dch c da trn s tranh chp gia cc giao dch hon tt mt tc v chung no , chng hn nh trong mi trng lm vic hp ng. Cc yu cu quan trng hn v qun l giao dch trong cc DBMS i tng c th c lit k l: 1. B qun l giao dch truyn thng ch ng b ha cc thao tc Read v Write n gin. Tuy nhin i tc ca chng trong cc h qun tr c s d liu i tng phn tn phi c kh nng gii quyt c vi cc thao tc tru tng (abstract operation). N cng c th ci thin c cc hot ng ng thi bng cch dng nhng hiu bit ng ngha ca chng v cc i tng v cc thao tc tru tng. 2. Cc giao dch truyn thng truy xut cc i tng phng (th d cc trang, cc b), cn cc giao dch trong cc h qun tr c s d liu i tng phn tn i hi s ng b vic truy xut n cc i tng hp phn v phc hp. ng b truy xut n cc i tng thnh phn. 3. Mt s ng dng c h qun tr c s d liu i tng phn tn h tr c nhng kiu mu truy xut c s d liu khc vi cc ng dng truyn thng, cc truy xut l tng tranh (th d hai ngi s dng cng truy xut n cng mt ti khon). V vy, vic dng chung c tnh hp ng hn nh trong trng hp nhiu ngi cng truy xut v lm vic chung trn cng mt t liu thit k. Trong trng hp ny, truy xut cn phi c ng b ha, nhng ngi s dng mong mun hp ng ch khng phi tranh chp truy xut n cc i tng dng chung. 4. Nhng ng dng ny i hi phi h tr cc hot ng di hi tri qua nhiu gi, nhiu ngy hoc thm ch nhiu tun l (th d khi lm vic trn mt i tng thit k). V th c ch giao dch phi h tr vic chia s cc kt qu tng phn. Ngoi ra, trnh s c ca tc v mt phn lm tn hi n hot ng lu di, chng ta cn phn bit gia cc hot ng c tnh quyt nh i
185
vi vic hon tt mt giao dch v nhng hot ng khng c iu , v cung cp nhng hnh ng thay th trong trng hp hot ng chnh b tht bi. 5. Ngi ta cho rng nhiu ng dng s c nhiu li ch t cc kh nng hot ha p ng ng lc vi cc bin c v thay i trong mi trng. M thc c s d liu mi ny i hi phi theo di cc bin c v vic thc thi ca cc hot ng c h thng kch hot bn trong cc nh giao dch ang chy. 6. Nhng i hi ny ch ra mt nhu cu m rng cc chc nng qun l giao dch truyn thng nm bt c ng ngha ng dng v d liu, v nhu cu gim bt tnh cht bit lp ca giao dch. iu ny i hi phi xem xt li cc kha cnh qun l giao dch c tho lun trc y.
186
187