You are on page 1of 193

HC VIN CNG NGH BU CHNH VIN THNG

BI GING

C S D LIU PHN TN
(Dng cho sinh vin h chnh qui) LU HNH NI B

Bin son: TS. TN HNH

TP. H CH MINH 2010

MC LC MC LC

Chng 1 I CNG V C S D LIU PHN TN

1.1 Gii thiu......................................................................................................... 1 1.2 nh ngha v c s d liu phn tn ............................................................... 3 1.3 Cc im c trng ca c s d liu phn tn so vi c s d liu tp trung.. 3 1.4 Ti sao cn c c s d liu phn tn? ............................................................. 5 1.4.1 L do t chc v kinh t........................................................................................ 5 1.4.2 L do kt ni cc c s d liu hin c ................................................................. 5 1.4.3 L do tng trng t chc ..................................................................................... 5 1.1.4 L do ti truyn thng ........................................................................................... 6 1.4.5 nh gi v hiu sut ............................................................................................ 6 1.4.6 tin cy v tnh hiu qu.................................................................................... 6 1.4.7 So snh u v nhc im ca vic phn tn d liu ............................................ 6 Chng 2 KIN TRC H QUN TR C S D LIU PHN TN 8

2.1 Kin trc tham kho cho c s d liu phn tn............................................... 8 2.2 Cc thnh phn ca h qun tr c s d liu phn tn .................................. 12 2.3 Kin trc ca h qun tr c s d liu phn tn............................................ 15 2.3.1 Cc h khch/ch (Client/Server)........................................................................ 15 2.3.2 H qun tr c s d liu phn tn....................................................................... 15 2.3.3 Kin trc ca h qun tr c s d liu phn tn.................................................. 17 CHNG 3 THIT K C S D LIU PHN TN 20

3.1 Cc vn v thit k c s d liu phn tn................................................. 21 3.1.1 Cc l do phn mnh........................................................................................... 21 3.1.2 Cc kiu phn mnh ............................................................................................ 22 3.2 Thit k phn mnh........................................................................................ 27

C s d liu phn tn - 2010

MC LC
3.2.1 Cc mc tiu ca vic thit k phn tn d liu................................................... 29 3.2.2 Cc tip cn thit k s phn tn d liu......................................................... 30 3.2.3 Thit k s phn mnh d liu ............................................................................ 31 3.3 S cp pht cc phn mnh ............................................................................ 61 3.3.1 Bi ton cp pht................................................................................................. 61 3.3.2 Yu cu v thng tin ........................................................................................... 61 3.3.3. M hnh cp pht .............................................................................................. 63 Chng 4 S TRONG SUT PHN TN 67

4.1 S trong sut phn tn ca ng dng ch c ................................................. 67 4.2 S trong sut phn tn i vi cc ng dng cp nht.................................... 73 4.3 Cc nguyn tc truy xut c s d liu phn tn ............................................ 79 Chng 5 TI U HA TRUY VN PHN TN 83

5.1. Biu thc chun tc ca truy vn................................................................... 84 5.1.1. Truy vn............................................................................................................. 84 5.1.2. Biu thc chun tc ca truy vn........................................................................ 85 5.2. Ti u ha truy vn trong c s d liu tp trung.......................................... 86 5.2.1. Bc 1- Kim tra ng php (syntax Checking) .................................................. 86 5.2.2. Bc 2- Kim tra s hp l (Validation) ............................................................ 87 5.2.3. Bc 3 Dch truy vn (Translation)................................................................. 88 5.2.4. Bc 4- Ti u ha biu thc i s quan h (relational Algebra Optimization)............................................................................................................... 89 5.2.5. Bc 5- Chn la chin lc truy xut (strategy selection)................................ 90 5.2.6. Bc 6- To sinh m (code Generation)............................................................. 90 5.3. Ti u ha truy vn trong c s d liu phn tn .......................................... 90 5.3.1. Bc 1- Phn r truy vn (Query Decomposition).............................................. 92 5.3.2. Bc 2 Cc b ha d liu............................................................................... 111 5.3.3 Bc 3 Ti u ho truy vn ton cc................................................................. 118

C s d liu phn tn - 2010

MC LC
5.3.4 Bc 4 Ti u ho truy vn cc b ................................................................... 120 Chng 6 GIAO TC PHN TN 121

6.1 nh ngha giao tc .................................................................................... 123 6.1.1 Tnh hung kt thc giao tc ............................................................................. 125 6.1.2 c trng ho cc giao tc .............................................................................. 126 6.1.3. Hnh thc ho khi nim giao tc ..................................................................... 127 6.2 Cc tnh cht ca giao tc............................................................................. 131 6.2.1 Tnh nguyn t.................................................................................................. 131 6.2.2 Tnh nht qun .................................................................................................. 131 6.2.3 Tnh bit lp...................................................................................................... 132 6.2.4 Tnh bn vng................................................................................................... 136 6.3 Cc loi giao tc........................................................................................... 136 6.3.1 Giao tc phng .................................................................................................. 136 6.3.2 Giao tc lng..................................................................................................... 136 6.4 iu khin ng thi phn tn .................................................................... 137 6.4.1 L thuyt kh tun t ........................................................................................ 137 6.4.2 Phn loi cc c ch iu khin ng thi......................................................... 144 6.4.3 Cc thut ton iu khin ng thi bng kha cht ......................................... 146 6.4.4 Nghi thc 2PL tp quyn.................................................................................. 158 6.4.5 Thut ton 2PL bn chnh ................................................................................. 164 6.4.6 Thut ton 2PL phn quyn............................................................................... 164 CHNG 7 CC H C S D LIU 166

7.1 C s d liu song song ............................................................................... 166 7.1.1 Gii thiu .......................................................................................................... 166 7.1.2 Kin trc h c s d liu song song................................................................ 167 7.1.3 Li ch ca h c s d liu song song.............................................................. 168 7.2 H c s d liu mobile ............................................................................... 168

C s d liu phn tn - 2010

MC LC
7.2.1 Gii thiu .......................................................................................................... 168 7.2.2 nh ngha h c s d liu mobile................................................................... 169 7.2.3 Cc kiu di ng ............................................................................................... 170 7.2.4 Kin trc h c s d liu mobile...................................................................... 171 TI LIU THAM KHO MT S THI THAM KHO 176 177

S 1 ............................................................................................................ 177 S 2 ............................................................................................................ 179 S 3 ............................................................................................................ 181 S 4 ............................................................................................................ 182 TI.............................................................................................................. 184

C s d liu phn tn - 2010

MC LC
M C L C HNH
Hnh 1.1 C s d liu phn tn ca ngn hng c ba chi nhnh Hnh 1.2 Mi lin h gia mng my tnh, c s d liu phn tn v ng dng phn tn Hnh 2.1 Kin trc tham kho cho mt c s d liu Hnh 2.2 Cc phn mnh v cc nh vt l i vi mt quan h ton cc Hnh 2.3 Cc thnh phn ca h qun tr c s d liu Hnh 2.4 Cc kiu truy xut n c s d liu phn tn Hnh 2.5 Kin trc my khch/ch Hnh 2.6 Kin trc tham kho c s d liu phn tn Hnh 2.7 Kin trc ca h qun tr c s d liu phn tn Hnh 3.1 Cy phn mnh ca quan h EMP Hnh 3.2 S phn mnh ca quan h DEPT Hnh 3.3 Cc th kt ni Hnh 3.4 Ma trn s dng Hnh 3.5 Ma trn i lc Hnh 3.6 Gom nhm cc thuc tnh Hnh 3.7 ma trn thuc tnh t Hnh 3.8 S phn mnh hn hp ca quan h R(A1, A2, A3, A4, A5) Hnh 4.1a S trong sut phn tn Hnh 4.1b S trong sut v tr Hnh 4.1c S trong sut nh x cc b Hnh 4.2 Mt ng dng trn c s d liu phn tn khng ng nht v khng trong sut Hnh 4.3 Cy con cp nht ca thuc tnh DEPTNUM trong cy phn mnh ca quan h EMP Hnh 4.4a Cy phn mnh khc ca quan h EMP Hnh 4.4b H qu ca vic cp nht DEPTNUM ca EMPNUM=100 Hnh 5.1 S ti u ha truy vn trong c s d liu tp trung Hnh 5.2 S ti u ha truy vn trong c s d liu phn tn

C s d liu phn tn - 2010

MC LC
Hnh 5.3 S ti u ha truy vn trong c s d liu phn tn Hnh 6.1 M hnh giao tc Hnh 6.2. Biu din dng DAG cho mt giao tc Hnh 6.3 Biu din DAG ca mt lch y Hnh 6.4 Mt lch y Hnh 6.5 Tin t ca lch y ca hnh 6.4 Hnh 6.6 Phn loi cc thut ton iu khin ng thi Hnh 6.7 Ma trn tng thch ca cc th thc kha Hnh 6.8 Cc nh ngha chun b cho cc thut ton sp ti Hnh 6.9 Biu kha 2PL Hnh 6.10 Biu kha hai pha nghim ngt Hnh 6.11 Bng tng thch c th thc kha dng chung c th t Hnh 6.12. Cu trc truyn giao ca 2PL tp quyn Hnh 6.13 Cu trc truyn giao ca 2PL phn quyn Hnh 7.1 Kin trc chia s b nh ca h c s d liu song song Hnh 7.2 Kin trc chia s a cng ca h c s d liu song song Hnh 7.3 Kin trc khng chia s ti nguyn ca h c s d liu song song Hnh 7.4 Khng gian thng tin c kt ni y Hnh 7.5 Tnh di ng c nhn Hnh 7.6 Kin trc ca h c s d liu mobile Hnh 7.7 Cc kiu nhn bn

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

Chng 1 I CNG V C S MC TIU

LI U PHN TN

Chng ny trnh by cc khi nim ca c s d liu phn tn:nh ngha c s d liu phn tn, l do cn c c s d liu phn tn, cc tnh cht c trng ca n. T so snh c s d liu phn tn vi c s d liu tp trung qua rt ra nhng l do pht trin mt h thng da trn c s d liu phn tn. Gii thiu v c s d liu phn tn 1.1 Gii thiu Trong nhng nm gn y, c s d liu phn tn tr thnh mt lnh vc x l thng tin quan trng v chng ta d dng nhn ra tm quan trng ca n ngy cng ln mnh. Chng ta c l do v t chc cng nh v k thut pht trin theo xu hng ny: c s d liu phn tn khc phc c mt s hn ch ca c s d liu tp trung nh qu ti server, nghn c chai khi truy xut, tnh sn sang/ tin cy v kh nng chu li thp. Hn na c s d liu phn tn ph hp hn vi cc t chc d liu phi tp trung cng nh vi cc ng dng phn tn. Chng ta c th xem c s d liu phn tn l mt tp hp d liu (c s d liu) ca mt h thng thng tin nhng c phn b trn nhiu a im (site) ca mt mng my tnh (intranet). Khi nim ny nhn mnh n hai kha cnh quan trng ca c s d liu phn tn l : 1. S phn tn: d liu khng lu tr trn cng mt a im v th chng ta c th phn bit n vi c s d liu tp trung. 2. Mi tng quan lun l (logical correlation): Cc d liu c mt s thuc tnh rng buc vi nhau t cc c s d liu cc b m c lu tr ti cc a im khc nhau trn mng. V d : Xt mt ngn hng c ba chi nhnh nm ba ni khc nhau (hnh 1.1). Ti mi nhnh, mt h thng my tnh iu khin cc trm thu hay rt tin v qun l c s d liu v ti khon. Mi h thng ny c c s d liu ti khon cc b to

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

thnh mt site ca c s d liu phn tn. Cc h thng my tnh ny c kt ni bi mt mng truyn thng. Vi nhng hot ng thng thng, cc yu cu t cc trm ch cn truy xut n c s d liu ti chi nhnh ca chng. V th ng dng ny c gi l ng dng cc b.
DB2 T T Communication Network T

DB1 T T T

T T DB3 T

Hnh 2.1 C s d liu phn tn ca ngn hng c ba chi nhnh


V d trn lm ny sinh hai cu hi sau: 1) Mi chi nhnh ch lu tr c s d liu cc b c p ng cc ng dng cha? 2) C s d liu phn tn c phi l mt tp hp cc c s d liu cc b? tr li cc cu hi ny chng ta tm hiu xem vic x l trn c s d liu cc b khc g trn c s d liu phn tn. V mt k thut, chng ta thy cn c cc ng dng m truy xut d liu t nhiu nhnh. Cc ng dng ny c gi l ng dng ton cc hay ng dng phn tn. Mt ng dng ton cc thng thng trong v d trn l vic chuyn tin t mt ti khon ny n ti khon khc. ng dng ny yu cu cp nht c s d liu c hai nhnh.

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

Hn na ng dng ton cc gip cho ngi s dng khng phn bit c d liu cc b hay t xa. l tnh trong sut d liu trong c s d liu phn tn. V ng nhin khi ng dng ton cc truy cp d liu cc b s nhanh hn ng dng t xa iu ny ni ln s nhn bn d liu cc ni cng lm tng tc x l chng trnh. 1.2 nh ngha v c s d liu phn tn Mt c s d liu phn tn l tp hp d liu quan h ln nhau mt cch lun l trn cng mt h thng nhng c tri rng trn nhiu sites ca mt mng my tnh. Mi site c quyn t qun c s liu cc b ca mnh v thc thi cc ng dng cc b. Mi v tr cng phi tham gia vo vic thc thi t nht mt ng dng ton cc m yu cu truy xut d liu ti nhiu v tr qua mng. Hnh nh ca c s d liu phn tn (hnh 1.2) minh ha mi quan h ca c s d liu phn tn vi mi trng kt ni mng my tnh v cc ng dng phn tn. lm r cc im c trng ca c s d liu phn tn hy so snh n vi c s d liu tp trung trong phn sau.

Tng ng dng Tng lu tr d liu Tng kt ni

ng dng phn tn C s d liu phn tn Mng v truyn thng

Hnh 1.2 Mi lin h gia mng my tnh, c s d liu phn tn v ng dng phn tn 1.3 Cc im c trng ca c s d liu phn tn so vi c s d liu tp trung C s d liu phn tn khng n gin l vic phn tn cc c s d liu tp trung bi v n cho php thit k cc h thng c cc tnh cht khc vi h thng tp trung truyn thng. V th nn xem li cc tnh cht c trng ca c s d liu tp trung

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

truyn thng v so snh n vi cc tnh cht ca c s d liu phn tn. Cc tnh cht c trng ca c s d liu tp trung l iu khin tp trung, c lp d liu, chun ha loi b s d tha d liu, cc cu trc lu tr vt l phc tp p ng cho vic truy xut hiu qu, ton vn, phc hi, iu khin ng thi v an ton. Di y l bng so snh cc tnh cht c trng ca c s d liu tp trung v c s d liu phn tn: Tnh cht c trng iu khin tp trung C s d liu tp trung C s d liu phn tn

- Kh nng cung cp s iu - Cu trc iu khin phn khin tp trung trn cc ti cp: qun tr c s d liu nguyn thng tin. s d liu. ton cc v qun tr c s d - Cn c ngi qun tr c liu cc b phn tn.

c lp d liu

- T chc d liu trong sut - Ngoi tnh cht c d liu vi cc lp trnh vin. Cc nh trong c s d liu tp chng trnh c vit c trung, cn c tnh cht trong ci nhn quan nim v d sut phn tn ngha l cc liu. chng trnh c vit nh c - Li im: cc chng trnh s d liu khng h c phn khng b nh hng bi s tn. thay i t chc vt l ca d liu

S d tha d liu

Gim thiu s d tha d - Gim thiu s d tha d liu do: - Tnh nht qun d liu. - Tit kim dung lng nh. liu m bo tnh nht qun. - Nhng li nhn bn d liu n cc a im m cc ng dng cn n, gip cho vic thc thi cc ng dng khng dng nu c mt a im b hng. T vn qun l

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

nht qun d liu s phc tp hn. Cc cu trc vt l phc Cc cu trc vt l phc tp Cc cu trc vt l phc tp tp v truy xut hiu qu gip cho vic truy xut d gip lin lc d liu trong c liu c hiu qu. Tnh ton vn, phc hi, Da vo giao tc. ng thi T bng so snh trn, chng ta thy vic chn la c s d liu phn tn s thch hp hn i vi cc ng dng pht trin trong mt h thng mng din rng do gim c chi ph truyn thng truy xut d liu. 1.4 Ti sao cn c c s d liu phn tn? 1.4.1 L do t chc v kinh t Nhiu t chc c c cu t chc phi tp trung nn gii php c s d liu phn tn thch hp hn. Nhng nm gn y do s pht trin mnh m ca cng ngh my tnh cng vi s pht trin rng ri ca cc t chc kinh t trn th gii nn vic lu tr thng tin trn c s d liu tp trung cn xem xt li v mt hiu qu. 1.4.2 L do kt ni cc c s d liu hin c C s d liu phn tn l gii php t nhin khi t chc c sn cc c s d liu v cn m rng n cho cc ng dng ph qut hn. Trong trng hp ny c s d liu phn tn c xy dng theo phng php t di ln, da trn cc c s d liu cc b c sn. Qu trnh ny c th yu cu cu trc li c s d liu cc b tuy nhin cng vic ny li n gin hn xy dng mt c s d liu tp trung hon ton mi. 1.4.3 L do tng trng t chc Nu mt t chc pht trin bng cch thm vo nhng n v t chc t qun nh chi nhnh, kho bi th cch tip cn theo c s d liu phn tn h tr cho vic tng trng c s d liu vi mc nh hng nh nht. Trong khi cch tip cn theo c s d liu tp trung th ngay t u phi quan tm n s pht trin ca n s d liu phn tn . Da vo giao tc phn tn.

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

trong tng lai m vic ny th kh d on v tn km, nu khng d liu trc th s gy ra hu qu nghim trng khng ch cho nhng ng dng mi m cn cho c h thng c sn. 1.1.4 L do ti truyn thng Vi mt h c s d liu phn tn v mt a l th cc ng dng truy cp s gim chi ph truyn thng so vi c s d liu tp trung. 1.4.5 nh gi v hiu sut S tn ti ca cc b x l t qun nng hiu sut ln nh mc x l song song. C s d liu phn tn c u th l phn tn d liu ti cc a im nn cc ng dng c th chy ring r trn tng a im v s giao tip gia cc b x l l nh nht. 1.4.6 tin cy v tnh hiu qu Mc du vic phn tn d liu lm tng vic d tha d liu trn ton h thng nhng li cho chng ta tin cy v tnh hiu qu cao hn trong c s d liu tp trung. Tuy nhin t c mc tiu trn khng phi d dng m i hi cc k thut kh phc tp. S hng hc trong c s d liu phn tn c th xy ra thng hn trong c s d liu tp trung v s a im tng ln nhng khng bao gi nh hng ln ton h thng bi th nn n c tin cy v tnh hiu qu cao hn c s d liu tp trung. 1.4.7 So snh u v nhc im ca vic phn tn d liu u im Chia s d liu v iu khin phn tn: Ngi s dng ti mt v tr ny c th truy xut d liu (c php) v tr khc. Hn na vic qun tr c s d liu c th tc phn tn v thc hin t qun ti mi v tr. tin cy v tnh sn sng: Nu mt v tr b hng th cc v tr cn li trong h thng c s d liu phn tn vn tip tc hot ng. Nu d liu c nhn bn mt s v tr th mt giao dch cn truy xut mt mc d

C s d liu phn tn - 2010

Chng 1

i cng v c s d liu phn tn

liu c th tm thy bt k v tr no trong s v tr . Nh th s c ti mt v tr khng nh hng n h thng. Tng tc x l truy vn: Nu mt truy vn cn d liu mt s v tr th c th chia cu truy vn thnh cc cu truy vn con ri thc thi n song song ti cc v tr. Nhc im Chi ph pht trin phn mm: Vic pht trin mt h thng c s d liu phn tn kh phc tp v th cn chi ph ln. Kh pht hin li: Vic pht hin li v m bo tnh ng n ca cc thut ton song song s rt kh khn. Chi ph x l tng: S trao i cc thng bo v x l phi hp gia cc v tr s tng chi ph x l hn trong cc h thng tp trung.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

Chng 2 KI N TRC H QU N TR C S PHN TN


MC TIU Chng ny trnh by khi qut v:

LI U

- Kin trc tham kho ca c s d liu phn tn nhm cung cp mt tng quan v vic phn tn v cp pht d liu quan h n cc sites cc b. - Cc thnh phn ca h qun tr c s d liu phn tn v mi quan h tng tc gia chng. - Kin trc ca h qun tr c s d liu phn tn. 2.1 Kin trc tham kho cho c s d liu phn tn Hnh 2.1 m t kin trc tham kho cho c s d liu phn tn. Kin trc tham kho ny khng p dng cho mi c s d liu phn tn. Tuy nhin cc mc ca n gip cho ta hiu t chc mt c s d liu phn tn bt k. V th chng ta s phn tch v tm hiu tt c cc thnh phn trong kin trc ny. Mi quan h ton cc c th c chia thnh cc thnh phn khng trng nhau c gi l cc phn mnh. C nhiu cch phn mnh m chng ta s bn n sau. nh x t cc quan h ton cc n cc phn mnh c nh ngha trong lc phn mnh. Php nh x ny l mt-nhiu ngha l c mt s phn mnh tng ng vi mt quan h ton cc nhng ch c mt quan h ton cc ng vi mt phn mnh. Cc phn mnh c ch nh bi tn quan h ton cc vi mt ch mc (ch mc phn mnh) v d Ri ch phn mnh th i ca quan h ton cc R.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn


Global schema

Franmentation schema

Site independent schema

Allocation schema

Local mapping schema 1 DBMS of Site 1

Local mapping schema 2 DBMS of site 2

(Other site) : :

Local database at site 1

Local database at site 2

Hnh 2.1 Kin trc tham kho cho mt c s d liu Cc phn mnh l cc thnh phn ca cc quan h ton cc m c lu tr vt l ti mt hay mt s a im. Lc cp pht (allocation scheme) xc nh v tr ca mt phn mnh. Kiu nh x nh ngha trong lc cc b xc nh c s d liu phn tn c d tha hay khng. Trong trng hp nh x l mt-nhiu th n d tha, ngc li nu nh x c kiu mt-mt th n khng d tha. Tt c cc phn mnh tng ng vi cng mt quan h ton cc R v c lu tr ti a im j to thnh nh vt l ca quan h R ti a im j. V th c mt nh x mt-mt gia mt nh vt l v mt cp (quan h ton cc, a im); cc nh vt l c th c ch ra bi tn quan h ton cc v ch s a im. phn bit cc mnh, chng ta s s dng mt ch s m; v d, Rj ch nh vt l ca quan h ton cc R ti a im j. Mt v d ca mi quan h gia cc kiu i tng nh ngha trn c minh ha hnh 2.2. Mt lc quan h R c phn thnh bn mnh R1, R2, R3 v R4. Bn phn mnh ny c lu tr d tha ti ba a im trn mng my tnh, v th to ra ba nh vt l R1, R2, R3.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

10

lm r k thut ny, hy xt mt bn sao ca mt phn mnh ti mt a im v ch thch n bng cch s dng tn ca quan h ton cc v hai ch s (ch s phn mnh v ch s a im). V d, trong hnh 2.2, ch thch R32 ch mt bn sao ca phn mnh R2 lu tr ti a im 3.
(R11) R1 (Site 1) R R1 (R21)

R2

(R12) R2 (site 2) (R22)

R3

(R23) R4

R3 (Site 3)

(R33)

Lc ton cc

Lc phn mnh

nh vt l

Hnh 2.2 Cc phn mnh v cc nh vt l i vi mt quan h ton cc Cui cng s thy hai nh vt l bt k c th c phn bit. Trong trng hp ny ta s ni mt nh vt l l mt bn sao ca mt nh vt l khc. V d trong hnh 2.2, R1 l mt bn sao ca R2. Kin trc tham kho hnh 2.1 m t mi quan h gia cc i tng ti ba mc trn cng ca kin trc ny. Ba mc ny c lp v tr, v th chng khng ph thuc vo m hnh d liu ca cc h qun tr c s d liu cc b. mc thp hn, cn nh x cc nh vt l n cc i tng c thao tc bi cc h qun tr c s d liu cc b. nh x ny c gi l lc nh x cc b v n ph thuc vo kiu ca h qun tr c s d liu cc b; v th trong h thng khng ng nht, c nhiu kiu nh x cc b ti cc v tr khc nhau.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

11

Kin trc ny cung cp mt m hnh quan nim tng qut hiu c c s d liu phn tn. Ba i tng quan trng nht ca kin trc ny l s tch bit gia s phn mnh d liu v s cc b ha d liu, iu khin d tha d liu v tnh c lp cc h qun tr c s d liu cc b. - S tch bit quan nim phn mnh d liu v quan nim nh v d liu: S tch bit ny gip ta phn bit hai mc khc nhau ca s trong sut phn tn c gi l s trong sut phn tn v s trong sut nh v. S trong sut phn tn l mc cao nht ca s trong sut v bao gm cc yu t m ngi s dng v cc lp trnh vin lm vic trn cc quan h ton cc. S trong sut nh v l mc thp hn v yu cu ngi s dng v cc lp trnh vin lm vic trn cc phn mnh thay v trn cc quan h ton cc. Tuy nhin h khng cn bit cc phn mnh ny lu tr u. S tch bit hai quan nim phn mnh v nh v rt ph hp trong thit k c s d liu phn tn v s xc nh cc thnh phn thch hp ca d liu c nhn bit t bi ton nh v ti u. - iu khin tng minh s d tha d liu: Kin trc tham kho cung cp mt s iu khin tng minh cho s d tha d liu ti mc phn mnh. V d trong hnh 2.2 hai nh vt l R22 v R32 trng lp ngha l chng cha chung d liu. nh ngha cc phn mnh mt cch tch bit khi xy dng cc khi vt l cho php tham kho tng minh n tng phn trng lp ny tc phn mnh nhn bn R2. iu khin s d tha d liu rt hu dng trong mt s kha cnh qun tr c s d liu phn tn. - Tnh c lp ti cc h qun tr c s d liu cc b: Tnh cht ny gi l s trong sut nh x cc b, n cho php nghin cu mt s vn qun tr c s d liu m khng quan tm n m hnh d liu c th ti cc h qun tr c s d liu cc b. Mt kiu trong sut khc lin quan cht ch ti s trong sut nh v l s trong sut nhn bn. S trong sut nhn bn c ngha l ngi s dng khng nhn thy c s nhn bn ca cc phn mnh.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

12

2.2 Cc thnh phn ca h qun tr c s d liu phn tn H qun tr c s d liu phn tn h tr vic to v duy tr c s d liu phn tn. Cc h qun tr c s d liu phn tn hin nay c pht trin bi cc nh sn xut cc h qun tr c s d liu tp trung. Chng cha cc thnh phn b sung m rng cc kh nng ca cc h qun tr c s d liu tp trung nh h tr s truyn thng v s cng tc gia cc h qun tr c s d liu trn cc a im khc nhau qua mng my tnh. Cc thnh phn c bn cn thit cho vic xy dng mt c s d liu phn tn l : 1. Thnh phn qun tr c s d liu (DB Database Management) 2. Thnh phn truyn d liu (DC Data Communication) 3. T in d liu (DD (Data Dictionnary) m rng biu din thng tin v s phn tn d liu trn mng. 4. Thnh phn c s d liu phn tn (DDB Distributed Database)
T T T T

Local database 1

DB

DC DDB

Site 1 Site 2

Local database 2 DB DC

DDB

T T

T T

Hnh 2.3 Cc thnh phn ca h qun tr c s d liu Cc thnh phn ny c minh ha hnh 2.3 i vi hai a im trn mng. Cc dch v c h tr cho h thng trn thng thng l:

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

13

- Dch v truy xut c s d liu t xa: tnh cht ny l mt tnh cht quan trng nht v c cung cp bi tt c cc h thng c thnh phn c s d liu phn tn. - Mc trong sut ca s phn tn: tnh cht ny c h tr bi cc h thng khc nhau v l s cn bng cc yu t t c s kt hp tt nht gia s trong sut phn tn v hiu sut. - H tr vic qun tr v iu khin c s d liu: tnh cht ny bao gm cc cng c gim st c s d liu, ly thng tin v vic s dng c s d liu, cung cp mt ci nhn ton cc v cc file d liu lu tr trn cc v tr khc nhau. - H tr cho vic iu khin ng thi v phc hi cc giao tc phn tn.
DATABASE ACCESS PRIMITIVE

Application Program

DBMS 1

Site 1 Site 2

Database 2 RESULT

Databas

(a) Truy xut t xa qua cc nguyn thy ca h qun tr c s d liu


REQUEST FOR EXECUTION OF AUXILIARY PROGRAM

Aplication Program

DBMS 1

Site 1

Site 2

Auxiliary program

GLOBAL

DBMS 2

DATABASE ACCESS PRIMITIVES AND RESULTS

Database 2

(b) truy xut t xa qua chng trnh b tr Hnh 2.4 Cc kiu truy xut n c s d liu phn tn

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

14

Vic truy xut n mt c s d liu t xa bi mt ng dng c th c thc hin bi mt hai cch c bn minh ha hnh 2.4. Hnh 2.4a minh ha mt ng dng a ra mt yu cu tham kho d liu t xa. Yu cu ny c nh tuyn bi h qun tr c s d liu phn tn n v tr m d liu c lu tr, sau yu cu c thc thi ti v tr v tr kt qu v. Trong cch ny, n v c bn lin lc gia cc h thng l cc nghi thc truy xut c s d liu v kt qu nhn v cng t nghi thc ny. Nu cc tip cn ny c s dng cho vic truy xut t xa, s trong sut phn tn c th c thc hin bng cch cung cp cc tn file ton cc; cc nghi thc s t ng nh v cc v tr t xa thch hp. Hnh 2.4b minh ha mt tip cn khc, ng dng yu cu s thc thi ca mt chng trnh b tr (auxiliary program) ti v tr t xa. Chng trnh b tr ny truy xut c s d liu t xa v tr kt qu cho ng dng yu cu. Li ch ca cch tip cn th nht l cung cp s trong sut phn tn nhiu hn trong khi cch tip cn th hai c th linh ng hn nu nhiu truy xut c s d liu c yu cu v ng dng b tr c th thc hin tt c cc truy xut yu cu v ch gi kt qu v. Mt thuc tnh quan trng ca h qun tr c s d liu phn tn trong h thng l chng cng loi hay khc loi. Cc h qun tr c s d liu phn tn khc loi phi thm vn thng dch gia cc m hnh d liu khc nhau, cc cu trc d liu khc nhau. y l mt vn rt kh gii quyt, nn n c khc phc bng cch h tr s truyn thng gia cc thnh phn truyn thng d liu (data communication component DC) khc nhau. Bi ton ny cng c cng ty Microsoft gii quyt bng cc thnh phn truy xut d liu (Microsoft Data Access Components (MDAC)). Cho nn mt h thng bao gm cc h qun tr c s d liu cc b khc nhau s thch hp hn cho vic pht trin h thng thng tin mt cch linh ng v t tr.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

15

2.3 Kin trc ca h qun tr c s d liu phn tn Phn ny s xem xt chi tit cc kin trc h thng l h khch/ch (client/server), cc h c s d liu phn tn v cc phc h c s d liu. 2.3.1 Cc h khch/ch (Client/Server) Trong h khch/ch, ta phn bit chc nng cn c cung cp v chia nhng chc nng ny thnh hai lp: chc nng ch, chc nng khch. N cung cp mt kin trc hai mc, to d dng cho vic qun l mc phc tp ca cc h qun tr c s d liu hin i v phc tp ca vic phn tn d liu. V th, c th nghin cu nhng khc bit v chc nng khch v chc nng ch. iu u tin phi ch l ch thc hin phn ln cc cng vic qun l d liu. iu ny c ngha l mi vic x l v ti u ha vn tin, qun l giao tc v qun l thit b lu tr u c thc hin ti my ch. Khch, ngoi giao din v ng dng, s c mt module qun tr c s d liu, khch chu trch nhim qun l d liu c gi n v i khi c vic qun l cc kho cht giao tc. Kin trc khch/ch c biu din trong hnh 2.5. Kin trc ny rt thng dng trong cc h thng quan h, vic giao tip gia khch v ch thng qua cc cu lnh SQL. Ni cch khc, khch s chuyn cc cu lnh SQL cho my ch m khng tm hiu v ti u ho chng. My ch thc hin hu ht cc cng vic v tr quan h kt qu v cho khch. 2.3.2 H qun tr c s d liu phn tn Chnh ta bt u m t kin trc ny bng cch xem xt hnh nh t chc d liu. Trc tin ta ch rng t chc d liu vt l trn mi my c th khc nhau. V th cn c mt nh ngha ni ti ring ti mi v tr c gi l lc ni ti cc b LIS (local internal schema). Hnh nh ca m hnh d liu ton cc c m t bng lc quan nim ton cc GCS (global conceptual schema). x l hin tng nhn bn v phn mnh, cn phi m t vic t chc logic ca d liu ti mi v tr, v th cn c mt tng th ba c gi l lc quan nim cc b LCS

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

16

(local conceptual schema). Do vy trong m hnh kin trc ny, lc quan nim ton cc l hp ca cc quan nim cc b. Cui cng cc ng dng v truy xut c s d liu c h tr qua lc ngoi ES (external schema). M hnh kin trc ny c trnh by hnh 2.6.

Client
H iu Hnh Truy vn SQL

Giao tip ngi dng

Chng trnh ng dng ...

Client DBMS Phn mm truyn thng Kt qu quan h Phn mm truyn thng B iu khin ng ngha d liu B ti u ha cu hi B qun l giao tc

Server
H

iu

B phc hi B x l h tr run time

Hnh

CSDL

Hnh 2.5 Kin trc my khch/ch

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

17

2.3.3 Kin trc ca h qun tr c s d liu phn tn Chnh ta bt u m t kin trc ny bng cch xem xt hnh nh t chc d liu. Trc tin ta ch rng t chc d liu vt l trn mi my c th khc nhau. V th cn c mt nh ngha ni ti ring ti mi v tr c gi l lc ni ti cc b LIS (local internal schema). Hnh nh ca m hnh d liu ton cc c m t bng lc quan nim ton cc GCS (global conceptual schema). x l hin tng nhn bn v phn mnh, cn phi m t vic t chc logic ca d liu ti mi v tr, v th cn c mt tng th ba c gi l lc quan nim cc b LCS (local conceptual schema). Do vy trong m hnh kin trc ny, lc quan nim ton cc l hp ca cc quan nim cc b. Cui cng cc ng dng v truy xut c s d liu c h tr qua lc ngoi ES (external schema). M hnh kin trc ny c trnh by hnh 2.6. ES 1 ES 2 GCS LCS 1 LiS 1 LCS 2 LiS 2 ES n ES : External Schema

GCS : Global Conceptual schema LCS n LiS 3 Local Conceptual Schema Local internal Schema

Hnh 2.6 Kin trc tham kho c s d liu phn tn Cc thnh phn c th ca mt h qun tr c s d liu phn tn gm hai thnh phn chnh (minh ha hnh 2.7): b phn giao tip ngi s dng (user processor) v b phn x l d liu (data processor). Cc thnh phn ca b phn giao tip ngi s dng gm: - B phn giao tip (user interface handler): chu trch nhim dch cc cu lnh ngi s dng v nh dng d liu kt qu chuyn cho ngi s dng.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn

18

- B phn kim sot d liu ng ngha (semantic data controller): s dng cc rng buc ton vn v thng tin quyn hn, c nh ngha nh thnh phn ca lc quan nim ton cc kim tra xem cc cu truy vn c th x l c hay khng. - B phn phn r v ti u ho vn tin ton cc (global query optimizer and decomposer): xc nh nh mt chin lc hot ng nhm gim thiu chi ph, phin dch cc cu vn tin ton cc thnh cc cu vn tin cc b bng cch s dng cc lc quan nim ton cc, lc quan nim cc b v th mc ton cc. B phn ti u vn tin ton cc cn chu trch nhim to ra mt chin lc thc thi tt nht cho php ni phn tn. - B phn gim st hot ng phn tn (distributed execution monitor): iu phi vic thc hin phn tn cc yu cu ngi s dng v cng c gi l b qun l giao tc phn tn (distributed transaction manager). Thnh phn ch yu th hai ca h qun tr c s d liu phn tn l b x l d liu (data processor), bao gm cc thnh phn: - B phn ti u ho vn tin cc b (local query optimizer): thng hot ng nh b chn ng truy xut, chu trch nhim chn ra mt ng truy xut thch hp nht truy xut cc mc d liu. - B phn khi phc cc b (local recovery manager) bo m cho cc c s d liu cc b vn duy tr c tnh nht qun ngay c khi c s c xy ra. B phn h tr lc thc thi (run-time support processor): truy xut c s d liu ty thuc vo cc lnh trong lch biu do b phn ti u vn tin to ra. N chnh l b giao tip vi h iu hnh v cha b qun l vng m c s d liu, chu trch nhim qun l vng m v qun l vic truy xut d liu.

C s d liu phn tn - 2010

Chng 2

Kin trc h qun tr c s d liu phn tn


User

19

p ng ca h thng B x l User B iu khin giao tip User

Yu cu ca User

ES b iu khin ng nghi d liu GCS B ti u ha Cu hi ton cc GD / D B gim st Thc thi ton cc T in d liu

B x l d liu B x l Cu hi cc b LCS

B qun l phc hi cc b

nht k h thng

B x l h tr thi gian chy

LiS

Hnh 2.7 Kin trc ca h qun tr c s d liu phn tn

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

20

CHNG 3 THIT K C S D LIU PHN TN


MC TIU Chng ny cp n hai vn chnh sau: 1. Mt s tiu chun thit k v cch thc phn tn d liu mt cch hp l. 2. Nn tng ton hc h tr cho nh thit k xc nh s phn tn d liu. Chng ny chia lm ba phn: Phn th nht gii thiu m hnh thit k c s d liu phn tn vi hai tip cn t trn xung v t di ln. Phn th hai trnh by s thit k phn mnh ngang, phn mnh dc v phn mnh hn hp. Phn th ba trnh by s cp pht cc phn mnh. Vn ny nhm n s nh x cc phn mnh n cc nh vt l. Trong c s d liu phn tn, chng ta bit cc quan h trong lc c s d liu thng c phn ra thnh cc mnh nh hn nhng cha a ra l do hoc chi tit no v qu trnh ny. Phn ny cp n cc chi tit . Cc cu hi sau y s bao qut 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 phn mnh hay khng? Chng ta s cp pht nh th no? Nhng thng tin no cn thit cho vic cp pht?

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

21

3.1 Cc vn v thit k c s d liu phn tn 3.1.1 Cc l do phn mnh i vi phn mnh, iu quan trng l c c mt n v phn mnh thch hp. Mt quan h khng phi l mt n v p ng c yu cu . Trc tin, khung nhn ca cc ng dng thng ch l tp con ca quan h. V th n v truy xut khng phi l ton b quan h m ch l cc tp con ca quan h. Kt qu l xem tp con ca cc quan h l n v phn tn s l iu thch hp nht. Th hai l nu cc ng dng c cc khung nhn c nh ngha trn mt quan h cho trc li nm ti nhng v tr khc nhau th c hai cch chn la vi n v phn tn l ton b quan h. Hoc quan h khng c nhn bn m c lu mt v tr hoc quan h c nhn bn cho tt c hoc mt s v tr c chy ng dng. Chn la u gy ra mt s lng ln cc truy xut khng cn thit n d liu xa. Cn chn la sau thc hin nhn bn khng cn thit, gy ra nhiu vn khi cp nht v c th gy ra lng ph khng gian lu tr. V th, 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 tc 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 thnh mt tp cc cu vn tin con hot tc trn tng mnh. Do vic phn mnh s lm tng mc hot ng song hnh v nh th lm tng lu lng hot ng ca h thng. Tuy nhin cng cn ch r nhng khim khuyt ca vic phn mnh: - Nu ng dng cn phi truy xut d liu t hai mnh ri ni hoc hp chng li th chi ph rt cao. - Vn th hai lin quan n tnh ton vn d liu: do kt qu ca vic phn mnh, cc thuc tnh tham gia vo mt ph thuc hm c th b phn r vo cc mnh khc

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

22

nhau v c cp pht cho nhng v tr khc nhau. Trong trng hp ny vic kim tra cc ph thuc hm cng phi thc hin truy tm d liu nhiu v tr. 3.1.2 Cc kiu phn mnh C hai kiu phn mnh khc nhau l phn mnh theo chiu dc, phn mnh theo chiu ngang v phn mnh hn hp s c trnh by chi tit phn sau. 3.1.2.1 Phn mnh ngang Phn mnh ngang chia mt quan h theo cc b. V vy mi mnh l mt tp con ca quan h. C hai loi phn mnh ngang: phn mnh ngang nguyn thy v phn mnh ngang dn xut. Phn mnh ngang nguyn thy (primary horizontal fragmentation) l s phn mnh mt quan h da trn mt v t c nh ngha trn mt quan h. Phn mnh ngang dn xut (derived horizontal fragmentation) l phn r mt quan h da vo cc v t c nh ngha trn mt quan h khc. Trc khi trnh by thut ton hnh thc cho phn mnh ngang, chng ta s tho lun mt cch trc quan v qu trnh phn mnh. Cho quan h R, cc mnh ngang Ri l : Ri = Fi(R) Trong Fi l cng thc chn c c mnh Ri. Fi c dng chun hi. V d: xt lc quan h ton cc : SUPPLIER(SNUM,NAME,CITY) Chng ta c th c hai phn mnh ngang sau:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

23

SUPPLIER1 = CITY= SF(SUPPLIER) SUPPLIER1 = CITY= LA(SUPPLIER) - S phn mnh trn tha iu kin y nu SF v LA ch l cc gi tr c th c ca thuc tnh CITY; ngc li chng ta s khng bit nhng mnh no vi cc gi tr CITY khc. - iu kin ti thit c kim tra d dng v chng ta lun lun c th ti thit li quan h ton cc SUPPLIER bng php ton hi: SUPPLIER = SUPPLIER1 U SUPPLIER2 - iu kin tch bit cng c kim tra mt cch r rng. 3.1.2.2 Phn mnh ngang dn xut Trong mt s trng hp s phn mnh ngang c dn ra t mt phn mnh ngang ca mt quan h khc. V d: Mt quan h ton cc SUPPLY(SNUM, PNUM, DEPTNUM, QUAN) Vi SNUM l m s ngi cung cp. Chng ta mun phn chia quan h ny sao cho mt mnh cha cc b cho nhng ngi cung cp mt thnh ph cho trc. Tuy nhin thnh ph khng phi l thuc tnh ca quan h SUPPLY m l thuc tnh ca quan h SUPPLIER. V th chng ta cn thc hin php na kt xc nh cc b ca SUPPLY tng ng vi nhng ngi cung cp trong mt thnh ph cho trc. S phn mnh dn xut ca SUPPLY c th c nh ngha nh sau: SUPPLY1 = SUPPLY < SUPPLIER1 SUPPLY2 = SUPPLY < SUPPLIER2

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

24

Vi < l php ton na kt (Semi Join) - Tnh ti thit quan h ton cc SUPPLY c th c th hin qua php hi. - Tnh y ca s phn mnh trn yu cu khng c c m s ngi cung cp c trong quan h SUPPLY nhng li khng tn ti trong quan h SUPPLIER. y chnh l mt rng buc ton vn v kho ngoi trong c s d liu. - iu kin tch bit cng c tho nu mt b trong quan h SUPPLY khng tng ng vi hai b ca quan h SUPPLIER m thuc v hai mnh khc nhau. Trng hp ny cng d kim tra v m s ngi cung cp l kho duy nht ca quan h SUPPLIER; tuy nhin, trong trng hp tng qut th kh c th chng minh iu kin ny hn. 3.1.2.3 Phn mnh dc S phn mnh dc ca mt quan h ton cc l vic chia cc thuc tnh vo hai (nhiu) nhm; cc mnh nhn c t php chiu quan h ton cc trn mi nhm. S phn mnh ny s ng n nu mi thuc tnh c nh x vo t nht vo mt thuc tnh ca cc phn mnh; hn na, n phi c kh nng ti thit li quan h nguyn thy bng cch kt ni cc phn mnh li vi nhau. Ch , mi phn mnh dc ca mt quan h ton cc phi cha kha ca quan h ton cc. C hai kiu phn mnh dc : phn mnh dc d tha v phn mnh dc khng d tha. Phn mnh dc d tha (redundant fragmentation): Phn mnh dc d tha l cc phn mnh dc cha mt hoc nhiu thuc tnh chung khng kha. V d : Xt quan h ton cc nhn vin (EMP) m t m nhn vin (EMPNUM), tn nhn vin (NAME), lng (SAL), thu thu nhp (TAX), nh qun l (MNRNUM) v phng ban h lm vic (DEPTNUM) nh sau :

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

25

EMP(EMPNUM, NAME, SAL, TAX, MNRNUM, DEPTNUM) Quan h ton cc ny c phn mnh dc d tha (thuc tnh NAME ) nh sau : EMP1 = EMPNUM, NAME, MGRNUM, DETPNUM (EMP) EMP2 = EMPNUM, NAME ,SAL, TAX (EMP) Phn mnh dc khng d tha (non-redundant fragmentation): Phn mnh dc khng d tha l cc phn mnh dc khng cha thuc tnh chung khng kha no c. V d : Quan h ton cc : EMP(EMPNUM, NAME, SAL, TAX, MNRNUM, DEPTNUM) Quan h ton cc ny c phn mnh dc khng d tha (thuc tnh ) nh sau : EMP1 = EMPNUM, NAME, MGRNUM, DETPNUM (EMP) EMP2 = EMPNUM, SAL, TAX (EMP) Phn mnh ny phn nh lng v thu ca cc nhn vin c quan l ring. Vic ti thit li quan h EMP c th nhn c t : EMP = EMP1 JNN EMP2 (vi JNN l php kt ni t nhin hai quan h) V EMPNUM l kha ca quan h EMP. Ni chung, vic cha kha ca quan h ton cc vo mi mnh l cch tt nht bo m cho tnh ti thit. T chng ta thy s phn mnh cng tha tnh y v tnh tch bit. V d : Xt quan h ton cc

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

26

EMP(EMPNUM, NAME, SAL, TAX, MNRNUM, DEPTNUM) Mt s phn mnh dc ca quan h ny c nh ngha: EMP1 = EMPNUM, NAME, MGRNUM, DETPNUM (EMP) EMP2 = EMPNUM, SAL, TAX (EMP) Phn mnh ny phn nh lng v thu ca cc nhn vin c quan l ring. Vic ti thit li quan h EMP c th nhn c t : EMP = EMP1 JNN EMP2 (vi JNN l php kt ni t nhin hai quan h) V EMPNUM l kha ca quan h EMP. Ni chung, vic cha kha ca quan h ton cc vo mi mnh l cch tt nht bo m cho tnh ti thit. T chng ta thy s phn mnh cng tha tnh y v tnh tch bit. 3.1.2.4 S phn mnh hn hp Cc phn mnh nhn c bi cc php phn mnh trn l cc quan h, v th chng ta c th p dng cc php ton phn mnh mt cch qui. Vic ti thit quan h thc hin c bng cch p dng cc lut ti thit theo th t ngc. Cc biu thc m nh ngha cc phn mnh trong trng hp ny s phc tp hn. V d: Xt quan h ton cc: EMP(EMPNUM, NAME, SAL, TAX, MNRNUM, DEPTNUM) Di y l mt s phn mnh hn hp bng cch p dng s phn mnh dc ri sau p dng phn mnh ngang trn DEPTNUM:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

27

EMP v

EMP4

EMP1 EMP2

EMP3

Hnh 3.1 Cy phn mnh ca quan h EMP EMP1 = deptnum<=10 (empnum, name, mgrnum, deptnum (EMP)) EMP2 = 10<deptnum <=20(empnum, name, mgrnum, deptnum (EMP)) EMP3 = deptnum>20 (empnum, name, mgrnum, deptnum (EMP)) EMP4 = empnum, name, sal, tax (EMP) Vic ti thit li quan h EMP c nh ngha bi biu thc: EMP = U(EMP1, EMP2 , EMP3) JNN empnum, sal, tax (EMP4) S phn mnh hn hp c th c biu din bi cy phn mnh. Trong cy phn mnh, gc tng ng vi quan h ton cc, cc l tng ng vi cc phn mnh v cc nt trung gian tng ng vi cc kt qu trung gian ca cc biu thc phn mnh. Tp cc nt con ca mt nt th hin s phn r ca nt ny bi mt php ton phn mnh ngang hoc dc. Hnh 3.1 minh ha cy phn mnh ca quan h EMP.

3.2 Thit k phn mnh


Trong chng ny chng ta ch tp trung vo nhng kha cnh ring bit trong c s d liu phn tn m khng cp k n nhng vn thit k c s d liu tp trung. Vic thit k c s d liu tp trung nhm n hai vn sau:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

28

Thit k lc quan nim: lc c s d liu m t cc thng tin v mi quan h ca chng cn lu tr; Thit k c s d liu vt l ngha l nh x lc quan nim n cc vng lu tr vt l v xc nh cc phng php truy xut thch hp. Trong c s d liu phn tn hai vn ny tr thnh vn thit k lc ph qut v thit k cc c s d liu cc b ti mi site. S phn tn c s d liu cng thm vo cc vn trn hai vn mi: Thit k s phn tn, ngha l xc nh cc quan h ph qut c phn mnh ngang, dc hay hn hp nh th no? Thit k s cp pht cc phn mnh, ngha l xc nh cc phn mnh c nh x n cc nh vt l nh th no, k c vic xc nh s nhn bn d liu. Hai vn mi ny c trng y cho s thit k phn tn d liu. S thit k phn mnh l mt tiu chun lun l trong khi s thit k cp pht nhm n vic sp t d liu vt l ti cc sites. Mc du vic thit k cc chng trnh ng dng c xy dng sau khi thit k lc , s hiu bit v cc yu cu ca cc chng trnh ng dng cng quyt nh n s thit k lc v cc lc phi h tr cc ng dng mt cch hiu qu. Cc yu cu ca ng dng nh sau: Site m ng dng c a ra (cn c gi l site gc ca ng dng) Tn s hot ng ca ng dng ( ngha l s lng yu cu hot ng trong mt n v thi gian); trong trng hp tng qut cc ng dng c th c a ra t nhiu sites, chng ta cn bit tn s hot ng ca mi ng dng ti mi site.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

29

S lng, kiu v s thng k phn tn ca cc truy xut c to bi cc ng dng n mi i tng d liu c yu cu. 3.2.1 Cc mc tiu ca vic thit k phn tn d liu S truy xut cc b: mc tiu ca s phn tn d liu l cc ng dng truy xut d liu cc b cng nhiu cng tt, gim bt cc truy xut d liu t xa. Vic thit k s phn tn d liu ti a ho truy xut cc b c th c thc hin bng cch thm s lng cc tham kho cc b v cc tham kho t xa tng ng cho mi phn mnh d tuyn v mi cp pht phn mnh, t chn ra gii php tt nht. Tnh sn sng v kh tn ca cc d liu phn tn: trong chng 1, chng ta ch ra tnh sn sng v kh tn ( tin cy) l cc im mnh ca c s d liu phn tn so vi c s d liu tp trung. Mc sn sng cao i vi cc ng dng ch c c thc hin bng cch lu tr nhiu bn sao ca cng mt thng tin; h thng phi c kh nng chuyn n bn sao c chn thch hp khi mt bn sao khng c truy xut bnh thng. kh tn cng c thc hin bng cch lu tr nhiu bn sao, khi n c kh nng phc hi khi c s ph hu mt s bn sao. S phn b ti: s phn tn b trn cc sites l mt tnh cht quan trng ca cc h thng my tnh phn tn. S phn b ti tn dng sc mnh ca vic s dng cc my tnh, v cc i ho mc x l song song cc lnh thc thi ca cc ng dng. V s phn b ti c th nh hng xu n s truy xut cc b nn cn xem xt cn bng hai mc tiu ny. Chi ph lu tr: s phn tn c s d liu phn nh chi ph ca s lu tr ti cc sites khc nhau. Tuy nhin chi ph lu tr d liu khng ng k so vi chi ph xut nhp, chi ph truyn thng ca cc ng dng. Nhng gii hn ca b lu tr phi c xem xt k.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

30

3.2.2 Cc tip cn thit k s phn tn d liu C hai cch tip cn cho s thit k c s d liu: tip cn t trn - xung v tip cn t di - ln. Trong cch tip cn t trn xung, chng ta bt u thit k lc ph qut, thit k s phn mnh c s d liu v sau cng cp pht cc mnh n cc sites, to cc nh vt l ca chng. Cch tip cn ny thch hp nht i vi cc h thng c pht trin t u v n cho php thit k mt cch hp l. Trong chng ny chng ta khng cp n cch thit k lc ph qut v lc vt l v n khng ring bit g i vi c s d liu phn tn m tp trung vo s thit k phn mnh v cp pht cc phn mnh. Khi c s d liu phn tn c pht trin nh l s t hp cc c s d liu sn c th n li khng d dng i vi phng php tip cn t trn -xung. Trong trng hp ny lc ph qut thng c to ra t s tho hip gia cc m t d liu sn c. T cch tip cn t di-ln c th c s dng thit k s phn tn d liu. Cch thit k t di ln yu cu: Chn mt m hnh c s d liu chung m t lc ph qut ca c s d liu. Chuyn dch mi lc cc b vo trong m hnh d liu chung. T hp li lc cc b vo trong lc ph qut chung. Ba vn ny khng ring bit g i vi c s d liu phn tn m n hin din ngay trong cc h thng tp trung. Bi th phng php thit k t di ln khng c cp y. Tuy nhin ba vn ny rt quan trng trong cc h thng c s d liu phn tn khng ng nht.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

31

3.2.3 Thit k s phn mnh d liu Thit k phn mnh l vn u tin phi gii quyt trong phng php thit k phn tn d liu t trn xung. Mc ch ca vic thit k phn mnh l xc nh cc phn mnh khng chng cho ln nhau. l cc n v logic ca s cp pht. Thit k phn mnh l nhm cc b (trong trng hp phn mnh ngang) hoc nhm cc thuc tnh (theo phn mnh dc) m c nhng tnh cht ging nhau t quan im cp pht chng. Mi mt nhm cc b hay cc thuc tnh c cng tnh cht s to nn mt phn mnh. V d 1: Xt s phn mnh ngang cho quan h ph qut EMP. Gi s rng cc ng dng quan trng ca c s d liu phn tn ny yu cu thng tin t quan h EMP v cc nhn vin l thnh vin ca cc d n. Mi phng ban l mt site ca c s d liu phn tn. Cc ng dng c th c gi t bt k phng ban no; tuy nhin khi chng c gi t mt phng ban th n s u tin tm cc b nhn vin trong phng ban trc vi xc sut cao hn nhng nhn vin ca phng ban khc. Trong trng hp ny cc nhn vin c phn mnh ngang theo tnh cht lm vic cng mt phng ban. Mt v d n gin v s phn mnh dc ca quan h EMP nh sau: gi s cc thuc tnh SAL v TAX ch c s dng bi cc ng dng qun tr th cc thuc tnh ny s nm trong phn mnh dc thch hp. 3.2.3.1 S phn mnh nguyn thy Nhc li s phn mnh nguyn thy c nh ngha bng cch s dng php chn la trn quan h ton cc. Tnh ng n ca s phn mnh nguyn thy i hi mi b trong quan h ton cc ch nm trong mt v ch mt phn mnh. V th xc nh mt phn mnh nguyn thy ca mt quan h ton cc yu cu xc nh mt tp cc v t

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

32

chn y v ri nhau. Tnh cht m chng ta yu cu cho mi phn mnh phi c tham kho ng nht bi tt c cc ng dng. Cho R l quan h ton cc m chng ta phn mnh ngang nguyn thy. Chng ta a ra mt s nh ngha sau: 1. Mt v t n gin l v t c kiu: Thuc tnh = gi tr 2. Mt v t s cp y cho mt tp cc v t n gin P l chun hi ca tt c cc v t xut hin trong P : y = p*i Vi p*i = pi hoc p*i= not pi v y false. 3. Mt phn mnh l mt tp cc b tng ng vi mt v t s cp 4. Mt v t n gin pi l thch hp i vi mt tp cc v t n gin P nu tn ti t nht hai v t s cp m biu thc ca n ch khc nhau do v t pi (xut hin dng thng thung v dng ph nh ca n) m cc phn mnh tng ng c tham kho n bi t nht mt ng dng. V d 2: Xt s phn mnh ngang v d 1. Gi s c mt s ng dng quan trng yu cu cc thng tin v cc nhn vin tham gia vo cc d n; li c mt s ng dng quan trng khc khng ch yu cu thng tin trn m cn cn thng tin v ngh nghip. Hai v t n gin cho v d ny l DEPT =1 v JOB =P. Cc v t s cp cho hai v t ny l: DEPT = 1 AND JOB = P DEPT = 1 AND JOB p

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

33

DEPT 1 AND JOB = p DEPT 1 AND JOB p Tt c cc v t n gin trn l thch hp, trong khi, v d, SAL > 50 khng l mt v t thch hp; Ni chung, nu chng ta phn mnh vi bt k v t s cp no trn cng vi v t n gin SAL>50 hoc SAL <=50 th mi phn trong hai phn mnh s c tham kho nh nhau trong cc ng dng. Cc nh ngha trn khng d xy dng. Tht khng may, php chn la ca cc v t khng c h tr bi cc lut chnh xc m thng da trn trc quan ca ngi thit k c s d liu. Tuy nhin chng ta cng c th nh ngha hai tnh cht c trng cho mt s phn mnh thch hp. Cho P = {p1, p2, ..., pn } l tp cc v t n gin. P th hin s phn mnh mt cch ng n v hiu qa. P phi y v cc tiu. 1. Tp cc v t n gin Pr c gi l y nu v ch nu xc xut mi ng dng truy xut n mt b bt k thuc v mt mnh hi s cp no c nh ngha theo Pr u bng nhau. 2. Tp cc v t n gin Pr c gi l cc tiu nu tt c cc v t ca n thch hp. V d 3: Hai v d 1, 2 c th c s dng lm r cc nh ngha ny. P1 = { DEPT =1 } khng y , v cc ng dng tham kho cc b ca cc lp trnh vin vi xc sut ln hn nhng phn mnh khc dn t P1. P2 ={ DEPT = 1, JOB = P } l y v cc tiu. P3 = {DEPT = 1, JOB = P, SAL >5 }l y nhng khng cc tiu v SAL > khng thch hp.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

34

S phn mnh c th thc hin nh sau: Nguyn tc: Xt mt v t p1 phn chia cc b ca R vo hai phn m chng c tham kho khc nhau bi t nht mt ng dng. Cho P = p1. Phng php: Xt mt v t n gin mi pi phn chia t nht mt phn mnh ca P thnh hai phn m c tham kho khc nhau bi t nht bi mt ng dng. t P = P U pi. Xo cc v t khng thch hp khi P. Lp li bc ny cho n khi tp ca cc phn mnh c s l y . V d 4: Ly li cc v d lm v d minh ha cho phng php trn. Xt v t u tin SAL > 50; gi s lng trung bnh ca cc lp trnh vin ln hn 50, v t ny xc nh hai tp nhn vin m c tham kho mt cch khc nhau bi cc ng dng. Ta c P1 = { SAL > 50} Chng ta xt DEPT =2; v t ny l thch hp v c thm vo tp P1, ta c P2 = {SAL > 50, DEPT = 1} Cui cng, xt JOB = P. V t ny cng thch hp v thm n vo P2, ta c P3 = { SAL>50, DEPT = 1, JOB =P}. Chng ta khm ph ra SAL>50 khng thch hp trong P3. V th chng ta nhn c tp cui cng l P4 = { DEPT =1 , JOB = P} y v cc tiu. Xt mt v d tng qut: C s d liu gm c cc quan h EMP, DEPT, SUPPLIER, SUPPLY. Gi s c s d liu phn tn ca cng ty California c ba sites ti San Francisco (site 1), Fresno (site 2), v Los Angeles (site 3); Fresno nm gia San Francisco v Los Angeles. C tt c 30 phng ban c nhm li nh sau: 10 phng ban u tin gn San Francisco, cc phng ban t 11 n 20 gn Fresno v cc phng ban trn 20 th gn Los Angeles. Tt c cc nh cung cp San Francisco hoc Los Angeles. Ngoi

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

35

ra cng ty cng c chia theo khi nim min: San Francisco min Bc, Los Angeles min nam cn Fresno nm gia hai min nn mt s phng ban nm gn Fresno s ri vo min bc hoc min nam. Chng ta thit k s phn mnh ca SUPPLIER v DEPT vi s phn mnh ngang nguyn thy. Cc nh cung cp trong quan h SUPPLIER(SNUM, NAME, CITTY) c gi tr ca thuc tnh CITY l SF hoc l LA. Gi s c mt ng dng quan trng yu cu cho bit tn nh cung cp (NAME) khi nhp m s nh cung cp (SNUM). Cu lnh SQL cho ng dng nh sau: Select NAME from SUPPLIER where SNUM = $X ng dng c gi ti bt k site no; nu n c gi ti site 1, n s tham kho n SUPPLIERS c CITY = SF vi xc sut 80%; nu c gi t site 2, n s tham kho n SUPPLIERS ca SF v LA vi xc sut bng nhau; nu n c gi t site 3, n s tham kho n SUPPLIERS ca LA vi xc sut 80%. iu ny dn n l cc phng ban s lin h n cc nh cung cp gn . Chng ta a cc v t sau: p1 : CITY = SF P2: CITY = LA Tp {p1, p2} l y v cc tiu. Mc du n gin, v d ny minh ha hai tnh cht quan trng sau:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

36

- Cc v t thch hp m t cho phn mnh ny khng th c suy ra bng cch phn tch m lnh ca ng dng. - Quan h mt thit gia cc v t gim i s lng phn mnh. Trong trng hp ny chng ta nn xem xt nhng v t tng ng vi cc v t s cp sau: y1: (CITY = SF) AND (CITY = LA) y2: (CITY = SF) AND NOT(CITY = LA) y3: NOT(CITY = SF) AND (CITY = LA) y4: NOT(CITY = SF) AND NOT(CITY = LA) Nhng chng ta bit rng: (CITY = LA) NOT (CITY = SF) v (CITY = SF) NOT (CITY = LA)

v v th chng ta suy ra y1 v y4 mu thun ln nhau v y2 v y3 s n gin thnh hai v t p1 v p2. By gi chng ta hy xt quan h ph qut sau: DEPT(DEPTNUM, NAME, AREA, MGRNUM) Chng ta s tp trung vo cc ng dng quan trng sau: Cc ng dng qun tr ch c gi t site 1 v site 3; cc ng dng qun tr v cc phng ban min bc c gi ti site 1 v cc ng dng qun tr v cc phng ban min nam c gi ti site 3. Cc ng dng v cng vic c qun l ti mi phng ban; chng c th c gi t bt k phng ban no nhng chng phi tham kho cc b ca phng ban gn site ca n nht vi xc xut cao hn cc b nhng lu nhng ni khc. Chng ta a ra cc v t sau:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

37

p1: DEPTNUM <= 10 p2: 10 < DEPTNUM <= 20 p3: DEPTNUM > 20 p4: AREA = North p5: AREA = South C mt s quan h gia cc v t trn nh AREA= North ko theo DEPTNUM > 20 l sai 5 (Hnh 3.2 ); v th s phn mnh gim cn 4 phn mnh: y1: DEPTNUM <=10 y2: (10 < DEPTNUM <= 20) AND (AREA = North) y3: (10 < DEPTNUM <= 20) AND (AREA = South) y4: DEPTNUM > 20 p4: AREA = North p1: DEPTNUM <= 10 p2: 10 < DEPTNUM <= 20 p3: DEPTNUM > 20 y1 y2 FALSE p5: AREA = South FALSE y3 y4

Hnh 3.2 S phn mnh ca quan h DEPT Mt nhn xt cui cng l s cp pht phn mnh cng d dng thy qua s phn mnh ny. Cc phn mnh tng ng vi v t y1 v y4 c lu tr ti site 1 v site 3; cc phn mnh ng vi cc v t y2 hoc y3 th hin cc ng dng qun tr th c phn b ti site 1 hoc 3 v cc phn mnh ng v cng vic ca phng ban c th c lu tr ti site 2. Thut ton COM_MIN c gii thiu tm tp cc v t y v cc tiu:

Thut ton COM_MIN C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

38

Input : R: quan h; Pr: tpcc v t n gin; Output: Pr: tp cc v t cc tiu v y ; Declare F: tp cc mnh hi s cp; Begin Pr=; F = ; For each v t p Pr if p phn hoch R theo Quy tc 1 then Begin Pr: = Pr p; Pr: = Pr p; F: = F p; {fi l mnh hi s cp theo pi } End; {Chng ta chuyn cc v t c phn mnh R vo Pr} Repeat For each p Pr if p phn hoch mt mnh fk ca Pr theo quy tc 1 then Begin Pr: = Pr p; Pr: = Pr p; F: = F p; End; Until Pr y {Khng cn p no phn mnh fk ca Pr} For each p Pr, if p m p<=>p then Begin Pr:= Pr-p; F:= F - f; End; End. {COM_MIN} Thut ton bt du bng cch tm mt v t c lin i v phn hoch quan h cho. Vng lp Repeat-until thm cc v t c phn hoch cc mnh vo tp ny, bo m tnh y ca Pr. on cui kim tra tnh cc tiu ca Pr.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

39

Sau khi c c tp cc v t cc tiu v y , ta c th tin hnh vic phn mnh ngang nguyn thy da vo thuc ton PHORIZONTAL nh sau:

Thut ton PHORIZONTAL


Input: Output: R: quan h; Pr: tp cc v t n gin; M: tp cc v t hi s cp;

Begin
Pr:= COM_MIN(R, Pr); Xc nh tp M cc v t hi s cp; Xc nh tp I cc php ko theo gia cc piPr; For each mi M do Begin IF mi mu thun vi I then M:= M-mi End; End. {PHORIZONTAL} ng ta c tp Pr l cc tiu v y . 3.2.3.2 S phn mnh ngang dn xut S phn mnh dn xut ngang ca mt quan h ton cc R khng da trn cc thuc tnh ca n m c dn ra t s phn mnh ngang ca mt quan h khc. S phn mnh dn xut ngang c s dng thun li cho vic kt ni cc mnh. Mt kt ni phn tn l mt kt ni gia cc quan h phn mnh ngang. Khi mt ng dng yu cu mt kt ni gia hai quan h ton cc R v S, tt c cc b ca R v S cn c so snh; v th, cn phi so snh tt c cc phn mnh Ri ca R vi cc phn mnh Sj ca S. Tuy nhin, i khi chng ta c th gim mt s kt ni cc b rng gia cc phn mnh. iu ny xy ra khi cc gi tr ca thuc tnh kt ni trong Ri v Sj ri nhau.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

40

Kt ni phn tn c biu din mt cch hiu qu bng cch dng th kt ni. th kt ni G ca kt ni phn tn R v S l mt th (N,E) vi cc nt N th hin cc phn mnh ca R v S v cc cnh v hng E biu din cc kt ni khng rng gia cc phn mnh. n gin, chng ta khng cha trong cc phn mnh no ca R v S m c kt ni rng. th kt ni c minh ha hnh 3.3. Chng ta ni mt th kt ni l hon ton khi n cha tt c cc cnh c th c gia cc phn mnh ca R v S. N c rt gn khi mt mt s cnh. C hai kiu th rt gn: 1. th kt ni c phn hoch nu th gm hai hay nhiu th con ri nhau. 2. th kt ni n gin nu n c phn hoch v mi th con c mt cnh. Xc nh mt kt ni ca mt th kt ni n gin l rt quan trng trong thit k c s d liu. Mt cp phn mnh m c kt ni bi mt cnh trong mt th n gin th c mt tp gi tr chung ng ca thuc tnh kt ni. V th, nu c th xc nh s phn mnh v s nh v ca hai quan h R v S sao cho th kt ni l n gin v cc cp phn mnh tng ng c lu tr ti mt a im th kt ni ny c th c biu din phn tn bng cch kt ni cc b cc cp phn mnh v sau suy ra cc kt qu ca nhng kt ni qua cc a im.

Hnh 3.3 Cc th kt ni

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

41

Ti y c th a ra mt nh ngha hnh thc ca s phn mnh dn xut ngang. Cho mt quan h ton cc R, cc phn mnh Ri ca n c dn xut t s phn mnh R v S qua php na kt ni <: Ri = R < St Kt ni R< St l n gin nu cc iu kin tch bit v y ca s phn mnh c tha. V d v s phn mnh hn hp: Xt quan h SUPPLY (SNUM, PNUM, DETPNUM, QUAN). Gi s cc ng dng m s dng quan h ny lun lun lin h n quan h khc nh quan h SUPPLIER, DEPT nh sau: - Mt s ng dng yu cu thng tin v cc giao dch cung cp t cc nh cung cp cho trc; v th phi kt ni SUPPLY vi SUPPLIER trn thuc tnh SNUM. SUPPLY(SNUM, PNUM, DEPTNUM, QUAN) SUPPLY1 = SUPPLY < SUPPLIER1 SUPPLY2 = SUPPLY < SUPPLIER2 Vi < l php ton na kt (Semi Join) Cc ng dng khc yu cu thng tin v cc giao dch cung cp t cc phng ban cho trc. v th phi kt ni SUPPLY vi DEPT trn thuc tnh DEPTNUM. Gi s quan h ph qut DEPT c phn mnh ngang theo DEPTNUM v quan h SUPPLIER phn mnh ngang theo DEPTNUM. C hai phn mnh ngang dn xut cho quan h SUPPLY bng php na kt vi cc phn mnh SUPPLIER v vi cc phn mnh DEPT.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

42

SUPPLY(SNUM, PNUM, DEPTNUM, QUAN) SUPPLY1 = SUPPLY < DEPT1 SUPPLY2 = SUPPLY < DEPT2 Vi < l php ton na kt (Semi Join) Kim tra tnh ng n By gi chng ta cn phi kim tra tnh ng ca phn mnh ngang. a. Tnh y + Phn mnh ngang nguyn thu: Vi iu kin cc v t chn l y , phn mnh thu cng c m bo l y , bi v c s ca thut ton phn mnh l tp cc v t cc tiu v y Pr, nn tnh y c bo m vi iu kin khng c sai st xy ra. + Phn mnh ngang dn xut: C khc cht t, kh khn chnh y l do v t nh ngha phn mnh c lin quan n hai quan h. Trc tin chng ta hy nh ngha qui tc y mt cch hnh thc. R l quan h thnh vin ca mt ng ni m ch nhn l quan h S. Gi A l thuc tnh ni gia R v S, th th vi mi b t ca R, phi c mt b t ca S sao cho t.A=t.A Quy tc ny c gi l rng buc ton vn hay ton vn tham chiu, bo m rng mi b trong cc mnh ca quan h thnh vin u nm trong quan h ch nhn. b. Tnh ti thit

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

43

Ti thit mt quan h ton cc t cc mnh c thc hin bng ton t hp trong c phn mnh ngang nguyn thy ln dn xut, V th mt quan h R vi phn mnh Fr={R1, R2,,Rm} chng ta c R = R i , Ri FR c. Tnh tch bit Vi phn mnh nguyn thu tnh tch ri s c bo m min l cc v t hi s cp xc nh phn mnh c tnh loi tr tng h (mutually exclusive). Vi phn mnh dn xut tnh tch ri c th bo m nu th ni thuc loi n gin. 3.2.3.3 S phn mnh dc Xc nh s phn mnh dc ca mt quan h ton cc i hi nhm li cc thuc tnh m c tham kho cng kiu bi cc ng dng. iu kin ng n ca s phn mnh dc yu cu mi thuc tnh ca R ph thuc vo t nht mt tp thuc tnh v mi tp thuc tnh phi cha thuc tnh kho ca R. Mc ch ca s phn mnh dc l xc nh cc mnh Ri no m nhiu ng dng c th thc thi trn chng. Xt mt quan h ton cc R c phn hoch dc thnh R1 v R2. Mt ng dng s c li qua vic phn hoch ny nu n c th c thc thi bng cch ch s dng R1 hoc R2. Tuy nhin nu ng dng yu cu c hai phn mnh th vic phn hoch ny khng c li v phi thc hin php kt ni xy dng li R. Vic xc nh mt phn mnh dc cho mt quan h ton cc khng d dng khi s lng t hp cc thuc tnh ln. V th cch tip cn heuristic c u th hn. Chng ta s m t vn tt hai cch tip cn ny: 1. Tip cn phn r: Mt quan h ton cc s c ln lt phn r vo thnh cc phn mnh.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

44

2. Tip cn gom nhm: Cc thuc tnh c gom nhm ln lt to thnh cc phn mnh. C hai tip cn ny ging nhau im: Chng tip din bng cch to ra mt chn la tt nht ti mi vng lp. Trong c hai trng hp, cc cng thc chn la c dng xc nh kh nng tt nht cho vic phn r hay gom nhm. Mt s dng quay lui (backtracking) c th c to ra chuyn mt s thuc tnh t tp ny n tp khc cho n khi t dc phn mnh cui cng. V d: Xt quan h ton cc: EMP(EMPNUM, NAME, SAL, TAX, MGRNUM, DEPTNUM) Gi s cc ng dng s dng quan h DEPTNUM nh sau: Cc ng dng qun tr tp trung site 3 yu cu thng tin NAME, SAL, TAX ca cc nhn vin. Cc ng dng v cng vic c qun l ti cc phng ban yu cu thng tin v NAME, MGRNUM v DEPTNUM ca cc nhn vin; cc ng dng ny c th c gi ti tt c cc sites v tham kho cc b nhn vin trong cng mt nhm ca cc phng ban vi xc sut 80%. V th s phn mnh dc ca EMP thnh hai mnh vi cc thuc tnh qun tr v cc thuc tnh m t cng vic l kh t nhin. T chn ta c c hai phn mnh dc nh sau: EMP1(EMPNUM,NAME,TAX,SAL) EMP2(EMPNUM, NAME, MGRNUM,DEPT)

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

45

Trong hai phn mnh ny chng ta quyt nh thuc tnh NAME c hai phn mnh nhm tng hiu sut chng trnh (khi php thc hin php kt) v hn na l tn ca cc nhn vien th thng l khng thay i. Phng php phn mnh dc Mt phn mnh dc cho mt quan h R sinh ra cc mnh R1, R2,..,Rr, mi mnh cha mt tp con thuc tnh ca R v c kho ca R. Mc ch ca phn mnh dc l phn hoch mt quan h thnh mt tp cc quan h nh hn nhiu ng dng ch cn chy trn mt mnh. Mt phn mnh ti ul phn mnh sinh ra mt lc phn mnh cho php gim ti a thi gian thc thi cc ng dng chy trn mnh . Phn mnh dc tt nhin l phc tp hn so vi phn mnh ngang. iu ny l do tng s chn la c th ca mt phn hoch dc rt ln. V vy c c cc li gii ti u cho bi ton phn hoch dc thc s rt kh khn. V th li phi dng cc phng php khm ph (heuristic). Chng ta a ra hai loi heuristic cho phn mnh dc cc quan h ton cc. - Nhm thuc tnh: Bt u bng cch gn mi thuc tnh cho mt mnh, v ti mi bc, ni mt s mnh li cho n khi tha mt tiu chun no . K thut ny c c xut ln u cho cc CSDL tp trung v v sau c dng cho cc CSDL phn tn. - Tch mnh: Bt u bng mt quan h v quyt nh cch phn mnh c li da trn hnh vi truy xut ca cc ng dng trn cc thuc tnh. Bi v phn hoch dc t vo mt mnh cc thuc tnh thng c truy xut chung vi nhau, chng ta cn c mt gi tr o no nh ngha chnh xc hn v khi nim chung vi nhau. S o ny gi l t lc hay lc ht (affinity) ca thuc tnh, ch ra mc lin i gia cc thuc tnh.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

46

Yu cu d liu chnh c lin quan n cc ng dng l tn s truy xut ca chng. gi Q={q1, q2,,qq} l tp cc vn tin ca ngi dng (cc ng dng) s chy trn quan h R(A1, A2,,An). Th th vi mi cu vn tin qi v mi thuc tnh Aj, chng ta s a ra mt gi tr s dng thuc tnh, k hiu use(qi, Aj) c nh ngha nh sau: 1 : nu thuc tnh Aj c vn tin qi tham chiu use(qi, Aj)= 0 : trong trng hp ngc li

Cc vct use(qi, ) cho mi ng dng rt d nh ngha nu nh thit k bit c cc ng dng s chy trn CSDL. V d: Xt quan h d n: Project(JNO, JNAME, BUDJET, LOC) Gi s rng cc ng dng sau y chy trn cc quan h . Trong mi trng hp chng ta cng c t bng SQL. q1: Tm ngn sch ca mt d n, cho bit m ca d n SELECT FROM WHERE Budjet PROJECT JNO =gi tr

q2: Tm tn v ngn sch ca tt c mi d n SELECT FROM JNAME, Budjet PROJECT

q3: Tm tn ca cc d n c thc hin ti mt thnh ph cho SELECT FROM WHERE JNAME PROJECT LOC=gi tr

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

47

q4: Tm tng ngn sch d n ca mi thnh ph SELECT FROM WHERE SUM (Budjet) PROJECT LOC=gi tr

Da theo bn ng dng ny, chng ta c th nh ngha ra cc gi tr s dng thuc tnh. cho tin v mt k php, chng ta gi A1=JNO, A2=JNAME, A3=Budjet, A4=LOC. Gi tr s dng c nh ngha di dng ma trn s dng (hnh 3.4), trong mc (i,j) biu th use(qi , Aj ). A1 q1 q2 q3 1 0 0 A2 0 1 1 A3 1 1 0 A4 0 0 1

Hnh 3.4 Ma trn s dng T lc ca cc thuc tnh Gi tr s dng thuc tnh khng lm c s cho vic tch v phn mnh. iu ny l do chng khng biu th cho ln ca tn s ng dng. S o lc ht (affinity) ca cc thuc tnh aff(Ai, Aj), biu th cho cu ni (bond) gia hai thuc tnh ca mt quan h theo cch chng c cc ng dng truy xut, s l mt i lng cn thit cho bi ton phn mnh. Xy dng cng thc o lc ht ca hai thuc tnh Ai, Aj. Gi k l s cc mnh ca R c phn mnh. Tc l R = R1 .Rk.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

48

Q= {q1, q2,,qm} l tp cc cu vn tin (tc l tp cc ng dng chy trn quan h R). t Q(A, B) l tp cc ng dng q ca Q m use(q, A).use(q, B) = 1. Ni cch khc: Q(A, B) = {qQ: use(q, A) =use(q, B) = 1} v d da vo ma trn trn ta thy Q(A1,A1) = {q1}, Q(A2,A2 ) = {q2, q3}, Q(A3,A3 ) = {q1,q2, q4}, Q(A4,A4 ) = {q3, q4}, Q(A1,A2 ) = rng, Q(A1,A3 ) = {q1}, Q(A2,A3 ) = {q2},.. S o lc ht gia hai thuc tnh Ai, Aj c nh ngha l: aff(Ai, Aj)= Hoc: aff(Ai, Aj)=
Use(qk, Ai)=1 Use(qk, Aj)=1 Rl qk Q(Ai, Aj)

refl (qk)accl(qk)
l Rl

refl (qk)accl(qk)

Trong refl (qk) l s truy xut n cc thuc tnh (Ai, Aj) cho mi ng dng qk ti v tr Rl v accl(qk) l s o tn s truy xut ng dng qk n cc thuc tnh Ai, Aj ti v tr l. Chng ta cn lu rng trong cng thc tnh aff (Ai, Aj) ch xut hin cc ng dng q m c Ai v Aj u s dng. Kt qu ca tnh ton ny l mt ma trn i xng n x n, mi phn t ca n l mt s o c nh ngha trn. Chng ta gi n l ma trn lc t ( lc ht hoc i lc) thuc tnh (AA) (attribute affinity matrix). V d: Chng ta hy tip tc vi v d 11. cho dn gin chng ta hy gi s rng refl (qk) =1 cho tt c qk v Rl. Nu tn s ng dng l: Acc1(q1) = 15 Acc1(q2) = 5 Acc2(q1) = 20 Acc2(q2) = 0 Acc3(q1) = 10 Acc3(q2) = 0

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

49

Acc1(q3) = 25 Acc1(q4) = 3

Acc2(q3) = 25 Acc2(q4) = 0

Acc3(q3) = 25 Acc3(q1) = 0

S o lc ht gia hai thuc tnh A1 v A3 l: Aff(A1, A3) = 1k=13t=1acct(qk) = acc1(q1)+acc2(q1)+acc3(q1) = 45 Tng t tnh cho cc cp cn li ta c ma trn i lc (hnh 3.5) sau: A1 A1 A2 A3 A4 45 0 45 0 A2 0 80 5 75 A3 45 5 53 3 A4 0 75 3 78

Hnh 3.5 Ma trn i lc Thut ton nng lng ni BEA (Bond Energy Algorithm) n y ta c th phn R lm cc mnh ca cc nhm thuc tnh da vo s lin i (lc ht) gia cc thuc tnh, v d t lc ca A1, A3 l 45, ca A2, A4 l 75, cn ca A1, A2 l 0, ca A3, A4 l 3 Tuy nhin, phng php tuyn tnh s dng trc tip t ma trn ny t c mi ngi quan tm v s dng. Sau y chng ta xt mt phng php dng thut ton nng lng ni BEA ca Hoffer and Severance, 1975 v Navathe., 1984. 1. N c thit k c bit xc nh cc nhm gm cc mc tng t, khc vi mt sp xp th t tuyn tnh ca cc mc.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

50

2. Cc kt qu t nhm khng b nh hng bi th t a cc mc vo thut ton. 3. Thi gian tnh ton ca thut ton c th chp nhn c l O(n2), vi n l s lng thuc tnh. 4. Mi lin h qua li gia cc nhm thuc tnh t c th xc nh c. Thut ton BEA nhn nguyn liu l mt ma trn i lc thuc tnh (AA), hon v cc hng v ct ri sinh ra mt ma trn i lc t (CA) (Clustered affinity matrix). Hon v c thc hin sao cho s o i lc chung AM (Global Affinity Measure) l ln nht. Trong AM l i lng: AM=ni=1nj=1 aff(Ai, Aj)[aff(Ai, Aj-1)+aff(Ai, Aj+1)+aff(Ai-1, Aj)+ aff(Ai+1, Aj)] Vi aff(A0, Aj)=aff(Ai, A0)=aff(An+1, Aj)=aff(Ai, An+1)=0 cho i,j Tp cc iu kin cui cng cp n nhng trng hp mt thuc tnh c t vo CA v bn tri ca thuc tnh tn tri hoc v bn phi ca thuc tnh tn phi trong cc hon v ct, v bn trn hng trn cng v bn di hng cui cng trong cc hon v hng. Trong nhng trng hp ny, chng ta cho 0 l gi tr lc ht aff gia thuc tnh ang c xt v cc ln cn bn tri hoc bn phi (trn cng hoc di y ) ca n hin cha c trong CA. Hm cc i ho ch xt nhng ln cn gn nht, v th n nhm cc gi tr ln vi cc gi tr ln , gi tr nh vi gi tr nh. V ma trn lc ht thuc tnh AA c tch cht i xng nn hm s va c xy dng trn thu li thnh: AM=ni=1nj=1 aff(Ai, Aj)[aff(Ai, Aj-1)+aff(Ai, Aj+1)] Qu trnh sinh ra ma trn t lc (CA) c thc hin qua ba bc: Bc 1: Khi gn:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

51

t v c nh mt trong cc ct ca AA vo trong CA. v d ct 1, 2 c chn trong thut ton ny. Bc 2: Thc hin lp Ly ln lt mt trong n-i ct cn li (trong i l s ct c t vo CA) v th t chng vo trong i+1 v tr cn li trong ma trn CA. Chn ni t sao cho cho i lc chung AM ln nht. Tip tc lp n khi khng cn ct no dt. Bc 3: Sp th t hng Mt khi th t ct c xc nh, cc hng cng c t li cc v tr tng i ca chng ph hp vi cc v tr tng i ca ct.

Thut ton BEA


Input: Begin {Khi gn: cn nh rng l mt ma trn n x n} CA(, 1)AA(, 1) CA(, 2)AA(, 2) Index:=3 while index <= n do begin for i :=1 to index-1 by 1 do tnh cont(Ai-1, Aindex, Ai); Tnh cont(Aindex-1,Aindex, Aindex+1); for i: = index downto loc do CA(, j)CA(, j-1); CA(, loc)AA(, index); indexindex+1; { iu kin bin} {xo trn hai ma trn} Loc ni t, c cho bi gi tr cont ln nht; {chn v tr tt nht cho thuc tnh Aindex} AA - ma trn i lc thuc tnh; Output: CA - ma trn i lc t sau khi sp xp li cc hng cc ct;

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

52

end-while Sp th t cc hng theo th t tng i ca ct. end. {BEA} hiu r thut ton chng ta cn bit cont(*,*,*). Cn nhc li s o i lc chung AM c nh ngha l: AM=ni=1nj=1 aff(Ai, Aj)[aff(Ai, Aj-1)+aff(Ai, Aj+1)] V c th vit li: AM = ni=1nj=1 [aff(Ai, Aj) aff(Ai, Aj-1)+aff(Ai, Aj) aff(Ai, Aj+1)] = nj=1[ni=1 aff(Ai, Aj) aff(Ai, Aj-1)+ ni=1 aff(Ai, Aj) aff(Ai, Aj+1)] Ta nh ngha cu ni (Bond) gia hai thuc tnh Ax, v Ay l: Bond(Ax, Ay )=nz=1aff(Az, Ax)aff(Az, Ay) Th th c th vit li AM l: AM = nj=1[ Bond(Ai, Aj-1)+Bond(Ai, Aj+1)] By gi xt n thuc tnh sau: A1 A2 Ai-1 AiAj Aj+1 An Aj+1 An thuc nhm AM

Vi A1 A2 Ai-1 thuc nhm AM v AiAj

Khi s o lc ht chung cho nhng thuc tnh ny c th vit li: AMold = AM + AM+ bond(Ai-1, Ai) + bond(Ai, Aj) + bond(Aj, Ai)+ bond(bond(Aj+1, Aj) = nl=1[ bond(Al, Al-1)+bond(Ai, Al+1)] + nl=i+1[bond(Al, Al1)+bond(Ai,

Al+1)] + 2bond(Ai, Al))

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

53

By gi xt n vic t mt thuc tnh mi Ak gia cc thuc tnh Ai v Aj trong ma trn lc ht t. S o lc ht chung mi c th c vit tng t nh: AMnew = AM + AM+ bond(Ai, Ak) + bond(Ak, Ai) + bond(Ak, Aj)+ bond(Aj, Ak) = AM + AM+ 2bond(Ai, Ak) + 2bond(Ak, Aj) V th ng gp thc (net contribution) cho s o i lc chung khi t thuc tnh Ak gia Ai v Aj l: Cont(Ai, Ak, Aj) = AMnew - AMold = 2Bond(Ai, Ak )+ 2Bond(Ak, Aj ) - 2Bond(Ai, Aj ) Bond(A0, Ak)=0. Nu thuc tnh Ak t bn phi thuc tnh tn bn phi v cha c thuc tnh no c t ct k+1 ca ma trn CA nn bond(Ak, Ak+1)=0. V d: Ta xt ma trn c cho trong v d 12 v tnh ton phn ng gp khi di chuyn thuc tnh A4 vo gia cc thuc tnh A1 v A2, c cho bng cng thc: Cont(A1, A4, A2)= 2bond(A1, A4)+ 2bond(A4, A2)-2bond(A1, A2) Tnh mi s hng chng ta c: Bond(A1, A4) = 4z=1aff(Az, A1)aff(Az, A4) = aff(A1,A1) aff(A1,A4) +aff(A2,A1) aff(A2,A4) + aff(A1,A3) aff(A3,A4) + aff(A1,A4) aff(A4,A4) = 45*0 +0*75+ 45*3+0*78 = 135 Bond(A4, A2)= 11865 Bond(A1,A2) = 225 V th cont(A1, A4) = 2*135+2*11865+2*225 = 23550 V d: Chng ta hy xt qu trnh gom t cc thuc tnh ca quan h D n v dng ma trn i lc thuc tnh AA.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

54

Bc khi u chng ta chp cc ct 1 v 2 ca ma trn AA vo ma trn CA v bt u thc hin t ct th ba. C 3 ni c th t c ct 3 l: (3-1-2), (1, 3, 2) v (1, 2, 3). Chng ta hy tnh ng gp s i lc chung ca mi kh nng ny. th t (0-3-1): cont(A0, A3, A1) = 2bond(A0, A3)+ 2bond(A3, A1) - 2bond(A0, A1) bond(A0, A3) = bond(A0, A1)=0 bond(A3, A1) = 45*48+5*0+53*45+3*0=4410 cont(A0, A3, A1) = 8820 th t (1-3-2) cont (A1, A3, A2)=10150 th t (2-3-4) cont (A2, A3, A4)=1780 Bi v ng gp ca th t (1-2-3) l ln nht, chng ta t A3 vo bn phi ca A1. Tnh ton tng t cho A4 ch ra rng cn phi t n vo bn phi ca A2. Cui cng cc hng c t chc vi cng th t nh cc ct v cc hng c trnh by trong hnh (3.6) sau: A1 A1 A2 A3 A4 45 0 45 0 A2 0 80 5 75 A1 A2 A3 A4 A1 45 0 45 0 A3 45 5 53 3 A2 0 80 5 75

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

55

A1 A1 A2 A3 A4 45 0 45 0

A3 45 5 53 3

A2 0 80 5 75

A4 0 75 3 78 A1 A3 A2 A4

A1 45 45 0 0

A3 45 53 5 3

A2 0 5 80 75

A4 0 3 75 78

Hnh 3.6 Gom nhm cc thuc tnh Trong hnh trn chng ta thy qu trnh to ra hai t: mt gc trn tri cha cc gi tr i lc nh, cn t kia di gc phi cha cc gi tr i lc cao. Qu trnh phn t ny ch ra cch thc tch cc thuc tnh ca Project. Tuy nhin, ni chung th ranh ri cc phn tch khng hon ton r rng. Khi ma trn CA ln, thng s c nhiu t hn c to ra v nhiu phn hoch c chn hn. Do vy cn phi tip cn bi ton mt cch c h thng hn. Thut ton phn hoch Mc ch ca hnh ng tch thuc tnh l tm ra cc tp thuc tnh c truy xut cng nhau hoc hu nh l cc tp ng dng ring bit. Xt ma trn thuc tnh t (i lc t) (hnh 3.7): Nu mt im nm trn ng cho c c nh, hai tp thuc tnh ny c xc nh. Mt tp {A1, A2,..., Ai} nm ti gc trn tri v tp th hai {Ai+1, Ai+2,..., An} nm ti gc bn phi v bn di im ny. Chng ta gi 2 tp ln lt l TA, BA. Tp ng dng Q={q1, q2,...,qq} v nh ngha tp ng dng ch truy xut TA, ch truy xut BA hoc c hai, nhng tp ny c nh ngha nh sau:

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

56

AQ(qi) = {Aj |use(qi, Aj)=1} TQ = {qi | AQ(qi) TA} A1 A2 A3 ... Ai Ai+1 ... An A1 A1 :

TA

Ai Ai+1

BA
: : An Hnh 3.7 Ma trn thuc tnh t (i lc t) AQ(qi) = {Aj |use(qi, Aj)=1} TQ = {qi | AQ(qi) TA} BQ = {qi | AQ(qi) BA} OQ = Q - {TQ BQ} y ny sinh bi ton ti u ho. Nu c n thuc tnh trong quan h th s c n-1 v tr kh hu c th l im phn chia trn ng cho chnh ca ma trn thuc

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

57

tnh t cho quan h . V tr tt nht phn chia l v tr sinh ra tp TQ v BQ sao cho tng cc truy xut ch mt mnh l ln nht cn tng truy xut c hai mnh l nh nht. V th chng ta nh ngha cc phng trnh chi ph nh sau: CQ = refj(qi)accj(qi)
qiQ Sj qiTQ Sj

CTQ = refj(qi)accj(qi) CBQ= refj(qi)acc(qi)


qiBQ Sj

COQ= refj(qi)acc(qi)
qiOQ Sj

Mi phng trnh trn m tng s truy xut n cc thuc tnh bi cc ng dng trong cc lp tng ng ca chng. Da trn s liu ny, bi ton ti u ho c nh ngha l bi ton tm im x (1 x n) sao cho biu thc: Z=CTQ+CBQ-COQ2 ln nht. c trng quan trng ca biu thc ny l n nh ngha hai mnh sao cho gi tr ca CTQ v CBQ cng gn bng nhau cng tt. iu ny cho php cn bng ti trng x l khi cc mnh c phn tn n cc v tr khc nhau. Thut ton phn hoch c phc tp tuyn tnh theo s thuc tnh ca quan h, ngha l O(n).

Thut ton PARTITION


Input: CA: ma trn i lc t; R: quan h; ref: ma trn s dng thuc tnh; acc: ma trn tn s truy xut; Output: F: tp cc mnh; Begin {xc nh gi tr z cho ct th nht} {cc ch mc trong phng trnh chi ph ch ra im tch} tnh CTQn-1 tnh CBQn-1 tnh COQn-1

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

58

best CTQn-1*CBQn-1 (COQn-1)2 do begin for i from n-2 to 1 by -1 do begin tnh CTQi tnh CBQi tnh COQi z CTQi*CBQi (COQi)2 if z > best then begin best z ghi nhn im tch bn vo trong hnh ng x dch end-if end-for gi SHIFT(CA) end-begin until khng th thc hin SHIFT c na Xy dng li ma trn theo v tr x dch R1 TA(R) K R2 BA(R) K F {R1, R2} End. {partition} p dng cho ma trn CA t quan h Project, kt qu l nh ngha cc mnh FProj={Project1, Project2} Trong : Project1={A1, A3} v Project2= {A1, A2, A4}. V th Project1={JNO, Budjet} {K l tp thuc tnh kho chnh ca R} {xc nh cch phn hoch tt nht}

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

59

Project2={JNO, JNAME, LOC} JNO l thuc tnh kho ca Project Kim tra tnh ng n: Tnh y : c bo m bng thut ton PARTITION v mi thuc tnh ca quan h ton cc c a vo mt trong cc mnh. Tnh ti thit c: i vi quan h R c phn mnh dc FR={R1, R2,...., Rr} v cc thuc tnh kho K R=
K

Ri , RiFR

Do vy nu iu kin mi Ri l y php ton ni s ti thit li ng R. Mt im quan trng l mi mnh Ri phi cha cc thuc tnh kho ca R. 3.2.4 S phn mnh hn hp Cui cng chng ta xt s phn mnh hn hp. Cch thc d nht thc hin s phn mnh hn hp l: 1. p dng s phn mnh ngang i vi cc phn mnh dc. 2. p dng s phn mnh dc i vi cc phn mnh ngang. Mc du cc php ton trn c th lp li mt cch qui, nhng trn thc tin s phn mnh khng nn qu hai cp. Hnh 3.8 th hin th t ca s phn mnh nh sau: S phn mnh ngang c p dng ngay trn mt phn mnh dc. S phn mnh dc c p dng ngay trn mt phn mnh ngang.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

60

A1

A2

A3

A4

A5

S phn mnh dc ri sau phn mnh ngang A1 A2 A3 A4 A5

S phn mnh ngang sau phn mnh dc Hnh 3.8 S phn mnh hn hp ca quan h R(A1, A2, A3, A4, A5) V d tng qut Xt li quan h ph qut EMP c phn mnh dc thnh EMP1 v EMP2. Gi s cc ng dng v cng vic c iu hnh ti cc phng ban m s dng phn mnh EMP2 tham kho n xc sut 80% cc b ca cc phng ban ln cn vi site m cc ng dng c gi. V th EMP2 c th c phn mnh ngang tip tc theo nhm cc phng ban.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

61

3.3 S cp pht cc phn mnh


3.3.1 Bi ton cp pht Gi s c mt tp cc mnh F={F1, F2, ...,Fn} v mt mng bao gm cc v tr S={S1, S2, ...,Sm} trn c mt tp cc ng dng Q={q1, q2, ...,qq} ang chy. Bi ton cp pht l tm mt phn phi ti u ca F cho S. Tnh ti u c th c nh ngha ng vi hai s o: - Chi ph nh nht: Hm chi ph c chi lu mnh Fi vo v tr Sj, chi ph vn tin mnh Fi vo v tr Sj, chi ph cp nht Fi ti tt c mi v tr c cha n v chi ph tryn d liu. V th bi ton cp pht c gng tm mt lc cp pht vi hm chi ph t hp nh nht. - Hiu nng: Chin lc cp pht c thit k nhm duy tr mt hiu qu ln l h thp thi gian p ng v tng ti a lu lng h thng ti mi v tr. Ni chung bi ton cp pht tng qut l mt bi ton phc tp v c phc tp l NP-y (NP-complete). V th cc nghin cu c dnh cho vic tm ra cc thut gii heuristec tt c li gii gn ti u. 3.3.2 Yu cu v thng tin giai on cp pht, chng ta cn cc thng tin nh lng v CSDL, v cc ng dng chy trn , v cu trc mng, kh nng x l v gii hn lu tr ca mi v tr trn mng. Thng tin v CSDL tuyn ca mt mnh Fj ng vi cu vn tin qi. y l s lng cc b ca Fj cn c truy xut x l qi. Gi tr ny k hiu l seli(Fj) Kch thc ca mt mnh Fj c cho bi

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

62

Size (Fj) = card (Fj)* length(Fj) Trong : Length(Fj) l chiu di (tnh theo byte) ca mt b trong mnh Fj. Thng tin v ng dng Hai s liu quan trng l s truy xut c do cu vn tin qi thc hin trn mnh Fj trong mi ln chy ca n (k hiu l RRij), v tng ng l cc truy xut cp nht (URij). v d chng c th m s truy xut khi cn phi thc hin theo yu cu vn tin. Chng ta nh ngha hai ma trn UM v RM vi cc phn t tng ng uij v rij c c t tng ng nh sau: 1 nu vn tin qi c cp nht mnh Fj uij= 0 trong trng hp ngc li 1 nu vn tin qi c cp nht mnh Fj rij = 0 trong trng hp ngc li

Mt vct O gm cc gi tr o(i) cng c nh ngha, vi o(i) c t v tr a ra cu vn tin qi . Thng tin v v tr Vi mi v tr (trm) chng ta cn bit v kh nng lu tr v x l ca n. Hin nhin l nhng gi tr ny c th tnh c bng cc hm thch hp hoc bng phng php nh gi n gin. + Chi ph n v tnh lu d liu ti v tr Sk s c k hiu l USCk. + c t s o chi ph LPCk, l chi ph x l mt n v cng vic ti v tr Sk. n v cng vic cn phi ging vi n v ca RR v UR.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

63

Thng tin v mng Chng ta gi s tn ti mt mng n gin, gij biu th cho chi ph truyn mi b gia hai v tr Si v Sj. c th tnh c s lng thng bo, chng ta dng fsize lm kch thc (tnh theo byte) ca mt b d liu. 3.3.3. M hnh cp pht M hnh cp pht c mc tiu lm gim thiu tng chi ph x l v lu tr d liu trong khi vn c gng p ng c cc i hi v thi gian p ng. M hnh ca chng ta c hnh thi nh sau: Min (Total Cost) ng vi rng buc thi gian p ng, rng buc lu tr, rng buc x l. Bin quyt nh xij c nh ngha l 1 nu mnh Fi c lu ti v tr Sj xij= 0 trong trng hp ngc li

Tng chi ph
Hm tng chi ph c hai thnh phn: phn x l vn tin v phn lu tr. V th n c th c biu din l: TOC= QPCi +
qi Q SkS

STCjk
FjF

vi QPCi l chi ph x l cu vn tin ng dng qi, v STCjk l chi ph lu mnh Fj ti v tr Sk. Chng ta hy xt chi ph lu tr trc. N c cho bi STCjk = USCk * size(Fj) *xjk

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

64

Chi ph x l vn tin kh xc nh hn. Hu ht cc m hnh cho bi ton cp pht tp tin FAP tch n thnh hai phn: Chi ph x l ch c v chi ph x l ch cp nht. y chng ti chn mt hng tip cn khc trong m hnh cho bi ton DAP v xc nh n nh l chi ph x l vn tin bao gm chi ph x l l PC v chi ph truyn l TC. V th chi ph x l vn tin QPC cho ng dng qi l QPCi=PCi+TCi Thnh phn x l PC gm c ba h s chi ph, chi ph truy xut AC, chi ph duy tr ton vn IE v chi ph iu khin ng thi CC: PCi=ACi+IEi+CCi M t chi tit cho mi h s chi ph ph thuc vo thut ton c dng hon tt cc tc v . Tuy nhin minh ho chng ti s m t chi tit v AC: ACi= (uij*URij+rij*RRij)* xjk*LPCk SkS FjF Hai s hng u trong cng thc trn tnh s truy xut ca vn tin qi n mnh Fj. Ch rng (URij+RRij) l tng s cc truy xut c v cp nht. Chng ta gi thit rng cc chi ph x l chng l nh nhau. K hiu tng cho bit tng s cc truy xut cho tt c mi mnh c qi tham chiu. Nhn vi LPCk cho ra chi ph ca truy xut ny ti v tr Sk. Chng ta li dng xjk ch chn cc gi tr chi ph cho cc v tr c lu cc mnh. Mt vn rt quan trng cn cp y. Hm chi ph truy xut gi s rng vic x l mt cu vn tin c bao gm c vic phn r n thnh mt tp cc vn tin con hot tc trn mt mnh c lu ti v tr , theo sau l truyn kt qu tr li v v tr a ra vn tin. H s chi ph duy tr tnh ton vn c th c m t rt ging thnh phn x l ngoi tr chi ph x l cc b mt n v cn thay i nhm phn nh chi ph thc s duy tr tnh ton vn.

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

65

Hm chi ph truyn c th c a ra ging nh cch ca hm chi ph truy xut. Tuy nhin tng chi ph truyn d liu cho cp nht v cho yu cu ch c s khc nhau hon ton. Trong cc vn tin cp nht, chng ta cn cho tt c mi v tr bit ni c cc bn sao cn trong vn tin ch c th ch cn truy xut mt trong cc bn sao l . Ngoi ra vo lc kt thc yu cu cp nht th khng cn phi truyn d liu v ngc li, cho v tr a ra vn tin ngoi mt thng bo xc nhn, cn trong vn tin ch c c th phi c nhiu thng bo tryn d liu. Thnh phn cp nht ca hm truyn d liu l: TCUi = SkS uj*xjk*go(i),k + FjF SkS uj*xjk*g k,o(i) FjF

S hng th nht gi thng bo cp nht t v tr gc o(i) ca qi n tt c bn sao cp nht. S hng th hai dnh cho thng bo xc nhn. Thnh phn chi ph ch c c th c t l: TCRi= min (uij * xjk * go(i), k+rij * xjk * (seli(Fj)* length (Fj)/fsize) * gk, o(i)) Fj F SkS S hng th nht trong TCR biu th chi ph truyn yu cu ch c n nhng v tr c bn sao ca mnh cn truy xut. S hng th hai truyn cc kt qu t nhng v tr ny n nhng v tr yu cu. Phng trnh ny khng nh rng trong s cc v tr c bn sao ca cng mt mnh, ch v tr sinh ra tng chi ph truyn thp nht mi c chn thc hin thao tc ny. By gi hm chi ph tnh cho vn tin qi c th c tnh l: TCi=TCUi+TCRi Rng buc Rng buc thi gian p ng cn c c t l thi gian thc thi ca qi thi gian p ng ln nht ca qi qi Q

C s d liu phn tn - 2010

Chng 3

Thit k c s d liu pht tn

66

Ngi ta thch c t s o chi ph ca hm theo thi gian bi v n n gin ho c t v rng buc thi gian thc thi. Rng buc lu tr l: STCjk kh nng lu tr ti v tr Sk, SkS
FjF

Trong rng buc x l l: ti trng x l ca qi ti v tr Sk kh nng x l ca Sk, SkS.

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

67

Chng 4 S TRONG SUT PHN TN Mc tiu Chng ny gii thiu s trong sut phn tn theo ba mc : trong sut phn tn, trong sut v tr v trong sut nh x cc b i vi hai ng dung: 1. ng dng ch c (tm kim) v 2. ng dng cp nht d liu. 4.1 S trong sut phn tn ca ng dng ch c
hiu c s trong sut phn tn ca ng dng ch c, chng ta s xem xt cc v d c minh ha bng ngn ng ta Pascal c nhng ngn ng SQL. Trong cc v d ny chng ta c mt s ch sau: Cc bin c kiu chui k t. Nhp xut c thc hin qua cc th tc chun: Read(filename, variable), write(filename, variable). Nu nhp xut c thc hin ti mt trm th filename s l terminal. Trong cc php biu SQL, cc bin ca ngn ng Pascal s bt u bng k t $.

V d: Xt cu truy vn : Tm tn ca ngi cung cp khi bit m s ngi cung cp. Select NAME into $NAME From SUPPLIER Where SNUM = $SNUM Trong cu truy vn ny $NAME l bin xut cn $SNUM l bin nhp.

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

68

Cc bin ca Pascal s dng lin h vi h qun tr c s d liu phn tn bt u bng k t #.

V d: Sau khi truy vn mt cu SQL, bin lun l #FOUND = TRUE nu kt qu tr v khc rng. Bin #OK = TRUE nu php ton thc hin ng bi h qun tr c s d liu. Cc mc trong sut s c xt t cao n thp qua hai trng hp sau. a. Xt trn mt lc quan h ton cc Mc 1: S trong sut phn tn Read (terminal, $SNUM) Select NAME into $NAME From SUPPLIER Where SNUM = $SNUM Write(terminal, $NAME)
DDBMS
SUPPLIER1 Site 1

SUPPLIER2

Site 2

SUPPLIER2

Site 3

Hnh 4.1a S trong sut phn tn

Nhn xt: Theo hnh 4.1a v on lnh trn, chng ta thy cu truy vn trn tng t nh cu truy vn cc b, khng cn ch ra cc phn mnh cng nh cc v tr cp pht cho cc phn mnh . Khi ngi s dng khng h c cm gic l ang thao tc trn mt cu truy vn phn tn. Mc 2: S trong sut v tr (location)

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

69

Read (terminal, $SNUM) Select NAME into $NAME From SUPPLIER1 Where SNUM = $SNUM If not #Found then Select NAME into $NAME From SUPPLIER2 Where SNUM = $SNUM Write(terminal, $NAME)
DDBMS
SUPPLIER1 Site 1

OR

SUPPLIER2

Site 2

SUPPLIER2

Site 3

Hnh 4.1b S trong sut v tr

Nhn xt: Ngi s dng phi cung cp cc phn mnh c th cho cu truy vn nhng khng cn ch ra v tr ca cc phn mnh. S trong sut v tr hnh 4.1b c th c vit nh sau: Read(Terminal, $SNUM) Read(Terminal, $CITY) Case $CITY Of SF: Select NAME into $NAME From SUPPLIER1 Where SNUM = $SNUM; LA: Select NAME into $NAME From SUPPLIER2

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

70

Where SNUM = $SNUM End; Write(Terminal, $NAME) Mc 3: S trong sut nh x cc b (hnh 4.1c) Read (terminal, $SNUM) Select NAME into $NAME From SUPPLIER1 AT SITE 1 Where SNUM = $SNUM If not #Found then Select NAME into $NAME From SUPPLIER2 AT SITE 2 Where SNUM = $SNUM Write(terminal, $NAME)
DDBMS
Site 1

SUPPLIER1

SUPPLIER2

Site 3

Hnh 4.1c S trong sut nh x cc b

Nhn xt: ti mc trong sut ny ngi s dng phi cung cp cc phn mnh v v tr cp pht ca chng. Mc 4: Khng trong sut (hnh 4.2) Read(Terminal,SSUPNUM) Execute SSUPIMS(SSUPNUM, $FOUND, $NAME) at site 1; if not $FOUND then Execute SSUPCODASYL(SSUPNUM, $FOUND, $NAME) at site 3; Write(Terminal,$NAME)

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

71

DDBMS

SUPCODASYL(SNUM, FOUND, NAME); Find SUPPLIER_RECORD ..

SUPIMS(SNUM, FOUND, NAME); Get unique SUPPLIER_SEGMENT ..

Local DBMS (Codasyl)

Local DBMS (IMS)

Codasyl DB

IMS DB

Site 3

Site 1

Hnh 4.2 Mt ng dng trn c s d liu phn tn khng ng nht v khng trong sut Nhn xt: Ti mc thp nht ny chng ta cn phi vit lnh theo h qun tr c s d liu tng ng. b. Xt trn hai lc quan h ton cc Chng ta hy xt mt v d phc tp hn. Gi s cn tm tn nhng nh cung cp mt hng c m s cho trc. Mc 1: Trong sut phn mnh

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

72

Read(Terminal, $PNUM) Select NAME into $NAME from SUPPLIER, SUPPLY where SUPPLIER.SNUM = SUPPLY.SNUM and SUPPLY.PNUM = $PNUM write(Terminal, $NAME) Mc 2: Trong sut v tr Read(Terminal, $PNUM) Select NAME into $NAME from SUPPLIER1, SUPPLY1 where SUPPLIER1.SNUM = SUPPLY1.SNUM and SUPPLY1.PNUM = $PNUM if not #FOUND then Select NAME into $NAME from SUPPLIER2, SUPPLY2 where SUPPLIER2.SNUM = SUPPLY2.SNUM and SUPPLY2.PNUM = $PNUM write(Terminal, $NAME) Mc 3: Trong sut nh x cc b Gi s cc s cp pht cc phn mnh ca quan h SUPPLY v SUPPLIER nh sau: SUPPLIER1 : Ti site 1 SUPPLIER2 : Ti site 2 SUPPLY1 : Ti site 3 SUPPLY2 : Ti site 4

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

73

Read(Terminal, $PNUM) Select SNUM into $SNUM from SUPPLY1 at site 3 where SUPPLY1.PNUM = $PNUM if not #FOUND then begin send $SNUM from site 3 to site 1 Select NAME into $NAME from SUPPLIER1 at site 1 where SUPPLIER1.SNUM = $SNUM end else begin Select SNUM into $SNUM from SUPPLY2 at site 4 where SUPPLY2.PNUM = $PNUM send $SNUM from site 4 to site 2 Select NAME into $NAME from SUPPLIER2 at site 2 where SUPPLIER2.SNUM = $SNUM end; write(Terminal, $NAME)

4.2 S trong sut phn tn i vi cc ng dng cp nht


Trong phn trc, chng ta ch xt cc ng dng tm kim d liu trong c s d liu. Phn ny chng ta s xem xt cc ng dng cp nht d liu trong c s d liu phn tn. Bi ton cp nht y ch xt di kha cnh trong sut phn tn i vi cc lp trnh vin, trong khi bi ton bo m tnh nguyn t ca cc giao tc cp nht s c xem xt chng sau.

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

74

Cc mc trong sut phn tn cng c cng c phn tch nh trong cc ng dng ch c. Tuy nhin mt php cp nht phi c thc hin trn tt c cc bn sao ca mt mc d liu trong khi php tm kim ch cn thc hin trn mt bn sao. iu ny c ngha l nu h qun tr c s d liu khng h tr s trong sut v tr v s trong sut nhn bn th lp trnh vin chu trch nhim thc hin mi cp nht c yu cu. rong vic h tr s trong sut phn tn cho cc ng dng cp nht c mt vn khac phc tp hn vic cp nht tt c cc bn sao ca mt mc d liu. l vn di chuyn d liu sau khi cp nht. Xt v d sau: iu g xy ra khia cp nht li gi tr ca thuc tnh CITY trong quan h SUPPLIER. R rng, cc b Supplier phi c chuyn t mt phn mnh ny n phn mnh khc. Hn na, cc b ca quan h SUPPLY m tham kho n cng Supplier cng phi thay i phn mnh v quan h SUPPLY c mt phn mnh dn xut. Mt cch trc quan chng ta d dng thy vic thay i gi tr ca mt thuc tnh m chng ta nh ngha trong lc phn mnh c dn n cc h qu phc tp. Mc m cc h qun tr c s d liu phn tn qun l cc h qu chnh l c trng cho cc mc trong sut phn tn cho s cp nht. minh ha cho cc php ton di chuyn d liu trong vic cp nht d liu phn tn ngi ta s dng cy con cp nht.

Xt mt thuc tnh A c s dng trong v t phn mnh ngang. Cy con cp nht ca A l cy con m c nt gc l nt i din cho s phn mnh ngang trn.

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

75

EMP

V H
EMP EMP EMP

EMP

V: Php ton phn mnh dc H: S phn mnh ngang Hnh 4.3 Cy con cp nht ca thuc tnh DEPTNUM trong cy phn mnh ca quan h EMP V d: hnh 4.3 minh ha cy con cp nht cho thuc tnh DEPTNUM. Cc nh hng ca s thay i gi tr ca mt thuc tnh ch gii hn trong cc phn mnh nt l ca cy con cp nht. V d: Mt s thay i gi tr ca thuc tnh DEPTNUM ch nh hng n EMP1, EMP2 v EMP3. Mt b c th di chuyn gia hai trong ba phn mnh trn. Xt mt v d khc phc tp hn. Gi s quan h EMP c cy phn mnh nh hnh 4.4a.

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn


EMP

76

H V V

EMP

EMP

EMP

EMP

EMP1 = PJEMPNUM, NAME, SAL, TAXSLDEPTNUM <10(EMP) EMP2= PJEMPNUM, MGRNUM, DEPTNUMSLDEPTNUM <10(EMP) EMP3 = PJEMPNUM, NAME, DEPTNUMSLDEPTNUM >10(EMP) EMP4 = PJEMPNUM, SAL, TAX, MGRNUMSLDEPTNUM >10(EMP) Hnh 4.4a Cy phn mnh khc ca quan h EMP EMP1 EMPNUM 100 NAME SMITH SAL 10000 TAX 1000 EMP2 EMPNUM 100 MGRNUM 20 DEPTNUM 3

Trc khi cp nht Sau khi cp nht EMPNUM 100 NAME SMITH DEPTNUM 15 EMPNUM 100 SAL 10000 TAX 1000 MGRNUM 20

Hnh 4.4b H qu ca vic cp nht DEPTNUM ca EMPNUM=100 Trong trng hp ny cy con cp nht ca thuc tnh DEPTNUM tng nh cy phn mnh. S nh hng ca vic thay i gi tr ca DEPTNUM ca b c EMPNUM=100 t 3 thnh 15 c minh ha hnh 2.6b. S cp nht ca b ny ch

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

77

thuc v cy con tri, sau khi cp nht n tr thnh mt phn cy con phi. Chng ta nhn thy khng ch d liu c chuyn gia cc mnh m b ny cng c t hp li theo mt cch khc. By gi chng ta s xem xt cac mc trong sut phn tn cho mt ng dng cp nht n gin. Mc 1: S trong sut phn tn Mc ny minh ho chng trnh ng dng cp nht d liu nh trong mt c s d liu khng phn tn. Bi th cc lp trnh vin khng cn bit thuc tnh no c dng phn mnh. thay i gi tr DEPTNUM ca employee c EMPNUM=100, on chng trnh c vit nh sau: Update EMP set DETPNUM=15 where EMPNUM =100 Mc 2: S trong sut v tr Ti mc ny, lp trnh vin phi lm vic vi cc phn mnh mt cch tng minh. on chng trnh c vit nh sau: Select NAME, SAL, TAX into $NAME, $SAL, $TAX from EMP1 where EMPNUM=100; Select MGRNUM into $MGRNUM from EMP2 where EMPNUM=100; Insert into EMP3 (EMPNUM, NAME, DEPTNUM) Values (100, $NAME, 15);

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

78

Insert into EMP4 (EMPNUM, SAL, TAX, MGRNUM) Values (100, $SAL, $TAX, $MGRNUM); Delete EMP1 where EMPNUM = 100; Delete EMP2 where EMPNUM = 100; Mc 3: S trong sut nh x cc b Ti mc ny ng dng phi gii quyt v tr ca cc phn mnh mt cch tng minh. Gi s cc phn mnh ca quan h EMP c cp pht nh sau: EMP1 : site 1 v 5 EMP2 : site 2 v 6 EMP3 : site 3 v 7 EMP4 : site 4 v 8 on chng trnh c vit nh sau: Select NAME, SAL, TAX into $NAME, $SAL, $TAX from EMP1 at site 1 where EMPNUM=100; Select MGRNUM into $MGRNUM from EMP2 at site 2 where EMPNUM=100; Insert into EMP3 (EMPNUM, NAME, DEPTNUM) at site 3 Values (100, $NAME, 15); Insert into EMP3 (EMPNUM, NAME, DEPTNUM) at site 7 Values (100, $NAME, 15);

Insert into EMP4 (EMPNUM, SAL, TAX, MGRNUM) at site 4


Values (100, $SAL, $TAX, $MGRNUM); Insert into EMP4 (EMPNUM, SAL, TAX, MGRNUM) at site 8

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

79

Values (100, $SAL, $TAX, $MGRNUM); Delete EMP1 at site 1 where EMPNUM = 100; Delete EMP1 at site 5 where EMPNUM = 100; Delete EMP2 at site 2 where EMPNUM = 100; Delete EMP2 at site 6 where EMPNUM = 100; 4.3 Cc nguyn tc truy xut c s d liu phn tn Trong cc v d phn trc chng ta ch xt cc truy vn d liu ch tr v mt gi tr. Tuy nhin trong trng hp tng qut, mt cu truy vn c th tr v mt quan h. Khi chng ta s qui c dng tham s c tip v ng REL, c xem nh mt file, nhn kt qu tr v. V d: Cho cu SQL sau: Select EMPNUM, NAME INTO $EMP_REL($EMPNUM, $NAME) from EMP By gi chng ta s xem xt cc cch try xut c s d liu v nh gi hiu qu ca cc cch theo yu cu sau: cho bit danh sch cc sn phm m cc nh cung cp (c nhp) cung cp. Cch 1: C s d liu c truy xut vi mi gi tr $SNUM Repeat read(terminal, $SNUM); select PNUM into $PNUM_REL($PNUM) from SUPPLY where SNUM = $SNUM; repeat read($PNUM_REL, $PNUM)

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

80

write(terminal, $PNUM) until END-OF-$PNUM_REL until END-OF-TERMINAL-INPUT Cch 2: C s d liu c truy xut sau khi tt c gi tr ca $SNUM c nhp Repeat read(terminal, $SNUM); write($SNUM_REL($SNUM), $SNUM) Until END-OF-TERMINAL-INPUT select PNUM into $PNUM_REL($PNUM) from SUPPLY, $SNUM_REL where SUPPLY.SNUM = $SNUM_REL.$SNUM; repeat read($PNUM_REL, $PNUM) write(terminal, $PNUM) until END-OF-$PNUM_REL Cch 3: C s d liu c truy xut trc khi nhp gi tr $SNUM Select PNUM, SNUM into $TEMP_REL($TEMP_PNUM, $TEMP_NUM) from SUPPLY; Repeat read(terminal, $SNUM); select $TEMP_PNUM into $TEMP2_REL($TEMP2_PNUM) from $TEMP_REL where $TEMP_PNUM = $SNUM; repeat read($TEMP2_REL, $TEMP2_PNUM); write(terminal, $TEMP2_PNUM);

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

81

until END-OF-$TEMP2_PNUM until END-OF-TERMINAL-INPUT Nhn xt v hiu qu ca ba cch trn? Mt vn na lin quan n cch truy xut c s d liu phn tn l hin tng c chung cc biu thc con. Xt v d tm kim tn ca cc cng nhn lm vic trong cc phng ban ca cng mt vng (c nhp) v tn cc sn phm c lu trong cc phng ban ca cng mt vng . Ta c hai cch tr li sau: Cch 1: Cc truy vn c lp Read(terminal, $AREA) ... select NAME into $NAME_REL($NAME) from EMP, DEPT where EMP.DEPTNUM = DEPT.DEPTNUM and DEPT.AREA = $AREA ... Select PNUM into $PNUM_REL($PNUM) from SUPPLY, DEPT where SUPPLY.DEPTNUM = DEPT.DEPTNUM and DEPT.AREA = $AREA Cch 2: Read(terminal, $AREA); ...

C s d liu phn tn - 2010

Chng 4

S trong sut phn tn

82

select DEPTNUM into $NUM_REL(DEPTNUM) from DEPT where AREA=$AREA; ... select NAME into $NAME_REL($NAME) from EMP, $NUM_REL where EMP.DEPTNUM = $NUM_REL.$DEPTNUM; ... Select PNUM into $PNUM_REL($PNUM) from SUPPLY, $NUM_REL where SUPPLY.DEPTNUM = $NUM_REL.$DEPTNUM; ...

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

83

Chng 5 TI U HA TRUY VN PHN TN


Mc tiu Chng ny cp n vn ti u ho trong c s d liu phn tn ngha l gim chi ph b nh trung gian, gim thi gian truy vn cng nh gim thi gian truyn d liu trong cc truy vn phn tn. Cc vn c cp trong chng ny nh sau: Biu thc chun tc ca truy vn: Ti u ha truy vn trong c s d liu tp trung: Ti u ha trong c s d liu phn tn: M u Chng ny trnh by v cc bc thc hin trong vic ti u ha truy vn trong c s d liu tp trung v trong c s d liu phn tn, cc tiu chuan ti u ha nhm lm gim thi gian thc hin truy vn, gim vng nh trung gian v chi ph truy vn thng trong qa trnh thc hin truy vn, b suy din dng trong n gin ha biu thc i s quan h ca truy vn. Chng ny s dng mt c s d liu sau nay minh ha cho cc ni dung c trnh by trong chng ny : Sinhvien (masv, hoten, tuoi, malop) Lop (malop, tenlop, matl, tenkhoa) Hoc (masv, mamh. Diem)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

84

Monhoc(mamh, tenmh) Trong : Sinhvien: cha thng tin v sinh vin gm: m sinh vin (masv), h tn (hoten), Tui (tuoi), thuc lp (malop). Kha l masv. Lop: cha thng tin v lp hc gm: m lp (malop), tn lp (tenlop), m lp Trng (malt), thuc khoa (tenkhoa). Kha l malop. Monhoc: cha thng tin v moan hc gm: m mn hc (mamh), tn mn hc (tenmh). Hoc: cha thng tin v sinh vin (masv) hc mn hc (mamh) c im thi cui K (diem). Kha l masv v mamh. 5.1. Biu thc chun tc ca truy vn 5.1.1. Truy vn Truy vn (query) l mt biu thc c biu din bng mt ngn ng thch hp v dng xc nh mt phn d liu c cha trong c s d liu. Mt truy vn c th c dng xc nh ng ngha ca mt ng dng, hoc n c th c dng xc nh cng vic can c thc hin bi mt ng dng nhm truy xut c s d liu. V d: Xt truy vn cho bit tn lp ca lp c m lp l MT . Truy vn ny c th c biu din bi mt biu thc i s quan h nh sau : IITenlop(malop=MT (lop)) Mt truy vn c th c biu din bi mt cy ton t. Mt cy ton t operator tree ca mt truy vn, cn c gi l cy truy vn (query tree) hoc cy i s quan h (relationalalgebra tree), l mt cy m mt nt l l mt quan h trong c s d liu, v

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

85

mt nt khc l (nt trung gian hoc nt gc) l mt quan h trung gian c to ra bi mt php ton i s quan h. Chui cc php ton i s quan h c thc hn t cc nt l n nt gc to ra kt qu truy vn. V d : Truy vn trn c th c biu din bng mt cy ton t nh sau:
IITenlop

malop=MT

lop

5.1.2. Biu thc chun tc ca truy vn Biu thc chun tc (canonical expression) ca mt biu thc i s quan h trn lc ton cc l mt biu thc c c bng cch thay th mi tn quan h ton cc xut hin trong biu thc bi biu thc ti lp ca quan h ton cc ny. Tng t, chng ta c th bin i mt cy ton t trn lc ton cc thnh mt cy ton t trn lc phn mnh bng cch thay th cc nt l ca cy u tin bng cc biu thc chun tc ca chng. Mt iu quan trong l by gi cc nt l ca cy ton t ca biu thc chun tc l cc mnh thay v l cc quan h ton cc. V d : Gi s chng ta c hai khoa tn l CNTT v DIEN. Quan h lop c phn mnh ngang da vo tenkhoa thnh hai mnh lop1 v lop2 Lop1 = tenkhoa=CNTT(lop) Lop2 = tenkhoa=DIEN(lop) Biu thc ti lp ca quan h ton cc lop l : Lop = lop1 U lop2

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

86

Biu thc chun tc ca biu thc truy vn l : IItenlop(malop=MT (lop1 U lop2)) Thay th quan h ton cc lop trong cy ton t bi biu thc ti lp trn, chng ta c cy ton t nh sau :
IItenlop malop=MT U Lop1 Lop2

5.2. Ti u ha truy vn trong c s d liu tp trung Khi mt h qun tr d liu (DBMS) nhn mt truy vn vit bng ngn ng cao cp, chng hnSQL, DBMS thc hin cc bc sau y: 5.2.1. Bc 1- Kim tra ng php (syntax Checking) Trong bc ny, DBMS s kim tra ng php ca truy vn an u (SQL query). Nu truy vn b sai ng php th DBMS s thng bo truy vn b sai ng php v truy vn ny s khng c thc hin. Nu truy vn ng ng php (syntactically correct SQL query) th DBMS s tip tc thc hin bc 2. V d: Xt truy vn Q1 Q1: SELECT masv,hoten FORM sinhvien; Truy vn ny b sai ng php (vit sai t kha FROM)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

87

S ti u ha truy vn trong c s d liu tp trung (hnh 5.1) bao gm cc bc sau:

Truy vn SQL Kim tra ng php Truy vn ng ng php Kim tra s hp l Truy vn SQL hp l Dch truy vn Truy vn i s quan h Ti u ha i s quan h Truy vn i s quan h c ti u Chn chin lc K hoch thc hin To sinh m M cho truy vn
Hnh 5.1 S ti u ha truy vn trong c s d liu tp trung 5.2.2. Bc 2- Kim tra s hp l (Validation) Trong bc ny, DBMS s thc hin cc cng vic: - Kim tra s tn ti ca cc i tng d liu (cc ct, cc bin, cc bng, )

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

88

ca truy vn trong c s d liu. - Kim tra s hp l v kiu d liu ca cc i tng d liu (cc ct, cc bin, vv) trong truy vn. V d : Xt truy vn Q2 Q2: SELECT masv, hoten FROM sinh_vien ; Truy vn ny c bng sinh_vien khng tn ti trong c s d liu. V d: Xt truy vn Q3 Q3: SELECT masv, hoten FROM sinhvien WHERE masv=123; Truy vn ny khng hp l v c ct masv (thuc kiu d liu number) so snh vi mt hng chui 123trong mnh WHERE. Nu truy vn cha cc i tng d liu khng tn ti hoc truy vn ca cc i tng d liu khng ph hp kiu d liu vi nhau th DBMS s thng bo cc i tng d liu no khng tn ti hoc cc i tng d liu no khng ph hp kiu d liu v truy vn ny s khng c thc hin. Nu cc i tng d liu ny u tn ti trong c s d liu (truy vn hpp l valid SQL query) th DBMS s tip tc thc hin bc 3. 5.2.3. Bc 3 Dch truy vn (Translation) Trong bc ny, DBMS s bin i truy vn hp l ny thnh mt dng biu din bn trong h thng mc thp hn m DBMS c th s dng c. Mt trong cc dng biu din bn trong ny l vic s dng i s quan h bi v cc php ton i s quan h

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

89

c bin i d dng thnh cc tc v ca h thng : truy vn ban u c bin i thnh mt biu thc i s quan h hay cn gi l truy vn i s quan h (relational algebra query) V d : Xt truy vn Q4 sau y cho bit cc m mn hc m cc sinh vin thuc lp c m MT hc. Q4 : SELECT DISTINCT mamh FROM sinhvien,hoc WHERE sinhvien.masv=hoc.masv AND malop=MT Truy vn ny s c bin i thnh biu thc i s quan h nh sau : IImamh(malop=MT(sinhvien masv=masvhoc)) 5.2.4. Bc 4- Ti u ha biu thc i s quan h (relational Algebra Optimization) Trong bc ny DBMS s dng cc php bin i tng ng ca i s quan h bin i biu thc i s quan h c c bc 3 thnh mt biu thc i s quan h tng ng (theo ngha chng c cng mt kt qu) nhng biu thc sau s hiu qu hn: loi b cc php ton khng cn thit v gim vng nh trung gian. Cui bc ny, DBMS to ra mt truy vn i s quan h c ti u ho (optimized relational algebra query). V d: Biu thc quan h ca truy vn Q4 cui bc 3 c th c bin i thnh biu thc i s quan h tng ng tt hn nh sau: IImamh (IImasv( malop=MT(sinhvien)) masv=masv IImasv,mamh(hoc))

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

90

5.2.5. Bc 5- Chn la chin lc truy xut (strategy selection) Trong bc ny, DBMS s dng cc thng s v kch thc ca cc bng, cc ch mc vv xc nh cch x l truy vn. DBMS s nh gi chi ph ca cc k hoch thc hin khc nhau c th c t chn ra mt k hoch thc hin (execution plan) c th sao cho tn t chi ph nht (thi gian x l v vng nh trung gian). Cc thng s dng nh gi chi ph ca k hoch thc hin gm: s ln v loi truy xut a, kch thc ca vng nh chnh v vng nh ngoi, v thi gian thc hin ca cc tc v to ra kt qu ca truy vn. Ci bc ny, DBMS to ra mt k hoch thc hin cho truy vn. 5.2.6. Bc 6- To sinh m (code Generation) Trong bc ny, k hoch thc hin ca truy vn c c ci bc 5 s c mho v c thc hin. 5.3. Ti u ha truy vn trong c s d liu phn tn Ti u ho truy vn trong c s d liu phn tn bao gm mt s bc u ca ti uha truy vn trong c s d liu tp trung v mt s bc ti u ha c lin quan 61n s phn tn d liu. S ti u ha truy vn trong c s d liu phn tn (hnh 5.3) bao gm cc bc sau:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

91

Truy vn trn Cc quan h c phn tn Phn r truy vn (lc ton cc) Truy vn i s quan h trn Cc quan h c phn tn

Cc b ha d liu (lc phn mnh)

Truy vn mnh

Ti u ha truy vn ton cc

Truy vn mnh c ti u ha Vi cc tc v truyn thng

Ti u ha truy vn cc b

Cc truy vn cc b c ti u ha
Hnh 5.3 S ti u ha truy vn trong c s d liu phn tn

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

92

5.3.1. Bc 1- Phn r truy vn (Query Decomposition) Bc ny cn c gi l bc Ti u ha truy vn trn lc ton cc. Bc ny ging vi cc boc 1, 2, 3 v 4 ca ti u ha truy vn trong c s d liu tp trung, nhm bin i mt truy vn vit bng ngn ng cp cao, chng hn SQL, thnh mt biu thc i s quan h tung ng ( theo ngha chng cho ra cng mt kt qu) v hiu qu (theo ngha loi b cc php ton i s quan h khng cn thit, gim vng nh trung gian). Bc ny cha cp n s phn tn d liu. Ti u ha truy vn trn lc ton cc bao gm 4 bc sau: 5.3.1.1. Bc 1.1- Phn tch truy vn Trong bc ny, DBMS kim tra ng php ca truy vn, kim tra s tn ti ca cc i tng d liu (tn ct, tn bng, vv) ca truy vn trong c s d liu, pht hin cc php ton trong truy vn b sai v kiu d liu, iu kin ca mnh WHERE c h b sai v ng ngha. Phn tch iu kin ca mnh WHERE pht hin truy vn b sai. C hai loi sai: Sai v kiu d liu (type incorrect) Sai v ng ngha (semantically incorrect)

Truy vn b sai v kiu d liu Mt truy vn b sai v kiu d liu nu cc thuc tnh ca n hoc cc tn quan h khng c nh ngha trong lc qon cc, hoc nu cc php ton c p dng cho cc thc tnh b sai v kiu d liu. gii quyt cho vn ny, trong lc tan cc chng ta phi m t kiu d liu ca cc thuc tnh ca cc quan h.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

93

V d: Xt truy vn Q5 Q5: SELECT mssv, hoten FROM sinhvien WHERE masv=123; Truy vn ny c hai li sai: (1) mssv khng tn ti trong quan h sinhvien, v (2) masv thuc kiu number khng th so snh vi hng chui 123. Truy vn b sai v ng ngha Mt truy vn b sai v ng ngha nu n c cha cc thnh phn khng tham gia vo qu trnh to ra kt qu ca truy vn. pht hin mt truy vn b sai v ng ngha, chng ta dng mt 9 th truy vn (query graph) hoc th kt ni quan h (relation connection graph) cho cc truy vn c cha cc php chn, php chiu v php kt. Trong mt th truy vn, mt nt biu din cho mt quan h kt qu (result relation) v cc nt khc biu din cho cc quan h ton hng (operand relation). Mt cnh gia hai nt quan h ton hng biu din cho mt php kt, mt cnh gia mt nt quan h ton hng vi mt nt quan h kt qu biu din ho mt php chiu. Mt nt quan h ton hng c th cha mt iu kin chn. Mt th con quan trng ca th ny l th kt qu (join graph) c dng trong bc ti u ha truy vn. V d: Xt truy vn Q6 lit k h tn sinh vin v im ca mn hc Tin hc ca lp m MT vi i kin t im trn 5. Q6: SELECT hoten, diem

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

94

FROM sinhvien, hoc, monhoc WHERE sinhvien.masv=hoc.masv AND hoc.mamh=monhoc.mamh AND malop=MT AND diem > 5 AND tenmh = Tin hoc; th truy vn ca truy vn ny nh sau:
diem> 5 sinhvien.masv=hoc.masv malop=MT sinhvien hoten Hc diem hoc.mamh=monhoc.mamh monhoc tenmh=Tin hoc

ktqu

V th kt ni tng ng l:
hoc sinhvien.masv=hoc.masv hoc.mamh=monhoc.mamh

sinhvien

monhoc

Mt truy vn b sai v ng ngha nu th truy vn ca n l khng lin thng. th khng lin thng l mt th bao gm nhiu thnh phn lin thng, mi thnh phn lin thng l mt th con ring bit, hai thnh phn lin thng khng dc ni vi nhau thng qua cc cnh. Trong trng hp ny, mt truy vn c xem l ng n bng cch ch gi li thnh phn c lin quan n quan h kt qu v loi b cc thnh phn cn li.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

95

V d: Xt truy vn Q7 Q7: SELECT hoten, diem FROM sinhvien, hoc, monhoc WHERE sinhvien.masv=hoc.masv AND malop=MT AND diem > 5 AND tenmh = Tin hoc; th truy vn ca truy vn ny nh sau:
diem> 5 sinhvien.masv=hoc.masv malop=MT sinhvien hoten hoc diem tenmh=Tin hoc

monhoc

ktqu

th truy vn ca truy vn ny l khng lin thng, nn truy vn b sai v ng ngha. C ba gii php cho vn ny l: (1) Hy b truy vn ny. (2) Hy b cc bng khng cn thit trong mnh From v cciu kin c lin quan n cc bng ny trong mnh WHERE. Gi s truy xut n monhoc l khng cn thit, ta hy b bng monhoc trong mnh From v iu kin tenmh =Tin hoc trong mnh WHERE. Ta c truy vn Q8 nh sau: Q8: SELECT hoten, diem

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

96

FROM sinhvien, hoc WHERE sinhvien.masv =hoc.masv AND malop =MT AND diem > 5; (3) B sung iu kin kt sao cho th truy vn c lin thng. Mt th truy vn c th khng b sai ng ngha nu th ny l mt d th n (c nhiu nht mt cnh ni gia hai nh), lin thng v s cnh bng s nh tr 1. B sung iu kin kt hoc.mamh = monhoc.mamh vo trong mnh WHERE. Ta c truy vn Q9: Q9: SELECT hoten, diem FROM sinhvien, hoc WHERE sinhvien.masv = hoc.masv AND hoc.mamh =monhoc.mamh AND malop =MT AND diem > 5 AND tenmh =Tin hoc; 5.3.1.2. Bc 1.2- Chun ha iu kin ca mnh WHERE iu kin ghi trong mnh WHERE l mt biu thc lun l c th bao gm cc php ton lun l (not, and, or) c vit di mt dng bt k. K hiu cc php ta lun l: not (-), and (^), or (v). Bc ny nhm mc ch chun ha iu kin ca mnh Where v mt trong hai dng chun: Dng chun giao (conjunctive normal form)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

97

( P11 v P12 vv P1n ) ^^ (Pm1 v Pm2 vv Pmn ) Dng chun hp (disjunctive normal form) ( P11 ^ P12 ^^ P1n) vv (Pm1 ^ Pm2 ^^ Pmn ) trong Pij l mt bin lun l (c gi tr l true hoc false) hoc l mt v t n gin (simple predicate ) c dng: a R b vi a,b l cc biu thc s hc v R l mt trong nhng php ton so snh: = < > hoc != < <= > >= bng khng bng nh hn nh hn hoc bng ln hn ln hn hoc bng

bin i iu kin ca mnh WHERE v mt tronf hai dng chun trn, chng ta s dng cc php bin i tng ng ca cc php ton lun l. K hiu l s tng ng. Cc php bin i tng ng:
(1)

P 1 ^ P 2 P2 ^ P 1 P1 v P2 P2 v P1 P 1 ^ ( P 2 ^ P 3 ) ( P1 ^ P 2 ) ^ P 3

(2)

(3)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

98

(4)

P1 v( P2 vP3) ( P1 vP2) vP3

(5) P1 ^ ( P2 vP3) ( P1 ^ P2) v (P1 ^ P3) (6) P1 v( P2^P3) ( P1 vP2)^ (P1 vP3)
(7)

( P1 ^ P2) P1 v P2 ( P1 vP2) P1 ^ P2

(8)

(9) (P) P V d: Xt truy vn Q10 Q10: SELECT malop FROM sinhvien WHERE (NOT (malop=MT1) AND (malop=MT1 OR malop=MT2) AND NOT (malop=MT2)) OR hoten=Nam; iu kin q ca mnh WHERE l: (NOT (malop=MT1) AND (malop=MT1 OR malop=MT2) AND NOT (malop=MT2)) OR hoten=Nam K hiu: P1 P2 P3 l malop=MT1 l malop=MT2 l hoten=Nam

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

99

iu kin q s l: (P1 ^ (P1 v P2) ^ P2 ) v P3 Bng cch p dng cc php bin i (3), (5) a iu kin q v dng chun hp: (P1 ^ P1 ^ P2) v (P1 ^ P2 ^ P2 ) v P3 5.3.1.3. Bc 1.3- n gin ho iu kin ca mnh WHERE Bc ny s dng cc php bin i tng ng ca cc php ton lun l (not, and, or) rt gn iu kin ca mnh WHERE. Cc php bin i tng ng gm c : (10) (11) (12) (13) (14) (15) (16) (17)
(18)

P^PP PvPP P ^ true P P v false P P ^ false false P v true true P ^ P false P v P true P1 ^ (P1 v P2) P1 P1 v (P1 ^ P2) P1

(19)

Vd: Xt truy vn Q10 trn, iu kin q dng chun hp l:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

100

(P1 ^ P1 ^ P2) v (P1 ^ P2 ^ P2 ) v P3 Bng cch p dng php bin i (16), chng ta c: (false v P2 ) v (P1 ^ false) v P3 Ap dng php bin i (14), cng ta c: False v false v P3 Ap dng php bin i (15), chng ta c diu kin q cui cng l P3, tc l hoten=Nam. Vy truy vn Q10 tr thnh truy vn Q11 nh sau: Q11: SELECT malop FROM sinhvien WHERE hoten=Nam; 5.3.1.4. Bc 1.4- Bin i truy vn thnh mt biu thc i s quan h hiu qu Bc ny s dng cc php bin i tng ng ca cc php ton i s quan h nhm loi b cc php ton i s quan h khng cn thit v gim vng nh trung gian c s dng trong qu trnh thc hin cc php ton i s quan h cn thit cho truy vn. Bc ny bao gm hai bc sau y: Bc 1.4.1 Bin i truy vn thnh mt biu thc i s quan h, biu din biu thc i s quan h ny bng mt cy ton t. Bc 1.4.2 n gin ha cy ton t c c mt biu thc i s quan h hiu qu.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

101

Bc 1.4.1. Biu din truy vn bng cy ton t Qu trnh bin i mt truy vn c vit bng lnh SELECT thnh mt cy ton t bao gm cc bc sau: (1) Cc nt l c to lp t cc quan h ghi trong mnh From (2) Nt gc c to lp bng php chiu trn cc thuc tnh ghi trong mnh SELECT. (3) iu kin ghi trong mnh WHERE c bin i thnh mt chui thch hp cc php ton i s quan h (php chn, php kt, php hp) i t cc nt l n nt gc. Chui cc php ton ny c th c cho trc tip bi th t ca cc v t n gin v cc php ton lun l. Mt cy ton t tng ng vi mt biu thc i s quan h. V d: Xt truy vn Q12 cho bit h tn ca cc sinh vin khng phi l Nam hc mn hc Tin hoc t im 9 hoc 10. Q12: SELECT hoten FROM sinhvien, hoc, monhoc WHERE sinhvien.masv= hoc.masv AND hoc.mamh= monhoc.mamh AND hoten< > Nam AND tenmh= Tin hoc AND (diem= 9 OR diem = 10); Truy vn ny c th c biu din thnh mt cy ton t, cc v t n gin c bin i theo th t xut hin tng ng vi cc php kt ri n cc php chn.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

102

IIhoten diem=9 v diem=10 tenmh=Tin hoc hoten <> Nam mamh= mamh masv =
masv

Php chiu

Php chn

monhoc

Php kt

sinhvien

hoc

Biu thc i s quan h tng ng l: IIhoten ( ( diem=9 v diem=10) ^ tenmh= Tin hoc ^ hoten <> Nam ((sinhvien masv=masv hoc) mamh=mamh monhoc)) Bc 1.4.2. n gin ha cy ton t n gin ho cy ton t nhm mc ch t hiu qu (loi b cc php ton d tha trn cc quan h, gim vng nh trung gian, gim thi gian x l truy vn) bng cch s dng cc php bin i tng ng ca cc php ton i s quan h. Trong bc n gin ho cy ton t, mt iu quan trng trong vic p dng cc php bin i tng ng cho mt biu thc truy vn l vic pht hin cc biu thc con chung (common subexpression) c trong biu thc truy vn, nhga l cc biu thc con xut hin nhiu ln trong biu thc truy vn. iu ny c ngha l tit kin thi gian thc hin truy vn v cc biu thc con ny ch c nh tr duy nht mt ln. Mt phng php nhn bit chng l ch vic bin i cy ton t tng ng thnh mt

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

103

th ton t bng cch trc tin gp cc nt l ging nhau ca cy (ngha l cc quan h ging nhau), v sau gp cc nt trung gian khc ca cy tng ng vi cng cc php ton v c cng cc ton hng. Khi cc biu thc con c xc nh, chng ta c s dng cc php bin i tng ng sau y n gin ha mt cy ton t: (1) R R R (2) R U R R (3) R R (4) R F (R) F R (5) R U F (R ) R (6) R - F (R) F (R) (7) F1 (R) F2 (R) F1 ^ F2 (R) (8) F1 (R) U F2 (R) F1 v F2 (R) (9) F1 (R) - F2 (R) F1 ^ F2 (R) (10) (11) (12) (13) RRR R F (R) F R F1 (R) F2 (R) F1 ^ F2 (R) F (R) R

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

104

ngha ca cc php bin i ny l loi b cc php ton d tha. V d: Xt truy vn Q13 cho bit cc h tn ca cc sinh vin thuc lp c m lp trng l 123 v cc sinh vin ny c tui khng ln hn 20 tui. Mt biu thc cho truy vn ny l: IIhoten ((sinhvien malop=malop malt=123 (lop)) (tuoi >20 (sinhvien) malop=malop malt=123 (lop)) Cy ton t tng ng :
IIhoten malop=malop malop=malop

sinhvien

malt=123

tuoi >20

malt=123

lop

sinhvien

lop

pht hin ra biu thc con vhung, chng ta bt u bng cch gp cc nt l tng ng vi cc quan h sinhvien v lop. Sau chng ta t tha s l php ch trn tuoi i vi php kt (trong cch lm ny, chng ta di chuyn php chn ln pha trn). By gi chng ta c th trn cc nt tng ng vi php chn trn malt v cui cng cc nt tng ng vi php kt, chng ta c cy ton t sau:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

105

IIhoten tuoi >20

malop=malop sinhvien malt=123

lop

p dng php bin i tng ng (6) vi R l biu thc : sinhvien malop=malop malt=123 lop chng ta c cy ton t sau:
IIhoten tuoi <= 20 malop=malop

sinhvien

malt=123 lop

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

106

Sau p dng tnh phn phi ca php chiu v php chn i vi php kt, ta c cy ton t :
IIhoten malop=malop

IIhoten, malop tuoi <= 20

IImalop malt=123

sinhvien

lop

V biu thc i s quan h sau khi n gin ho l :

IIhoten(IIhoten,malop( tuoi < =20(sinhvien)) malop=malop IImalop (malt=123(lop)))


n gin ho mt biu thc i s quan h c thc hin da trn cc tiu chun sau y : Tiu chun 1. Dng tnh idempotence ca php chn v php chiu to ra cc php chn v php chiu thch hp cho mi quan h ton hng. Tiu chun 2. Thc hin cc php chn v cc php chiu cng sm cng tt, tc l y cc php chn v cc php chiu xung pha di cy cng xa cng tt. Tiu chun 3. Khi cc php chn c thc hin sau mt php tch th kt hp cc php ton ny to thnh mt php kt. Tiu chun 4. Kt hp chui cc php ton mt ngi lin tip nhau p dng cho mt quan h ton hng. Mt chui cc php chn lin tip nhau (hoc mt chui cc

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

107

php lin kt lin tip nhau) c th c kt hp thnh mt php chn (hoc mt php kt). Tiu chun 5. Khi pht hin cc biu thc con chung trong biu thc truy vn, p dng cc php bin i tng ng n gin ho biu thc truy vn. 5.3.1.5. Mt gii thut ti u ha mt biu thc i s quan h trn lc ton cc Vo: Mt biu thc i s quan h trn lc ton cc Ra: Mt biu thc i s quan h c ti u ha

Gii thut ti u ho mt biu thc i s quan h trn lc ton cc bao gm cc bc sau y: Bc 1. Pht hin cc biu thc con chung c trong cy ton t, bin i cy ton t da trn biu thc con chung Bc 2. Thc hin php chn cng sm cng tt. S dng tnh idempotence ca php chn, tnh giao hon ca php chn vi php chiu, v tnh phn phi ca php chn i vi php hp, php giao, php hiu, php kt v php tch di chuyn php chn cng xung pha di cy cng tt. S dng cc php bin i tng ng: F1 (F2(R)) F2 (F1(R)) F1 (F2(R)) F1 ^ F2(R) IIX (F (R)) F (IIX(R)) ( nu Attr(F) X)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

108

IIX (F (R)) IIX (F (IIX Attr (F) (R))) F (R S) F (R) F (S) F (R S) F (R) F (S) F1 ^ F2 (R S) F1 (R) F2 (S) ( nu Attr(F1) Attr(R) v Attr(F2) Attr(S)) F (R - S) F (R) - F (S) F (R F1 S) F (R) F1 S ( nu Attr(F) Attr(R)) F1 ^ F2 (R F3 S) F1 (R) F3 F2 (S) ( nu Attr(F1) Attr(R) v Attr(F2) Attr(S)) F (R F3 S) F2 (F1 (R) F3 S) ( nu F=F1 ^ F2 v Attr(F1) Attr(R) v Attr(F2) Attr(R) Attr(S)) F (R x S) F (R) x S ( nu Attr(F) Attr(R)) F1 ^ F2 (R x S) F1 (R) x F2 (S) ( nu Attr(F1) Attr(R) v Attr(F2) Attr(S)) F (R x S) F2 (F1 (R) x S)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

109

( nu F=F1 ^ F2 v Attr(F1) Attr(R) v Attr(F2) Attr(R) Attr(S)) Bc 3. Thc hin php chiu cng sm cng tt. S dng tnh idempotence ca php chiu, tnh phn phi ca php chiu i vi php hp, php kt v php tch di chuyn php chiu cng xung pha di cy cng tt. Kim tra tt c cc php chiu l cn thit, loi b php chiu khng cn thit nu php ny chiu trn tt c cc thuc tnh ca quan h ton hng. S dng php bin i: IIX1 (IIX2 (R)) IIX1 (R) vi X1 X2

IIX (R S) IIX (R) IIX (S) IIX (R F S) IIX (R) F (S) ( nu Attr(FR) X v X Attr(R)) IIX1 X2 (R F S) IIX1 (R) F IIX2 (S) ( nu Attr(F) X1 X2 v X1 Attr(R) v X2 Attr(S)) IIX1 X2 (R x S) IIX1 (R) x IIX2 (S) ( nu X1 Attr(R) v X2 Attr(S)) Bc 4. Nu mt php chn c thc hin ngay sau mt php tch, m php chn bao gm cc thuc tnh ca cc quan h trong php tch, th bin i php tch thnh php kt. Nu php chn ch bao gm cc thuc tnh ca mt quan h trong php tch, th thc hin php chn cho quan h ny trc khi thc hin php tch. S dng cc php bin i:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

110

F (R x S) F (R) x S ( nu Attr(F) Attr(R)) F1 ^ F2 (R x S) F1 (R) x F2 (S) ( nu Attr(F1) Attr(R) v Attr(F2) Attr(S)) F (R x S) F2 (F1 (R) x S) ( nu F=F1 ^ F2 v Attr(F1) Attr(R) v Attr(F2) Attr(R) Attr(S)) Bc 5. Nu c mt chui cc php chn v/ hoc cc pp chiu, s dng tnh giao hon hoc tnh idempotence kt hp chng thnh mt php chn, mt php chiu hoc mt php chn i trc mt php chiu v p dng chng cho mi b ca quan h ton hng. Nu mt php kt hoc php tch i trc mt chui cc php chn hoc cc php chiu, th p dng chng cho mi b ca php kt hoc php chiu ngay khi to ra kt qu. Bc 6. S dng tnh kt hp ca php giao, php tch v php kt sp xp li cc quan h trong cy ton t, sao cho php ton no mn to ra kt qu t nht s c thc hin trc tin. S dng cc php bin i: (R S) T (R T) S (R x S) x T (R x T) x S (R F1 S) F2 T (R F2 T) F1 S ( nu Attr(F2) Attr(R) Attr(T))

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

111

( nu Attr(F1) Attr(R) Attr(S)) 5.3.2. Bc 2 Cc b ha d liu Bc cc b ha d liu (Data Localization) cn c gi l bc ti u ha truy vn trn lc phn mnh . Bc ny bin i truy vn ton cc (kt qu ca Bc 1) thnh cc truy vn mnh hiu qu: loi b cc php ton i s quan h khng cn thit trn cc mnh v gim vng nh trung gian. Ti u ha truy vn trn lc phn mnh bao gm 2 bc sau: Bc 2.1. Bin i biu thc i s quan h trn lc ton cc (cha cc quan h ton cc) thnh biu thc i s quan h trn lc phn mnh (chacc mnh ca quan h ton cc) bng cch thay th cc quan h ton cc bi biu thc ti lp ca chng. Bc 2.2. n gin ho biu thc i s qua h trn lc phn mnh c c mt biu thc hiu qa (loi b cc php ton khng cn thit gim vng nh trung gian) bng cch s dng cc php bin i tng ng ca i s quan h v cc i s quan h c tuyn chn. 5.3.2.1. Bc 2.1 Bin i biu thc i s quan h trn lc ton cc Bc ny s bin i biu thc i s quan h trn lc ton cc (cha cc quan h ton c) hnh biu thc i s quan h trn lc phn mnh (cha cc mnh ca quan h ton cc) bng cch thay th mi quan h ton cc trong cy ton t bi biu thc ti lp ca n. Bu thcti lp ca mt quan h ton cc l mt biu thc i s quan h bao gm cc mnh ca quan h ny m biu thc ny cho php to li quan h ton cc ny. Biu thc ti lp cng c biu din bng mt cy ton t. Xt lc quan h sinhvien v lop sau y:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

112

Sinhvien (masv, hoten, tuoi, malop) Lop (malop, tenlop, malt, tenkhoa) Gi s chng ta c hai khoa tn l CNTT v DIEN. Quan h lop c phn mnh ngang da vo tenkhoa thnh hai mnh lop1 v lop2 . Quan h sinhvien c phn mnh ngang suy dn theo lop da vo malop thnh hai mnh sinhvien1 v sinhvien2. Lc phn mnh nh sau: Lop1 (malop, tenlop, malt, tenkhoa) Lop2 (malop, tenlop, malt, tenkhoa) Sinhvien1 (masv, hoten, tuoi, malop) Sinhvien2 (masv, hoten, tuoi, malop) Cc biu thc ti lp ca quan h lop v sinhvien l: Lop = Lop1 U Lop2 Sinhvien= sinhvien1 U sinhvien2 Trong : Lop1 = tenkhoa = CNTT (lop) Lop1 = tenkhoa = DIEN (lop) Sinhvien1 = sinhvien < (Lop1) Sinhvien2 = sinhvien < (Lop2)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

113

V d: xt cy ton t

masv,hoten, tenlop malop=malop tenkhoa=CNTT lop

sinhvien

p dng tnh idempotence ca php chiu, chng ta c:


masv,hoten, tenlop malop=malop

masv,hoten, malop sinhvien

malop, tenlop

tenkhoa=CNTT lop

Thay th sinhvien v lop bi biu thc ti lp: Sinhvien = sinhvien1 U sinhvien2 Lop = lop1 U lop2 Ta c cy ton t sau:

masv,hoten, tenlop malop=malop

masv,hoten, malop U Sinhvien1 Sinhvien2 Lop1

malop, tenlop

tenkhoa=CNTT U Lop2

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

114

5.3.2.2 Bc 2.2 n gin ho biu thc i s quan h trn lc phn mnh n gin ho biu thc i s quan h trn lc phn mnh c c mt biu thc hiu qu (loi b cc php ton khng can thit, gim vng nh trung gian) bng cch s dng cc php bin i tng ng ca i s quan h v ca i s quan h c tuyn chn. Cc php bin i tng ng (p dng cho cc quan h v cc quan h c tuyn chn) gm c: (1) F () (2) X () (3) R x (4) R U (5) R (6) R - (7) - R (8) R (9) R < (10) < R n gin ho mt biu thc i s quan h trn lc phn mnh c thc hin da trn cc tiu chun sau:

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

115

Tiu chun 6: Di chuyn cc php chn xung cc nt l ca cy, v sau p dng chng bng cch dng i s quan h c tuyn chn; thay th cc kt qu chn la bi quan h rng nu iu kin chn ca kt qu b mu thun. Tiu chun 7: phn phi cc php kt xut hin trong mt truy vn ton cc, cc php hp (biu din tp hp ca cc phn mnh) phi c di chuyn ln pha trn cc php kt m chng ta mun phn phi loi b cc php kt khng cn thit. Tiu chun 8: Dng i s quan h c tuyn chn nh tr iu kin chn ca cc ton hng ca cc php kt; thay th cy con, bao gm php kt v cc ton hng ca n, bng quan h rng nu iu kin chn ca kt qu ca php kt b mu thun. V d : Xt cy ton t trn lc phn mnh trn y php chn v php chiu xung khi php hp ta c: malop,tenlop( tenkhoa=CNTT (lop1 U lop2)) = malop,tenlop( tenkhoa=CNTT (lop1)) U malop,tenlop( tenkhoa=CNTT (lop2)) Ta nhn thy kt qu ca php chn tenkhoa=CNTT (lop2) l rng v php chn tenkhoa=CNTT (lop1) l khng cn thit v iu kin chn ca lop1 l tenkhoa= CNTT. Do : malop,tenlop( tenkhoa=CNTT (lop1 U lop2)) = malop,tenlop (lop1) y php chiu xung khi php hp trong biu thc: masv,hoten, malop(sinhvien1 U sinhvien2) = masv,hoten, malop(sinhvien1) U masv,hoten, malop(sinhvien2)

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

116

Ta c cy ton t:

masv,hoten, tenlop malop=malop

malop, tenlop

Lop1 masv,hoten, malop Sinhvien1 masv,hoten, malop Sinhvien2

Sau phn phi php kt vi vi php hp ta c:


masv,hoten, tenlop U

malop=malop

malop=malop

masv,hoten, malop Sinhvien1

malop, tenlop

masv,hoten, malop Sinhvien2

malop, tenlop

Lop1

Lop1

Tuy nhin php kt gia sinhvin2 v lop1 l rng do iu kin chn ca phn mnh lop1 v sinhvien2 mu thun nhau.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

117

Cui cng ta c cy ton t trn lc phn mnh nh sau:


masv,hoten, tenlop malop=malop

masv,hoten, malop Sinhvien1

Lop1

malop, tenlop

n gin ho biu thc i s quan h trong lc phn mnh cn da vo mt h suy din c gi l B chng minh nh l (Theorem Prover). V d: Gi s chng ta ch c hai khoa l CNTT v c ti a 20 lp, cc lp c m lp t 1 n 10 thuc khoa CNTT v cc lp c m t 11 n 20 thuc khoa DIEN. T , chng ta c cc lut suy din sau: Malop > 10 Malop <= 10 Malop > 10 tenkhoa = DIEN NOT (Malop >10) NOT (Malop <=10) Malop <= 10 Malop > 10 not(tenkhoa = DIEN) not(tenkhoa = CNTT)

tenkhoa = CNTT tenkhoa = DIEN

tenkhoa = CNTT tenkhoa = DIEN

Xt truy vn Q14 cho bit tn lp ca lp c m lp bng 1: Q14: Select tenlop From lop Where malop = 1

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

118

Trc khi thc hin truy vn ny, chng ta c cc suy din sau y: Malop = 1 malop <=10 tenkhoa= CNTT

Malop <= 10

Do truy vn ny ch lin quan n lop1 v iu kin chn ca lop1 l tenkhoa = CNTT. V th biu thc i s quan h ca truy vn ny l: tenlop ( malop=1 (lop1)) 5.3.3 Bc 3 Ti u ho truy vn ton cc Bc ti u ho truy vn ton cc nhm tm ra mt chin lc thc hin truy vn sao cho chin lc ny gn ti u (theo ngha gim thi gian thc hin truy vn trn d liu c phn tn, gim vng nh trung gian). Mt chin lc c c trng bi th t thc hin cc php ton i s quan h v cc tc v truyn thng c bn (gi/nhn) dng truyn d liu gia cc v tr. Bng cc hon i th t ca cc php ton trong biu thc truy vn phn mnh, ta c th c c nhiu truy vn tng ng. Ti u ha truy vn ton cc l tm ra mt th t thc hin cc php ton trong biu thc truy vn sao cho t tn thi gian nht. c bit khu tn km thi gian trong c s d liu phn tn l khu truyn d liu do tc v bng thng gii hn. Trong trng hp nhn bn th cn phi tnh xem nhn bn no c s dng nhm gim chi ph truyn thng. Mt kha cnh quan trng ca ti u ho truy vn l th t thc hin cc php kt phn tn. Nh tnh giao hon ca cc php kt, chng ta c th lm gim chi ph thc hin cc php kt ny. Mt k thut c bn ti u ho mt chui cc php kt phn tn l s

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

119

dng php na kt nhm lm gim chi ph truyn thng gia cc v tr v tng tnh x l cc b ti cc v tr. R A = B S = S A = B (R <A = B BS) V d: Gi s c s phn tn d liu sau: mnh sinhvien1 t ti v tr 1 v mnh lop1 t ti v tr 2

Chng ta cn thc hin php kt phn tn sau: Sinhvien1 lop1 Bng cch p dng php na kt biu thc trn tng ng vi: Lop1 (sinhvien1 < malop(lop1)) Do ta c mt chin lc thc hin cho php kt phn tn ny vi cc tc v truyn thng sau: 1) Thc hin T1 = malop(lop1) cc b ti v tr 2. 2) Truyn T1 t v tr 2 qua v tr 1. 3) Thc hin T2 = sinhvien1 < T1 cc b ti v tr 1. 4) Truyn T2 t v tr 1 qua v tr 2. 5) Thc hin T3 = lop1 < T2 cc b ti v tr 2. 6) Truyn T3 t v tr 2 qua v tr ca ng dng cn thc hin ca php kt ny.

C s d liu phn tn - 2010

Chng 5

Ti u ha truy vn phn tn

120

5.3.4 Bc 4 Ti u ho truy vn cc b Ti u ho truy vn cc b nhm thc hin cc truy vn con c phn tn ti mi v tr, gi l truy vn cc b c cha cc mnh, sau c ti u ho trn lc cc b ti mi v tr. Ti u ho truy vn cc b s dng cc thut ton ti u ho truy vn ca c s d liu tp trung.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

121

Chng 6 GIAO TC PHN TN

MC TIU
Chng ny gii thiu khi nim giao tc v nh ngha hnh thc ca giao tc. Chng ny chia lm ba phn: 1. Phn th nht: Khi nim giao tc, nh ngha hnh thc ca giao tc. 2. Phn th hai: Cc tnh cht ca giao tc 3. Phn th ba: Phn loi giao tc Cho n lc ny, n v truy xut c bn l cu truy vn. Trong chng 5, chng ta tho lun v cch x l v ti u ho cc truy vn. Tuy nhin chng ta cha bao gi xt n cc tnh hung xy ra, chng hn khi hai cu truy vn cng cp nht mt mc d liu, hoc tnh hung h thng b s c phi ngng hot ng trong khi ang thc hin cu truy vn. i vi nhng cu truy vn ch truy xut, khng c tnh hung no trn gy rc ri. Ngi ta c th cho hai cu truy vn c d liu cng mt lc. Tng t, sau khi x l xong s c, cc truy vn ch c ch cn khi ng li. Nhng ngc li c th nhn ra rng i vi nhng cu truy vn cp nht, nhng tnh hung ny c th gy ra nhng tn hi nghim trng cho c s d liu. Nh chng ta khng th ch khi ng li cho cu truy vn cp nht sau mt s c h thng v mt s gi tr ca cc mc d liu c th c cp nht trc khi c s c xy ra v khng cho php cp nht li khi cu truy vn c khi ng li, nu khng th c s d liu s cha nhng d liu sai lch. im mu cht y l khng c khi nim thc thi nht qun hoc tnh ton ng tin cy i km vi khi nim truy vn. Khi nim giao tc (transaction) c s dng trong lnh vc c s d liu nh mt n v tnh ton nht qun v tin cy c. V th cc cu truy vn s c thc thi nh cc giao tc mt khi cc chin lc thc thi c xc nh v c dch thnh cc thao tc c s d liu nguyn thy. Trong tho lun trn chng ta dng thut ng nht qun (consistent) v ng tin cy (reliable) mt cch hon ton khng hnh thc. Th nhng do tm quan trng ca chng m chng ta cn phi nh ngha chng mt cch chun xc. Trc tin phi ch ra rng cn phn bit gia nht qun c s d liu (database consistency) v nht qun giao tc (transaction consistency).

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

122

Mt c s d liu trong mt trng thi nht qun (consistent state) nu n tun theo tt c cc rng buc ton vn (nht qun) c nh ngha trn n. D nhin chng ta cn bo m rng c s d liu khng bao gi chuyn sang mt trng thi khng nht qun. C s d liu c th tm thi khng nht qun trong khi thc hin giao tc. iu quan trng l c s d liu phi tr v trng thi nht qun khi quan h giao tc chm dt. mt trng thi nht qun thi khng nht qun mt trng thi nht qun

Bt u

ang thc thi Hnh 6.1 M hnh giao tc

Kt thc

Ngc li, tnh nht qun giao tc mun ni n hnh ng ca cc giao tc ng thi. Chng ta mong rng c s d liu vn nht qun ngay c khi c mt s yu cu ca ngi s dng ng thi truy xut n c s d liu (c hoc cp nht). Tnh cht phc tp ny sinh khi xt n cc c s d liu c nhn bn. Mt c s d liu c nhn bn trong mt trng thi nht qun ln nhau (mutually consistent state) nu tt c cc bn sao ca mi mc d liu trong u c gi tr ging nhau. iu ny thng c gi l s tng ng mt bn (one copy equivalence) v tt c cc bn u b buc phi nhn cng mt trng thi vo cui lc thc thi giao tc. Mt s khi nim v tnh nht qun bn sao cho php gi tr cc bn sao c th khc nhau. Nhng vn ny s c tho lun sau. tin cy hay kh tn (reliability) mun ni n kh nng t thch ng (resiliency) ca mt h thng i vi cc loi s c v kh nng khi phc li t nhng s c ny. Mt h thng kh tn s t thch ng vi cc s c h thng v c th tip tc cung cp cc dch v ngay c khi xy ra s c. Mt h qun tr c s d liu kh hi phc l h qun tr c s d liu c th chuyn sang trng thi nht qun (bng cch quay tr li trng thi nht qun trc hoc chuyn sang mt trng thi nht qun mi) sau khi gp mt s c.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

123

Qun l giao tc (transaction management) l gii quyt cc bi ton duy tr c c s d liu trong tnh trng nht qun ngay c khi c nhiu truy xut ng thi v khi c s c. Mc ch ca chng ny l nh ngha nhng thut ng c bn v a ra mt b khung trn c s tho lun cc vn ny. y cng l phn gii thiu ngn gn v bi ton cn gii quyt v cc vn c lin quan. V th chng ta s trnh by cc khi nim mt mc tru tng kh cao v khng trnh by nhng k thut qun l. Trong phn tip theo chng ta s nh ngha mt cch hnh thc v mt cch trc quan v khi nim giao tc.

6.1 nh ngha giao tc


Giao tc c xem nh mt dy cc thao tc c v ghi trn c s d liu cng vi cc bc tnh ton cn thit. V d 6.1 Xt cu truy vn SQL lm tng ngn sch ca d n CAD/CAM ln 10% UPDATE PROJ SET BUTGET = BUTGET * 1.1 WHERE PNAME = CAD/CAM Cu truy vn ny c th c c t, qua k php SQL gn kt, nh mt giao tc bng cch cho n mt tn (v d BUDGET_UPDATE) v khai bo nh sau: Begin_transaction BUDGET_UPDATE begin EXEC SQL UPDATE PROJ SET BUTGET = BUTGET * 1.1 WHERE PNAME = CAD/CAM end. Cc cu lnh Begin_transaction v end n nh ranh gii mt giao tc. Ch rng vic s dng cc k hiu phn cch ny hon ton khng bt buc trong mi h

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

124

qun tr c s d liu. Chng hn nu cc du phn cch khng c c t, DB2 s x l ton b chng trnh thc hin truy xut c s d liu nh mt giao tc. V d 6.2 Trong phn tho lun v cc khi nim qun l giao tc, chng ta s s dng v d v mt h thng t ch my bay. Ci t thc t ca ng dng ny lun s dng n khi nim giao tc. Chng ta gi s rng c mt quan h FLIGHT ghi nhn d liu v cc chuyn bay (flight), quan h CUST cho cc khch hng c t ch trc v quan h FC cho bit khch hng no s i trn chuyn bay no. Chng ta cng gi s rng cc nh ngha quan h sau (thuc tnh gch di biu th kho): FLIGHT (FNO, DATE, SRC, DEST, STSOLD, CAP) CUST (CNAME, ADDR, BAL) FC (FNO, DATE, CNAME, SPECIAL) nh ngha thuc tnh trong lc ny nh sau: FNO l m s chuyn bay, DATE biu ngy thng chuyn bay, STSOLD ch s lng gh (seat) c bn trn chuyn bay , CAP ch sc chuyn ch (s lng hnh khch c th ch c, capacity) trn chuyn bay, CNAME ch tn khch hng vi a ch c lu trong ADDR v s d trong BAL, cn SPECIAL tng ng vi cc yu cu c bit m khch hng a ra khi t ch. Chng ta xt mt phin bn n gin ho ca mt ng dng t ch, trong mt nhn vin bn v nhp m s chuyn bay, ngy thng, tn khch hng v thc hin t ch trc. Giao tc thc hin cng vic ny c th c ci t nh sau, trong cc truy xut c s d liu c c t bng SQL: Begin_transaction Revervation begin input (flight_no, date, customer_name); EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD +1 WHERE FNO = flight_no

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
AND DATE = date;

125

EXEC SQL INSERT INTO FC (FNO, DATE, CNAME, SPECIAL) VALUES (flight_no, date, customer_name, null); output (reservation completed) end. 6.1.1 Tnh hung kt thc giao tc Mt giao tc lun lun phi kt thc ngay c khi c xy ra s c. Nu giao tc c th hon tt thnh cng tc v ca n, chng ta ni rng giao tc c u thc (commit). Ngc li nu mt giao tc phi ngng li khi cha hon tt cng vic, chng ta ni rng n b hy b (abort). Mt giao tc phi t hy b v c mt iu kin lm cho n khng hon tt c cng vic. Ngoi ra h qun tr c s d liu c th hy b mt giao tc, chng hn do b kho cht (deadlock). Khi mt giao tc b hy b, qu trnh thc thi s ngng v tt c mi hnh ng c thc hin u phi c undo, a c s d liu tr v trng thi trc khi thc hin giao tc. Qu trnh ny gi l rollback. Vai tr quan trng ca y thc biu hin hai mt. Th nht lnh y thc bo cho h qun tr c s d liu bit rng tc dng ca giao tc by gi cn c phn nh vo c s d liu, qua lm cho cc giao tc ang truy xut cc mc d liu c th thy c chng. Th hai, im m giao tc y thc l mt im khng ng v. Kt qu ca mt giao tc y thc by gi c lu c nh vo c s d liu v khng th phc hi li c. V d 6.3 Mt iu chng ta cha xt n l tnh hung khng cn ch trng trn chuyn bay. bao qut kh nng ny, giao tc cn c vit li nh sau: Begin_transaction Reservation begin input(flight_no, date, customer_name); EXEC SQL SELECT STSOLD, CAP INTO temp1, temp2

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
FROM FLIGHT WHERE FNO = flight_no AND DATE = date; if temp1 = temp2 then begin Output(no free seat); Abort end else begin EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD +1 WHERE FNO = flight_no AND DATE = date; EXEC SQL INSERT INTO FC(FNO, DATE, CNAME, SPECIAL) VALUES(flight_no, date, customer_name, null); Commit; Output(reservation completed) end end-if end.

126

Qua v d ny chng ta thy c nhiu im quan trng. R rng nu khng cn ch trng, giao tc phi hy b. Th hai l vic sp th t cc kt qu trnh by ra cho ngi s dng ty theo cc lnh abort v commit. Ch rng nu giao tc b hy b, ngi s dng s c thng bo trc khi h qun tr c s d liu c hng dn hy b n. Th nhng vi trng hp y thc, thng bo cho ngi s dng phi xy ra sau khi h qun tr c s d liu thc hin xong lnh y thc bo m kh tn. 6.1.2 c trng ho cc giao tc Chng ta nhn xt rng cc giao tc u c v ghi mt s d liu. iu ny c dng lm c s nhn bit mt giao tc. Cc mc d liu c giao tc c cu to nn tp c RS (read set) ca n. Tng t, cc mc d liu c mt giao tc ghi c gi l tp ghi WS(write set). Ch rng tp c v tp ghi ca mt giao tc khng nht thit

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

127

phi tch bit. Cui cng hp ca tp c v tp ghi ca mt giao tc to ra tp c s BS (base set), ngha l BS = RS WS. V d 6.4 Chng ta xt li giao tc t ch ca v d 6.3 v thao tc chn cha mt s thao tc ghi. Cc tp nu trn c nh ngha nh sau: RS [Revervation] = {FLIGHT.STSOLD, FLIGHT.CAP} WS[Revervation] = {FLIGHT.STSOLD, FC.FNO, FC.DATE, FC.CNAME, FC.SPECIAL} BS[Revervation] = {FLIGHT.STSOLD, FLIGHT.CAP, FC.FNO, FC.DATE, FC.CNAME, FC.SPECIAL} Chng ta c trng cc giao tc ch trn c s cc thao tc c v ghi m khng xem xt cc thao tc chn, xo. Nh th chng ta tho lun v khi nim cc giao tc da trn cc c s d liu tnh, khng ni rng hoc thu li. Gin lc ny c a ra c c tnh n gin. Cc c s d liu ng phi gii quyt bi ton nh o (phantom), c gii thch nh v d sau. Xt giao tc T1, khi thc hin cn tm trong bng FC tn nhng khch hng yu cu dng mt ba n c bit. N nhn c mt tp CNAME gm nhng khch hng tha thun iu kin tm kim. Khi T1 ang thc hin, mt giao tc T2 chn cc b mi vo FC c yu cu ba n c bit ri y thc. Nu sau T1 li a ra cu truy vn tm kim nh c, n s nhn c mt tp CNAME khc vi tp ban u m n nhn. V th cc b nh o xut hin trong c s d liu. 6.1.3. Hnh thc ho khi nim giao tc Cho n lc ny, ngha trc quan ca giao tc hon ton r rng. bn lun v cc giao tc v suy din tnh ng n ca cc thut ton qun l giao tc, chng ta cn nh ngha khi nim ny mt cch hnh thc. Chng ta biu th php ton Oj ca giao tc Ti khi hot tc trn thc th c s d liu x l Oij(x). Theo qui c c tha nhn phn trc, Oij {read, write}. Cc php ton c gi thit l nguyn t (ngha l mi php ton c thc thi nh mt n v khng th chia nh c na). Chng ta

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

128

hy k hiu OSi l tp tt c cc php ton trong Ti (ngha l OSi = Uj Oij). Ni biu th cho tnh hung ca Ti, trong Ni {abort, commit}.2 Vi cc thut ng ny, chng ta c th nh ngha Ti l mt th t b phn trn cc php ton v tnh hung kt thc ca n. Th t b phn P = {, p} nh ngha mt trt t gia cc phn t ca (c gi l min) qua mt quan h hai ngi bc cu v khng phn x p c nh ngha trn . Trong trng hp ang xt, bao gm cc php ton v tnh hung kt thc ca mt giao tc, trong p ch th t thc hin ca cc php ton ny (c chng ta c l ng trc theo th t thc thi). Mt cch hnh thc, mt giao tc TI l mt th t b phn TI = {i,<i}, trong 1. i = OSi {Ni}.
2.

Vi hai php ton bt k Oij, Oik OSi, nu Oij = {R(x) or W(x)} v Oik = w(x) vi mt mc d liu x no , th th Oij < i Oik hoc Oik < i Oij. Oij OSi, Oij < i Ni.

3.

iu kin th nht v hnh thc nh ngha min nh mt tp cc thao tc c v ghi cu to nn giao tc cng vi tnh hung kt thc, c th l commit hoc abort. iu kin th hai xc nh quan h th t gia cc thao tc c v ghi c tng tranh ca giao tc, cn iu kin cui cng ch ra rng tnh hung kt thc lun i sau tt c nhng thao tc khc. C hai im quan trng cn lu trong nh ngha ny. Trc tin, quan h th t p c cho trc v nh ngha ny khng h xy dng n. Quan h th t thc s ph thuc vo ng dng. K n, iu kin th hai ch ra rng th t gia cc thao tc c tng tranh phi tn ti bn trong p. Hai thao tc Oi(x) v Oj(x) c gi l c tng tranh nu Oi = Write hoc Oj = Write (c ngha t nht mt trong chng l Write v chng truy xut cng mt mc d liu). V d 6.5: Xt mt giao tc n gin T c cc bc sau: Read(x) Read(y) x x+y

C s d liu phn tn - 2010

Chng 6
Write(x) Commit

Giao tc phn tn

129

c t ca giao tc ny theo k php hnh thc c gii thiu trn l: = {R(x), R(y), W(x), C} < = {(R(x), W(x)), (R(y), W(x)), (W(x),C), (R(x), C), (R(y), C)}

trong (Oi, Oj), l mt phn t ca quan h p, biu th rng Oi < Oj. Ch rng quan h th t tng i ca tt c cc thao tc ng vi tnh hung kt thc. iu ny l do iu kin th ba ca nh ngha giao tc. Cng cn ch rng chng ta khng m t th t gia mi cp thao tc. iu gii thch v sao y l mt th t b phn. V d 6.6 Giao tc t ch c xy dng trong v d 6.3 phc tp hn. Ch cho rng c hai tnh hung kt thc, ty vo tnh trng c cn ch trng hay khng. Trc tin, iu ny dng nh mu thun vi nh ngha ca giao tc, l ch tn ti mt tnh hung kt thc. Tuy nhin cn nh rng giao tc l mt thc thi ca mt chng trnh. R rng l trong bt k ln thc thi no, ch mt trong hai tnh hung kt thc xy ra. V th iu c th xy ra l mt giao tc hy b v mt giao tc khc y thc. S dng k php hnh thc ny, giao tc u c th c c t nh sau: = {R(STSOLD); R(CAP),A} < = {(O1,A), (O2,A)} v giao tc sau c c t nh sau = {R(STSOLD), R(CAP), W(STSOLD), W(FNO), W(DATE), W(CNAME), W(SPECIAL), C} < = {(O1,O3), (O2,O3), (O1,O4), (O1, O5), (O1, O6), (O1, O7), (O2, O4), (O2, O5), (O2, O6), (O2, O7),

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
(O1, C), (O2, C), (O3, C) (O4, C), (O5, C), (O6, C), (O7, C)}

130

trong O1 = R(STSOLD), O2 = R(CAP), O3 = W(STSOLD), O4 = W(FNO), O5= W(DATE), O6 = W(CNAME), O7 = W(SPECIAL). Mt u im ca vic nh ngha giao tc nh mt th t b phn l s tng ng ca n vi th c hng khng vng DAG (directed acylic graph). Nh th mt giao tc c th c c t nh mt DAG vi nh l cc php ton giao tc v cung ch ra mi lin h th t gia cc cp php ton cho. V d 6.7 Giao tc c tho lun trong v d 5 c th c v nh mt DAG ca hnh 6.2. Ch rng chng ta khng v cc cung c suy ra nh tnh cht bc cu d rng chng ta xem chng nh nhng phn t ca p R(x) R(y) C

R(y) Hnh 6.2 Biu din dng DAG cho mt giao tc Trong phn ln cc trng hp chng ta khng cn phi cp n nhiu min ca th t b phn mt cch ring r vi quan h th t. V th thng thng chng ta b ra khi nh ngha giao tc v s dng tn ca th t b phn ch n c min ln tn ca th t b phn. iu s tin li bi v n cho php chng ta c t th t ca cc php ton trong mt giao tc nh mt phng thc kh n gin bng cch dng th t tng i ca nh ngha giao tc. Chng hn chng ta c th nh ngha giao tc ca v d 5 nh sau: T = {R(x), R(y), W(x), C} thay v c t di dng nh trc.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

131

6.2 Cc tnh cht ca giao tc


Cc kha cnh nht qun v kh tn ca giao tc l do bn tnh cht: (1) tnh nguyn t (atomicity), (2) tnh nht qun (consistency), (3) tnh bit lp (isolation), (4) tnh bn vng (durability); v chng ta thng c gi chung l tnh cht ACID. 6.2.1 Tnh nguyn t Tnh nguyn t lin quan n s kin l mt giao tc c x l nh mt n v hot tc. Chnh v th m cc hnh ng ca giao tc, hoc tt c u hon tt hoc khng mt hnh ng no hon tt. iu ny cng c gi l tnh cht c n c ng v khng (all-or-nothing). 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 cng vic cn thc hin i vi giao tc khi phc li sau s c. D nhin c hai chiu hng hnh ng: hoc n s c kt thc bng cch hon tt cc hnh ng cn li, hoc c th c kt thc bng cch hi li tt c cc hnh ng c thc hin. 6.2.2 Tnh nht qun Tnh nht qun (consistency) ca mt giao tc ch n gin l tnh ng n ca n. Ni cch khc, mt giao tc l mt chng trnh ng n, nh x c s d liu t trng thi nht qun ny sang mt trng thi nht qun khc. Trong nh ngha di y, d liu rc (dirty data) mun ni n nhng gi tr d liu c cp nht bi mt giao tc trc khi n y thc. Do da trn khi nim v d liu rc, bn mc c nh ngha nh sau: 3: Giao tc T tha nht qun 3 nu: 1. T khng ln d liu rc ca nhng giao tc khc. 2. T khng y thc bt k thao tc ghi no cho n khi n hon tt mi thao tc ghi [ngha l cho n lc cui giao tc (end-of-transaction, EOT)]. 3. T khng c d liu rc ca nhng giao tc khc. 4. Nhng giao tc khc khng lm cho d liu m T c trc khi T hon tt tr thnh d liu rc.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

132

2: Giao tc T tha nht qun 2 nu: 1. T khng ln d liu rc ca nhng giao tc khc. 2. T khng y thc bt k thao tc ghi no trc EOT. 3. T khng c d liu rc ca nhng giao tc khc. 1: Giao tc T tha nht qun 1 nu: 1. T khng ln d liu rc ca nhng giao tc khc. 2. T khng y thc bt k thao tc ghi no trc EOT. ng nhin nht qun cao bao trm tt c nht qun mc thp hn. tng trong vic nh ngha nhiu mc nht qun l cung cp cho lp trnh vin ng dng mt kh nng linh hot khi nh ngha cc giao tc hot tc nhng mc khc nhau. H qu l mc d mt s giao tc hot tc mc nht qun 3, cc giao tc khc c th hot tc nhng mc thp hn, v rt c th s nhn thy cc d liu rc. 6.2.3 Tnh bit lp Bit lp l tnh cht ca cc giao tc, i hi mi giao tc phi lun nhn thy c s d liu nht qun. Ni cch khc, mt giao tc ang thc thi khng th lm l ra cc kt qu ca n cho nhng giao tc khc ang cng hot ng trc khi n y thc. C mt s l do cn phi nhn mnh n tnh bit lp. Mt l duy tr tnh nht qun qua li gia cc giao tc. Nu hai giao tc ng thi truy xut n mt mc d liu ang c mt trong chng cp nht th khng th bo m rng giao tc th hai s c c gi tr ng. V d 6.8 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 T2: Read(x)

x x + 1

C s d liu phn tn - 2010

Chng 6
Write(x) Commit

Giao tc phn tn
Write(x) Commit

133

Di y l mt dy thc thi cho cc hnh ng ny. T1 : T1 : T1 : T1 : T2 : T2 : T2 : T2 : Read(x) x x + 1 Write(x) Commit Read(x) x x + 1 Write(x) Commit

trng hp ny khng c vn g; cc giao tc T1 v T2 c thc hin ln lt v giao tc T2 c c gi tr ca x l 51. Ch rng nu T2 thc thi trc T1 th T2 c c gi tr 50. V th nu T1 v T2 c thc thi ln lt giao tc ny ri n giao tc kia, giao tc th hai s c c gi tr ca x l 51 v sau khi kt thc hai giao tc x c gi tr 52. Tuy nhin v cc giao tc ang thc thi ng thi, dy thc thi sau y c th s xy ra: T1 : T1 : T2 : T1 : T2 : T2 : Read(x) x x + 1 Read(x) Write(x) x x + 1 Write(x)

C s d liu phn tn - 2010

Chng 6
T1 : T2 :

Giao tc phn tn
Commit Commit

134

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 tc T1 v T2 bi v hnh ng ghi ca T2 s ln kt qu ghi ca T1. Bo m tnh bit lp bng cch khng cho php cc giao tc khc nhn thy cc kt qu cha hon tt nh trong V d trn s gii quyt c vn cp nht tht lc (lost update). Loi bit lp ny c gi l tnh n nh con chy (cursor stability). Trong V d trn, dy thc thi th hai lm cho tc dng ca T1 b mt. Mt l do th hai ca tnh bit lp l cc hy b dy chuyn (cascading abort). Nu mt giao tc cho php nhng giao tc khc nhn thy nhng kt qu cha hon tt ca n trc khi y thc ri n quyt nh hy b, mi giao tc c nhng gi tr cha hon tt cng s phi hy b. Xu mc xch ny d lm tng nhanh v gy ra nhng ph tn ng k cho h qun tr c s d liu. Cng c th x tr cc mc nht qun tho lun trong phn trc t quan im ca tnh cht bit lp (v th minh ho cho s ph thuc gia tnh nht qun v tnh bit lp). Khi di chuyn ln cy phn cp cc mc nht qun, cc giao tc ngy cng bit lp hn. 0 cung cp rt t tnh cht bit lp ngoi vic ngn cn cc cp nht tht lc. Tuy nhin v cc giao tc s y thc trc khi chng hon tt tt c mi thao tc ghi ca chng, nu c mt hy b xy ra sau , n s i hi phi hi li tt c cc cp nht trn cc mc d liu c y thc v hin ang c truy xut bi nhng giao tc khc. Nht qun 2 trnh c cc hy b dy chuyn. 3 cung cp ton b kh nng bit lp, buc mt trong cc giao tc tng tranh phi i cho n khi giao tc kia kt thc. Nhng dy thc thi nh th c gi l nghim ngt (strict) v s c tho lun nhiu hn trong chng tip theo. R rng l vn bit lp c lin quan trc tip n tnh nht qun c s d liu v v th l ti ca iu khin ng thi. Ba hin tng c c t cho nhng tnh hung c th xy ra nu s bit lp thch hp khng c duy tr l:

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

135

c rc (Dirty Read): d liu rc mun ni n cc mc d liu m gi tr ca chng c sa i bi mt giao tc cha y thc. Xt trng hp giao tc T1 sa i mt gi tr d liu ri n li c bc bi mt giao tc T2 khc trc khi T1 thc hin Commit hay Abort. Trong trng hp Abort, T2 c mt gi tr cha c tn ti trong c s d liu. Mt c t chnh xc trong hin tng ny nh sau (vi cc cc s ch ra tn cc giao tc) , W1(x),, R2(x), C1(hoc A1),, C2(hoc A2) hoc , W1(x),, R2(x), C2(hoc A2),, C1(hoc A1) c bt kh lp (Non-repeatable Read): Giao tc T1 c mt mc d liu. Sau mt giao tc T2 khc sa hoc xo mc d liu ri y thc. Nu sau T1 c li mc d liu , hoc n c c mt gi tr khc hoc n khng th tm thy c mc ; v th hai hnh ng c trong cng mt giao tc T1 tr v cc kt qu khc nhau. Mt c t chnh xc ca hin tng ny nh sau: , R1(x),, W2(x), C1(hoc A1),, C2(hoc A2) hoc , R1(x),, W2(x), C2(hoc A2),, C1(hoc A1) Anh o (phantom): iu kin nh o trc kia c nh ngha xy ra khi T1 thc hin tm kim theo mt v t v T2 chn nhng b mi tha v t . c t chnh xc ca hin tng ny l (P l v t tm kim) , R1(P),, W2(y thuc P), C1(hoc A1),, C2(hoc A2) hoc , R1(P),, R2(y thuc P), C2(hoc A2),, C1(hoc A1)

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

136

Da trn nhng hin tng ny, cc mc bit lp c nh ngha nh sau. Mc tiu ca vic nh ngha nhiu mc bit lp cng ging nh vic nh ngha cc mc nht qun. 6.2.4 Tnh bn vng Tnh bn vng (durability) mun ni n tnh cht ca giao tc, bo m rng mt khi giao tc y thc, kt qu ca n c duy tr c nh v khng b xa ra khi c s d liu. V th h qun tr c s d liu bo m rng kt qu ca giao tc s vn tn ti d c xy ra s c h thng. y chnh l l do m trong v d 6.2 chng ta nhn mnh rng giao tc y thc trc khi n thng bo cho ngi s dng bit rng n hon tt thnh cng. Tnh bn vng a ra vn khi phc c s d liu (database recovery), ngha l cch khi phc c s d liu v trng thi nht qun m mi hnh ng y thc u c phn nh.

6.3 Cc loi giao tc


6.3.1 Giao tc phng Giao tc phng (flat transaction) c mt khi im duy nht (Begin_transaction) v mt im kt thc duy nht (End_transaction). Tt c cc v d ca chng ta xem xt u nm trong nhm ny. Phn ln cc nghin cu v qun l giao tc trong c s d liu u tp trung vo cc giao tc phng. 6.3.2 Giao tc lng y l m hnh giao tc cho php mt giao tc gm cha giao tc khc vi im bt u v y thc ca ring chng. Nhng giao tc nh th c gi l giao tc lng (nested transaction). Nhng giao tc c t vo trong giao tc khc thng c gi l giao tc con (subtransaction) V d 6.9 Chng ta hy m rng giao tc t ch ca v d 2. Phn ln cc hng du lch u lo c vic t ch khch sn v mn t ngoi dch v t v my bay. Nu ngi ta mun m t tt c nhng cng vic ny bng mt giao tc, th giao tc t ch s c cu trc nh sau: Begin_transaction Reservation

C s d liu phn tn - 2010

Chng 6
begin

Giao tc phn tn

137

Begin_transaction Airline end. {Airline} Begin_transaction Hotel end. { Hotel} Begin_transaction Car end. {Car } end. Cc giao tc lng c ch nh mt khi nim giao tc tng qut hn. Mc lng ni chung l ng, cho php cc giao tc con cng c th c cc giao tc lng. Tnh tng qut ny c ch trong cc lnh vc ng dng m cc giao tc phc tp hn so vi vic x l d liu truyn thng.

6.4 iu khin ng thi phn tn


6.4.1 L thuyt kh tun t Trong phn u ca chng, chng ta tho lun vn lm bit lp cc giao tc vi nhau theo tc dng ca chng trn CSDL. Chng ta cng ch ra rng nu vic thc thi ng thi cc giao tc lm cho CSDL mt trng thi c th c c ging nh khi cho chng thc hin tun t theo mt s th t no , cc vn nh cp nht b tht lc s c gii quyt. y l im mu cht ca nhng l lun v tnh kh tun t. Phn cn li s tp trung vo cc vn kh tun t mt cch hnh thc hn. Mt lch S (schedule) c nh ngha trn tp giao tc T = {T1, T2,, Tn} v xc nh th t thc thi an xen ln nhau ca cc thao tc trong giao dch. Da trn nh ngha giao tc c gii thiu trong phn 6.1, lch c th m t nh mt th t b phn trn T. Du vy chng ta cng cn mt khi nim c bn trc khi a ra nh ngha hnh thc. Nhc li nh ngha v thao tc tng tranh a ra trong chng 5. Hai thao tc Oij(x) v Okl(x) (i v k khng nht thit phi phn bit) cng truy cp n mt thc th

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

138

CSDL x c gi l c tng tranh (conflict) nu t nht mt trong chng l thao tc ghi (write). Hai iu m chng ta cn ch trong nh ngha ny. Trc tin cc thao tc c khng tng tranh vi nhau. V th chng ta c th ni v hai loi tng tranh: c-ghi (read-write) v ghi-ghi (write-write). Th hai, hai thao tc ny c th thuc v cng mt giao tc hoc thuc v hai giao tc khc nhau .Trong trng hp sau, hai giao tc c gi l c tng tranh. V trc quan, s tn ti ca mt tng tranh gia hai thao tc cho thy rng th t thc hin ca chng ta l quan trng. Vic sp th t cho hai thao tc c l khng cn thit. Trc tin chng ta nh ngha mt lch y (complete schedule): l lch nh ngha th t thc hin ca tt c cc thao tc trong min bin thin ca n. Sau chng ta nh ngha rng mt lch c xem l mt tin t (prefix) ca mt lch y . V hnh c thc, mt lch y S T c nh ngha trn mt tp giao tc T = {T1, T2,, Tn} l mt th t b phn = {T, <T}, trong 1. T = ni = 1 i 2. <T =
n i = 1 <i

3. i vi hai thao tc trong tng tranh bt k Oij, Okl T, chng ta c Oij<T Okl hoc Okl<T Oij. V d 6.10: T1 : Read(x) X x+1 Write(x) Commit T2 : Read(x) X x+1 Write(x) Commit

c Mt lch y S T kh hu trn T = {T1, T2} c th c vit nh th t b phn sau y (cc ch s di biu th giao dch): c S T = {T, <T}

C s d liu phn tn - 2010

Chng 6
trong

Giao tc phn tn

139

1 = {R1(x), W1(x), C1} 2 = {R2(x), W2(x), C2} V vy T = 1 2 = {R1(x), W1(x), C1, R2(x), W2(x), C2} v <T = {(R1, R2), (R1, W1), (R1, C1), (R1, W2), (R1, C2), (R2, W1), (R2, C1), (R2, W2), (R2, C2), (W1, C1), (W1, W2), (W1, C2), (C1, W2), (C1, C2), (W2, C2)} c th c t nh mt DAG trong hnh 6.3. R1(x) W1(x) C1 R2(x) W2(x) C2

Hnh 6.3 Biu din DAG ca mt lch y c S T = {R1(x), R2(x), W1(x), C1, W2(x), C2} Mt lch c nh ngha l mt tin t (prefix) ca mt lch y . Mt tin t ca mt th t b phn c th c nh ngha nh sau. Cho trc mt th t b phn P = {, <}, P = {, <} l mt tin t ca P nu 1. ; 2. ei , e1 < e2 nu v ch nu e1 < e2; v 3. ei , nu ej v ej< ei th ej .

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

140

Hai iu kin u tin nh ngha P nh mt hn ch ca P trn min , trong cc quan h th t trong P c duy tr trong P. iu kin cui cng ch ra rng vi mi phn t ca , tt c cc phn t ng trc n trong cng phi thuc. nh ngha mt lch thc nh mt tin t ca mt th t b phn lm g? Cu tr li n gin l chng ta by gi c th x l cc lch khng y . iu ny l c ch v mt s l do. T quan im l thuyt kh tun t, chng ta ch phi gii quyt mt s thao tc ca cc giao tc c tng tranh ch khng phi vi tt c mi thao tc. Hn na, v c l quan trng hn l khi xut hin s c, chng ta cn phi c kh nng gii quyt vi nhng giao tc khng y , m l iu mt tin t cho php chng ta lm c. V d 6.11: Xt ba giao tc sau y T1 : Read(x) Write(x) Commit T2 : Write(x) Write(y) Read(z) Commit T3 : Read(x) Read(y) Read(z) Commit

Mt lch y Sc cho nhng giao tc ny c trnh by trong hnh 6.4, v mt lch c S (mt tin t ca S ) c m t trong hnh 6. 5. R1(x) W1(x) C1 W2(x) W2(y) R2(z) C2 R3(x) R3(y) R3(z) C3

Hnh 6.4 Mt lch y

C s d liu phn tn - 2010

Chng 6
R1(x)

Giao tc phn tn
W2(x) W2(y) R2(z) R3(x) R3(y) R3(z)

141

Hnh 6.5 Tin t ca lch y ca hnh 6.4 Nu trong lch S, cc thao tc ca cc giao tc khc nhau khng c thc hin xen k (ngha l cc thao tc ca mi giao tc xy ra lin tip), lch c gi l tun t (serial). V d 6.12: Xt ba giao tc ca v d 6.11. Lch sau y: S = {W2(x), W2(y), R2(z), C2, R1(x), W1(x),C1, R3(x), R3(y), R3(z), C3} l tun t bi v tt c cc thao tc ca T2 c thc hin trc tt c cc thao tc ca T1 v tt c thao tc ca T1 c thc hin trc tt c cc thao tc ca T3. Mt cch thng c dng biu th mi lin h th bc gia cc thc thi giao tc l T2 <s T1 <s T3 hoc T2 T1 T3 . V trc quan, hai lch S1 v S2 c nh ngha trn cng mt tp giao tc T c gi l tng ng nu vi mi cp thao tc tng tranh Oij v Okl (i k), mi khi Oij <1 Oki th Oij <2 Okl. y c gi l tng ng tng tranh (conflict equivalence) bi v n nh ngha s tng ng ca hai lch theo thc thi tng i ca cc thao tc tng tranh trong cc lch biu. V d 6.13: Chng ta xt li ba giao tc ca v d 6.11. Lch S di y c nh ngha trn chng l tng ng tng tranh vi S ca V d 3: S= {W2(x), R1(x), W1(x), C1, R3(x), W2(y), R3(y), R2(z), C2, R3(z), C3} Mt lch S c gi l kh tun t (serializable) nu v ch nu c tng ng tng tranh vi mt lch tun t.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

142

Ch rng tnh kh tun t ch tng ng vi tnh nht qun 3 c nh ngha trong phn 6.2.2. Tnh kh tun t c nh ngha nh th cng c gi l kh tun t theo tng tranh bi v n c nh ngha theo s tng ng tng tranh. V d 6.14: Lch S trong v d 6.13 l kh tun t bi v n tng ng vi lch tun t S ca v d 3. Cng ch rng vn khi thc hin mt cch khng kim sot cc giao tc T1 v T2 l chng c th sinh ra mt lch bt kh tun t. By gi khi nh ngha mt cch hnh thc tnh kh tun t, chng ta c th ch ra rng chc nng c bn ca b phn iu khin ng thi l to ra mt lch kh tun t thc hin cc giao tc ang ch i. L thuyt kh tun t c th m rng cho cc CSDL phn tn khng nhn bn (hoc phn hoch). Lch thc thi giao tc ti mi v tr c gi l lch cc b (local schedule). Nu CSDL khng c nhn bn v mi lch cc b u kh tun t th hp ca chng (c gi l lch ton cc) cng kh tun t, vi iu kin l cc th t tun t ho cc b u ging nhau. Tuy nhin trong cc CSDL phn tn c nhn bn, m rng l thuyt kh tun t i hi phi cn trng. C th l cc lch cc b kh tun t nhng tnh nht qun tng h ca CSDL vn b tn hi. V d 6.15: Chng ta s a ra mt v d rt n gin nhm minh ho cho iu ny. Xt hai v tr v mt mc d liu (x) hin din c hai ti c hai ni. Xt giao tc sau: T1 : Read(x) x x + 5 Write(x) Commit T2 : Read(x) x x + 5 Write(x) Commit

R rng c hai giao tc u phi thc hin c hai ni. Xt cc lch c th c to ra ti hai v tr : S1 = {R1(x), W1(x), C1, R2(x), W2(x), C2} S2 = {R2(x), W2(x), C2, R1(x), W1(x), C1}

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

143

Tnh nht qun tng h i hi rng tt c cc gi tr ca mi mc d liu nhn bn u phi nh nhau. Cc lch c th duy tr c tnh nht qun tng h c gi l kh tun t mt bn (one-copy serializable). V trc quan, lch ton cc kh tun t mt bn phi tha mn nhng iu kin sau: Mi lch cc b u phi kh tun t. Hai thao tc tng tranh phi c cng th t tng i trong tt c cc lch cc b ni m chng cng xut hin. iu kin th hai ch nhm bo m rng th t tun t ha u nh nhau ti tt c mi v tr c cc giao tc tng tranh cng thc hin. Cn nh rng cc thut ton iu khin ng thi bo m c tnh kh tun t bng cch ng b ha cc truy xut tng tranh n CSDL. Trong cc CSDL nhn bn, nhim v bo m tnh kh tun t mt bn thng l trch nhim ca nghi thc iu khin bn sao (replica control protocol). Chng ta hy gi s l tn ti mt mc d liu x vi cc bn sao x1,x2,, xn. Chng ta s xem nh x l mt mc d liu logic v mi bn sao l mt mc d liu vt l. Nu tnh v hnh nhn bn c cung cp, cc giao tc ca ngi s dng s a ra cc thao tc c v ghi trn mc d liu x. Nghi thc iu khin bn sao chu trch nhim nh x mi thao tc c trn mc d liu logic x [Read(x)] thnh thao tc c trn mt trong nhng bn sao vt l xj ca x [Read(xj)]. Ngc li, mi thao tc ghi trn mc logic x c nh x thnh mt tp thao tc ghi trn mt tp con (c th l tp con thc s) ca cc bn sao vt l x. Bt k nh x chuyn n ton b tp ca cc bn sao hay ch n mt tp con th n vn l c s phn loi cc thut ton iu khin bn sao. Trong chng ny v phn ln cun sch, chng ta s xt cc nghi thc iu khin bn sao nh x mt thao tc c trn mt mc logic n mt bn sao ca n nhng li nh x thao tc ghi thnh tp cc thao tc ghi trn tt c cc bn sao vt l. Nghi thc ny thng c gi l nghi thc c mt/ghi tt c (read-one/write-all protocol, ROWA). Mt nhc im ca nghi thc ROWA l n lm gim kh dng ca CSDL, khi c s c bi v giao tc c th khng hon tt c tr khi n phn nh tc dng ca tt c cc thao tc ghi trn cc bn sao.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

144

V th c mt s thut ton c gng duy tr tnh nht qun tng h m khng s dng n nghi thc ROWA. Chng u da trn mt tin l chng ta vn c th tip tc tin hnh mt thao tc, min l thao tc ny c th c xp lch ti mt tp con cc v tr chim hn phn na cc v tr c lu cc bn sao hoc l tt c cc v tr c th n c (ngha l cn dng c). Vn c nhng nghi thc khc thc hin cc cp nht trn mt bn chnh c chn ra ca mc d liu nhn bn ri lan truyn cc cp nht ny cho nhng bn sao khc vo thi im thch hp. 6.4.2 Phn loi cc c ch iu khin ng thi C mt s cch phn loi cc phng php iu khin ng thi. Mt tiu chun hin nhin l ch phn tn CSDL. Mt s thut ton c xut i hi c mt CSDL nhn bn hon ton, cn mt s khc c th hot tc trn cc CSDL phn hoch hoc nhn bn mt phn. Cc thut ton iu khin ng thi cng c th c phn loi theo topo mng, chng hn nh mt mng con phi c kh nng pht tn hoc cc thut ton hot ng trn cc mng hnh sao hoc cc mng kt vng. Tuy nhin tiu chun phn loi thng dng nht l theo nguyn thu ng b ha (synchronization primitive). S phn chia tng ng a cc thut ton iu khin ng thi vo hai lp: nhng thut ton da trn cc truy xut c quyn n d liu dng chung (kha cht) v nhng thut ton c gng sp th t hin giao tc theo mt tp qui tc (nghi thc). Tuy nhin cc nguyn thy ny u c th dng c dng trong cc thut ton vi hai quan im khc nhau: quan im bi quan (pessimistic view) cho rng c nhiu giao tc s tng tranh vi nhau, cn quan im lc quan (optimistic view) cho rng khng c qu nhiu giao tc tng tranh vi nhau. V vy chng ta s xp cc c th iu khin ng thi thnh hai nhm ln: cc phng php iu khin ng thi lc quan v cc phng php iu khin ng thi bi quan. Cc thut ton bi quan ng b ha vic thc hin ng thi ca cc giao tc trc khi thc hin chng, trong khi cc thut ton lc quan vic ng b ha cc giao tc cho n khi chng kt thc. Nhm lc quan gm c cc thut ton da theo kha cht (locking-based algorithm), cc thut ton da theo th t giao tc v cc thut ton lai (hybrid algorithm). Tng t, nhm lc quan cng c th c phn loi thnh cc thut ton da theo kha v cc thut ton theo th t thi gian. Phn loi ny c trnh by trong hnh 6.6.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

145

Thut ton K ng thi

Bi quan Kha cht Thi du Lai

Lc quan Kha cht Thi du

Tp trung Bn chnh

C bn a bn

Phn tn

Bo ton Hnh 6.6 Phn loi cc thut ton iu khin ng thi

Trong cch tip cn dng kho cht, vic ng b ha giao tc c c bng cch s dng cc kho cht vt l hoc logic trn mt phn CSDL. Kch thc ca cc phn ny (thng c gi l mn kha, locking granularity) l mt vn quan trng. Tuy nhin trong lc ny chng ta s b qua n v xem kch thc c chn l mt n v kha (lock unit). Lp c ch ny c chia nh hn na ty theo v tr thc hin cc hot ng qun l kha: Trong li kha tp quyn, mt trong cc v tr ca mng c ch nh lm v tr chnh, lu tr cc bng kha cho ton b CSDL v chu trch nhim trao kha cho cc giao dch. Theo li kha bn chnh th ngc li, mt trong cc bn sao (nu c nhiu bn) ca mi n v kha c ch nh lm bn chnh (primary copy), v chnh l bn s b kha khi giao tc truy xut n n v . V d nu n v kha x c nhn bn ti cc v tr 1,2, v 3, mt trong nhng v tr ny (chng hn 1) c chn lm v tr chnh cho x. Tt c mi giao tc mun truy xut x s nhn c mt kha ca chng ti v tr 1 trc khi chng c th truy xut c mt bn sao ca x. Nu CSDL khng c nhn bn

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

146

(ngha l mi n v kha ch c mt bn duy nht), cc c ch kha bn chnh s phn phi trch nhim qun l kha cho mt s v tr. Theo li kha phi tp trung, nhim v qun l kha l ca tt c cc v tr trong mng. Trong trng hp ny, thc hin mt giao tc c s tham gia v iu phi ca cc b xp lch ti nhiu v tr. Mi b xp lch cc b chu trch nhim v cc n v kha nm cc b ti v tr . Trong v d trn, cc thc th mun truy xut x phi nhn c kha ti tt c ba v tr. Lp c ch theo th t thi du (timestamp ordering, vit tt l TO) phi t chc th t thc hin ca cc giao tc nhm duy tr c tnh nht qun ln tng h gia cc v tr (lin nht qun). Vic xp th t ny c duy tr bng cch gn thi du cho c giao tc ln mc d liu c lu trong CSDL. Nhng thut ton ny c th thuc loi c bn (basic TO), a phin bn (multiversion TO), hoc bo ton (conservative TO). Chng ta cn ch ra rng mt s thut ton da theo kha cng c th dng thi du, ch yu nhm ci thin hiu qu v mc hot ng ng thi. Chng ta gi lp thut ton ny l thut ton lai. Chng ta s khng tho lun v chng trong chng ny bi v chng cha h c ci t trong cc h qun tr CSDL phn tn thng mi v cc h th nghim. 6.4.3 Cc thut ton iu khin ng thi bng kha cht tng chnh ca vic iu khin ng thi bng kha cht l bo m d liu dng chung cho cc thao tc tng tranh ch c truy xut mi ln mt giao dch. iu ny c thc hin bng cch lin kt mt kha cht (lock) vi mi n v kha. Kha ny c giao tc t ra trc khi n truy xut v c iu chnh li vo lc n ht s dng. Hin nhin l mt n v kha khng th truy xut c nu b kha bi mt giao tc khc. V vy yu cu kha ca mt giao tc ch c trao nu kha i km hin khng b mt giao tc khc gi. Bi v chng ta quan tm n vic ng ha cc thao tc tng tranh ca cc giao tc tng tranh nn c hai loi kha cht (thng c gi l th thc kha, lock mode) c km vi mi n v kha: kha c (real lock, rl) v kha ghi (write lock, wl). Mt giao tc Ti ang mun c mt mc d liu c cha trong n v kha x s nhn c

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

147

mt kha c trn x [k hiu l rli(x)] v cng tng t vi cc thao tc ghi. Thng th chng ta hay ni v tnh tng thch (compatibility) ca cc th thc kha cht. Hai th thc kha l tng thch nu hai giao tc truy xut n cng mt mc d liu c th nhn c kha trn mc d liu cng mt lc. Nh Hnh 6.7 cho thy, cc kha c l tng thch vi nhau, cn cc kha c-ghi hoc ghi-ghi th khng. V vy hai giao tc vn c th ng thi c cng mt mc. rli(x) rlj(x) tng thch wli(x) khng tng thch khng tng thch

wlj(x) khng tng thch

Hnh 6.7 Ma trn tng thch ca cc th thc kha Cc DBMS phn tn khng ch phi qun l cc kha m cn phi c trch nhim x l kha dm cho giao dch. Ni cch khc, ngi s dng khng cn phi xc nh khi no phi kha d liu; DBMS phn tn s lo liu iu mi khi cc giao tc a ra yu cu c hoc ghi. Trong cc h thng dng kha cht, b xp lch (scheduler) (xem hnh 6.4) chnh l b qun l kha (lock manager, LM). B qun l giao tc s chuyn cho b qun l kha cc thao tc CSDL (c hoc ghi) v cc thng tin km theo (nh mc d liu cn truy xut, nh danh ca giao tc a ra yu cu). Sau b qun l kha s kim tra xem n v kha c cha mc d liu b kha hay cha. Nu kha, v nu th thc kha khng tng thch vi th thc ca giao tc ang yu cu, thao tc s b hon li. Ngc li, kha s c t vi th thc mong mun v thao tc ny c chuyn cho b x l d liu truy xut CSDL thc s. Sau b qun l giao tc c thng tin v cc kt qu thc hin. Vic kt thc giao tc s gii phng cc kha ca n v lm khi hot mt giao tc khc ang i truy xut mc d liu ny. Thut ton kha cht c bn nm trong thut ton 6.1. Hnh 6.8 a ra cc khai bo kiu v cc nh ngha th tc c dng trong cc thut ton ca chng ny. Ch trong thut ton 6.1, chng ta khng quan tm n cch thc thi cc thao tc y thc v hy b giao dch.

C s d liu phn tn - 2010

Chng 6
Declare-type

Giao tc phn tn

148

Operation: mt trong s Begin-Transaction, Read, Write, Abort, hoc Commit DataItem: mt mc d liu trong CSDL phn tn TransactionId: mt gi tr duy nht c gn cho mi giao dch. DataVal: mt gi tr c kiu d liu c bn (ngha l s nguyn, s thc, vn vn) SiteId: mt nh danh duy nht cho v tr Dbop: mt b ba gm opn: Operation data: DataItem tid: TransactionId Dpmsg: mt b ba gm opn: Operation
tid: TransactionId

{mt php ton trn CSDL ca ng dng}

result: DataVal Scmsg: mt b ba gm opn: Operation


tid: TransactionId

result: DataVal
Transaction mt b hai gm tid: TransactionId

body: thn giao tc nh nh ngha trong Chng 10


Message mt chui k t cn c truyn i

OpSet: mt tp cc Dbop SiteSet: mt tp cc SiteId WAIT(msg: Message) begin {i cho n khi c mt thng bo n}

C s d liu phn tn - 2010

Chng 6
end

Giao tc phn tn

149

Hnh 6.8 Cc nh ngha chun b cho cc thut ton sp ti

Thut ton 6 .1. B qun l kha c bn (Basic LM)

Declare-var
msg: Message dop: Dbop Op: Operation x: DataItem T: TransactionId pm: Dpmsg res: DataVal SOP: OpSet Begin repeat WAIT(msg) case of msg Dbop: // php ton begin

Op dop.opn
x dop.data T dop.tid case of Op

Begin_Transaction: begin gi dop n b x l d liu end


Read or Write:

begin
tm n v kha lu sao cho x lu if lu cha b kha or th thc.kha ca lu tng thch vi Op then

begin t kha trn lu th thc thch hp gi dop n b x l d liu

C s d liu phn tn - 2010

Chng 6
end

Giao tc phn tn

150

else a dop vo mt hng i ca lu

end-if end Abort or Commit: begin gi dop n b x l d liu end end-case Dpmsg: // Thng bo t b x l d liu begin Op pm.opn res pm.result T pm.tid tm n v kha lu sao cho x lu, gii phng kha trn lu do T gi if khng cn kha no trn lu and c nhng thao tc ang i kha lu trong hng i then begin SOP thao tc u tin trong hng i SOP SOP {OO l mt thao tc trn hng i c th kha lu th thc kha tng thch vi cc thao tc hin hnh trong SOP} t cc kha trn lu cho cc thao tc trong SOP for tt c cc php ton trong SOP do gi mi thao tc n b x l d liu end-for end-if end end-case until forever end. (Basic LM) Khng may l, thut ton kha c cho trong Thut ton 6.1 khng ng b ha chnh xc cc thc thi giao dch. iu ny l do khi to ra cc lch kh tun t, cc thao {tr li ca b x l d liu} {yu cu m kho}

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

151

tc kha v gii phng kha cng cn phi c iu phi. Chng ta minh ha n bng v d sau. V d 6.16 Xt hai giao tc sau y: x = 50, y = 20 T1, T2 x = 102, y = 38 T2, T1 x = 101, y = 39 S x = 102, y = 39 T2 : Read(x) xx*2 Read(y) Yy*2 Write(y) Commit

T1 :

Read(x) xx+1 Read(y) Yy1 Write(y) Commit

Di y l mt lch hp l c b qun l kha to ra khi s dng Thut ton 6.1: S = {wl1(x), R1(x), W1(x), lr1(x), wl2(x), R2(x), W2(x), lr2(x), wl2(y),

R2(y), W2(y), lr2(y), C2, wl1(y), R1(y), W1(y), lr1(y), C1} y, lri(z) biu th thao tc gii phng kha trn z ang c Ti gi. Ch rng S khng kh tun t. Chng hn nu trc lc thc hin cc giao tc ny, gi tr ca x v y ln lt l 50 v 20, chng ta hy vng rng gi tr sau khi thc hin tng ng l 102 v 38 nu T1 thc hin trc T2, hoc l 101 v 39 nu T2 thc hin trc T1. Tuy nhin kt qu thc hin S cho ra gi tr ca x v y ln lt l 102 v 39. R rng S khng kh tun t. Vn ca lch S trong v d 7 l, thut ton kha cht gii phng cc kha c mt giao tc gi (chng hn T1) ngay khi lnh i km (c hoc ghi) c thc hin, v n v kha (chng hn x) khng cn truy xut na. Tuy nhin bn thn giao tc ang kha nhng mc khc (chng hn Y) sau khi n gii phng kha trn x. D rng iu ny dng nh c li v lm tng kh nng hot ng ng thi, n cho php cc giao tc an xen vi nhau, lm mt i tnh bit lp v tnh nguyn t tng th. y chnh l lp lun ca phng php kha cht hai pha (two-phase locking, 2PL)

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

152

Qui tc kha hai pha ch n gin khng nh rng khng c giao tc no yu cu kha sau khi n gii phng mt trong cc kha ca n. iu ni rng mt giao tc khng c gii phng kha cho n khi n bo m rng khng yu cu thm kha na. Cc thut ton 2PL thc hin cc giao tc qua hai pha. Mi giao tc c mt pha tng trng (growing phase), trong pha ny n nhn cc kha truy xut cc mc d liu, v c mt pha thu hi (shrinking phase), l giai on n gii phng cc kha (Hnh 6.9). im kha (lockpoint) l thi im giao tc nhn c tt c cc kha nhng cha bt u gii phng bt k kha no. V th im kha xc nh cui pha tng trng v khi im pha thu hi ca mt giao dch. Mt nh l ni ting [Eswaran et al., 1976] khng nh rng mi lch to bi mt thut ton iu khin ng thi tun theo qui tc 2PL u kh tun t.

Nhn kha
Gii phng kha

BT U

IM KHA

KT THC

Thi gian giao dch

Hnh 6.9 Biu kha 2PL Hnh 6.9 ch ra rng b qun l kha gii phng cc kha ngay sau khi hon tt vic truy xut. iu ny cho php cc giao tc ang i kha tip tc tin hnh v nhn kha, do vy lm tng hot ng ng thi. Tuy nhin vic ci t gp nhiu kh khn bi v b qun l kha phi bit rng giao tc nhn tt c mi kha v s khng cn kha mt mc no na. B qun l kha cng phi bit rng giao tc khng cn cn truy xut na mc d liu na, v th kha c th c gii phng. Cui cng nu giao tc b hy b sau khi gii phng mt kha, n c th lm hy b lun c giao tc truy xut cc mc m kha. Hin tng ny c gi l hy b dy chuyn (cascading abort). V nhng kh khn , phn ln cc b xp lch 2PL u ci t mt dng kht khe hn c tn l kha cht hai pha nghim ngt (strict two-phase locking) trong n gii phng

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

153

ton b cc kha vo lc giao tc kt thc (y thc hoc hy b). Biu kha loi ny c trnh by trong Hnh 6.10

Nhn kha
Gii phng kha

BT U KT THC Thi gian s dngmc d liu

Thi gian giao dch

Hnh 6.10 Biu kha hai pha nghim ngt B qun l kha 2PL nghim ngt ch sa li mt t trong thut ton 6.1. Thc s ch cn sa i phn x l cc hi p t b x l d liu nhm bo m rng cc kha ch c gii phng nu thao tc l y thc hoc hy b. cho y , chng ti trnh by ton b thut ton 2PL nghim ngt trong thut ton 6.2. Thut ton qun l giao tc xp lch theo 2PL c cho trong Thut ton 6.3. Thut ton 6.2 S2PL-LM declare-var msg: Message dop: Dbop Op: Operation x: DataItem T: TransactionId pm: Dpmsg res: DataVal SOP: OpSet begin repeat WAIT(msg)

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
Case of msg Dbop:

154

Begin Op dop.opn x dop. Data Tdop.tid case of Op Begin_transaction: begin gi dop cho b x l d liu end Read or Write begin tm n v kha lu sao cho x lu if lu cha kha or th thc kha ca lu tng thch vi Op then begin t kha trn lu th thc thch hp gi dop n b x l d liu end else t dop vo mt hng i cho lu end-if end Abort or Commit: begin gi dop n b x l d liu end end-case Dpmsg: begin Op pm.opn res pm.result Tpm.tid

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
if Op = Abort or Op = Commit then begin for mi n v kha ly b kha bi T do

155

begin gii phng kha trn lu do T gi if khng cn kha no trn lu and c cc thao tc ang i trong hng i cho lu then begin SOP thao tc u tin trn hng i SOP SOP {OO l mt thao tc trn hng i c th kha lu mt th thc tng thch vi thao tc hin ti trong SOP} t cc kha trn lu cho cc thao tc trong SOP for tt c cc thao tc trong SOP do gi mi thao tc n b x l d liu end-for end-if end-for end-if end end-case until forever end. {S2PL-LM} Thut ton 6.3 B qun l giao tc 2PL (2PL-TM) Declare-var msg: Messager Op: Operation x: DataItem T: TransactionId O: Dbop sm: Scmsg res: DataVal SOP: OpSet begin

C s d liu phn tn - 2010

Chng 6
repeat

Giao tc phn tn

156

WAIT(msg) case of msg Dbop: begin gi O n LM end Scmsg: begin Op sm.opn res sm.result T sm.tid case of Op Read: begin tr res v cho ng dng ca ngi s dng (ngha l giao dch) end Write: begin thng tin cho ng dng v vic hon tt hnh ng ghi tr res v cho ng dng end Commit: begin hy vng lm vic ca T
thng tin cho ng dng bit v vic hon tt thnh cng cc giao tc T

end Abort: begin thng tin cho ng dng bit v vic hon tt hy b giao tc T end

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn
end-case end end-case until forever

157

end. {2PL-TM} Cn ch rng mc d thut ton 2PL cng ch tnh kh tun t tng tranh, n khng cho php tt c mi lch c tnh kh tun t tng tranh. Xt th lch sau y: S = w1(x)r2(x)r3(y)w1(y) S khng c thut ton 2PL cho php dng v T1 cn thu mt kha ghi trn y sau khi n gii phng kha ghi ca n trn x. Tuy nhin y l lch kh tun t theo th t T3 T1 T2. Th t kha c th c tn dng thit k cc thut ton kha cho php nhng lch thuc loi ny. tng chnh nm ch trc tin cn nhn xt rng trong l thuyt kh tun t, th t tun t ha cc thao tc tng tranh cng quan trng nh vic pht hin tng tranh v iu ny c th c tn dng khi nh ngha cc th thc kha. H qu l ngoi cc kha c (dng chung, shared) v kha ghi (c quyn, exclusive), chng ta c th nh ngha mt th thc kha th ba: dng chung c th t (ordered shared). Kha dng chung c th t ca mt i tng x bi cc giao tc Ti v Tj mang ngha nh sau: cho mt lch S c cc kha dng chung c th t gia cc thao tc o i Ti v p Tj, nu Ti thu c kha o trc khi Tj thu c kha p th o c thc thi trc p. Xt bng tng thch gia cc kha c v ghi cho trong hnh 6.7. Nu c thm kha dng chung c th t th c tm bin th ca bng ny. Hnh 6.7 ch l mt trong s v hnh 6.9 trnh by thm hai bin th na. v d trong hnh 6.11(a) c mt mi lin h dng chung c th t gia rlj(x) v wli(x) [k hiu l rlj(x) wli(x)] ch ra rng Ti c th thu c mt kha ghi trn x trong khi Tj gi mt kha c trn x vi iu kin c mt mi lin h dng chung c th t t rlj(x) n wli(x). Tm bng tng thch c th c so snh vi nhau ng vi tnh cht c php ca chng (ngha l ng vi cc lch sinh ra nh chng), to

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

158

ra mt dn cc bng sao cho bng trong hnh 6.7 l hn ch nht v bng trong Hnh 6.11(b) l t do nht.

rli(x)

wli(x) khng tng thch khng tng thch rlj(x) wlj(x)

rli(x) tng thch dng chung c th t (b)

wli(x) dng chung c th t dng chung c th t

rlj(x)

tng thch

wlj(x) dng chung c th t (a)

Hnh 6.11 Bng tng thch c th thc kha dng chung c th t Trong v d trn, kha ghi dnh cho Ti c gi l ang c gi (on hold) v n thu c sau khi Tj thu c kha c trn x. Nghi thc kha cng ch mt ma trn tng thch c cha cc th thc kha dng chung c th t hon ton ging vi 2PL, ngoi tr l giao tc khng gii phng bt k kha no khi mt trong cc kha ca chng cn ang c gi. Bng khng s xy ra cc th t tun t ha ln qun. 6.4.4 Nghi thc 2PL tp quyn Thut ton 2PL c tho lun trong phn trc c th d dng c m rng cho mi trng phn tn (nhn bn hoc phn hoch). Mt cch lm iu ny l trao trch nhim qun l kha cho mt v tr duy nht, ngha l ch c mt v tr l c b qun l kha. Cc b qun l giao tc cc v tr khc phi giao tip vi n ch khng phi vi b qun l kha ring ca chng. Cch tip cn ny c gi l thut ton 2PL v tr chnh (primary site). Truyn giao gia cc v tr hip tc khi thc hin mt giao tc tun theo thut ton 2PL tp quyn (centralized 2PL hay C2PL) c trnh by trong hnh 6.12. Truyn giao ny xy ra gia b qun l giao tc ti v tr khi u giao tc (c gi l TM iu phi), b qun l kha ti v tr trung tm, v cc b x l d liu ti cc v tr c tham gia. Cc v tr tham gia l nhng v tr c nhng thao tc xy ra. Th t cc thng bo cng c trnh by trong hnh .

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

159

Mt khc bit quan trng gia thut ton TM tp quyn v thut ton TM ca Thut ton 6.3 l TM phn tn phi ci t nghi thc iu khin bn sao nu CSDL c nhn bn. Thut ton C2PL-LM cng khc vi b qun l kha 2PL nghim ngt mt im. B qun l kha trung tm khng gi cc thao tc n cc b x l d liu tng ng; vic ny do TM iu phi thc hin. B x l d liu ti cc v tr tham gia TM iu phi Yu cu kha LM v tr trung tm

Hnh 6.12. Cu trc truyn giao ca 2PL tp quyn Thut ton qun l giao tc 2PL tp quyn (C2PL-TM) c trnh by trong Thut ton 6.4 v c a thm nhng thay i ny vo, cn thut ton qun l kha 2PL tp quyn (C2PL-LM) c trnh by trong Thut ton 6.5. Thut ton 6.4 B qun l giao tc 2PL tp quyn (C2PL-TM) Declare-var T: TransactionId Op: Operation x: DataItem msg: Message O: Dbop pm: Dpmsg res: DataVal S: SiteSet begin repeat

C s d liu phn tn - 2010

Chng 6
WAIT(msg) case of msg Dbop: begin OpO.opn x O.data TO.tid case of Op Begin_transaction: begin S end Read: begin

Giao tc phn tn

160

S S {v tr lu x v chi ph truy xut n x l nh nht} gi O cho b qun l kha trung tm end Write: begin SS {Six c lu ti Si } gi O cho b qun l kha trung tm end Abort or Commit begin gi O cho b qun l kha trung tm end end-case end Scmsg: begin if yu cu kha c trao then gi O cho cc b x l d liu trong S {yu cu kha c trao khi cc kha c gii phng}

C s d liu phn tn - 2010

Chng 6
else

Giao tc phn tn

161

thng tin cho ngi dng bit v vic kt thc giao dch end-if end Dpmsg: begin Op pm.Opn res pm.result T pm.tid case of Op Read: begin tr res v cho ng dng ngi s dng (ngha l giao dch) end Write: begin thng tin cho ng dng bit v vic hon tt thao tc ghi. end Commit: begin if tt c cc thnh vin u nhn c thng bo y thc then begin thng tin cho ng dng bit v vic hon tt thnh cng giao tc gi pm cho b qun l kha trung tm else {i cho n khi tt c u nhn c thng bo y thc} ghi nhn s kin thng bo y thc n cc v tr end-if end Abort: begin thng tin cho ng dng bit v vic hy b giao tc T gi pm n b qun l kha trung tm

C s d liu phn tn - 2010

Chng 6
end

Giao tc phn tn

162

end-case end end-case until forever end. {C2PL-TM} Thut ton 6.5 B qun l kha 2PL tp quyn (C2PL-LM) Declare-var msg: Message dop: SingleOp Op: Operation x: DataItem T: TransactionId SOP: OpSet begin repeat WAIT(msg) {Thng bo ch c th do TM iu phi gi n} Op dop.opn x dop.data T dop.tid case of Op Read or Write: begin tm n v kha lu cho x lu If lu cha kha or th thc kha ca ly tng thch vi Op then begin t kha trn lu th thc thch hp msg Kha c trao cho thao tc dop gi msg n TM iu phi ca T end else t Op vo mt hng i cho lu end-if

C s d liu phn tn - 2010

Chng 6
end Abort or Commit: begin

Giao tc phn tn

163

for mi n v kha lu b kha T do begin gii phng kha trn lu do T gi if cn nhng thao tc ang i lu trong hng i then begin SOP thao tc u tin (gi O) t hng i SOP SOP {OO l mt thao tc trn hng i c th kha lu th thc tng thch vi cc thao tc trong SOP} t cc kha trn lu cho cc thao tc trog SOP for tt c cc thao tc O trong SOP do begin msg Kha c trao cho thao tc O gi msg n tt c cc TM iu phi end-for end-if end-for msg Cc kha ca T gii phng gi msg n TM iu phi ca T end end-case until forever end. {C2PL-LM} Mt yu im hay gp ca cc thut ton C2PL l c th to ra mt im n tc quanh v tr trung tm. Hn na h thng s km thch ng ( kh tn thp) bi v s c hoc tnh trng bt kh truy n v tr trung tm c th dn n cc s c h thng. c nhng nghin cu ch ra rng im n tc thc s s hnh thnh khi tc giao tc tng ln, nhng khng ng k nu tc giao tc thp. Th nhng ngi ta cng thy s suy gim hiu nng khi ti trng tng cao trong cc thut ton da trn kha cht.

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

164

6.4.5 Thut ton 2PL bn chnh Kha cht hai pha bn chnh l s m rng tm thng ca kha cht hai pha tp quyn vi n lc gii quyt cc vn v hiu nng c tho lun trn. V c bn, n ci t cc b qun l kha ti mt s v tr, trao trch nhim qun l kha trn mt tp n v kha cho mi b qun l. Sau b qun l giao tc s gi cc yu cu kha v m kha n cc b qun l kha chu trch nhim v n v kha . Thut ton s x l mt bn ca mi mc d liu nh bn chnh ca n. Chng ti khng trnh by chi tit thut ton 2PL bn chnh v nhng thay i so vi thut ton 2PL tp quyn rt t. V c bn, thay i duy nht l cc ni t bn chnh phi c xc nh cho mi mc trc khi gi yu cu kha hoc m kha n b qun l kha ti v tr . Thut ton 2PL bn chnh c xut cho phin bn phn tn th nghim ca h INGRES. D rng n i hi phi c mt th mc phc tp ti mi v tr, n gim c ti trng cho v tr trung tm m khng phi trao i qu nhiu gia cc b qun l giao tc v cc b qun l kha. V mt ngha no , y l mt bc trung gian gia thut ton 2PL tp quyn c tho lun trong phn trc v thut ton 2PL phn quyn s c tho lun trong phn k tip. 6.4.6 Thut ton 2PL phn quyn 2PL phn quyn (distributed 2PL hay D2PL) mong mun c sn cc b qun l kha ti mi v tr. Nu CSDL khng nhn bn, thut ton 2PL phn quyn s suy bin thnh thut ton 2PL bn chnh. Nu CSDL c nhn bn, giao tc s ci t nghi thc iu khin bn sao ROWA. Truyn giao gia cc v tr thc hin mt giao tc theo nghi thc 2PL phn quyn c trnh by trong hnh 6.13. Ch rng hnh 6.13 khng trnh by vic p dng qui tc ROWA. Thut ton qun l giao tc 2PL phn quyn tng t nh 2PL-TM nhng c hai sa i chnh. Cc thng bo gi n b qun l kha ca v tr trung tm trong C2PLTM s c gi n b qun l kha ca tt c cc v tr tham gia trong D2PL-TM. Khc bit th hai l cc thao tc khng do TM iu phi chuyn n cc b x l d liu

C s d liu phn tn - 2010

Chng 6

Giao tc phn tn

165

nhng do cc b qun l kha tham gia chuyn i. Ngha l TM iu phi khng ch thng bo yu cu kha c trao. Mt im khc v hnh 6.13 l, cc b x l d liu s gi thng bo kt thc thao tc n TM iu phi. Chn la khc l mi b x l d liu s gi thng bo cho b qun l kha ca ring n ri b qun l kha s gii phng kha v thng tin cho TM iu phi. Chng ta gii quyt nh m t theo cch th nht v n dng mt thut ton qun l kha ging vi b qun l kha 2PL nghim ngt c tho lun v n lm cho vic tho lun cc nghi thc y thc n gin hn. Do nhng tng ng ny, chng ta khng a ra cc thut ton TM v LM phn quyn y. Cc thut ton 2PL phn quyn c dng trong System R*. Cc b xp lch TM iu phi c tham gia Cc DM c tham gia

Hnh 6.13 Cu trc truyn giao ca 2PL phn quyn

C s d liu phn tn - 2010

TI LIU THAM KHO

166

CHNG 7 CC H C S
MC TIU

LI U

Chng ny ch mang tnh cht gii thiu cc h c s d liu c quan h vi c s d liu phn tn nh h c s d liu song song v h c s d liu mobile. 7.1 C s d liu song song 7.1.1 Gii thiu Vn ca h c s d liu quan h tp trung (n x l) : Khi lng d liu cng ngy cng ln nn i hi khng gian a v b nh chnh phi ln ; Vic xut /nhp d liu b tht nt c chai (hoc b nh truy cp b tht nt c chai) : do tc (a) << tc (RAM) << tc (b vi x l) : D bo : Tc ca b vi x l tng trng: 50% / nm Dung lng DRAM tng trng: 4 ln mi ba nm Dung lng a tng trng : 2 ln trong mi nm qua. T ta nhn thy cc h thng nhp/xut d liu ca my tnh lm nh hng xu n tc x l do b nghn c chai. Nn gii php t ra nhm tng tc x l l tm cch tng bng thong, phn tn d liu v truy xut d liu xong xong. iu ny th h qun tr c s d liu n x l khng kh nng p ng do cn n h c s d liu phn tn. H thng c s d liu song song tm cch ci thin hiu sut thng qua vic song song ha ca cc s thc thi ca cc php ton nh ti d liu, xy dng cc ch mc v nh gi cc cu truy vn. Mc d d liu c th c lu tr bng cc phn tn, s phn tn d liu ch c quy nh bi cc tnh cht hiu sut truy xut. C s d liu song song ci thin tc x l v vo/ra bng cch s dng nhiu CPU v a song song. Cc h qun tr c s d liu tp trung v client-server khng mnh x l cc ng dng

C s d liu phn tn - 2010

TI LIU THAM KHO

167

nh vy. Trong x l song song, nhiu hot ng c thc hin ng thi, tri vi x l tun t, trong cc bc tnh ton c thc hin tun t. 7.1.2 Kin trc h c s d liu song song Kin trc h c s d liu phn tn c th tm chia thnh ba loi: * Kin trc chia s b nh : nhiu b x l chia s khng gian b nh chnh, cng nh b lu tr bn vng (v d cc a cng) (hnh 7.1).

Hnh 7.1 Kin trc chia s b nh ca h c s d liu song song * Kin trc chia s a : ni mi nt c b nh ring ca chnh n, nhng tt c cc nt chia s b lu tr bn vng, thng l mt b lu tr mng (hnh 7.2). Trong thc t, mi nt thng cng c nhiu b x l.

Hnh 7.2 Kin trc chia s a cng ca h c s d liu song song

C s d liu phn tn - 2010

TI LIU THAM KHO

168

* Kin trc khng chia s: trong mi nt c lu tr ring ca mnh cng nh b nh chnh (hnh 7.3).

Hnh 7.3 Kin trc khng chia s ti nguyn ca h c s d liu song song 7.1.3 Li ch ca h c s d liu song song Ci thin Thi gian p ng: n c th x l mt cc truy vn v giao dch song song vi nhau. Ci thin hiu sut C th x l cc tc v trong mt truy vn hay giao dch song song.

7.2 H c s d liu mobile


7.2.1 Gii thiu Tm kim thng tin nh nhc MP3 i vi ngi dng vi cc thit b di ng nh in thoi di ng, PDA (Personal Digital Assistant) tr thnh ph bin trong i sng hot ng hng ngy. H thng ch dn ng trong xe t hin nay l mt ph kin chun nh h thng m nhc. Nhng mn chi kh hu ch v thn thin bi v h c th ly thng tin mong mun t c s d liu t bt c u thng qua cc knh khng dy. Tuy nhin, n c mt hn ch ln l cc lung thng tin trong cc h thng ny ch i t cc my ch n ngi dng. iu ny hn ch khng cho php ngi dng truy vn hoc thao tc c s d liu c th c nm bt c ni no trn th gii. Do , ngi dng ch c s dng c nhng g m my ch gi cho h, c th khng phi lun lun c chnh xc hoc cp nht. Trong thut ng c s d liu h thng ny khng c kh nng qun l hot ng giao tc.

C s d liu phn tn - 2010

TI LIU THAM KHO

169

Cc nh nghin cu, v cc t chc thng mi c chung mt mong mun xy dng mt h thng qun l thng tin trn mt nn tng di ng m c kh nng cung cp y chc nng qun l giao dch v chc nng ca h c s d liu t bt c ni no v bt c lc no. Hnh 7.4 minh ha v mt khng gian kt ni thng tin y vi mi ngi ngy hm nay. Mi i tng ca th gii thc vi mt s chc nng c kt ni i tng khc thng qua lin kt khng dy. V d, mt ngn hng hoc mt ngi c kt ni vi hi ngh, xe but vi cc lin kt khng dy hai chiu. Do bt c lc no mt ngi hoc mt ngn hng c th c thng tin y v tt c cc i tng khc. Lin kt khng dy nh vy tr nn thit yu i vi mt x hi di ng v nng ng cao. Hy xem xt trng hp ca mt bc cha m i lm vic cn cc con ci ca h i hc trong cc trng hc khc nhau. Mi bc cha m trong gia nh mun c th nm bt c tnh hnh con em ca h tip cn vi h ti thi im cn thit. Tng t nh vy, ch tch ca mt cng ty mun c thng tin y v tt c cc hot ng ca cc cng ty ca mnh qun l n mt cch hiu qu.

Hnh 7.4 Khng gian thng tin c kt ni y 7.2.2 nh ngha h c s d liu mobile Mt h c s d liu mobile l mt h thng c cu trc v chc nng nh sau :

C s d liu phn tn - 2010

TI LIU THAM KHO


H thng phn tn vi kt ni in thoi di ng, y chc nng h c s d liu, hon thnh di ng trong khng gian, c xy dng trn nn tng PCS/ GSM , c kh nng giao tip khng dy v c dy.

170

Trong khi nim v h c s d liu mobile trn chng ta cn lm r mt s khi nim sau : Kt ni di ng l g ? Mt ch trong mt my khch (thit b di ng) hoc mt my ch c th thit lp lin lc vi nhau bt c khi no cn thit (khng lin tc). Kt ni lin tc l mt trng hp c bit ca kt ni di ng. Kt ni khng lin tc (intermittent) l g ? Mt nt trong ch c nhng my khch (thit b di ng) c th thit lp cc thng tin lin lc bt c khi no cn thit vi my ch nhng my ch khng th lm nh vy. 7.2.3 Cc kiu di ng Mt framework di ng bao gm cc thnh phn c dy v khng dy v ngi s dng. Thnh phn khng dy l cc thit b di ng u cui v s di ng c nhn loi tr mt s hn ch khng gian v thi gian ca vic x l d liu. Thit b u cui di ng: cho php mt n v in thoi di ng (my tnh xch tay, in thoi di ng, PDA, v.v) truy cp n cc dch v mong mun t bt k v tr no, lc chuyn ng hoc tnh, khng phn bit ngi ang s dng thit b. V d mt in thoi di ng c th c s dng bi ch nhn ca n v n cng c th c vay bi ai khc s dng. Mt ngi v tr C s dng cc n v in thoi di ng giao tip vi ngi li xe v tr A. ng vn c th thit lp giao tip vi ngi li xe t mt v tr mi m khng phn bit ca s chuyn ng ca xe t A n B.

C s d liu phn tn - 2010

TI LIU THAM KHO

171

Tnh di ng c nhn: Trong mi trng di ng, thit b di ng u cui ca thit b u cui c h tr ngha l cng mt thit b u cui c th c s dng kt ni vi cc bn khc t bt c u bi bt k ngi s dng. Trong tnh di ng c nhn kh nng ny c cung cp cho mt con ngi. Nh vy, mt ngi dng c th s dng bt k thit b truyn thng cho vic thit lp giao tip vi bn kia. Vic ny yu cu mt chng trnh nhn dng xc minh ngi c nhu cu giao tip vi mnh. Hnh 7.5 minh ha khi nim v tnh di ng c nhn. Mt ngi v tr C giao tip vi xe ti a im A bng cch s dng PDA ca mnh, v t v tr D ng cng c th giao tip vi chic xe ti a im A bng cch s dng my tnh xch tay ca mnh. Hin nay, tnh di ng c nhn sn sng thng qua web. Mt ngi dng c th ng nhp vo cc trang web t cc my khc nhau t ti nhiu ni khc nhau v truy cp th in t ca mnh. H thng in thoi di ng m rng c s ny ngi dng c th s dng bt k thit b di ng truy cp c internet. Trong tnh di ng c nhn mi ngi phi c xc nh duy nht, v mt cch lm iu ny l thng qua mt m s duy nht.

Hnh 7.5 Tnh di ng c nhn 7.2.4 Kin trc h c s d liu mobile

Mt h thng c s d liu mobile (MDS) cung cp y c s d liu v chc nng truyn thng di ng. N cho php mt ngi s dng in thoi di ng giao dch t bt c ni no v bt c lc no v m bo tnh nht qun. Trong trng hp ca bt c loi s c li no (giao dch, h thng, v cc phng tin truyn thng), MDS m bo c s d liu c phc hi. Cc kin trc tham chiu c hin th trong hnh 7.6 cung cp cc tnh cht cn thit sau y.

C s d liu phn tn - 2010

TI LIU THAM KHO

172

PSTN DB DB HLR MSC BSC Fixed host Fixed host BS MU MU MU BS MU BS MU VLR MSC BSC

DBS DBS

Hnh 7.6 Kin trc ca h c s d liu mobile Tnh di ng a l: Khch hng c th di chuyn trong a l khng gian m khng nh hng n kh nng x l ca h v kt ni lin tc. Kt ni v hy kt ni: khch hng c th ngt kt ni v kt ni li vi bt k my ch bt k lc no. Kh nng x l d liu: Khch hng c mt s quyn trong khi cc my ch c nng lc x l c s d liu. Truyn thng khng dy: Mt khch hng c th giao tip vi my ch v vi bt k khch hng khc thng qua mt mng khng dy. Tnh trong sut: Vic x l d liu c thc hin thng qua kin trc di ng, cc chc nng x l d liu ca khch hng khng nh hng n cc trm truyn thng. Kh nng m rng: Bt c lc no, khch hng c th c vo, hoc mt khch hng hin ti c th c ra khi mng. MDS l mt h thng client/server a c s d liu phn tn da trn PCS hay GSM. C mt s khc bit trong kin trc GSM v PCS, tuy nhin, chng khng nh hng n MDS. Chc nng c s d liu c cung cp bi mt tp hp cc DBSs (my ch c s d liu) m khng nh hng n bt k kha cnh ca cc mng di ng chung. Cc thnh phn ca cc h thng ny trn thc t l cc my tnh chuyn dng chu trch

C s d liu phn tn - 2010

TI LIU THAM KHO

173

nhim kt ni ngi dng vi h thng. Cc kin trc tham kho ca MDS c m t trong cho cc my tnh c mc ch chung nh my tnh c nhn, my trm, PDA, di ng in thoi, v.v Trong MDS mt tp hp cc my tnh c mc ch chung c kt ni vi nhau thng qua mt mng tc cao. Cc my tnh c phn thnh host c nh host (Fixed Host FH) v cc trm c s (Base Station BS) hoc cc trm h tr in thoi di ng (Mobile Support Station MSS).Cc FH khng c trang b thu pht, do chng khng giao tip vi cc n v di ng. Mt hoc nhiu BS c kt ni vi mt trm iu khin (Base Station Control BSC) m iu phi cc hot ng ca cc BS bng cch s dng ca chng trnh phn mm c lu tr trong khi c iu khin bi cc MSC (Mobile Switching Center). S phi hp vi cc my ch c s d liu c kt hp trong BS. Nhng in thoi di ng c gi l host di ng (Mobile Host MH) hoc n v di ng (Mobile Unit MU). Cc BS c trang b thu pht v giao tip vi cc MU thng qua cc knh khng dy. Mi BS phc v mt t bo c kch thc ph thuc vo nng lng ca BS ca n. phi hp y cc chc nng ca h c s d liu, iu cn thit l kt ni my ch (DBSs) cha c s d liu vi PCS hay GSM. N c th c ci t (a) ti cc trm BS hoc (b) ti cc host HS. Tuy nhin, mt s vn vi cch ci t ny. Mt BS hoc FH l thit b chuyn mch, v chng c nhim v c th thc hin, m khng bao gm cc chc nng ca c s d liu. thm cc chc nng c s d liu, cu trc ton b ca mt BS (phn cng v phn mm) c th phi c sa i, l iu khng th chp nhn t quan im truyn thng di ng. Hn na, cch thit lp ny s khng module hoa c v cng khng c kh nng m rng. Hu qu l, bt k mt thay i no trong cc thnh phn c s d liu s nh hng n vic truyn thng d liu v ting ni. Bi nhng l do ny, cc DBSs c kt ni vi h thng di ng thng qua ng dy l cc node ring bit, nh minh ha trong hnh 7.6. Mi DBS c th truy cp c bi bt k BS hoc FH, v DBSs mi c th c kt ni v nhng DBSs c c th c ly ra khi mng thng tin di ng m khng nh hng g.

C s d liu phn tn - 2010

TI LIU THAM KHO

174

Mt DBS ch giao tip vi mt MU thng qua BS. Mt ngi s dng in thoi di ng kt ni trung bnh 2 n 4 gi trong mt ngy, v tt c cc ln khc, n phi tit kim nng lng pin. bo tn nng lng, mt n v in thoi di ng c th c chuyn sang trng thi : (a) tt ch h tr (khng ch ng lng nghe cc BS) hoc (b) ch nhn ri (ch liu - khng giao tip nhng lin tc nghe cc BS) hoc (c ) ch hot ng (giao tip vi bn kia, x l d liu,v.v). Mt MDS c th c nhiu c s d liu, v cc c s d liu ny c th c phn tn hon ton hoc mt phn hoc nhn bn hon ton. An MDS c th l mt lin on hoc mt h thng a c s d liu.

Hnh 7.7 Cc kiu nhn bn


Hnh 7. 7 minh ha cch c s d liu c phn phi gia cc DBSs v MUs. D liu c lp v tr, v d : D1, D2 v D4, c th nhn bn tt c cc vng v c cng gi tr. y l mt trong nhng l do m cc bn sao tm thi c th c x l bng cch s dng qui tc c mt - ghi tt c cc bn sao ca c ch kha hai pha iu khin ng thi phn tn. D liu ph thuc v tr nh ti D3 cng c th c nhn bn n tt c cc vng nhng mi vng phi c gi tr khc nhau. Ba kiu nhn bn c bn ca c s d liu c minh ha trong hnh 7.7: (a) "khng sao chp," (b) "nhn phn tn truyn thng" (nhn bn tm thi), v (c) " nhn bn ph thuc

C s d liu phn tn - 2010

TI LIU THAM KHO

175

v tr" (nhn bn khng gian). i tng d liu D4 khng nhn bn, v cc i tng d liu D1 v D2 l nhn bn truyn thng m c sao chp n vng d liu 1 v 2. Cc phn tn bn sao l cc bn sao ca nhau, chng c th c gi tr khc nhau tm thi, nhng ch c mt mt trong nhng gi tr ng. Cc d liu ph thuc v tr D3 c nhiu bn sao v nhiu gi tr ng. Cc gi tr ng c xc nh theo v tr. N c nhn bn c ba khu vc. Mi vng c mt gi tr chnh xc cho D3, v n cng c th c bn sao tm thi trong khu vc . Gi tr ca D3 m tn ti cc BS trong vng d liu 3 c nhn rng MU, nhng n c gi tr nh l DBS. Khng nhn bn Bn sao Gi tr ng Kin trc Tnh di ng 1 1 Tp trung Khng Nhn bn truyn thng Nhn bn khng gian Nhiu 1/ n v thi gian Phn tn Khng Nhiu 1/v thi gian v v tr Mobile C

Bng 7.1 S khc bit gia ba kiu nhn bn Bng 7.1 tm tt s khc bit gia ba loi nhn bn d liu. Ch rng bn sao ti mt b nh cache mt MU l bn sao thc s theo thi gian, tc l, c th c bn sao tm thi ca cc bn sao khng gian (nh Object O3 trong hnh 7.7). Trong mt khu vc nht nh c th c bn sao tm thi ca d liu ph thuc v tr.

C s d liu phn tn - 2010

TI LIU THAM KHO

176

TI LIU THAM KHO


1. M. Tamer Ozsu, Patrick Valduriez, Nguyn l cc h c s d liu phn tn, tp 1, 1999, Nh xut bn Thng k. 2. Nguyn Trung Trc, C s d liu phn b, 2003, i hc Bch Khoa TP HCM. 3. Ceri, S. and Pelagatti, G., Distributed Databases Principles and Systems, 1984, McGraw-Hill, Inc. 4. Vijay Kumar, Mobile Database Systems, 2006, by John Wiley & Sons, Inc.

C s d liu phn tn - 2010

MT S THI THAM KHO

177

M TS

THI THAM KH O
S 1

Ngn hng ABC gm c chi nhnh t ti ba thnh ph ln : TP H Ch Minh, Cn Th v H Ni. Lc ChiNhanh c m t nh sau : ChiNhanh(MaCN, tenCN, ThanhPho) Mi chi nhnh c khch hng ca mnh. Lc KhachHang c m t nh sau : KhachHang(SoCMND, tnKH, iachi, nghenghiep, noicongtac, sodienthoai, MaCN) Mt ti khon c m mt chi nhnh. Lc TaiKhoan c m t nh sau : TaiKhoan(SoTK, ngaymoTK, ngayDongTK, MaCN) Mt ti khon c th thuc v mt hay nhiu khch hng. Mt khch hng cng c th c nhiu ti khon. Lc TKKH c m t nh sau : TKKH(SoTK, SoCMND, tien) Ngn hng ABC mun xy dng mt h thng thng tin qun l TKKH c c s d liu phn tn ti ba thnh ph TP H Ch Minh, Cn Th v H Ni. Cu hi 1. (4 im) Hy thit c s d liu phn tn cho h thng thng tin qun l TKKH. a. Thit k cc phn mnh ngang nguyn thy cho lc ChiNhanh b. Thit k cc phn mnh ngang dn xut ca lc KhachHang, TaiKhoan ng vi cc phn mnh theo chi nhnh tng ng cu a. c. Thit k cc phn mnh ngang dn xut ng ca lc TKKH ng vi cc phn mnh theo TaiKhoan cu b. d. Gia s ta c hai ng dng chuyn tm thng tin nh sau : ng dng 1 : Tm tn khch hng v a ch ca khch hng theo chi nhnh. ng dng 2 : Tm tn khch hng, ngh nghip v s in thoi theo chi nhnh. Hy thit k phn mnh dc hn hp tng ng vi cc ng dng t cc phn mnh Khch hng cu b.

C s d liu phn tn - 2010

MT S THI THAM KHO

178

2. (1 im) Hy m t qu trnh cp pht cc phn mnh ti ba sites TP H Ch Minh, Cn Th v H Ni. 3. (1 im) Hy v cy phn mnh ca lc KhachHang cu 1 (b v d) 4. (1 im) Da trn cu 1, vit cu truy vn sau mc trong sut nh x cc b : Bit khch hng c s CMND l 120934875 ca mt chi nhnh ti Cn Th. Vit cu truy vn i khch hng s CMND l 120934875 v chi nhnh c tn l ABC a Kao ti TP H Ch Minh. Nu khch hng ny c tham gia ti khon ti Cn Th th xa ton b cc b cha khch hng ny. 5. (3 im) Da trn cu 1, trnh by qu trnh chuyn cu truy vn ton cc thnh cu truy vn da trn cc phn mnh cho cu truy vn sau : Lit k cc tn khch hng, v a ch v s in thoi c s ti khon l 123456789087 5432 . Bit rng ti khon thuc mt chi nhnh ti TP H Ch Minh. a. Vit cu lnh SQL di dng lc ton cc. b. Chuyn cu SQL cu a thnh cy truy vn di dng i s quan h. c. Chuyn cy truy vn cu b di dng cy truy vn phn mnh ti gin.

C s d liu phn tn - 2010

MT S THI THAM KHO S 2


Bi 1 Cho c s d liu v qun l d n nh sau Employee(ENO, ENAME, TITLE) ENO Assignment(ENO, JNO, RESP, DUR) Project(JNO, JNAME, BUDJET, LOC) E1 Salary(TITLE, SAL) E2 E2 Employee E3 Assignment E3 ENO ENAME TITLE E1 J. DOE Elect. Eng. E4 E2 M. SMITH Sys. Anal. E5 E3 A. LEE Mech. Eng. E6 E4 J. MILLER Programmer E7 E4 B. CASEY Sys. Anal. E8 E5 L. CHU Elect. Eng. E6 R. DAVIS Mech. Eng. E7 J. JONES Sys. Anal. Project JNO JNAME J1 Instrumentation J2 Database Develop. J3 CAD/CAM J4 Maintenance Salary TITLE Elect. Eng. Sys. Anal Mech. Eng. Programmer BUDJET 150000 135000 250000 310000 LOC Montreal New York Paris Paris

179

JNO J1 J1 J2 J3 J4 J2 J2 J4 J3 J3

RESP Manager Analyst Analyst Consultant Engineer Programmer Manager Manager Engineer Manager

DUR 12 24 6 10 48 18 24 48 36 40

SAL 29000 34000 27000 24000

Cho cc v t n gin sau : P1 : Loc = Montreal P2: Loc = New York P3: Loc = Paris P4: Budget 30000 P5: Budget > 30000

C s d liu phn tn - 2010

MT S THI THAM KHO


Cu hi

180

1. Thit k cc phn mnh ngang nguyn thy ca lc quan h ton cc Project p ng cc v t n gin trn. Cho bit cc quan h (bng) phn mnh kt qu . 2. Thit k cc phn mnh ngang dn xut ca lc Employee p ng hai v t sau: P6: Sal > 20000, P7: Sal 20000. Bi 2 Cho tp cu truy vn Q = {q1, q2, q3, q4, q5}, tp cc thuc tnh A = {A1, A2, A3, A4, A5} ca lc quan h R v tp cc sites S = {S1, S2, S3}. Cho ma trn U biu din cc thuc tnh c s dng ng vi cc cu truy vn v ma trn F th hin tn s s dng cc cu truy vn ti cc sites. Ma trn U A1 q1 0 q2 1 q3 1 q4 0 q5 1 Ma trn F A2 1 1 0 0 1 A3 1 1 0 1 1 A4 0 0 1 0 0 A5 1 1 1 0 0

Gi s refi(qk) = 1 vi mi qk v Si v A1 l thuc tnh kha ca R. Cu hi

q1 q2 q3 q4 q5

S1 10 5 0 0 0

S2 20 0 35 10 15

S3 0 10 5 0 0

S dng thut ton Bond Energy v Vertical Partitioning tm ra cc phn mnh dc ca R.

C s d liu phn tn 2010

180

MT S THI THAM KHO S 3

181

Mt cng ty sn xut c nhiu cng nhn. Thng tin ca mi cng nhn c th hin qua lc quan h : Congnhan(MaCN, TenCN, Diachi, Phanxuong, To) Mi cng nhn lm vic mt phn xng. Cng ty c hai phn xng A v B. Phn xng A nm SiGn, cn phn xng B th Bnh Dng. Mt cng nhn th thuc v mt t. Thng tin v t c th hin qua lc quan h sau : To(Mato, TenTo) Cng ty c ba t : t giao v nhn, t sn xut, t ng gi. Cng ty mun xy dng mt h thng thng tin qun l cng nhn c c s d liu phn tn ti hai ni Saigon v Bnh Dng. CU HI 1. Hy thit c s d liu phn tn cho h thng thng tin qun l cng nhn a. Thit k cc phn mnh ngang nguyn thy cho lc Congnhan : + Tm cc v t n gin + Tm cc v t s cp y v cc tiu b. Thit k cc phn mnh ngang dn xut cho lc To. 2. Hy m t qu trnh cp pht cc mnh trn cc sites ca cng ty 3. Vit cu truy vn sau mc trong sut nh x cc b : a. Lit k cc cng nhn v tn t ca cng nhn y theo phn xng (c nhp). b. Bit cng nhn c m s 1234 lm vic phn xng A. Vit cu truy vn i cng nhn 1234 v phn xng B.

C s d liu phn tn 2010

181

MT S THI THAM KHO S 4


Phn 1: L thuyt (3 im) Cu a (1 im) Cho lc ph qut : R(a, b) : b c gi tr nguyn trong on [1,5] S(a, c) : c c gi tr nguyn trong on [1,3] Ri = b=i (R) Sij = c=j (S) Ri

182

Cho bit tng s phn mnh? Cu b (2 im) Phn mnh y c nh ngha bi Cho R(a), S(a, b), T(b) v truy vn Cho bit c bao nhiu cy truy vn tuyn tnh phi trong khng gian tm kim ng vi cy truy vn trn v xc inh cc cy ? Phn 2: Bi tp (7 im) Mt tng cng ty in lc gm c nhiu cng ty thnh vin c tr s ti vng ng bng, Bin o v Cao nguyn. Lc cng ty thnh vin c m t nh sau : Congty(Macongty, tencongty, vung) Nhn vin th thuc v mt cng ty. Lc nhn vin c m t nh sau : Nhnvin(MaNV, tnNV, iachi, bacluong, chuyenmon, macongty) Mt cng ty m trch nhiu cng trnh in. Lc Congtrinh c m t nh sau : Congtrinh(MaCongtrinh, tenCongtrinh, diadiem, Macongty, Ngaybatdau, NgayKetthuc) Mt Cng trnh c nhiu nhn vin tham gia v mt nhn vin c th tham gia nhiu Cng trnh. Mt nhn vin tham gia mt Cng trnh vi mt vai tr xc nh. Lc tham gia Cng trnh ca nhn vin c m t nh sau : Thamgia(MaCongtrinh, MaNV, vaitro) Tng cng ty xy dng mun xy dng mt h thng thng tin qun l Cng trnh c c s d liu phn tn ti cc cng ty t ti cc trung tm d liu Si gn (qun l

C s d liu phn tn 2010

182

MT S THI THAM KHO


ng bng), nng (qun l Bin o) v H ni (qun l Cao nguyn). 1. Hy thit c s d liu phn tn cho h thng thng tin qun l Cng trnh a. Thit k cc phn mnh ngang nguyn thy cho lc Cng ty

183

b. Thit k cc phn mnh ngang dn xut ca lc Nhn vin, Cng trnh ng vi cc phn mnh theo cng ty tng ng cu a v lc Tham gia ng ng vi cc phn mnh theo Cng trnh cu b. c. Gia s ta c hai ng dng chuyn tm thng tin nh sau : ng dng 1 : Tm tn nhn vin, a ch v bc lng ca nhn vin theo cng ty ng dng 2 : Tm tn nhn vin, chuyn mn theo cng ty. Hy thit k phn mnh dc hn hp tng ng vi cc ng dng t cc phn mnh Nhn vin cu b. 2. Hy m t qu trnh cp pht cc phn mnh ti ba sites Sign, H ni, nng. 3. Da trn cu 1, vit cu truy vn sau mc trong sut nh x cc b : Bit nhn vin c m s 412011 lm vic mt cng ty ti ng bng. Vit cu truy vn i nhn vin 412011 v cng ty c m HN07 ti Cao nguyn. Nu nhn vin ny c tham gia cc Cng trnh ti cng ty ng bng th xa ton b cc b cha nhn vin ny. 4. Da trn cu 1, trnh by qu trnh chuyn cu truy vn ton cc thnh cu truy vn da trn cc phn mnh cho cu truy vn sau : Lit k cc tn nhn vin, chuyn mn v vai tr ca h khi tham gia Cng trnh c m l P1218. Bit rng Cng trnh ny do mt cng ty vng Bin o ph trch. a. Vit cu lnh SQL di dng lc ton cc. b. Chuyn cy truy vn cu b di dng cy truy vn phn mnh ti gin. Hy thit k phn mnh dc hn hp tng ng vi cc ng dng t cc phn mnh Khch hng cu b.

C s d liu phn tn 2010

183

MT S THI THAM KHO TI

184

QUN L IM SINH VIN


Cho c s d liu QLDSV sau: a.Khoa : FieldName MAKH TENKH b. Lop : FieldName MALOP TENLOP MAKH Type Char(8) Varchar(40) Char(8) Primary Key Unique FK Constraint Type Char(8) Varchar(40) Primary Key Unique Constraint

c. Table Sinhvien: FieldName MASV HO TEN MALOP PHAI NGAYSINH NOISINH DIACHI GHICHU NGHIHOC Type Char(8) Varchar(40) Varchar(10) Char(8) Bit DateTime Varchar(40) Varchar(80) Text Bit Foreign Key Default : 1 (1: Nam; 0: N) Primary key Constraint

d. Cu trc ca Table Mnhoc: FieldName MAMH TENMH Type Char(5) Varchar(40) Type Char(8) Char(8) Foreign Key Foreign Key Constraint Primary key Unique Key

e. Cu trc ca Table DIEM : FieldName MASV MAMH Constraint

C s d liu phn tn 2010

184

MT S THI THAM KHO


HOCKY LAN DIEM SmallInt SmallInt float Hc k>=1 v Hc k <=9 Ln thi >=1 v Ln thi <=2 im = -1 (Vng) hay im t 0 n 10

185

Primary key : MASV + MAMH + LAN Yu cu: Gi s trng c 3 khoa chnh : cng ngh thng tin (CNTT), qun tr kinh doanh (QTKD) v vin thng (VT) 1. Phn tn c s d liu QLDSV ra lm 3 mnh vi iu kin sau: QLDSV_CNTT c t trn server1: cha thng tin ca cc sinh vin thuc khoa cng ngh thng tin QLDSV_QTKD c t trn server2: cha thng tin ca cc sinh vin thuc khoa qun tr kinh doanh QLDSV_VT c t trn server3: cha thng tin ca cc sinh vin thuc khoa vin thng. Bit rng 1 sinh vin ch c th thuc 1 khoa. Lu : tn CSDL ca cc phn mnh nn t ging nhau 2. Hy cho bit cch to Link Server nh th no m bo tnh trong sut khi gi 1 View hay Stored Procedure trong c s d liu phn tn. Mc ch: cho php truy cp d liu t server 1 n Server 2 qua tp lnh DML C php : Gi s ta ang ng Server LUUTHU\TINTIN, ta mun to 1 link server tn LINK2 n Server LUUTHU\SUSU EXEC sp_addlinkedserver @server='LINK2', @srvproduct=' ',

@provider='SQLOLEDB', @datasrc='LUUTHU\SUSU' V d p dng: S dng link server va to in ra danh sch lp ca khoa vin thng ang t Server LUUTHU\SUSU Select * from LINK2.QLDSV.DBO.LOP Quy tc :

a. Tn cc c s d liu cc Server Subscriber phi ging nhau

C s d liu phn tn 2010

185

MT S THI THAM KHO


b. To Link theo quy tc vng trn : + Link1 : link ngay n chnh n + Link2: link n Server gn n nht + Link3 : link n Server gn k nht

186

3. To cc View v Stored Procedure sau trn c s d liu gc. Sau , y chng qua cc phn mnh. a. Lit k danh sch sinh vin (masv, hoten) ca lp c m lp @X b. To mt View tr v tng s sinh vin tng lp ca ton trng c. In ra cc mn thi cha t ca sinh vin c m s @masv . Kt xut: TenMH iemLonNhat d. Vit mt Stored Procedure tn PhieuDiem lit k cc im thi ln nht cc mn hc ca mt sinh vin da vo m sinh vin.

C s d liu phn tn 2010

186

You might also like