You are on page 1of 99

I HC THI NGUYN KHOA CNG NGH THNG TIN

NGUYN VN HUN PHM BCH TR NG TH LAN PHNG

GIO TRNH

C S D LIU 2

THI NGUYN - THNG 11 NM 2006

Li ni u Cc h c s d liu (h CSDL) u tin c xy dng theo cc m hnh phn cp v m hnh mng, xut hin vo nhng nm 1960, c xem l th h th nht ca cc h qun tr c s d liu (h QTCSDL). Tip theo l th h th hai, cc h QTCSDL quan h, c xy dng theo m hnh d liu quan h do E.F. Codd xut vo nm 1970. Cc h QTCSDL c mc tiu t chc d liu, truy cp v cp nht nhng khi lng ln d liu mt cch thun li, an ton v hiu qu. Hai th h u cc h QTCSDL p ng c nhu cu thu thp v t chc cc d liu ca cc c quan, x nghip v t chc kinh doanh. Tuy nhin, vi s pht trin nhanh chng ca cng ngh truyn thng v s bnh trng mnh m ca mng Internet, cng vi xu th ton cu ho trong mi lnh vc, c bit l v thng mi, lm ny sinh nhiu ng dng mi trong phi qun l nhng i tng c cu trc phc tp (vn bn, m thanh, hnh nh) v ng (cc chng trnh, cc m phng). Trong nhng nm 1990 xut hin mt th h th ba cc h QTCSDL - cc h "hng i tng", c kh nng h tr cc ng dng a phng tin (multimedia). Trc nhu cu v ti liu v sch gio khoa ca sinh vin chuyn nghnh cng ngh thng tin, nht l cc ti liu v CSDL phn tn, CSDL suy din, CSDL hng i tng, chng ti a ra gio trnh mn hc "C s d liu 2". Mc ch ca gio trnh "C s d liu 2 " nhm trnh by cc khi nim v thut ton c s ca CSDL bao gm: cc m hnh d liu v cc h CSDL tng ng, cc ngn ng CSDL, t chc lu tr v tm kim, x l v ti u ho cu hi, qun l giao dch v iu khin tng tranh, thit k cc CSDL. Trong qu trnh bin son, chng ti da vo ni dung chng trnh ca mn hc hin ang c ging dy ti cc trng i hc trong nc, ng thi cng c gng phn nh mt s thnh tu mi ca cng ngh CSDL. Gio trnh "C s d liu 2 " c chia thnh 3 chng: Chng 1 : C s d liu phn tn Chng 2: C s d liu suy din Chng 3: C s d liu hng i tng Tuy c gng, gio trnh khng th c nhng sai st. Rt mong nhn c kin ng gp ca c gi trong ln ti bn sau, gio trnh s hon chnh hn. Thi Nguyn, thng 12 nm 2000 Cc tc gi

CHNG I C S D LIU PHN TN

Vi vic phn b ngy cng rng ri ca cc cng ty, x nghip, d liu bi ton l rt ln v khng tp trung c. Cc CSDL thuc th h mt v hai khng gii quyt c cc bi ton trong mi trng mi khng tp trung m phn tn, song song vi cc d liu v h thng khng thun nht, th h th ba ca h qun tr CSDL ra i vo nhng nm 80 trong c CSDL phn tn p ng nhng nhu cu mi. 1.1. H CSDL phn tn 1.1.1. nh ngha CSDL phn tn Mt CSDL phn tn l mt tp hp nhiu CSDL c lin i logic v c phn b trn mt mng my tnh Tnh cht phn tn: Ton b d liu ca CSDL phn tn khng c c tr mt ni m c tr ra trn nhiu trm thuc mng my tnh, iu ny gip chng ta phn bit CSDL phn tn vi CSDL tp trung n l. Tng quan logic: Ton b d liu ca CSDL phn tn c mt s cc thuc tnh rng buc chng vi nhau, iu ny gip chng ta c th phn bit mt CSDL phn tn vi mt tp hp CSDL cc b hoc cc tp c tr ti cc v tr khc nhau trong mt mng my tnh.

Trong h thng c s d liu phn tn gm nhiu trm, mi trm c th khai thc cc giao tc truy nhp d liu trn nhiu trm khc. V d 1 .1 : Vi mt ngn hng c 3 chi nhnh t cc v tr khc nhau.

Ti mi chi nhnh c mt my tnh iu khin mt s my k ton cui cng (Teller terminal). Mi my tnh vi c s d liu thng k a phng ca n ti mi chi nhnh c t mt v tr ca c s d liu phn tn. Cc my tnh c ni vi nhau bi mt mng truyn thng. 1.1.2. Cc c im chnh ca c s d liu phn tn (1) Chia s ti nguyn Vic chia s ti nguyn ca h phn tn c thc hin thng qua mng truyn thng. chia s ti nguyn mt cch c hiu qu th mi ti nguyn cn c qun l bi mt chng trnh c giao din truyn thng, cc ti nguyn c th c truy cp, cp nht mt cch tin cy v nht qun. Qun l ti nguyn y l lp k hoch d phng, t tn cho cc lp ti nguyn, cho php ti nguyn c truy cp t ni ny n ni khc, nh x ln ti nguyn vo a ch truyn thng, ... (2) Tnh m Tnh m ca h thng my tnh l d dng m rng phn cng (thm cc thit b ngoi vi, b nh, cc giao din truyn thng ...) v cc phn mm (cc m hnh h iu hnh, cc giao thc truyn tin, cc dch v chung ti nguyn... ) Mt h phn tn c tnh m l h c th c to t nhiu loi phn cng v phn mm ca nhiu nh cung cp khc nhau vi iu kin l cc thnh phn ny phi theo mt tiu chun chung. Tnh m ca h phn tn c xem nh l mc b sung cc dch v dng chung ti nguyn m khng ph hng hay nhn i cc dch v ang tn ti Tnh m c hon thin bng cch xc nh hay phn nh r cc giao din chnh ca mt h v lm cho n tng thch vi cc nh pht trin phn mm. Tnh m ca h phn tn da trn vic cung cp c ch truyn thng gia cc tin trnh v cng khai cc giao din dng truy cp cc ti nguyn chung. (3) Kh nng song song H phn tn hot ng trn mt mng truyn thng c nhiu my tnh, mi my c th c 1 hay nhiu CPU. Trong cng mt thi im nu c N tin trnh cng tn ti, ta ni chng thc hin ng thi. Vic thc hin tin trnh theo c ch phn chia thi gian (mt CPU) hay song song (nhiu CPU) Kh nng lm vic song song trong h phn tn c thc hin do hai tnh hung sau: - Nhiu ngi s dng ng thi ra cc lnh hay cc tng tc vi cc chng trnh ng dng - Nhiu tin trnh Server chy ng thi, mi tin trnh p ng cc yu cu

t cc tin trnh Client khc. (4) Kh nng m rng H phn tn c kh nng hot ng tt v hiu qu nhiu mc khc nhau. Mt h phn tn nh nht c th hot ng ch cn hai trm lm vic v mt File Server. Cc h ln hn ti hng nghn my tnh. Kh nng m rng c c trng bi tnh khng thay i phn mm h thng v phn mm ng dng khi h c m rng. iu ny ch t c mc no vi h phn tn hin ti. Yu cu m rng khng ch l s m rng v phn cng, v mng m n tri trn cc kha cnh khi thit k h phn tn. (5) Kh nng th li: Vic thit k kh nng th li ca cc h thng my tnh da trn hai gii php c bn sau: - Dng kh nng thay th m bo s hot ng lin tc v hiu qu. - Dng cc chng trnh hi phc khi xy ra s c. Xy dng mt h thng c th khc phc s c theo cch th nht th ngi ta ni hai my tnh vi nhau thc hin cng mt chng trnh, mt trong hai my chy ch Standby (khng ti hay ch). Gii php ny tn km v phi nhn i phn cng ca h thng. Mt gii php gim ph tn l cc Server ring l c cung cp cc ng dng quan trng c th thay th nhau khi c s c xut hin. Khi khng c cc s c cc Server hot ng bnh thng, khi c s c trn mt Server no , cc ng dng Clien t chuyn hng sang cc Server cn li. Cch hai th cc phn mm hi phc c thit k sao cho trng thi d liu hin thi (trng thi trc khi xy ra s c) c th c khi phc khi li c pht hin. Cc h phn tn cung cp kh nng sn sng cao i ph vi cc sai hng phn cng . (6) Tnh trong sut Tnh trong sut ca mt h phn tn c hiu nh l vic che khut i cc thnh phn ring bit ca h i vi ngi s dng v nhng ngi lp trnh ng dng. Tnh trong sut v v tr. Ngi s dng khng cn bit v tr vt l ca d liu. Ngi s dng c quyn truy cp ti n c s d liu nm bt k ti v tr no. Cc thao tc ly, cp nht d liu ti mt im d liu xa c t ng thc hin bi h thng ti im a ra yu cu, ngi s dng khng cn bit

n s phn tn ca c s d liu trn mng. Tnh trong sut trong vic s dng: Vic chuyn i ca mt phn hay ton b c s d liu do thay i v t chc hay qun l, khng nh hng ti thao tc ngi s dng. Tnh trong sut ca vic phn chia: Nu d liu c phn chia do tng ti, n khng c nh hng ti ngi s dng. Tnh trong sut ca s trng lp: Nu d liu trng lp gim chi ph truyn thng vi c s d liu hoc nng cao tin cy, ngi s dng khng cn bit n iu [1] . (7) m bo tin cy v nht qun H thng yu cu tin cy cao: s b mt ca d liu phi c bo v, cc chc nng khi phc h hng phi c m bo. Ngoi ra yu cu ca h thng v tnh nht qun cng rt quan trng trong th hin: khng c c mu thun trong ni dung d liu. Khi cc thuc tnh d liu l khc nhau th cc thao tc vn phi nht qun [1] . 1.1.3. Mc ch ca vic s dng c s d liu phn tn Xut pht t yu cu thc t v t chc v kinh t: Trong thc t nhiu t chc l khng tp trung, d liu ngy cng ln v phc v cho a ngi dng nm phn tn, v vy c s d liu phn tn l con ng thch hp vi cu trc t nhin ca cc t chc . y l mt trong nhng yu t quan trng thc y vic pht trin c s d liu phn tn. S lin kt cc c s d liu a phng ang tn ti: c s d liu phn tn l gii php t nhin khi c cc c s d liu ang tn ti v s cn thit xy dng mt ng dng ton cc. Trong trng hp ny c s d liu phn tn c to t di ln da trn nn tng c s d liu ang tn ti. Tin trnh ny i hi cu trc li cc c s d liu cc b mt mc nht nh. D sao, nhng sa i ny vn l nh hn rt nhiu so vi vic to lp mt c s d liu tp trung hon ton mi. Lm gim tng chi ph tm kim: Vic phn tn d liu cho php cc nhm lm vic cc b c th kim sot c ton b d liu ca h. Tuy vy, ti cng thi im ngi s dng c th truy cp n d liu xa nu cn thit. Ti cc v tr cc b, thit b phn cng c th chn sao cho ph hp vi cng vic x l d liu cc b ti im . S pht trin m rng: Cc t chc c th pht trin m rng bng cch thm cc n v mi, va c tnh t tr, va c quan h tng i vi cc n v t chc khc. Khi gii php c s d liu phn tn h tr mt s m rng

uyn chuyn vi mt mc nh hng ti thiu ti cc n v ang tn ti Tr li truy vn nhanh: Hu ht cc yu cu truy vn d liu t ngi s dng ti bt k v tr cc b no u tho mn d liu ngay ti thi im . tin cy v kh nng s dng nng cao: nu c mt thnh phn no ca h thng b hng, h thng vn c th duy tr hot ng. Kh nng phc hi nhanh chng: Vic truy nhp d liu khng ph thuc vo mt my hay mt ng ni trn mng. Nu c bt k mt li no h thng c th t ng chn ng li qua cc ng ni khc. 1.1.4. Kin trc c bn ca CSDL phn tn y khng l kin trc tng minh cho tt c cc CSDL phn tn, tuy vy kin trc ny th hin t chc ca bt k mt CSDL phn tn no. S tng th: nh ngha tt c cc d liu s c lu tr trong CSDL phn tn. Trong m hnh quan h, s tng th bao gm nh ngha ca c c tp quan h tng th . S phn on: Mi quan h tng th c th chia thnh mt vi phn khng gi ln nhau c gi l on (fragments). C nhiu cch khc nhau thc hin vic phn chia ny. nh x (mt - nhiu) gia s tng th v cc on c nh ngha trong s phn on. S nh v: Cc on l cc phn logic ca quan h tng th c nh v vt l trn mt hoc nhiu v tr trn mng. S nh v nh ngha on no nh v ti cc v tr no. Lu rng kiu nh x c nh ngha trong s nh v quyt nh CSDL phn tn l d tha hay khng. S nh x a phng: nh x cc nh vt l v cc i tng c lu tr ti mt trm (tt c cc on ca mt quan h tng th trn cng mt v tr to ra mt nh vt l)

Hnh 1.2 Kin trc c bn ca CSDL phn tn

1.1.5. H qun tr CSDL phn tn H qun tr CSDL phn tn (Distributed Database Management SystemDBMS) c nh ngha l mt h thng phn mm cho php qun l cc h CSDL (to lp v iu khin cc truy nhp cho cc h CSDL phn tn) v lm cho vic phn tn tr nn trong sut vi ngi s dng. c tnh v hnh mun ni n s tch bit v ng ngha cp cao ca mt h thng vi cc vn ci t cp thp. S phn tn d liu c che du vi ngi s dng lm cho ngi s dng truy nhp vo CSDL phn tn nh h CSDL tp trung. S thay i vic qun tr khng nh hng ti ngi s dng. H qun tr CSDL phn tn gm 1 tp cc phn mm (chng trnh) sau: Cc chng trnh qun tr cc d liu phn tn Cha cc chng trnh qun tr vic truyn thng d liu Cc chng trnh qun tr cc CSDL a phng. Cc chng trnh qun tr t in d liu. to ra mt h CSDL phn tn (Distributed Database System-DDBS) cc tp tin khng ch c lin i logic chng cn phi c cu trc v c truy xut qua mt giao din chung. Mi trng h CSDL phn tn l mi trng trong d liu c phn tn trn mt s v tr.

1.2. Kin trc h qun tr C s d liu phn tn 1.2.1. Cc h khchli l Cc h qun tr CSDL khch / i l xut hin vo u nhng nm 90 v c nh hng rt ln n cng ngh DBMS v phng thc x l tnh ton. tng tng qut ht sc n gin: phn bit cc chc nng cn c cung cp v chia nhng chc nng ny thnh hai lp: chc nng i l (server function) v chc nng khch hng (client function). N cung cp kin trc hai cp, to d dng cho vic qun l mc phc tp ca cc DBMS hin i v phc tp ca vic phn tn d liu. i l thc hin phn ln cng vic qun l d liu. iu ny c ngha l tt c mi vic x l v ti u ho vn tin, qun l giao dch v qun l thit b lu tr c thc hin ti i l. Khch hng, ngoi ng dng v giao din s c mo dun DBMS khch chu trch nhim qun l d liu c gi n cho bn khch v i khi vic qun l cc kho cht giao dch cng c th giao cho n. Kin trc c m t bi hnh di rt thng dng trong cc h thng quan h, vic giao tip gia khch v i l nm ti mc cu lnh SQL. Ni cch khc, khch hng s chuyn cc cu vn tin SQL cho i l m khng tm hiu v ti u ho chng. i l thc hin hu ht cng vic v tr quan h kt qu v cho khch hng. C mt s loi kin trc khch / i l khc nhau. Loi n gin nht l trng hp c mt i l c nhiu khch hng truy xut. Chng ta .gi loi ny l nhiu khch mt i l. Mt kin trc khch / i l phc tp hn l kin trc c nhiu i l trong h thng (c gi l nhiu khch nhiu i l). Trong trng hp ny chng ta c hai chin lc qun l: hoc mi khch hng t qun l ni kt ca n vi i l hoc mi khch hng ch bit i l "rut" ca n v giao tip vi cc i l khc qua i l khi cn Li tip cn th nht lm n gin cho cc chng trnh i l nhng li t gnh nng ln cc my khch cng vi nhiu trch nhim khc. iu ny dn n tnh hung c gi l cc h thng khch t phc v. Li tip cn sau tp trung chc nng qun l d liu ti i l. V th s v hnh ca truy xut d liu c cung cp qua giao din ca i l. T gc tnh logc c d liu, DBMS khch / i l cung cp cng mt hnh nh d liu nh cc h ngang hng s c tho lun phn tip theo.. Ngha l chng cho ngi s dng thy mt hnh nh v mt CSDL logic duy nht, cn ti mc vt l n c th phn tn. V th s phn bit ch yu gia cc h khch/i l v ngang hng khng phi mc v hnh c cung cp cho ngi dng v cho ng dng m m hnh kin trc c dng nhn ra mc v hnh ny.

1.2.2. Cc h phn tn ngang hng M hnh client / server phn bit client (ni yu cu dch v) v server (ni phc v cc yu cu). Nhng m hnh x l ngang hng, cc h thng tham gia c vai tr nh nhau. Chng c th yu cu va dch v t mt h thng khc hoc va tr thnh ni cung cp dch v. Mt cch l tng, m hnh tnh ton ngang hng cung cp cho x l hp tc gia cc ng dng c th nm trn cc phn cng hoc h iu hnh khc nhau. Mc ch ca mi trng x l ngang hng l h tr cc CSDL c ni mng. Nh vy ngi s dng DBMS s c th truy cp ti nhiu CSDL khng ng nht. 1.3.Thit k c s d liu phn tn 1.3.1- Cc chin lc thit k 1.3.1.1.Qu trnh thit k t trn xung (top-down) Phn tch yu cu: nhm nh ngha mi trng h thng v thu thp cc nhu cu v d liu v nhu cu x l ca tt c mi ngi c s dng CSDL Thit k khung nhn: nh ngha cc giao- din cho ngi s dng cui (enduser) Thit k khi nim: xem xt tng th x nghip nhm xc nh cc loi thc th v mi lin h gia cc thc th. Thit k phn tn: chia cc quan h thnh nhiu quan h nh hn gi l phn mnh v cp pht chng cho cc v tr. Thit k vt l: nh x lc khi nim cc b sang cc thit b lu tr vt l c sn ti cc v tr tng ng.

1 3.1.2- Qu trnh thit k t di tn (hottom-up) Thit k t trn xung thch hp vi nhng CSDL c thit k t u. Tuy nhin chng ta cng hay gp trong thc t l c sn mt s CSDL, nhim v thit k l phi tch hp chng thnh mt CSDL. Tip cn t di ln s thch hp cho tnh hung ny. Khi im ca thit k t di ln l cc lc khi nim cc b . Qu trnh ny s bao gm vic tch hp cc lc cc b thnh khi nim lc ton cc. l.3.2.Cc vn thit k 1.3.2.1. L do phn mnh

Khung nhn ca cc ng dng thng ch l mt tp con ca quan h. V th n v truy xut khng phi l ton b quan h nhng ch l cc tp con ca quan h. Kt qu l xem tp con ca quan h l n v phn tn s l iu thch hp duy nht. Vic phn r mt quan h thnh nhiu mnh, mi mnh c x l nh mt n v, s cho php thc hin nhiu giao dch ng thi. Ngoi ra vic phn mnh cc quan h s cho php thc hin song song mt cu vn tin bng cch chia n ra thnh mt tp cc cu vn tin con hot tc trn cc mnh. V th vic phn mnh s lm tng mc hot ng ng thi v nh th lm tng lu lng hot ng ca h thng. 1.3.2.2.Cc quy tc phn mnh ng n Chng ta s tun th ba quy tc trong khi phn mnh m chng bo m rng CSDL s khng c thay i no v ng ngha khi phn mnh. a) Tnh y (completeness). Nu mt th hin quan h R c phn r thnh cc mnh R1, R2,,Rn, th mi mc d liu c th gp trong R cng c th gp mt trong nhiu mnh Ri. c tnh ny ging nh tnh cht phn r ni khng mt thng tin trong chun ho, cng quan trng trong phn mnh bi v n bo m rng d liu trong quan h R c nh x vo cc mnh v khng b mt. Ch rng trong trng hp phn mnh ngang "mc d liu" mun ni n l mt b, cn trong trng hp phn mnh dc, n mun ni n mt thuc tnh. b) Tnh ti thit c (reconstruction). Nu mt th hin quan h R c phn r thnh cc mnh R1, R2,,Rn, th cn phi nh ngha mt ton t quan h sao cho R= Ri, Ri Fr Ton t thay i tu theo tng loi phn mnh, tuy nhin iu quan trng l phi xc nh c n. Kh nng ti thit mt quan h t cc mnh ca n bo m rng cc rng buc c nh ngha trn d liu di dng cc ph thuc s c bo ton. c) Tnh tch bit (disjointness). Nu quan h R c phn r ngang thnh cc mnh R1, R2,,Rn, v mc d liu di nm trong mnh Rj, th n s khng nm trong mnh Rk khc ( k j ). Tiu chun ny m bo cc mnh ngang s tch bit (ri nhau). Nu quan h c phn r dc, cc thuc tnh kho chnh phi c lp li trong mi mnh. V th trong trng hp phn mnh dc, tnh tch bit ch c nh ngha trn cc trng khng phi l kho chnh ca mt quan h.

1.3.2.3 Cc yu cau thng tin Mt iu cn lu trong vic thit k phn tn l qu nhiu yu t c nh hng n mt thit k ti u. t chc logic ca CSDL, v tr cc ng dng, c tnh truy xut ca cc ng dng n CSDL, v cc c tnh ca h thng my tnh ti mi v tr u c nh hng n cc quyt nh phn tn. iu ny khin cho vic din t bi ton phn tn tr nn ht sc phc tp. Cc thng tin cn cho thit k phn tn c th chia thnh bn loi: - Thng tin CSDL - Thng tin ng dng - Thng tin v mng - Thng tin v h thng my tnh Hai loi sau c bn cht hon ton nh lng v c s dng trong cc m hnh cp pht ch khng phi trong cc thut ton phn mnh 1.3.3. Phn mnh ngang Trong phn ny, chng ta bn n cc khi nim lin quan n phn mnh ngang (phn tn ngang). C hai chin lc phn mnh ngang c bn: Phn mnh nguyn thu (primary horizontal fragmentation) ca mt quan h c thc hin da trn cc v t c nh ngha trn quan h . Phn mnh ngang dn xut (derived horizontal fragmentation) l phn mnh mt quan h da vo cc v t c nh trn mt quan h khc. 1.3.3.1. Hai kin phn mnh ngang Phn mnh ngang chia mt quan h r theo cc b, v vy mi mnh l mt tp con cc b t ca quan h r. Phn mnh nguyn thu (primary horizontal fragmentation) ca mt quan h c thc hin da trn cc v t c nh ngha trn quan h . Ngc li phn mnh ngang dn xut (derived horizontal fragmentation ) l phn mnh mt quan h da vo cc v t c nh trn mt quan h khc. Nh vy trong phn mnh ngang tp cc v t ng vai tr quan trng. Phn ny s xem xt cc thut ton thc hin cc kiu phn mnh ngang. Trc tin chng ta nu cc thng tin cn thit thc hin phn mnh ngang. 1.3.3.2. Yu cu thng tin ca phn mnh ngang a. Thng tin v c s d liu Thng tin v CSDL mun ni n l lc ton cc v quan h gc, cc quan h con. Trong ng cnh ny, chng ta cn bit c cc quan h s kt li

vi nhau bng php ni hay bng php tnh khc. vi mc ch phn mnh dn xut, cc v t c nh ngha trn quan h khc, ta thng dng m hnh thc th - lin h (entity-relatinhip model), v trong m hnh ny cc mi lin h c biu din bng cc ng ni c hng (cc cung) gia cc quan h c lin h vi nhau qua mt ni. Th d 1.3:

Hnh 1.4. Biu din mi lin h gia cc quan h nh cc ng ni.

Hnh trn trnh by mt cch biu din cc ng ni gia cc quan h. ch rng hng ca ng ni cho bit mi lin h mt -nhiu. Chng hn vi mi chc v c nhiu nhn vin gi chc v , v th chng ta s v mt ng ni t quan h CT (chi tr) hng n NV (nhn vin). ng thi mi lin h nhiu- nhiu gia NV v DA(d n) c biu din bng hai ng ni n quan h PC (phn cng). Quan h nm ti u (khng mi tn) ca ng ni c gi l ch nhn (owner) ca ng ni v quan h ti cui ng ni (u mi tn) gi l thnh vin (member). Th d 1.4: Cho ng ni L1 ca hnh 1.7, cc hm owner v member c cc gi tr sau: Owner(L1) = CT Member (L1) = NV Thng tin nh lng cn c v CSDL l lc lng (cardinality) ca mi quan h R, l s b c trong R, c k hiu l card (R)

b. Thng tin v ng dng phn tn ngoi thng tin nh lng Card(R) ta cn cn thng tin nh tnh c bn gm cc v t c dng trong cc cu vn tin. Lng thng tin ny ph thuc bi ton c th. Nu khng th phn tch c ht tt c cc ng dng xc nh nhng v t ny th t nht cng phi nghin cu c cc ng dng "quan trng" nht. Vy chng ta xc nh cc v t n gin (simple predicate). Cho quan h R (A1, A2,,An), trong Ai l mt thuc tnh c nh nghi trn mt min bin thin D(Ai) hay Di. Mt v t n gin P c nh ngha trn R c dng: P : Ai value Trong {=,<, ,, >, } v value c chn t min bin thin ca Ai (value Di). Nh vy, cho trc lc R, cc min tr D; chng ta c th xc nh c tp tt c cc v t n gin Pr trn R. Vy Pr = {P: Ai Value } . Tuy nhin trong thc t ta ch cn nhng tp con thc s ca Pr. Th d l.5: Cho quan h D n nh sau: Pl : TnDA = "thit b iu khin" P2 : Ngn sch 200000 L cc v t n gin.. Chng ta s s dng k hiu Pri biu th tp tt c cc v t n gin c nh ngha trn quan h Ri. Cc phn t ca Pri c k hiu l pij Cc v t n gin thng rt d x l, cc cu vn tin thng cha nhiu v t phc tp hn, l t hp ca cc v t n gin. Mt t hp cn c bit ch , c gi l v t hi s cp (minterm predicate), l hi (conjunction) ca cc v t n gin. Bi v chng ta mun c th bin i mt biu thc Boole thnh dng chun hi, vic s dng v t hi s cp trong mt thut ton thit k khng lm mt i tnh tng qut. Cho mt tp Pri = {pi1, pi2,, pim } l cc v t n gin trn quan h Ri, tp cc v t hi s cp Mi = {mi1, mi2,, miz } c nh ngha l: Mi= {mij | mij= p*ik} vi 1 k m, i j z Trong p*ik= pik hoc pik= pik. V th mi v t n gin c th xut hin trong v t hi s cp di dng t nhin hoc dng ph nh.

Th d 1.6: Xt quan h CT: chc v K s in Phn tch h thng K s c kh Lp trnh Lng 40000 34000 27000 24000

Di y l mt s v t n gin c th nh ngha c trn PAY. p1: chc v=" K s in" p2: chc v =" Phn tch h thng " p3: chc v=" K s c kh " p4: chc v=" Lp trnh " p5 : Lng 3 0000 p6: Lng > 30000 Di y l mt s cc v t hi s cp c nh ngha da trn cc v t n gin ny m1 : chc v=" K s in " Lng 30000 m2: chc v =" K s in " Lng > 30000 m3: (chc v= " K s in ") Lng 30000 m4: (chc v=" K s in ") Lng> 30000 m5: chc v=" Lp trnh " Lng 30000 m6: chc v=" Lp trnh " Lng > 30000 Ch :+ Php ly ph nh khng phi lc no cng thc hin c. Th d:xt hai v t n gin sau: Cn_di A; A Cn trn. Tc l thuc tnh A c min tr nm trong cn di v cn trn, khi phn b ca chng l:
(Cn_di A); (A Cn trn) khng xc nh c. Gi tr ca A trong cc ph nh

ny ra khi min tr ca A. Hoc hai v t n gin trn c th c vit li l: Cn_di A Cn trn c phn b l: (Cn di A Cn trn) khng nh ngha c. V vy khi nghin cu nhng vn ny ta ch xem xt cc v t ng thc n gin.

=> Khng phi tt c cc v t hi s cp u c th nh ngha c. + Mt s trong chng c th v ngha i vi ng ngha ca quan h Chi tr. Ngoi ra cn ch rng m3 c th c vit li nh sau: m3: chc v " K s in " Lng 30000 Theo nhng thng tin nh tnh v cc ng dng, ta cn bit hai tp d liu. 1) tuyn hi s cp (minterm selectivity): s lng cc b ca quan h s c truy xut bi cu vn tin c c t theo mt v t hi s cp cho. chng hn tuyn ca mi trong Th d 1.6 l zero bi v khng c b no trong CT tha v t ny. tuyn ca m2 l 1 . Chng ta s k hiu tuyn ca mt hi s cp mi l sel (mi). 2) Tn s truy xut (access frequency): tn s ng dng truy xut d liu Nu Q={q1, q2,,qq} l tp cc cu vn tin, acc (qi) biu th cho tn s truy xut ca qi trong mt khong thi gian cho. Ch rng mi hi s cp l mt cu vn tin. Chng ta k hiu tn s truy xut ca mt hi s cp l acc(mi) 1.3.3.3. Phn mnh ngang nguyn thu Phn mnh ngang nguyn thu c nh ngha bng mt php ton chn trn cc quan h ch nhn ca mt lc ca CSDL. V th cho bit quan h R, cc mnh ngang ca R l cc Ri: Ri = Fi;(R), 1 i z. Trong Fi l cng thc chn c s dng c c mnh Ri. Ch rng nu Fi c dng chun hi, n l mt v t hi s cp (mj). Th d 1.7: Xt quan h DA MDA P1 P2 P3 P4 TnDA Thit b o c Pht trin d liu CAD/CAM Bo dng Ngn sch 150000 135000 250000 310000 a im Montreal New York New York Paris

Chng ta c th nh ngha cc mnh ngang da vo vi tr d n. Khi cc mnh thu c, c trnh by nh sau: DA1= DA2= DA3=
a im="Montreal"

(DA) (DA)

a dim="New York" a im="Paris"

(DA)

DA1 MDA P1 DA2 MDA P2 P3 DA3 MDA P4 hn Mnh ngang Ri ca quan h R c cha tt c cc b R tha v t hi s cp mi Mt c tnh quan trng ca cc v t n gin l tnh y v tnh cc tiu. - Tp cc v t n gin Pr c gi l y nu v ch nu xc sut 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. Th d 1.8: Xt quan h phn mnh DA c a ra trong Th d 1.7. Nu tp ng dng Pr={a im "Montreal", a im="New York", a im="Paris", Ngn sch 200000 } th Pr khng y v c mt s b ca DA khng c truy xut bi v t Ngn sch 200000. cho tp v t ny y , chng ta cn phi xt thm v t Ngn sch > 2 00000 vo P r. Vy Pr={a im="Montreal", a im="New York", a im="Paris", Ngn sch 200000 , Ngn sch> 200000 } l y bi v mi b c truy xut bi ng hai v t p ca Pr. Tt nhin nu ta bt i mt v t bt k trong Pr th tp cn li khng y . L do cn phi m bo tnh y l v cc mnh thu c theo tp v t y s nht qun v mt logic do tt c chng u tho v t hi s cp. Chng cng ng nht v y v mt thng k theo cch m ng dng truy xut chng. V th chng ta s dng mt tp hp gm cc v t y lm c s ca phn mnh ngang nguyn thy. TnDA thit b o c Ngn sch 310000 a im Paris TnDA Pht trin d liu CAD/CAM Ngn sch 135000 250000 a im New York New York TDA Thit b o c Ngn sch 150000 a im Montreal

By gi chng ta c th nh ngha mt mnh ngang cht ch v r rng

- c tnh th hai ca tp cc v t l tnh cc tiu. y l mt c tnh cm tnh. V t n gin phi c lin i (relevant) trong vic xc nh mt mnh. Mt v t khng tham gia vo mt phn mnh no th c th coi v t l tha. Nu tt c cc v t ca Pr u c lin i th Pr l cc tiu. Th d 1.9: Tp Pr c nh ngha trong Th d 1.8 l y v cc tiu. Tuy nhin nu chng ta thm v t TnDA ="thit b o c" vo Pr, tp kt qu s khng cn cc tiu bi v v t mi thm vo khng c lin i ng vi Pr. V t mi thm vo khng chia thm mnh no trong cc mnh c to ra. Khi nim y gn cht vi mc tiu ca bi ton. S v t phi y theo yu cu ca bi ton chng ta mi thc hin c nhng vn t ra ca bi ton. Khi nim cc tiu lin quan n vn ti u ca b nh, ti u ca cc thao tc trn tp cc cu vn tin. Vy khi cho trc mt tp v t Pr xt tnh cc tiu chng ta c th kim tra bng cch vt b nhng v t tha c tp v t Pr l cc tiu v tc nhin Pr cng l tp y vi Pr. Thut ton COM_MIN: Cho php tm tp cc v t y v cc tiu Pr' t Pr. Chng ta tm quy c: Quy tc 1: Quy tc c bn v tnh y v cc tiu , n khng nh rng mt quan h hoc mt mnh c phn hoch " thnh t nht hai phn v chng c truy xut khc nhau bi t nht mt ng dng ". Thut ton 1 .1 COM_MIN Input : R: quan h; Pr: tp cc 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 cch 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. V th cui cng ta c tp Pr l cc tiu v y . Bc hai ca vic thit k phn mnh nguyn thy l suy dn ra tp cc v t hi s cp c th c nh ngha trn cc v t trong tp Pr. Cc v t hi s cp ny xc nh cc mnh "ng c vin" cho bc cp pht. Vic xc nh cc v t hi s cp l tm thng; kh khn chnh l tp cc v t hi s cp c th rt ln (thc s chng t l hm m theo s lng cc v t n gin). trong bc k tip chng ta s tm cch lm gim s lng v t hi s cp cn c nh ngha trong phn mnh. Bc ba ca qu trnh thit k l loi b mt s mnh v ngha. iu ny c thc hin bng cch xc nh nhng v t mu thun vi tp cc php ko theo (implication) I. Chng hn nu Pr={p1, p2}' trong P1 : att = value_1 P2 : att = value_2 V min bin thin ca att l {value-l , value 2} , r rng I cha hai php ko theo vi khng nh: I1: (att value_1) (att = value_2) I2: (att value_1) (att=value_2) Bn v t hi s cp sau y c nh ngha theo Pr:

M1: (att value_1) (att value_2) M2: (att value_1) (att-value_2) M3: (att value_1) (att value_2) M4: (att value_1) (att value_2) Trong trng hp ny cc v t hi s cp m1, m4 mu thun vi cc php ko theo I v v th b loi ra khi M. Thut ton phn mnh ngang nguyn thy c trnh by trong thut ton 1.2. Thut ton 1.2 PHORIZONTAL Input: R: quan h; Pr: tp cc v t n gin; Output: 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 pi Pr; For each mi M do Begin IF mi mu thun vi I then M:= M-mi End; End. {PHORIZONTAL} Th d 1.10: Chng ta hy xt quan h DA. Gi s rng c hai ng dng. ng dng u tin c a ra ti ba v tr v cn tm tn v ngn sch ca cc d n khi cho bit v tr. Theo k php SQL cu vn tin c vit l: SELECT FROM WHERE TnDA, Ngn sch DA a im=gi tr

i vi ng dng ny, cc v t n gin c th c dng l: P1 : a im="Montreal" P2: a im="New York" P3 : a im="Paris" ng dng th hai l nhng d n c ngn sch di 200.000 la c qun l ti mt v tr, cn nhng d n c ngn sch ln hn c qun l ti

mt v tr th hai. V th cc v t n gin phi c s dng phn mnh theo ng dng th hai l: P4: ngn sch200000 P5: ngn sch>200000 Nu kim tra bng thut ton COM_MIN, tp Pr={pl, p2, p3, p4, p5} r rng y v cc tiu Da trn Pr chng ta c th nh ngha su v t hi s cp sau y to ra M: M1 : (a im="Montreal") (ngn sch200000) M2 : (a im="Montreal") (ngn sch>200000) M3 : (a im="New York") (ngn sch200000) M4: (a im="New York") (ngn sch>200000) M5 : (a im="Paris") (ngn sch200000) M6: (a im="Paris") (ngn sch>200000) y khng phi l cc v t hi s cp duy nht c th c to ra. Chng hn vn c th nh ngha cc v t: pl p2 p3 p4 p5 Tuy nhin cc php ko hin nhin l: I1: p1 p2 p3 I2: p2 p1 p3 I3: p3 p1 p2 I4: p4 p5 I5: p5 p4 I6: p4 p5 I7: p5 p4 Cho php loi b nhng v t hi s cp ny v chng ta cn li m1 n m6. Cn nh rng cc php ko theo phi c nh ngha theo ng ngha ca CSDL, khng phi theo cc gi tr hin ti. Mt s mnh c nh ngha theo M={m1,...,m6} c th rng nhng chng vn l cc mnh. Kt qu phn mnh nguyn thu cho DA l to ra su mnh FDA={DA1, DA2, DA3, DA4, DA5, DA6}, y c hai mnh rng l {DA2, DA5} DA1

MDA Pl DA3 MDA P2 DA4 MDA P3 DA 6 MDA P4

TnDA

Ngn sch a im Montreal

Thit b o c 150000

TnDA Pht trin d liu

Ngn sch 135000

a im New York

TnDA CAD/CAM

Ngn sch 250000

a im New York

TnDA bo dng

Ngn sch 3 1 0000

a im Pans

1.3.3.4. Phn mnh ngang dn xut Phn mnh ngang dn xut c nh ngha trn mt quan h thnh vin ca ng ni da php ton chn trn quan h ch nhn ca ng ni . Nh th nu cho trc mt ng ni L, trong owner (L)=S v member(L)=R, v cc mnh ngang dn xut ca R c nh ngha l: R= R|>< Si , 1 < i < w Trong w l s lng cc mnh c nh ngha trn R, v Si= Fi(S) vi Fi l Cng thc nh ngha mnh ngang nguyn thu Si Th d 1.11: Xt ng ni

NV MNV TNNV El E2 E2 E3 E3 E4 E5 E6 E7 E8 J.Dc M.Smith M.Smith A.Lee A.Lee J.Miller B.Casey L.Chu R.david J.Jones chc v K s in Phn tch Phn tch K s c kh K s c kh Programmer Phn tch h thng K s in K s c kh Phn tch h thng

Th th chng ta c th nhm cc k s thnh hai nhm ty theo lng: nhm c lng t 30.000 ot tr ln v nhm c lng di 30.000 la. Hai mnh Nhn vim v Nhn vin2 c nh ngha nh sau: NV1 = NV |>< CT1 NV2 = NV |>< CT2 Trong CT1= CT1 Chc v Lp trnh CT2 Chc v K s in Lng 40000 Lng 24000
Lng30000(CT)

CT2= Lng>30000(CT)

K s c kh 27000

Phn tch h thng 34000 Kt qu phn mnh ngang dn xut ca quan h NV nh sau:

NV1

MNV TnNV E3 E4 E7 NV2 MNV TnNV El E2 E5 E6 E8 J.Doe B.Casey L.Chu J.Jones A.Lee J.Miller R.David

Chc v K s c kh Lp trnh vin K s c kh

Chc v K s in Phn tch h thng K s in Phn tch h thng

M.Smith Phn tch

Ch : + Mun thc hin phn mnh ngang dn xut, ta cn ba nguyn liu (input): 1. Tp cc phn hoch ca quan h ch nhn (Th d: CTI, CT2). 2. Quan h thnh vin 3. Tp cc v t ni na gia ch nhn v thnh vin (Chng hn CT.Chucvu = NV.Chucvu). + Vn phc tp cn ch : Trong lc CSDL, chng ta hay gp nhiu ng ni n mt quan h R. Nh th c th c nhiu cch phn mnh cho quan h R. Quyt nh chn cch phn mnh no cn da trn hai tiu chun sau: 1. Phn mnh c c tnh ni tt hn 2. Phn mnh c s dng trong nhiu ng dng hn. Tuy nhin, vic p dng cc tiu chun trn cn l mt vn rc ri. Th d 1.12: Chng ta tip tc vi thit k phn tn cho CSDL bt u t Th d 1 .9. V quan h NV phn mnh theo CT. By gi xt ASG. Gi s c hai ng dng sau: 1. ng dng 1: Tm tn cc k s c lm vic ti mt ni no . ng dng ny chy c ba trm v truy xut cao hn cc k s ca cc d n nhng v tr khc. 2. ng dng 2: Ti mi trm qun l, ni qun l cc mu tin nhn vin, ngi dng mun truy xut n cc d n ang c cc nhn vin ny thc hin v cn bit xem h s lm vic vi d n trong bao lu. 1.3.3.5. Kim nh 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 pa , 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 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 = Ri, Ri FR c. Tnh tch ri 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. 1.3.4. 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 u" l 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 trong [Hammer and Niamir, 1979] cho cc CSDL tp trung v v sau c dng trong [Sacca and Weiderhold, 1985] 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. K thut ny c tho lun ln u tin cho thit k CSDL tp trung trong [Hoffer and Severance, 1975]. Sau c m ra cho mi trng phn tn trong [Navathe t ai., 1984]. Cc yu cu thng tin ca phn mnh dc 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 (affmity) ca thuc tnh, ch ra mc lin i gia cc thuc tnh. 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: use(qi, Aj)= 1 nu thuc tnh Aj c vn tin qi tham chiu 0 trong trng hp ngc li

Cc vc t use(qi, ) cho mi ng dng rt d nh ngha nu nh thit k bit c cc ng dng s chy trn CSDL. Th d 1.13: Xt quan h DA, 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 Ngn sch FROM DA WHERE Mda=gi tr q2: Tm tn v ngn sch ca tt c mi d n

SELECT TNDA, ngn sch FROM DA q3 : Tm tn ca cc d n c thc hin ti mt thnh ph cho SELECT tn DA FROM DA WHERE a im=gi tr q4: Tm tng ngn sch d n ca mi thnh ph SELECT SUM (ngn sch) FROM DA WHERE a im=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=MDA, A2=TnDA, A3= Ngn sch, A4=a im. Gi tr s dng c nh ngha di dng ma trn, trong mc (i,j) biu th use(qi, Aj).

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 (affmity) ca cc thuc tnh aff(Ai, Aj), biu th cho cu ni (bng) 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 Q= {ql,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) = {q Q: use(q, A) = use(q, B) = 1} Th d da vo ma trn trn ta thy Q(A1,A1) = {ql}, Q(A2,A2) = {q2}, Q(A3, A3) = {q1,q2,q4}, Q(A4,A4) = {q3, q4}, Q(Al, A2 ) = rng, Q(Al,A3) ={ql},

Q(A2, A3 ) = {q2} s o lc ht gia hai thuc tnh Ai, Aj c nh ngha l:

Trong ref1 (qk) l s truy xut n cc thuc tnh (Ai, Aj) cho mi ng dng qk ti v tr Rl v acc1(qk) l s o tn s truy xut ng dng qk n cc thuc tnh Ai, Aj ti v tr 1. 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) (auribute affmity matrix). Th d 1.14: Chng ta hy tip tc vi Th d 1.13. cho n gin chng ta hy gi s rng ref1 (qk) = l cho tt c qk v Rl. Nu tn s ng dng l: Accl(q1) = 15 Accl(q2) = 5 Accl(q3) = 25 Accl(q4) = 3 Aff(Al, A3) = Acc2(q1) = 20 Acc2(q2) = 0 Acc2(q3) = 25 Acc2(q4) = 0 Acc3(q1) = 10 Acc3(q2) = 0 Acc3(q3) = 25 Acc3(ql) = 0

S o lc ht gia hai thuc tnh Al v A3 l:


1 k =1

3 t =1

acc1(qk) = accl(ql) + acc2(ql) + acc3(ql) = 45

Tng t tnh cho cc cp cn li ta c ma trn i lc sau:

Thut ton nng lng ni BEA (Bong 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, th d t lc ca Al, A3 l 45, ca A2, A4 l 75, cn ca Al, 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. 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 affmity matrix). Hon v c thc hin sao cho s o i lc chung AM (Global Affmity Measure) l ln nht. Trong AM l i lng: AM =


n i =1

n j =1

aff(Ai,Aj)[aff(Ai,Ai-l)+aff(Ai,Aj+l)+aff(Ai-l,Aj)+aff(Ai+l,Aj)]

Vi aff(A0,Aj)=aff(Ai,A0)=aff(An+l,Aj)=aff(Ai,An+l)=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= in=1 nj=1 aff(Ai, Aj)[aff(Ai, Aj-l)+aff(Ai, Aj+1] Qu trnh sinh ra ma trn t lc (CA) c thc hin qua ba bc: Bc l: Khi gn: t v c nh mt trong cc ct ca AA vo trong CA. Th 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+l 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: AA - ma trn i lc thuc tnh; Output: CA - ma trn i lc t sau khi sp xp li cc hng cc ct; 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 {chn v tr "tt nht " cho thuc tnh Aindex} begin for i:=l to index-1 by 1 do tnh cont(Ai-l, Aindex, Ai); Tnh cont(Aindex-1, Aindex, Aindex+l); {iu kin bin} Lc ni t, c cho bi gi tr com ln nht; for i: = index downto lc do {xo trn hai ma trn} CA( , j) CA( , i-l); CA( , loc) AA( , index); index index+1 ; 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= in=1 nj=1 aff(Ai, Aj)[aff(Ai, Aj-l)+aff(Ai, Aj+l)] V c th vit li: AM =

=
n i =1 n i =1

n j =1 n j =1

aff(Ai, Aj) aff(Ai, Aj-l)+aff(Ai, Aj) aff(Ai, Aj+l)] aff(Ai, Aj) aff(Ai, Aj-l)+

n i =1

aff(Ai, Aj) aff(Ai, Aj+l)]

Ta nh ngha cu ni (Bng) gia hai thuc tnh Ax, v Ay l: Bond(Ax, Ay )= Th th c th vit li AM l:

n i =1

aff(Az, Ax)aff(Az, Ay)

AM =

n j =1

[Bond(Ai, Aj-l)+Bond(Ai, Aj-1]

By gi xt n thuc tnh sau: A1 A2Ai - 1 AiAj j+1... An Vi Al A2Ai-l thuc nhm AM v AiAj Aj+l An thuc nhm AM Khi s o lc ht chung cho nhng thuc tnh ny c th vit li: AMold = AM + AM+ bond(Ai-l,Ai) + bond(Ai,Aj) + bond(Aj,Ai) bond(bond(Aj+l,Ai) =

n l =1

bond(Al,Al-l)+bond(Ai,Al+l)]

n l =i +1

[bond(Al,Al-1)+bond(Ai, Al+l)] + 2bond(Ai, Al) 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+l)=0. Th d 1.15 : Ta xt ma trn c cho trong Th d 1.14 v tnh ton phn ng gp khi di chuyn thuc tnh A4 Vo gia cc thuc tnh Al v A2, c cho bng cng thc: Cont(Al, A4, A2)= 2bond(Al, A4)+ 2bond(A4, A2)-2bond(Al, A2) Tnh mi s hng chng ta c : Bond(Al, A4) =

4 z =1

aff(Az, Al)aff(Az, A4) = aff(Al, Al) aff(Al, A4) +aff(A2,

Al) aff(A2, A4) + aff(Al, A3) aff(A3, A4) + aff(Al, A4) aff(A4, A4) = 45*0 + 0*75 + 45*3 + 0*78 = 135 Bond(A4, A2)= 11865 Bond(Al, A2) = 225 V th cont(A1, A4) = 2*135+2*11865+2*225 = 23550 Th 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. 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-l-2),

(l, 3, 2) v (l, 2, 3). Chng ta hy tnh ng gp s i lc chung ca mi kh nng ny. th t (0-3-l): cont(A0, A3, Al) = 2bond(A0, A3)+ 2bond(A3, A1) - 2bond(A0, Al) bond(A0, A3) = bond(A0, Al)=0 bond(A3, Al) = 45*48+5*0+53*45+3*0=4410 cont(A0, A3, A1) = 8820 th t ( 1 -3 -2) com (Al , A3, A2)= 10150 th t (2-3-4) com (A2, A3, A4)=1780 Bi v ng gp ca th t (l-2-3) l ln nht, chng ta t A3 vo bn phi ca Al. 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 sau:

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 D n. Tuy nhin, ni chung th ranh ti 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:

Nu mt im nm trn ng cho c c nh, hai tp thuc tnh ny c xc nh. Mt tp {Al, A2,,Ai} nm ti gc trn tri v tp th hai {Ai+l, 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={ql, 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: AQ(qi) = {Aj | use(qi, Aj) = l} 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-l v tr kh hu c th l im phn chia trn ng cho chnh ca ma trn thuc tnh t cho quan h . V tr tt nht phn chia l v tr sinh ra tp TQ v BQ sao tho 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:

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 (On). 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-l tnh CBQn-l tnh COQn-l best CTQn-l*CBQn-l - (COQn-l)2 do begin for i from n-2 to 1 by - 1 do begin tnh CTQi tnh CBQi tnh COQi {xc nh Cch phn hoch tt nht}

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 d n, kt qu l nh ngha cc mnh Fd n = {D n1, D n2} Trong : D n1 = {A1, A3} v D n2= {A1, A2, A4}. V th D nl={M d n, Ngn sch} D n2={M d n, Tn d n, a im} ( y M d n l thuc tnh kho ca D n) 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={Rl, R2,,Rr) v cc thuc tnh kho K R= >< K Ri, Ri FR 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. 1.3.5 - Phn mnh hn hp Trong a s cc trng hp, phn mnh ngang hoc phn mnh dc n gin cho mt lc CSDL khng p ng cc yu cu t ng dng. Trong trng hp phn mnh dc c th thc hin sau mt s mnh ngang hoc {K l tp thuc tnh kho chnh ca R}

ngc li, sinh ra mt li phn hoch c cu trc cy. Bi v hai chin lc ny c p dng ln lt, chn la ny c gi l phn mnh hn hp.

1.3.6 - Cp pht 1.3.6.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={Sl, S2,Sm} trn c mt tp cc ng dng Q={ql, 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 [Dowdy and Foster, 1982]: - 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 Si, chi ph cp nht Fi ti tt c mi v tr c cha n v chi ph truyn 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. 1.3.6.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 Fi ng vi cu vn tin qi. y l s lng cc b ca Fj cn c truy xut x l di. Gi tr ny k hiu l seli(Fi) Kch thc ca mt mnh Fi c cho bi

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 Fi trong mi ln chy ca n (k hiu l RRij) v tng ng l cc truy xut cp nht (URij). Th 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:
uij= rij=

1 nu vn tin q; c cp nht mnh Fj 0 trong trng hp ngc li 1 nu vn tin qi c cp nht mnh Fj trong trng hp ngc li

Mt vc t 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. 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. 1.3.6.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: Mn (Total Cost) ng vi rng buc thi gian p ng, rng buc lu tr, rng buc x l. Bin quyt nh x c nh ngha l:

xij=

1 nu mnh Fi c lu ti v tr Sj 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:

vi QPCi l chi ph x l cu vn tin ng dng qi, v STCjk l chi ph lu mnh Fi ti v tr Sk. Chng ta hy xt chi ph lu tr trc. N c cho bi STCjk = UCSk * SiZe(Fi) *xjk 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 ta s m t chi tit v,AC:

Hai s hng u trong cng thc trn tnh s truy xut ca vn tin q; n mnh Fi. Ch rng (URii+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 i tham chiu. Nhn vi LPCk cho ra chi ph ca truy xut ny ti v tr Sk, chng ta li dng xin 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 lt 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. 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 uyn d liu.

S hng th nht gi thng bo cp nht t v tr gc om ca ai 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:

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 di 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 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:
FjF STCjk kh nng lu tr ti v tr Sk Sk S

Trong rng buc x l l:

qjQ ti trng x l ca ai ti v tr Sk kh nng x l ca Sk, Sk S.

l.4-X l Vn tin (quay processor) Ng cnh c chn y l php tnh quan h v i s quan h. Nh ta thy cc quan h phn tn c ci t qua cc mnh. Thit k CSDL c vai tr ht sc quan trng i vi vic x l vn tin v nh ngha cc mnh c mc ch lm tng tnh cc b tham chiu, v i khi tng kh nng thc hin song song i vi nhng cu vn tin quan trng nht. Vai tr ca th x l vn tin phn tn l nh x cu vn tin cp cao trn mt CSDL phn tn vo mt chui cc thao tc ca i s quan h trn cc mnh. Mt s chc nng quan trng biu trng cho nh x ny. Trc tin cu vn tin phi c phn r thnh mt chui cc php ton quan h c gi l vn tin i s. Th hai, d liu cn truy xut phi c cc b ha cc thao tc trn cc quan h c chuyn thnh cc thao tc trn d liu cc b (cc mnh). Cui cng cu vn tin i s trn cc mnh phi c m rng bao gm cc thao tc truyn thng v c ti u ha hm chi ph l thp nht. Hm chi ph mun ni n cc tnh ton nh thao tc xut nhp a, ti nguyn CPU v mng truyn thng. 1.4.1- Bi ton x l vn tin C hai phng php ti u ha c bn c s dng trong cc b x l vn tin: phng php bin i i s v chin lc c lng chi ph. Phng php bin i i s n gin ha cc cu vn tin nh cc php bin i i s nhm h thp chi ph tr li cu vn tin, c lp vi d liu thc v cu trc vt l ca d liu. Nhim v chnh ca th x l vn tin quan h l bin i cu vn tin cp cao thnh mt cu vn tin tng ng cp thp hn c din t bng i s quan h. Cu vn tin cp thp thc s s ci t chin lc thc thi vn tin. Vic bin i ny phi t c c tnh ng n ln tnh hiu qu. Mt bin i c xem l ng n nu cu vn tin cp thp c cng ng ngha vi cu vn tin gc, ngha l c hai cng cho ra mt kt qu. Mt cu vn tin c th c nhiu cch bin i tng ng thnh i s quan h. Bi v mi chin lc thc thi tng ng u s dng ti nguyn my tnh rt khc nhau, kh khn chnh l chn ra c mt chin lc h thp ti a vic tiu dng ti nguyn. Th d 4.l: Chng ta hy xt mt tp con ca lc CSDL c cho NV( MNV, TNNV, Chc v), PC (MNV, MDA, Nhim v, Thi gian) V tht cu vn tin n gin sau: "Cho bit tn ca cc nhn vin hin ang qun l mt d n"

Biu thc vn tin bng php tnh quan h theo c php ca SQL l: SELECT FROM WHERE TnNV NV, PC NV.MNV=PC.MNV AND Nhim v="Qun l" Hai biu thc tng ng trong i s quan h do bin i chnh xc t cu vn tin trn l:

Hin nhin l trong cu vn tin th hai, chng ta trnh s dng tch Descartes, v th tiu dng t ti nguyn my tnh hn cu vn tin th nht v v vy nn c gi li. Trong bi cnh tp trung, chin lc thc thi vn tin c th c din t chnh xc bng mt m rng ca i s quan h. Nhim v chnh ca th x l vn tin tp trung l i vi mt cu vn tin cho, n phi chn ra c mt cu vn tin i s tt nht trong s nhng cu vn tin tng ng. Bi v y l bi ton phc tp v mt tnh ton khi s lng cc quan h kh ln, nn ni chung n thng c rt li yu cu l chn c mt li gii gn ti u. ~ Trong cc h phn tn, i s quan h khng din t cc chin lc thc thi. N phi c cung cp thm cc php ton trao i d liu gia cc v tr. Bn cnh vic chn th t cho cc php ton i s quan h, th x l vn tin phn tn cng phi chn cc v tr tt nht x l d liu, v c th c cch bin i d liu. Kt qu l khng gian li gii cc chin lc thc thi tng ln, lm cho vic x l vn tin phn tn tng ln rt nhiu. Th d 4.2: Th d ny minh ha tm quan trng ca vic chn la v tr v cch truyn d liu ca mt cu vn tin i s. Chng ta xt cu vn tin ca th d trn:

chng ta gi s rng cc quan h NV v PC c phn mnh ngang nh sau:

Cc mnh PCi, PC2, NV1, NV2 theo th t c lu ti cc V tr 1, 2, 3 v

4 v kt qu c lu ti v tr 5

Hnh 4.b) Chin lc b

Mi tn t v tr i n v tr j c nhn R ch ra rng quan h R c chuyn t v tr i n V tr j. Chin lc A s dng s kin l cc quan h EMP v ASG c phn mnh theo cng mt cch thc hin song song cc php ton chn v ni. chin lc B tp trung tt c cc d liu ti v tr lu kt qu trc khi x l cu vn tin. nh gi vic tiu dng ti nguyn ca hai chin lc ny, chng ta s dng mt m hnh chi ph n gin sau. Chng ta gi s rng thao tc try xut mt b (tuple access) c k hiu l tupacc, l mt n v v thao tc truyn mt b (tuple transfer) tuptrans l 10 n v. ng thi chng ta cng gi s l cc quan h NV v PC tng ng c 400 v 1000 b, v c 20 gim c d n thng nht cho cc v tr Cui cng ta gi s rng cc quan h PC v NV c gom t cc b tng ng theo cc thuc tnh Nhim v v MNV. V vy c th truy xut trc tip n cc b ca PC da trn gi tr ca thuc tnh Nhim v (tng ng l MNV cho NV) * Tng chi ph ca chin lc A c th c tnh nh sau: 1 To ra PC bng cch chn trn PC cn (10+10)* tupacc = 20

2. Truyn PC n v tr ca NV cn (10+10)*tuptrans = 200 3. To NV bng cch ni PC v NV cn (10+10)*tupacc*2= 40 4. Truyn NV n v tr nhn kt qu cn (10+10)*tuptrans = 200 Tng chi ph * Tng chi ph cho chin lc B c th c tnh nh sau: 1. Truyn NV n v tr 5 cn 400*tuptrans 2. Truyn PC n v tr 5 cn 1000*tuptrans 3. To ra PC bng cch chn trn PC cn 1000*tupacc 4. Ni NV v PC cn 400*20*tupacc Tng chi ph l = 4.000 =10.000 = 1.000 = 8.000 23.000 460

Trong chin lc B, chng ta gi s rng cc phng php truy xut cc quan h NV v PC da trn cc thuc tnh Nhim v v MNV b mt tc dng do vic truyn d liu. y l mt gi thit hp l trong thc t. Chin lc A tt hn vi h s 50 "rt c ngha". Hn na n a ra mt cch phn phi scng vic gia cc v tr Khc bit cn cao hn na nu chng ta gi thit.l tc truyn chm hn v/ hoc mc phn mnh cao hn. Ch s nh gi tiu dng ti nguyn l tng chi ph (ton cost) phi tr khi x l vn tin. Tng chi ph l tng thi gian cn x l cc php ton vn tin ti cc v tr khc nhau v truyn d liu gia cc v tr. Mt cng c khc l thi gian p ng ca cu vn tin, l thi gian cn thit chy cu vn tin. V cc php ton c th c thc hin song song ti cc v tr khc nhau, thi gian p ng c th nh hn nhiu so vi tng chi ph ca n. Trong mi trng CSDL phn tn, tng chi ph cn phi gim thiu l chi ph CPU, chi ph xut nhp v chi ph truyn. Chi ph CPU l chi ph phi tr khi thc hin cc thao tc trn d liu trong b nh chnh. Chi ph xut nhp (I/O) l thi gian cn thit cho cc thao tc xut nhp a. Chi ph truyn tin l thi gian cn trao i d liu gia cc v r tham gia vo trong qu trnh thc thi cu vn tin. Chi ph ny phi tr khi phi x l cc thng bo (nh dng/ gii nh dng) v khi truyn d liu trn mng. Chi ph truyn c l l yu t quan trng nht c xt n trong CSDL phn tn. phc tp ca cc php ton quan h: cc php ton chn, Chiu (Khng loi b trng lp) c phc tp l O(n); Cc php chiu(c loi b trng lp), trng lp, ni, ni na, chia c phc tp l O(n*logn); Tch Descartes c phc tp l O(n2) ( N biu th lc lng ca quan h nu cc b thu c c lp vi nhau)

nh gi: + Cc thao tc c tnh chn la lm gim i lc lng cn phi thc hin trc tin. + Cc php ton cn phi c sp xp trnh thc hin tch Descartes hoc li thc hin sau. 1.4.2- Phn r vn tin Phn r vn tin l giai on u tin ca qu trnh x l cu vn tin. N bin i cu vn tin dng php tnh quan h thnh cu vn tin i s quan h. Cc vn tin nhp xut u tham chiu cc quan h ton cc v khng dng n cc thng tin phn b d liu. V th phn r vn tin u ging nhau trong c h thng tp trung ln phn tn, cu vn tin xut s ng v ng ngha v t cht lng theo ngha l loi b cc hnh ng khng cn thit. Phn r vn tin c th xem nh bn bc lin tip nhau: Chun ho, phn tch, loi b d tha, vit li cu vn tin Chun ho Mc ch ca chun ho (normalization) l bin i cu vn tin thnh mt dng chun x l tip. Chun ho mt vn tin ni chung gm c t cc lng t v lng t ho vn tin bng cch p dng u tin ca cc ton t logic. Vi cc ngn ng quan h nh SQL, bin i quan trng nht l lng t ho vn tin (mnh Where), c th l mt v t phi lng t vi phc tp no vi tt c cc lng t cn thit ( hoc ) c t pha trc. C hai dng chun c th cho v t, mt c th bc cao cho AND(^) v loi cn li cho th bc cao OR ( ). Dng chun hi l hi (v t ^) ca cc tuyn v t (cc v t vi :

trong mi l mt v t n gin. Ngc li, mt lng t ho dng chun tuyn nh sau: ~

Bin i cc v t phi lng t l tm thng bng cch s cc quy tc tng ng cho cc php ton logic (^, , ): 9

Trong dng chun tc tuyn, cu vn tin c th c x l nh cc cu vn tin con hi c lp, c ni bng php hp (tng ng vi cc tuyn mnh ). Nhn xt: Dng chun tuyn t c dng v dn n cc v t ni v chn trng nhau. Dng chun hi hay dng trong thc t Th d 4.3: Tm tn cc nhn vin ang lm vic d n Pl trong 12 thng hoc 24 thng. Cu vn tin c din t bng SQL nh sau: SELECT FROM WHERE AND AND TnNV NV, PC NV.MNV=PC.MNV PC.MDA= "Pl" Thi gian= 12 OR Thi gian=24

Lng t ho dng chun hi l: NV.MNV=PC.MNV ^ PC.MDA= "Pl" ^ (Thi gian. 12 Thi gian=24) Cn lng t ho dng chun tuyn l (NV.MNV=PC.MNV ^ PC.MDA="Pl" ^ Thi~gian=12) v (NV.MNV=PC.MNV ^ PC.MDA="Pl" ^ Thi gian=24) dng sau, x l hai hi c lp c th l mt cng vic tha nu cc biu thc con chung khng c loi b. Phn tch Phn tch cu vn tin cho php ph b cc cu vn tin chun ho nhng khng th tip tc x l c hoc khng cn thit, nhng l do chnh l do

chng sai kiu hoc sai ng ngha. Mt cu vn tin gi l sai kiu nu n c mt thuc tnh hoc tn quan h cha c khai bo trong lc ton cc, hoc nu n p dng cho cc thuc tnh c kiu khng thch hp. Select MaDA From TenNV >200. Mt cu vn tin gi l sai ngha nu cc thnh phn ca n khng tham gia vo vic to ra kt qu. Nu cc cc vn tin khng cha cc tuyn v ph nh ta c th dng th vn tin. Vn tin cha php chn ni chiu. - Biu din bng th vn tin: + 1 nt biu th quan h kt qu + Cc nt khc biu th cho quan h ton hng + Mt cnh gia hai nt khng phi l quan h kqu biu din cho mt ni + Cnh m nt ch l kt qu s biu th cho php chiu. + Cc nt khng phi l kt qu s c gn nhn l mt v t chn hoc 1 v t ni (chnh n) . - th ni: mt th con quan trng ca th vn tin, n ch c cc ni. V d : PC (MNV, MaDA, NV, Trun) NV (MaNV, TNNV, CV) DA (MaDA, TNDA, Kph, im) "Tm tn, Nv cc ca nhng ngi c Cv='tp' lm vic d n 'CAD/CAM' trong hn 3 nm" Select TNNV From PC, NV,DA Where PC.MaNV = NV.MaNV and PC.MaDA=DA.MaDA and TNDA='CAD/CAM' and CV ='TP' and tgian >36 Cc v t n gin: pl: PC.MaNV = NV.MaNV p 3 : TNDA= ' CADICAM' p2: PC.MaDA=DA.MaDA p4 : CV = ' TP ' p5: khan >36

V d: Select TNNV From PC, NV,DA Where PC.MaNV = NV.MaNV and TNDA= ' CADICAM ' and CV = ' TP ' and khan > 3 6

Nhn xt: Cu vn tin sai ng ngha nu th vn tin ca n khng lin thng: 1 hoc nhiu th con b tch ri vi th kt qu, Loi b d tha Mt cu vn tin ca ngi s dng thng c din t trn mt khung nhn c th c b sung thm nhiu v t c c s tng ng khung nhn - quan h, bo m c tnh ton vn ng ngha v bo mt. Th nhng lng t ho vn tin c sa i ny c th cha cc v t d tha, c th phi khin lp li mt s cng vic. Mt cch lm n gin vn tin l loi b cc v t tha - Loi b v t d tha bng qui tc lu ng: 10

V d : Select CV From NV Where mt (CV ='TP') and (CV='TP' oi Cv='pp') and not (CV= PPp')) oi Tnnv='Mai' p1: CV = TP p2: CV='PP' p3 : TNNV = 'Mai' p dng : p1 ((pl p2 ) v (p2 p2 ))) v p3 p dng 3: ( p1 p1 p2 ) v ( p1 p2 p2 ) v p3 p dng 7: (False p2) v ( p1 False) v p3 p dng 5 : False v False v p3 = p3 Vit li: Select CV From NV where Tnnv='Mai' Vit li cu vn tin Bc ny c chia thnh hai bc nh: (l) Bin i cu vn tin t php tnh quan h thnh i s quan h (2) Cu trc li cu vn tin i s nhm ci thin hiu nng. cho d hiu, chng ta s trnh by cu vn tin i s quan h mt cch hnh nh bng cy ton t. Mt cy ton t l mt cy vi mi nt l biu th cho mt quan h c lu trong CSDL v cc nt khng phi l nt l biu th cho mt quan h trung gian c sinh ra bi cc php ton quan h. Chui cc php ton i theo hng t l n gc biu th cho kt qu vn tin. Th d 4.7: Cu vn tin: "tm tn cc nhn vin tr J.Doe lm cho d n CAD/CAM trong mt hoc hai nm". Biu thc SQL l: SELECT FROM WHERE AND TnNV DA, PC, NV PC.MNV NV.MNV PC.MDA=DA.MDA Lng t ho : ( p1 (p1v p2) p2 ) v p3

AND TNNV "J.Doe" AND DA.TNDA="CAD/CAM" AND (Thi gian= 12 OR Thi gian=24) Cc th c nh x thnh cy trong hnh di.

Bng cch p dng cc quy tc bin i, nhiu cy c th c thy rng tng ng vi cy c to ra bng phng php c m t trn. Su quy tc tng ng hu ch nht v c xem l cc php ton i s quan h c bn : R, S, T l nhng quan h, trong R c nh ngha trn cc thuc tnh A={Al, A2,,An} v quan h S c nh ngha trn cc thuc tnh B={Bl, B2,, Bn}
B B

1. Tnh giao hon ca php ton hai ngi RxS R >< S SxR S >< R

Quy tc ny cng p dng c cho hn nhng khng p dng cho hiu tp hp hay ni na. 2. Tnh kt hp ca cc php ton hai ngi (R x S)x T (R >< S) >< T R x (S x T) R >< (S >< T)

3- Tnh tuy ng ca cc php ton n ngi Nu R c nh ngha trn tp thuc tnh A v A A, A" A v A' A" th

trong i l mt v t c p dng cho thuc tnh Ai 4. Giao hon Php chn vi Php chiu

Ch rng nu Ao l phn t ca {Ai, A2'''''An} th php chiu cui cng trn {Al, A2,,An) v phi ca h thc khng c tc dng. 5. Giao hon php chn vi php ton hai ngi

6-Giao hon php chiu vi php ton hai ngi Nu C=A B, trong A A, B B, v A, B l cc tp thuc tnh tng ng ca quan h R v S, chng ta c

Cc quy tc trn c th c s dng cu trc li cy mt cch c h thng nhm loi b cc cy x. Mt thut ton ti cu trc n gin s dng heuristic trong c p dng cc php ton n ngi (chn/ chiu ) cng sm cng tt nhm gim bt kch thc ca quan h trung gian. Ti cu trc cy trong hnh trn sinh ra cy trong hnh sau. Kt qu c xem l t cht lng theo ngha l n trnh truy xut nhiu ln n cng mt quan h v cc php ton chn la nhiu nht c thc hin trc tin.

1.4.3. Cc b ha d liu phn tn Tng cc b ha d liu chu trch nhim . dch cu vn tin i s trn quan h ton cc sang cu vn tin i s trn cc mnh vt l. Cc b ha c s dng cc thng tin c lu trong mt lc phn mnh. Cc b ho d liu s xc nh cc mnh no cn cho cu vn tin. Bin i cu vn tin phn tn thnh cc cu vn tin theo mnh. - Trong phn ny i vi mi kiu phn mnh ta s trnh by cc k thut rt gn to cc cu vn tin ti u v n gin hn. Ta s s dng cc qui tn bin i v cc khm ph, chng hn y cc php ton n ngi xung thp nh c th. Rt gn phn mnh ngang nguyn thu - Vic phn mnh ngang phn tn 1 quan h da trn cc v t chn V d:

NV (MaNV, TenNV, CV)

Cch lm: + Xc nh sau khi ti cu trc li cy con, xem cy no to ra cc quan h rng th loi b chng i. + Phn mnh ngang c th c dng n gin ho php chn v php ni Rt gn vi php chn: Chn trn cc mnh c lng t mu thun vi lng t ho ca qui tc phn mnh s sinh ra quan h rng ta loi b chng. rj = nu t thuc r : (t(pi) t(pj)) Trong p;, pj l cc v t chn, t biu th cho 1 b, tp) biu th "v t p ng vi t,, V d: NVI = MaNV'E3'(NV) NV2 = 'E3' < MaNV < 'E6'(NV) NV3 : MaNV > 'E6'(NV) Select MaNV From NV Where MaNV='E5' Bng cch hon v php chn vi php hp ta s pht hin ra v t chn >< v t ca NV1, NV3 . => to ra cc quan h rng => loi b

Rt gn vi php ni

- Ni trn cc quan h phn mnh ngang c th c n gin khi cc quan h ni c phn mnh theo thuc tnh ni. n gin ho gm c phn phi cc ni trn cc hp ri b i cc ni v dng. ( ri r2 ) |><| s = (r1 |><| s ) (r2 |><| s ) r; l cc mnh cn r, s l cc quan h Bng php bin i ny, cc hp c th c di chuyn ln trn cy ton t tt c cc ni c th c cc mnh u c l ra. Cc ni v dng c b i khi cc lng t ho ca cc mnh c mu thun. V d: cho 2 quan h c phn mnh NV1 = MaNV - E3 (NV) NV(MaNV, TNNV, CV) NV2 = E3 < MaNV < E6 (NV) NV3 = MANV > E6 (NV) PC 1 = MANV < E3 (PC) PC (MaNV, MaDA, NV, Tg) Cu hi : Select * From NV, PC Where NV.MaNV = PC.MaNV PC2 = MANV > E3 (NV)

Rt gn cho phn mnh dc Phn mnh dc phn tn mt quan h da trn cc thuc tnh chiu. Chng trnh cc b ho cho mt quan h phn mnh dc gm c ni ca cc mnh theo thuc tnh chung.

V d: NV(MaNV, TnNV, CV) NV1 = MaNV, TNNV(NV) NV2 = MaNV. CV(NV) Chng trnh cc b ho: NV = NVI |><| NV2 Cch lm Vn tin trn phn mnh dc c th c rt gn bng cch xc nh cc quan h trung gian v dng v loi b cc cy con sinh ra chng A={A1, A2, } v c phn mnh dc thnh ri (A ) trong A A ri (D,A) l v dng nu tp thuc tnh chiu D khng thuc A V d: NV(MaNV, TnNV, CV) NV 1 = MaNV, TnNV(NV) NV2 = MaNV, CV(NV) Select TnNV From NV

Rt gn cho phn mnh ngang dn xut Phn mnh ngang dn xut l mt cch phn phi hai quan h m nh c th ci thin kh nng x l cc im giao nhau gia php chn v php ni. - Nu quan h r phi phn mnh dn xut theo quan h s, cc mnh ca r v s ging nhau thuc tnh ni s nm cng v tr. Ngoi ra s c th c phn mnh theo v t chn. - Phn mnh dn xut ch c s dng cho mi lin h 1 - N (phn cp) t s n r: trong 1 b ca s c th khp vi nhiu b ca r V d: NV(MaNV, TNNV, CV) NV1= Cv='TP'(NV) NV2 = Cv TP(NV)

PC(MaNV, MaDA, NV, Tg)

PC1 = PC |><| NV1 PC2 = PC |><| NV2

" a ra tt c cc thuc tnh ca NV, PC vi NV :"PP" Select * From NV , PC Where NV.MaNV = PC.MaNV and NV.CV=PP Cu vn tin trn cc mnh NV1, NV2 , PC1 , PC2 c nh ngha. y php chn xung cc mnh NV1. NV2 cu vn tin rt gn li do mu thun vi v t chn ca NV1 = > loi b NV1

Rt gn cho phn mnh ngang hn hp Mc tiu: H tr hiu qu cc cu vn tin c cha php chiu, chn v ni Cu vn tin trn cc mnh hn hp c th c rt gn bng cch t hp cc qui tc tng ng c dng trong cc phn mnh ngang nguyn thu, phn mnh dc, phn mnh ngang dn xut. Qui tc : 1/ Loi b cc quan h rng c to ra bi cc php ton chn mu thun trn cc mnh ngang. 2/ Loi b cc quan h v dng c to ra bi cc php chiu trn cc

mnh dc 3/ phn phi cc ni cho cc hp nm c lp v loi b cc ni v dng. V d: NVI = MaNV E4(MaNV, TnNV (NV)) NV(MaNV, TnNV, CV) NV2= MaNV > E4(MaNV, TNNV (NV)) NV3 = MaNV, CV(NV) Chng trnh cc b ho NV = (NV1 u NV2 ) |><| NV3 Cu vn tin: Tn ca nhn vin c m E5

1.4.4- Ti u ho vn tin phn tn - Vic tm ra c mt cch sp xp ti u cc php ton cho mt cu vn tin chnh l nhim v ch yu ca tng ti u ha vn tin, hoc ni ngn gn l th ti u ha (optimizer). Vi cc vn tin phc tp c cha nhiu quan h, bi ton c th phi mt mt chi ph qu ln thc hin ti u ha. V th mc tiu thc s ca th ti u ha l tm ra mt chin lc gn ti u ha v quan trng hn l trnh c cc chin lc "ti". Mt chin lc thc thi cho cu vn tin phn tn c th c m t bng cc php ton i s quan h v cc nguyn thy truyn tin (cc thao tc gi v nhn) truyn d liu gia cc v tr. Bng cch hon v th t cc php ton trong mt cu vn tin theo mnh chng ta c th thu c nhiu cu vn tin tng ng. - Ti u ha vn tin bao gm vic tm mt th t "tt nht" cho cc php ton trong cu vn tin theo mnh, k c cc php ton truyn thng nhm h thp ti a hm chi ph. Hm chi ph thng c nh ngha theo n v thi gian: chi ph xut nhp, chi ph CPU v chi ph truyn. D vy trong mi trng

phn tn, chng ta thng n gin ha n bng cch ch xt n chi ph truyn, xem n l yu t u th. c th chn la c mt cch sp th t cho cc thao tc, iu cn thit l phi d on c cc chi ph thc thi ca cc sp xp khc nhau. Xc nh chi ph thc thi trc khi thc hin vn tin da vo cc s liu thng k ca cc mnh v cc cng thc tnh lc lng cho cc quan h kt qu v cc php ton. Cc quyt nh ti u ha ph thuc vo nhng thng tin thng k c sn v cc mnh. Mt im quan trng trong qu trnh ti u ha l xp th t ni, bi v hon v ca cc ni trong cu vn tin c th dn n nhiu ci thin c ngha. Mt k thut c bn ti u ho dy php ni phn tn l thc hin cc php ni na. Gi tr chnh ca ni na trong mi trng phn tn l lm gim kch thc ca cc ton hng ni, nh th lm gim i chi ph truyn. Tuy nhin cc k thut gn y trong c xt c chi ph tnh ton cc b ln chi ph truyn khng s dng ni na bi v chng lm tng chi ph x l cc b. thnh phm ca tng ti u ha vn tin l cu vn tin i s ti u ho trn cc mnh cng vi cc thao tc truyn i km. - Cc thut ton da trn ni na i vi mt quan h, ni na hnh ng nh mt tc nhn rt gn kch thc ging nh mt php chn. Ni ca hai quan h R v S trn thuc tnh A, c lu tng ng ti v tr 1 v 2, c th c tnh bng cch thay mt hoc c hai ton hng bng mt ni na vi quan h kia nh cc quy tc sau y:

Chn la gia mt trong ba chin lc ni na i hi phi c lng cc chi ph tng ng ca chng. S dng ni na s c ch nu chi ph to v gi n n v tr kia nh hn chi ph gi ton b quan h ton hng v thc hin ni thc s. minh ha ch li ca ni na chng ta hy so snh cc chi ph ca hai chn la R |><|A S Vi

Chng ta c th so snh hai chn la ny theo d liu c uyn. Chi ph ca thut ton da trn ni l chi ph truyn quan h R n v tr 2. Chi ph ca thut ton da trn ni na l chi ph ca cc bc 1 v bc 3 trn. V th phng php ni na s tt hn nu

Phng php ni na tt hn nu ni na hnh ng nh mt tc nhn rt gn y , ngha l ch mt s t b ca R tham gia vo trong ni. Phng php ni tt hn nu hu nh tt c cc b ca R u tham gia vo ni bi v phng php ni na i hi thm mt ln truyn kt qu chiu trn thuc tnh ni.. iu quan trng cn bit rng khng c cch tip cn no l tt nht, chng cn c xem nh b tr cho nhau. Tng qut hn ni na c th lm gim i kch thc ca cc quan h ton hng c trong cu vn tin, tuy nhin vic ti u ha vn tin s tr nn phc tp hn trong nhng trng hp ny. .

Nu so snh ni vi ni na th ni na phi thc hin nhiu php ton hn nhng rt c th trn cc ton hng nh hn. 1.5. Qun l giao dch 1.5.1. Giao dch (Transaction) Giao dch C nhiu nh ngha khc nhau v giao dch (transaction). Trong c 2 nh ngha c nhiu ngi s dng l ca Jeffrey D. Ullman v M.Tamer Ozsu v Patrick Valduriez Jeffrey D. Ullman [lo] cho rng, giao dch l mt thc hin ca mt

chng trnh. Chng trnh ny c th l mt cu vn tin hoc mt chng trnh trong ngn ng ch, trong c gn vo mt ngn ng vn tin. Mt giao dch s c c d liu t mt CSDL vo vng lm vic ring (private workpace), thc hin cc tnh ton trong vng lm vic ny v ghi d liu t vng lm vic ny vo c s d liu. Nh vy, cc tnh ton do giao dch thc hin khng lm thay i c s d liu cho n khi cc gi tr mi c ghi vo c s d liu. Mt nh ngha khc ca M. Tamer Ozsu v Patrick Valduriez cho rng giao dch l mt n v tnh ton nht qun v tin cy. iu ny c ngha l, mt giao dch thc hin mt truy xut trn c s d liu, gy ra mt s bin i trng thi. Nu c s d liu nht qun trc khi thc hin giao dch th cng s nht qun khi kt thc giao dch cho d giao dch ny c thc hin ng thi vi cc giao dch khc hoc xy ra s c trong lc n c thc hin. Ni chung, mt giao dch c xem nh c to bi mt dy cc thao tc c v ghi trn c s d liu cng vi cc bc tnh ton cn thit. Theo ngha ny, mt giao dch c xem nh mt chng trnh c cc cu vn tin truy vn n c s d liu c gn vo. Giao dch l mt thc hin ca mt chng trnh. Mt cu vn tin cng c th c xem l mt chng trnh v c a ra nh mt giao dch [10] . Qun l giao dch: B qun l giao dch (transaction manager - TM) chu trch nhim iu phi vic thc hin cc thao tc c s d liu ca cc ng dng. B qun l giao dch ci t mt giao din cho cc ng dng, bao gm cc lnh: begin-transaction, read, write, commit v abort. Cc lnh ny c x l trong mt DBMS phn tn. Mc d liu Mc d liu (item) l cc n v d liu trong c s d liu. Bn cht v kch thc cc mc d liu do nh thit k chn. Kch thc ca cc n v ny c la chn sao cho vic truy xut d liu c hiu qu. Chng hn trong m hnh d liu quan h, chng ta c th chn cc mc ln nh cc quan h, hoc cc mc nh nh cc b hay thnh phn ca cc b. Kch thc ca cc mc d liu c h thng s dng gi l mn (granularity) ca h thng. Mt h thng c gi l mn (fine-grained), nu n s dng cc mc d liu nh v h thng l th (coarse-grained), nu n s dng cc mc d liu ln. cng th s gim chi ph qun l vic truy cp cc mc, ngc li cng mn li cho php nhiu hot ng ng thi hn. Phng php thng dng nht iu khin vic truy cp cc mc l s dng kho cht (lch). B qun l kho cht (lch manager) l thnh phn ca

DBMS tru trch nhim theo di mt mc I hin c giao dch no ang c ghi vo cc thnh phn ca I hay khng. Nu c th b qun l kho cht s cn tr ngn cn khng cho giao dch khc truy cp I trong trng hp truy cp c th xy ra xung t, chng hn vic bn mt gh trn mt chuyn my bay hai ln. B xp lch v cc giao thc ngn nga s b tc ngi ta c th s dng b lp lch (scheduler) v cc giao thc . B lp lch l mt thnh phn ca h thng c s d liu, c vai tr lm trng ti phn x cc yu cu ang c xung t, chu trch nhim sp xp mt lch biu cho cc thao tc ca cc giao dch. Chng hn chng ta bit cch loi b kho sng ca mt b lp lch "n trc phc v trc". Mt b lp lch cng c th x l cc kho gi v tnh bt kh tun t bng cch: N cng c th buc mt giao dch phi i cho n khi kho m giao dch yu cu c gii phng. Buc mt giao dch phi hu b v ti thc hin. Giao thc theo ngha tng qut nht, ch l mt hn ch' trn chui cc bc nguyn t m mt giao dch c th thc hin [5], l cc qui tc m cc giao dch phi tun theo. Chng hn, chin lc trnh kho gi bng cch yu cu kho cht trn cc mc theo mt th t c nh no chnh l mt giao thc. Cc tinh cht ca giao dch 1) Tnh nguyn t Qun l giao dch l mt c gng lm cho cc thao tc phc tp xut hin di dng nguyn t (atomic). Ngha l mt thao tc c th xy ra trn vn hoc khng xy ra. Nu xy ra, khng c bin c hay giao dch no cng xy ra trong sut thi gian tn ti ca n. Cch thng dng nhm m bo c tnh nguyn t ca cc giao dch l phng php tun t ho (serialization). Phng php ny lm cho cc giao dch c thc hin tun t [7]. Mt giao dch khng c tnh nguyn t nu: Trong mt h thng phn chia thi gian, lt thi gian cho giao dch T c th kt thc trong khi T ang tnh ton v cc hot ng ca mt giao dch khc s c thc hin trc khi T hon tt. Hoc - Mt giao dch khng th hon tt c. Chng hn khi n phi chm dt gia chng, c th v n thc hin mt php tnh khng hp l, hoc c th do i hi nhng d liu khng c quyn truy xut. Bn thn h thng CSDL c th buc giao dch ny ngng li v nhiu l do. Chng hn giao dch c th b kt trong mt kho gi.

Trong thc t, mi giao dch u c mt chui cc bc c bn nh: c hay ghi mt mc d liu (tim) vo CSDL v thc hin cc php tnh ton s hc n gin trong vng lm vic, hoc cc bc s ng khc nh cc bc kho cht, gii phng kho, u thc (hon tp giao dch v c th c nhng bc khc na. Chng ta lun gi s rng nhng bc s ng ny l nguyn t. Thm ch thao tc kt thc lt thi gian xy ra khi .ang tnh ton cng c th xem l nguyn t. Bi v n xy ra trong vng lm vic cc b v khng c g c th nh hng n vng lm vic cho n khi giao dch ang thc hin d cc php tnh s hc c ti hot ng tr li [7]. 2) Tnh nht qun (consistency) Tnh nht qun ca mt giao dch ch n gin l tnh ng n ca n. Ni cch khc, mt giao dch l mt chng trnh ng n, nh x c s d liu t trng thi nht qun ny sang trng thi nht qun khc [5]. Vic xc nhn rng cc giao dch nht qun l vn iu khin d liu ng ngha. C s d liu c th tm thi khng nht qun khi giao dch ang thc hin, nhng n phi tr v trng thi nht qun khi kt thc giao dch (hnh v 2.l). Tnh nht qun giao dch mun ni n hnh ng ca cc giao dch ng thi. Chng ta mong rng CSDL vn nht qun ngay c khi c mt s yu cu ca ngi s dng ng thi truy nhp n CSDL. Tnh cht phc tp ny sinh khi xt n cc CSDL c nhn bn. Nu c s d liu c nhn bn, tt c cc bn sao phi c trng thi ging nhau vo lc kt thc giao dch. iu ny gi l tnh tng ng mt bn, v trng thi nht qun ca cc bn sao c gi l trng thi nht qun tng h. 3) Tnh bit lp Tnh bit lp l tnh cht ca cc giao dch, i hi mi giao dch phi lun nhn thy c s d liu nht qun. Ni cch khc, mt giao dch ang thc thi khng th lm l ra cc kt qu ca n cho nhng giao dch khc ang cng hot ng trc khi n u thc. C mt s l do cn phi nhn mnh n tnh bit lp: Mt t phi duy tr tnh nht qun qua li gia cc giao dch. Nu hai giao dch ng thi truy xut n mt mc d liu ang c mt trong chng cp nht th khng th bo m rng giao dch th hai c c gi tr ng. Hai l, tnh bit lp cho php khc phc cc hin tng hu b dy chuyn (cascading abort). Bi v nu mi giao dch cho php cc giao dch khc c cc mc m n ang thay i trc khi c u thc, nu n b hu b, mi thao tc

c cc gi tr nhng mc ny cng phi hu b theo. iu ny gy nhng chi ph ng k cho DBMS. Vn bit lp c lin quan trc tip n tnh.'nht qun CSDL v v th l ti ca iu khin ng thi. 4) Tnh bn vng Tnh bn vng mun ni n tnh cht ca giao dch bo m rng mt khi giao dch u thc, kt qu ca n c duy tr c nh v khng b xo ra khi CSDL. V th DBMS bo m rng kt qu ca giao dch s vn tn ti d c xy ra cc s c h thng. y chnh l l do m chng ta nhn mnh rng giao dch u thc trc khi n thng bo cho ngi s dng bit rng n hon tt thnh cng, tnh bn vng a ra cc vn khi phc d liu, ngha l cch khi phc CSDL v trng thi nht qun m mi hnh ng u thc u c phn nh. 1.5.2. Tnh kh tun t ca cc lch biu v vic s dng chng Mc ch ca giao thc iu khin tng tranh l xp lch thc hin sao cho khng xy ra s tc ng ln nhau gia chng. C mt gii php n gin: Ch cho php mt giao dch thc hin ti mt thi im. Nhng mc ch ca h qun tr c s d liu a ngi dng li l ti a ho s thc hin ng thi trong h thng sao cho nhng giao dch thc hin ng thi khng nh hng ln nhau . Lch biu l mt dy (c th t) cc thao tc ca mt tp cc giao dch tng tranh m trong th t ca mt thao tc trong mi giao dch c bo ton y l vn x l hot ng ng thi c lin quan n cc nh thit k CSDL ch khng phi cc nh thit k cc h thng ng thi tng qut. Gi s chng ta c mt tp cc giao dch S- { T1, T2, T3, } Lch biu tun t: Chng ta thy ngay rng nu cc giao dch thc hin tun t theo mt th t no , cc thao tc ca mi giao dch c thc hin k tip nhau, khng c mt thao tc no ca cc giao dch khc xen k vo th cc s c tranh chp chc chn khng xy ra v trong CSDL chng ta c mt kt qu no . Chng ta nh ngha mt lch biu cho mt tp cc giao dch S l th t (c th xen k) cc bc c bn ca ca cc giao dch (kho, c, ghi, ... ) c thc hin. : Cc bc ca mt giao dch cho phi xut hin trong lch biu theo ng th t xy ra trong giao dch .

Lch biu khng tun t: L lch m trong cc thao tc ca mt tp cc giao dch tng tranh c xen k vo nhau. Bi v lun c tch biu tun t cho tp giao dch S v vy chng ta s gi s rng hot ng ca cc giao dch ng thi l ng n nu v ch nu tc dng ca n ging nh tc dng c c ca tch biu tun t. Lch biu c gi l kh tun t (serializable) nu tc dng ca n ging vi tc dng ca mt lch biu tun t. Lch biu c gi l bt kh tun t nu tc dng ca n khng ging vi tc dng ca lch biu tun t. Mc tiu ca b xp lch l vi mt tp cc giao dch ng thi, a ra c mt lch biu kh tun t. Trong vic tun t ho, th t ca cc thao tc c v ghi rt quan trng: Nu hai thao tc ch c mt mc d liu th chng s khng nh hng n nhau v th t gia chng khng quan trng - Nu hai thao tc c hay ghi trn hai mc d liu hon ton khc nhau th chng s khng nh lluullg n nhau v th t gia chng khng quan trng - Nu mt thao tc ghi mt mc d liu v mt thao tc khc c hay ghi trn chnh mc d liu ny th th t gia chng rt quan trng. Xt cc lch biu Lch biu tun t T1 Read A A:=A-10 WriteA Read B B:=B+10 WriteB ReadB B:=B-20 writeB Read C C:=C+20 Write C thi trng Lch biu kh tun t T1 ReadA ReadB A:=A-10 B:=B -20 WrieA WriteB ReadB Read C B:=B+10 C:=C+20 WriteB Write C
Hnh 2.2 . Mt s lch biu

Lch biu bt kh tun t T1 ReadA A:=A-10 ReadB WriteA B:=B-20 ReadB writeB B:=B+10 ReadC WriteB C:=C+20 Write C T2

T2

Hnh 2.2 (a) l mt lch biu tun t Hnh 2.2 (b) l lch biu kh tun t

Hnh 2.2 (c) l lch biu bt kh tun t Trong thc t, qua cc tnh cht ca i s n thun ta c th gp mt lch biu l bt kh tun t nhng n cho cng kt qu so vi lch biu tun t. 1.5.3. Cc k thut iu khin tng tranh bng kha

Kho Kho (Lock) l mt c quyn ca mt giao dch c b qun l kho trao cho c th truy cp trn mt mc d liu. Hay kho l mt bin gn vi mt mc d liu trong c s d liu biu din trng thi ca mt mc d liu ny trong mi lin quan n thao tc thc hin trn . B qun l kho cng c th thu hi li kho ny. Ti mt thi im, mc d liu X c mt trong 3 trng thi: - C kho c (read-lock)( cn gi l kho chia s - shared lch): ch cho php mt giao dch c mt mc nhng khng c cp nht trn mc ny. - C kho ghi (wrire-lock) ( cn gi l kho c quyn - exclusive lch) : cho php thc hin c hai thao tc c ghi. - Khng c kho. Cc kho dc s dng theo cch sau: + Bt k mt giao dch no cn truy cp vo mt mc d liu trc ht phi kho mc d liu li. Giao dch s yu cu mt kho c nu ch cn c d liu v yu cu kho ghi nu va cn c v cn ghi d liu. + Nu mc d liu cha b kho bi mt giao dch no khc th kho s c cp pht theo ng yu cu. + Nu mc d liu ang b kho, HQT CSDL s xc nh xem kho c yu cu c mng thch vi kho hin hnh hay khng. Khi mt giao dch yu cu cp mt kho c cho n trn mt mc d liu m trn mc ang c mt kho c (ca giao dch khc) th kho yu cu ny c cp pht. Trong

trng hp kho yu cu l kho ghi th giao dch yu cu kho s phi ch cho n khi kho hin hnh c gii phng mi c cp kho. + Mt giao dch tip tc gi mt kho cho n thi im kho c gii phng, thi im ny hoc nm trong qu trnh thc hin giao dch hoc l thi im giao dch c chuyn giao hay b hu b. Ch khi kho ghi c gii phng th kt qu cua thao tc ghi mi thy c i vi cc giao dch khc. Mt s h thng cn cho php giao dch a cc kho c trn mt mc d liu v sau nng cp kho ln thnh kho ghi. iu ny cho php mt giao dch kim tra d liu trc, sau mi quyt nh c cp nht hay khng. B qun l kho lu cc kho trong mt bng kho (lock table). Khi iu khin cc hot ng tng tranh bng kho, c th xy ra cc tnh hung: Kho sng (live-lock) l tnh hung m mt giao dch yu cu kho trn mt mc m chng bao gi nhn c kho trong khi lun c mt giao dch khc gi kho trn mc ny (kho sng trn mc A ca giao dch T l kho khng kho c A v A lun b kho bi mt giao dch khc), mc d c mt s ln giao dch ny c c hi nhn kho trn mc . Rt nhiu gii php c cc nh thit k h iu hnh xut vn gii quyt kho sng. C th s dng mt chin lc n gin n trc, phc v trc" loi b c kho sng. B tc hay kho gi (deadlock) l tnh hung m trong mi giao dch trong mt tp hay nhiu giao dch ang i nhn kho ca mt mc hin ang b kho bi mt giao dch khc trong mt tp giao. ch v ngc li (mt mc trong giao dch ny b gi bi giao dch khc v ngc li). V d Gi s c hai giao dch ng thi Tl v T2 nh sau: Tl : Lock A ; Lock B ; Unlock A ; Unlock B; T2 : Lock B ; Lock A ; Unlock B ; Unlock A; Tl v T2 cng c th thc hin mt s tc v no trn A v B. Gi s Tl v T2 c thc hin cng lc. Tl yu cu v c trao kho trn A, cn T2 yu cu v c trao kho trn B. Do khi Tl yu cu kho trn B n s phi i v T2 kho B. Tng t T2 yu cu kho trn A n s phi i v Tl kho A. Kt qu l khng mt giao dch no tip tc hot ng c: mi giao dch u phi i giao dch kia m kho, v chng u phi i nhng chng bao gi nhn c kho nh yu cu. trnh b tc c th s dng cc gii php: (i) Buc cc giao dch phi a ra tt c cc yu cu kho cng mt lc v

b qun l kho trao tt c cc kho cho chng nu c, hoc khng trao v cho giao dch ny i nu mt hay nhiu kho c yu cu ang b gi bi mt giao dch khc. (ii) Gn mt th t tuyn tnh cho cc mc v yu cu tt c cc giao dch phi xin kho theo ng th t ny. (iii) Cch khc x l b tc l nh k kim tra yu cu kho v pht hin c xy ra b tc khng. Bng cch dng th ch, vi cc nt biu din Tj biu th Tj ang i nhn kho trn mt mc cc giao dch v cc cung Ti ang c Ti gi. Nu trong th c chu trnh, s b tc s xy ra v nu khng c chu trnh th kt lun khng c kho gi hay b tc. Nu mt kho gi b pht hin, khi h thng s buc mt trong cc giao dch b b tc phi khi ng li v tc dng ca giao dch trn c s d liu phi c hon ton tr li. 1.5.4. M hnh kha c bn Kho (Lochk l mt c quyn truy cp trn mt mc d liu m b qun l kho (lch manager) c th trao cho mt giao dch hoc thu hi li. Trong cc m hnh giao dch c s dng kho khng ch c cc thao tc c v ghi cc mc m cn c thao tc kho (lch) v m kho (unlock) chng. Mi mc c kho phi c m kho sau . Vi mt mc A, gia bc lch A v unlock A k\tip ca mt giao dch, giao dch ny phi c coi l ang gi mt kho trn A. Trong m hnh ny, chng ta da trn cc gi nh sau: Mt kho phi c t trn mt mc trc khi c hay ghi mc . - Cc thao tc kho hot ng trn c s ng b ho, ngha l nu mt giao dch kho mt mc b kho trc bi mt giao dch khc,. n khng th thao tc trn mc ny cho n khi kho ny c gii phng bng lnh m kho do giao dch ang gi kho trc thc hin. Mi giao dch u c th m c mi kho do chnh n kho. - Mt giao dch s khng yu cu kho mt mc nu n ang hin gi kho ca mc hoc m kho mt mc m n hin khng gi kho trn mc . Cc lch biu tun theo quy tc ny c gi l hp l . V d : Xt hai giao dch ng thi Tl v T2 cng truy xut n mc d liu A theo m hnh ny s l: Tl Lock A Read A T2 Lock A Read A

A:=A+1 Write A Unlock A

A:=A+1 Write A Unlock A

Nu Tl bt u trc T2, n s yu cu kho trn mc A. Gi s khng c giao dch no ang kho A, b qun l kho s cho n kho mc ny. Khi ch c Tl mi c truy xut n mc ny. Nu T2 bt u trc khi Tl chm dt th T2 thc hin Lock A, h thng buc T2 Phi i. Ch n khi Tl thc hin lnh Unlock A, h thng mi cho php T2 tin hnh. Nh vy, Tl hon thnh trc khi T2 bt u v kt qu l sau hai giao dch, gi tr ca A s l 32 Vi m hnh ny, kim tra tnh kh tun t ca mt lch biu, ta s xem xt th t m cc giao dch kho mt mc cho. Th t ny phi thng nht vi th t trong lch biu tun t tng ng. y thc cht l vic kim tra mt th c chu trnh hay khng. Thut ton 2.l: Kim tra tnh kh tun t ca mt lch biu. Nhp: Mt lch biu S cho mt tp cc giao dch Tl, T2,,Tk Xut : Khng nh S c kh tun t hay khng? Nu c th a ra mt lch biu tun t tng ng vi S. Phng php: Bc 1 : To ra mt th c hng G (gi l th tun t ho), c cc nt l cc giao dch, cc cung ca th ny c xc nh nh sau: Gi S l a1, a2,, an trong mi a; l mt thao tc ca mt giao dch c dng Tj : Lock Am hoc Tj : Unlock Am vi Tj l giao dch thc hin thao tc kho hoc m mc Am Nu ai l Tj : Unlock Am th hnh ng p k tip ai c dng Ts : Lock Am. Nu s i th v mt cung t Ti n Ts. Cung ny c ngha l trong lch biu tun t tng ng, Tj phi i trc Ts. Bc 2: Kim tra, G c chu trnh th S bt kh tun t. Nu G khng c chu trnh th ta trn mt th t tuyn tnh cho cc giao dch, trong Ti i trc TJ khi c mt cung i t Ti Tj. tm th t tuyn tnh , ta thc hin qu trnh sp xp tng nh sau. u tin ta xut pht t mt nt Ti khng c cung vo (ta lun tm thy mt nt nh th, nu khng th G l mt th c chu trnh), lit k Ti ri loi b Ti ra khi G. Sau lp li qu trnh trn cho n khi th khng cn nt no na. Khi , th t cc nt c lit k l th t tun t ca

cc giao dch. V d 2 .3 : Gi s ta c lch biu ca ba giao dch Tl, T2, T3 nh sau Tl : LOCK A T2 : LOCK B T2 : LOCK C T2 : unlock B Tl : Lock B Tl : Unlock A T2 : LOCK A T2 : unlock C T2 : unlock A T3 : LOCK A T3 : Lock C Tl : Unlock B T3 : unlock C T3 : unlock A th c 3 nt T1, T2 v T3, cc Cung c Xy dng nh Sau: bc (4) ta c T2 : unlock B, bc tip theo c lnh Lock B l bc (5) Tl : Lock B. Vy ta v mt cung t T2 Tl. bc (6) ta c Tl : Unlock A, bc tip theo c lnh Lock A l bc (7) T2: Lock A. Vy ta v mt cung t Tl T2 bc (8) ta c T2 : unlock C, bc tip theo c lnh Lock C l bc (11) T3 : Lock C. Vy ta v mt cung t T2 T3 bc (9) ta c T2 :unlock A, bc tip theo c lnh Lock A l bc (10) c T3: Lock A. Vy ta v mt cung t T2 T3 th ny c mt chu trnh nn lch biu cho bt kh tun t. V d : Lch biu ca ba giao dch Tl, T2, T3 (1) T2 : LOCK A (2) T2 : Unlock A (3) T3 : LOCK A (4) T3 : Unlock A (5) Tl : Lock B (6) Tl : Unlock B

(7) T2 : LOCK B (8) T2 : Unlock B

Hnh 2 .5 . th tun t cho ba giao dch

1.5.5. M hnh kha c v kha ghi Trong m hnh kho c bn, ta gi s rng khi kho mt mc c th thay i mc . Trn thc t, c nhng trng hp mt giao dch truy cp mt mc theo ngha ch c gi tr ca mc khng thay i gi tr ca mc . V vy nu ta phn bit hai loi truy cp: ch c (read giy) v c ghi (read write), th ta c th tin hnh c mt s thao tc ng thi b cm trong m hnh kho c bn. Khi , ta phn bit hai loi kho nh sau: Kho c (read lock or shared lock) k hiu Rlock hot ng nh sau: mt giao dch T ch mun c mt mc A s thc hin lnh Rlock A, ngn khng cho bt k giao dch khc ghi gi tr mi vo A trong khi T g kho A, nhng cc giao dch khc vn c th gi mt kho c trn A cng lc vi T. Kho ghi (write lock) k hiu Wlock hot ng nh trong m hnh kho c bn, ngha l mt giao dch mun thay i gi tr ca mc A s thc hin lnh Wlock A. Khi khng mt giao dch no c ly kho c hoc kho ghi trn mc . C kho c v kho ghi u c m bng lnh Unlock. Ngoi cc gi lnh nh m hnh kho c bn, ta c thm gi nh rng mt giao dch c th yu cu mt kho ghi trn mc m n ang gi kho c. Hai lch biu l tng ng nu: - Chng sinh ra cng mt gi tr cho mi mc, v Mi kho c c p dng bi mt giao dch xy ra trong c hai lch biu vo nhng lc mc b kho c cng gi tr. Thut ton 2.2: Kim tra tnh kh tun t ca cc lch biu vi cc kho c / ghi Nhp: Mt lch biu S cho mt tp cc giao dch Tl, T2,, Tk Xut: Khng nh S c kh tun t hay khng? Nu c th a ra mt lch biu tun t tng ng vi S. Phng php: Bc l: Chng ta xy dng mt th c hng G (gi l th tun t

ho), c cc nt l cc giao dch. Cc cung ca th c xc nh bng quy tc sau: Gi s trong S, Ti nhn kho c hoc kho ghi mc A, Ti l giao dch k tip kho ghi A, v i j, th ta s t mt cung t Ti Tj. Gi s trong S, giao dch Ti kho ghi A, Tm l kho c A sau khi Ti m kho A nhng trc cc giao dch khc kho ghi A, v i m, th ta s t mt cung t Ti Tm Bc 2: Kim tra, nu G c chu trnh th S bt kh tun t. Nu G khng c chu trnh th mt sp xp tng ca G l th t tun t ca cc giao dch ny. V d 2.5: Mt lch biu ca bn giao dch : (1) T2 : RLOCK A (2) T3 : RLOCK A (3) T2 : Wlock B (4) T2 : Unlock A (5) T3 : Wlock A (6) T2 : Unlock B (7) Tl : RLOCK B (8) T3 : Unlock A (9) T4 : Rlock B (10) Tl : RLOCK A (11) T4 : Unlock B (12) Tl : Wlock C (13) Tl : Unlock A (14) T4 : Wlock A (15) T4 : Unlock A (16) Tl : Unlock B (17) Tl : Unlock C th tun t ho ca lch biu ny c trnh by trong hnh 2.6. Cc nt l bn giao dch Tl, T2, T3, T4, cc Cung c Xc nh nh sau: bc (4) T2 m kho mc A Bc (5) T3 kho ghi mc A, T3 phi i sau T2, c mt cung t T2 n T3. bc (6) T2 m kho mc B Bc (7) Tl cc kho c mc B v T4 bc (9). Nh vy Tl v T4 phi i

sau T3, c mt cung t T2 n cc nt ny. bc (8) T3 m kho mc A, Bc (10) Tl l kho c mc A v kho ghi mc A ca T4 bc (14) . Nh vy Tl v T4 Phi i sau T3, c mt cung t T3 n cc nt ny. bc (13) Tl m kho mc A, bc (14) T4 kho ghi mc A , T4 phi i sau Tl, c mt cung t Tl n T4

Sp xp topo cho th ta c th t cc giao dch l: T1T2T3 T4 Giao thc hai pha ca m hnh trc cng c th p dng cho m hnh ny. Cc kho c v kho ghi u i trc bc m kho, v iu s m bo tnh kh tun t ca lch biu. Trong m hnh ny ta cng rt ra c qui tc lin quan n vic trao kho nh sau: Mt kho c trn mt mc c th c trao cho mt giao dch nu khng c kho ghi no ang c mt giao dch khc gi trn n. Mt kho ghi trn mt mc ch c th c trao cho mt giao dch nu khng c kho c hoc kho ghi no ang c mt giao dch khc gi trn mc . 1.5.6. Thut ton iu khin tng tranh bng nhn thi gian m bo tnh kh tun t ca cc lch biu, ngoi cc m hnh s dng kho nh trnh by trn. Ta cn s dng nhn thi gian (timestamp). tng chnh l gn cho mi giao dch mt nhn thi gian, chnh l im bt u ca giao dch [5]. Thit lp nhn thi gian Nu tt c cc giao dch u c b lp lch gn nhn thi gian th b lp lch s duy tr b m s lng cc giao dch c lp lch. Khi c mt giao dch mi yu cu c lp lch, b lp lch s tng b m s lng ny ln mt n v v gn tr s cho giao dch c yu cu. Nh vy, khng th xy ra trng hp hai giao dch c cng nhn thi gian, v th t tng i gia cc nhn thi gian ca cc giao dch cng chnh l th t m cc giao dch c

thc hin . Mt cch gn nhn thi gian khc cho cc giao dch l dng gi tr ca ng h h thng ti thi im bt u giao dch. Trong trng hp tn ti nhiu b xp lch do h thng CSDL chy trn mt my a b x l hoc trong h CSDL phn tn, th ta phi gn thm mt hu t duy nht cho mi nhn thi gian. Hu t ny chnh l nh danh ca b x l tng ng. Khi , vic ng b ho cc b m hoc ng h c dng mi b x l l mt yu cu quan trng m bo tnh kh tun t ca cc lch biu. m bo tnh kh tun t bng nhn thi gian Qui tc duy tr th t tun t ca nhn thi gian nh sau. Gi s ta c mt giao dch c nhn thi gian t ang mun thc hin mt thao tc X trn mt mc c thi im c tr v thi im ghi tw th: a/ Cho thc hin thao tc ny nu: X = Read v t tw hoc X = Write v t tr v t tw Trong trng hp trc, t thi im c l t nu t > tr v trong trng hp sau, t thi im ghi l t nu t > tw b/ Khng thc hin g nu X = Write v tr t < tw c/ Hu b giao dch ny nu: X = Read v t < tw hoc X = Write v t < tr V d : Trong Rlock c xem l Read, Wlock c xem l Write, cc bc Unlock khng tn ti. Cc giao dch Tl, T2, T3, T4 c cc nhn thi gian ln lt l 100, 200, 300, 400. bc (l) , T2 (c nhn thi gian l t = 200) c A (c WT = 0), tc t > tw. Thao tc ny l c php, v v t > tr (bng 0) nn RT ca A c t li l 200. Tng t bc (2) , T3 (c nhn thi gian l t = 300) c A (c WT = 0) tc t > tw Thao tc ny l c php, v v t > tr (bng 200) nn RT ca A c t li l 300. bc (3) , T2 (c nhn thi gian l t = 200) ghi B (c RT = 0 V WT = 0), tc t tr v t tw. Thao tc ny l c php, v t > tw (bng 0) nn WT ca B c t li l 200. bc (4) , T3 (c nhn thi gian l t = 300) ghi A (c RT = 300 v WT=0), tc t tr v t tw. Thao tc ny l c php, v t > tw (bng 0) nn WT

ca A c t li l 300. bc (5) , Tl (c nhn thi gian l t = 100) c B (c WT = 200), tc t < tw V vy thao tc ny b hu b. TI T1 100 (1) (2) (3) (4) (5) Read B Tl b hu b Write B Write A WT=300 T2 200 Read A Read A T3 300 T4 400 A RT=0 WT=0 RT=200 RT=300 WT=200 B RT=0 WT=0 C RT=0 WT=0

CHNG II C S D LIU SUY DIN 2.1. Gii thiu chung - Khi nim v CSDL suy din c nhiu nh nghin cu cp n theo hng pht trin cc kt qu m Green t c vo nm 1969 v cc h thng cu hi - tr li . - Xut pht t quan im l thuyt, cc CSDL suy din c th c coi nh cc chng trnh logic vi s khi qut ho khi nim v CSDL quan h. l cch tip cn ca Brodie v Manola vo nm 1989, ca Codd vo nm 1970, ca Da te vo nm 1986, ca Gardarin v Valdurier vo nm 1989 v ca Ullman vo nm 1984. - Lp trnh logic l mng cng vic trc tin khi chng minh nh l c hc. S tht th vic chng minh nh l to nn c s cho hu ht h thng lp trnh logic hin nay. T tng c bn ca lp trnh logic l s dng logic ton hc nh ngn ng lp trnh. iu ny c cp trong ti liu ca Kowaski nm 1970, v c Colmerauer a vo thc hnh nm 1975 trong cc ci t ngn ng lp trnh logic u tin, tc l ngn ng PROLOG (PROgramming LOGIC). Nh s hnh thc ho, Kowalski xem xt tp con ca cc logic bc mt, gi l logic mnh Hom. Mt cu hay mt mnh theo logic c th c nhiu iu kin ng nhng ch c mt hay khng c kt lun ng. ~ i vi nhu cu thc hnh CSDL suy din x l cc cu khng phc tp nh cc cu trong h thng lp trnh logic. S cc lut, tc l s cc cu vi cc iu kin khng trng trong CSDL suy din nh hn s cc s kin, tc cc cu vi iu kin rng. -Mt kha cnh khc nhau na gia CSDL suy din v lp trnh logic l cc h thng lp trnh logic nhn mnh cc chc nng, trong khi CSDL suy din nhn mnh tnh hiu qu. C ch suy din dng trong CSDL suy din tnh ton tr li khng c tng qut nh trong lp trnh logic. - Ngoi vic dng logic din t cc cu CSDL, ngi ta cn dng logic din t nhng cu hi v cc iu kin ton vn. 2.2- C s d liu suy din 2.2.1. M hnh c s d liu suy din M hnh d liu gm: + K php ton hc m t hnh thc d liu v cc quan h, v + K thut x l d liu nh tr li cc cu hi, kim tra iu kin ton vn.

Ngn ng bc mt c dng nh k php ton hc m t d liu trong m hnh CSDL suy din v d liu c x l trong cc m hnh nh vy nh vic nh gi cng thc logic. Tip cn ca logic bc mt nh nn tng l thuyt ca cc h thng CSDL suy din. Tuy nhin d biu din hnh thc cc khi nim v CSDL suy din, ta thng dng php ton v t, tc logic v t bc nht. Logic v t bc nht l ngn ng hnh thc dng th hin quan h gia cc i tng v suy din ra quan h mi. nh ngha 1: Mi mt hng s, mt bin s hay mt hm s p ln cc tm l mt hng thc (term) Hm n ngi f(x1 ,x2, , xn) ; xi | i = 1 ,2,, n l mt hng thc th f(x1, x2 ,, xn) l mt term. nh ngha 2: Cng thc nguyn t(cng thc nh nhn l kt qu ca vic ng dng mt v t trn cc tham s ca term di dng P(t1, t2,,tn). Nu P l v t c n ngi v ti 1 i=l,2, ..,n l mt hng thc(tenn). nh ngha 3: (Literal) Dy cc cng thc nguyn t hay ph nh ca cng thc nguyn t c phn tch qua cc lin kt logic ( ,, , , , , ) th cng thc c thit lp ng n. (i): Mt cng thc nguyn t l cng thc thit lp ng n. (ii): F, G l Cng thc thit lp ng n => F ^ G, F v G, F G, F G, F , G cng l cc cng thc thit lp ng n. (iii): Nu F l Cng thc thit lp ng n, m x l mt bin t do trong F => ( x)F v ( x)F cng l cc cng thc thit lp ng n ( x, x trong F ). V d 1 : Cho quan h R(A1, A2,, An) vi n bc ( tc n thuc tnh) => l mt v t n ngi. Nu ra (r b ca R) => (r.Al, r.A2,., r.An ) => R(A1, A2,..., An) nhn gi tr ng. Nu r R (r b ca R) => gn (r.Al, r.A2,. . ., lan ) => Rau, A2,.., An) nhn gi tr sai. nh ngha 4: Cu(clause) Cng thc c dng P1^p2^....^Pn Q1^Q2^....^Qn Trong : Pi v Qj (i, j =1,2,...,n) l cc Literal dng Trong h thng logic, Literal dng c dng nguyn t, nh nht, tri vi Literal m l ph nh ca nguyn t. nh ngha 5: Cu Hom (Hom clause) l cu c dng P1^p2^^Pn Q1

nh ngha 6: CSDL suy din tng qut (General deductive database) CSDL suy din tng qut, hay CSDL tng qut, hay CSDL suy din c xc nh nh cp (D,L), trong D l tp hu hn ca cc cu CSDL v L l ngn ng bc mt. Gi s L c t nht hai k hiu, mt l k hiu hng s v mt k kiu v t. + Mt CSDL xc nh (hay CSDL chun) l CSDL suy din(d,L) m D ch cha cc cu xc nh(cu chun). + Mt CSDL quan h l CSDL suy din (D,L) m D ch cha cc s kin xc nh. Vy CSDL quan h l mt dng c bit ca CSDL tng qut, hay chun, hay xc nh Cn mt CSDL xc nh l dng c bit ca CSDL chun hay tng qut. 2.2.2. L thuyt m hnh i vi c s d liu quan h 2.2.2.1. Nhn nhn c s d liu theo quan im 1ogic Mt CSDL c th c nhn nhn di quan im ca logic nh sau: L thuyt bc mt, hay Din gii ca l thuyt bc mt Theo quan im din gii, cc cu hi v cc iu kin ton vn l cng thc dng nh gi vic s dng nh ngha ng ngha. Cn theo quan im l thuyt, cc cu hi c coi nh cc nh l c th chng minh c hay cng thc hin nhin theo l thuyt ny. Hai tip cn ny c tham chiu n nh quan im l thuuyt m hnh, hay quan im cu trc quan h, v quan im l thuyt chng minh. Hai quan im trn c hnh thc ho thnh khi nim tng ng ca c s d liu thng thng v CSDL suy din. T tng ng sau quan im l thuyt chng minh ca CSDL(D,L) l (i) Xy dng mt l thuyt T, gi l l thuyt chng minh ca (D,L), bng cch dng cc cu D v ngn ng L, v (ii) Tr li cc cu hi trong CSDL. 2.2.2.2. Nhn li c s d liu quan h y ta xt lp cc CSDL quan h, tc l cc s kin lm nn da trn nn ca cc s kin, vi cc ngn ng khng cha bt k k hiu hm no. Cc gi thit c t ra trn lp ca cc CSDL quan h nh gi cc cu hi: 1) Gi thit v th gii ng(CWA Close World Assumption): Khng nh rng cc thng tin khng ng trong CSDL c coi l sai, tc l

R(al,a2,..,an) coi l ng ch khi s kin R(al,a2,..,an) khng xut hin trong CSDL. V d: C CSDL sau: Hoc_sinh(Xun) Sinh_vien(ng) Nghin_cu(ng) Thich(Xun, Ton) Nh vy theo CWA th b Thich(ng, Ton) c gi s l ng, tc ng khng thch Ton. 2) Gi thit v tn duy nht (UNA Unique Na me Assumption): Khng nh cc hng s ca cc tn khc nhau c coi l khc nhau. Theo v d trn c th ni rng hai hng s Xun v ng gn tn duy nht cho hai sinh vin khc nhau. 3) Gi thit v bao ng ca min (DCA Domain Closure Assumption): Cho rng khng c cc hng s ngoi cc hng s trong ngn ng ca CSDL. Theo v d trn c th ni rng Trit khng phi l hng ng. Cho CSDL quan h (D,L), D c mt vi hn ch L khng cha k hiu hm no. Vy CSDL ny c th c coi l din gii ca l thuyt bc mi gm c ngn ng L v cc bin ca L , nh c sp t trn min trong din gii ny. Vic nh gi cng thc Logic trong din gii ny da trn : R(al ,a2, . . . ,an) ng ch khi R(al ,a2, . . . ,an) D Cc tin ca ngn ng T: Theo quan im l thuyt chng minh ca CSDL quan h thu c bng cch xy dng l thuyt T trong ngn ng L. T1 . Xc nhn: i vi mi s kin R(al,a2,,an) D => R(al ,a2,,an) c xc nh. T2. Cc tin y : Vi mi k hiu quan h R, nu R(a11 , a21,,an1), R(a12, a22,, an2),, R(alm, a2=,., anm) k hiu cho cc s kin ca R th tin y i vi R l:
x1, x2,., xn R(al, a2,,an)(x1= a1 ^ x2 = a2 ^^ xn = an )V
1 1 1

(x1 = a12 ^ x2 = a22 ^.... ^ xn = an2) V. . ..V (x1 = a1m ^ x2 = a2m ^^ xn= anm) T3. Cc tin v tn duy nht: Nu a1, a2,.., ap l tt c nhng k hiu hng s ca L th (a1 a2), (a1 a3), . . . . , (a1 ap ), (a2 a3), (a2 a4), . . . , (ap-l ap ) T4. Cc tin v bao ng ca min: Nu a1, a2,.., ap l cc k hiu hng

s ca L th: x((x=a1) v (x=a2) v. . . .v (x=ap)) T5. Cc tin tng ng: 1. x(x=x) 2. x y((x=y) (y=x)) 3. x y z ((x=y) ^ (y:z) (x=z)) 4. x1, x1 ,, xn(P(x1, x2 ,, xn ^ (x1=yl ) ^ (x2=y2) ^^ (xn=yn) (yl, y2,..., yn)) 2.2.3. Nhn nhn c s d liu suy din y ch nhn nhn l thuyt chng minh p dng cho CSDL suy din. Ngn ng L ca CSDL (D, L) c xy dng ch bng cc k hiu xut hin trong D, v ngi ta c th dng bt k ng ngha th tc no trong ng cnh ca chng trnh logic nh cng c tm cc cu tr li bng cch suy din t l thuyt chng minh T, l thuyt T m bo ng ngha ca D nht tr vi ng ngha ca T. Lin quan n CSDL suy din, ngi ta a ra Comp(D) nh l l thuyt chng minh ca CSDL (D, Li v dng cch gii SLDNF tm cu tr li cho cu hi. Gi s (D, L)i l CSDL chun. Nh trong trng hp ca CSDL quan h, quan im l thuyt chng minh ca D t c bng cch xy dng mt l thuyt T trong ngn ng L. Cc tin l thuyt ca T nh sau: 1) Cc tin v y : Tin c c do hon thin mi k hiu v t ca L, tng ng vi cc cu trong D. 2) Tin v duy nht ca tn v v tnh tng ng: cc tin v l thuyt tng ng l tu theo cc k hiu hng s, hm s v v t ca L. 3) Tin v bao ng ca min : Nu a1, a2,, ap l tt c nhng phn t ca L v fl, f2,..,fq l cc k hiu hm s ca L, th tin v bao ng ca min, theo Lloyd nm 1987, Mancarella nm 1988 nh sau:
x((x=al) v (x=ap) v ( x1, x2,.., xm(x = fl(xl, x2,.., xm))) v ... v yl,

y2,. ..., yn( x = fq(yl, Y2,.. ., yn))))

2.2.4. Cc giao tc trn c s d liu suy din nh ngha l: Giao tc (Transaction) Mt giao tc trong CSDL suy din l mt mt xu hu hn ca cc php ton, hay cc hnh ng b sung, toi b hay cp nht cc cu. V mt CSDL suy din c xem nh tp cc cu, tc l theo quan im l thuyt m hnh, khng mt php loi b hay cp nht no c php thc hin trn s kin. Cc s kin l ngm c trong CSDL.

nh ngha 2: Khng nh (Commit) Mt giao tc c gi l c khng nh tt nu ton b xu cc php ton to nn kt qu tt ca giao tc. L do chnh ca vic khng m bo hon thnh tt mt giao tc l s vi phm iu kin ton vn khi thc hin cc php ton trong giao tc, hay h hng h thng, tnh ton v hn. 2.3. CSDL da trn 1ogic Trong phn ny ta i nghin cu CSDL da trn Logic m c th l chng trnh DATALOG. DATALOG l mt ngn ng phi th tc da trn logic v t bc nht. Ngi ta s dng m t thng tin cn thit khng theo cch ly thng tin trong cc th tc bnh thng m da trn logic (ngn ng DATALOG). 2.3.1. C php + K hiu : + v t so snh : <tn thuc tnh>e <gi tr> (Bin) so snh vi (gi tr) = {<, >, <=, >=, =, < >} + cch biu din cc lut(clause - Ru le) Q Pl, P2, tin Du "," Du ";" AND (^) OR (v)

Du : Ko theo Pi : l cc tin , gi thit, ch con, v t Q : l kt lun hay l s kin + Nu n = 0 : Q Cc s kin ca CSDL ci t. + Nu P Pl , P2, . . . Pn th P l lut quy ( hay v t trong thn v u lut) 2.3.2. Ng ngha L tp tt c cc s kin c suy din ra t chng trnh DATALOG. V d: (r1) Cham(x,y) B(x,y) (r2) Cham(x,y) m(x,y) (r3) ngb(x,y) Cham(x,z) , Cham(z,y)

(r4) B(x,y) (r7) : Ttin(x,y) Cham(x,z) , Ttin(z,y) (r5) M(x,y) (r6) : Ttin(x,y) , Cham(x,y) 2.3.3. Cu trc c bn CSDL DATALOG gm hai loi quan h: Cc quan h c s c lu tr trong CSDL, c dng nh ngi ta thy. Ngi ta cn gi c s ny l CSDL m rng EDB (Extended Database). Cc quan h suy din khng cn lu trong CSDL. Chng c dng nh quan h tm thi, cha cc kt qu trung gian khi tr li cu hi. Cc quan h ny c gi l CSDL theo mc ch IDB (Intentional Database). Mi quan h c tn v s ct. Khc vi i s quan h, cc thuc tnh ca mi quan h trong DATALOG khng mng tn hin r. Thay v c tn, mi thuc tnh cn c vo gi tr ca n. Cc chng trnh DATALOG c mt tp hu hn cc lut tc ng n cc quan h c bn v quan h suy din. ~ Trc khi a ra nh ngha hnh thc ta xt v d sau: + C lut v ngn hng nh sau: Ca(y,X) Gitin("H Ni", X, Y, Z), Z>1200 Lut ny gm quan h c s l "Gntin", quan h suy din l "Ca". Lut ny rt ra cc cp <Tn khch hng, Ti khon> ca tt c cc khch hng c ti khon ti chi nhnh "H Ni" v c s d ln hn 1200. + Lut trn c th vit c di dng biu thc tnh ton tng ng trn min xc nh v kt qu c b sung vo quan h suy din mi "Ca" { <X, Y> | W, Z (W, X, Y, Z) Gitin ^ W= "H Ni" ^ Z>1200} T ta i n mt s cng thc sau: 1) Cc lut c xy dng trn cc Literal c dng sau: P(Al , A2,,An), trong : P l tn ca quan h c s hay quan h suy din. Mi Ai (i= 1, 2 , . . . ,n) l hng s hay tn bin . 2) Mt lut trong DATALOG c dng: P(Xl, X2,..., Xn) Ql(x11, X12,...,X1,m1), Q2(X21, X22, . . . ,X2,m2) ,, Qr(Xr1, Xr2, . . . ,Xr,mi) , e Trong : + P l tn ca quan h suy din + Mi Qi l tn ca quan h c s hay quan h suy din + e l biu thc v t s hc i vi cc bin xut hin trong P v tt c cc Qi (mi bin xut hin trong P cng xut hin trong Qi no ).

Literal P(Xl , X2 ,, Xn) gi l u ca lut, phn cn li gi l thn ca lut. hiu chnh xc cch thc din gii mt lut trong Datalog, ngi ta xc nh khi nim thay th lut v hin trng ca lut. nh ngha 7: Thay th lut (Rule Substitution) Vic thay th lut c p dng cho mt lut l vic thay mi bin trong lut bng mt bin hay mt hng. Tc l, nu mt bin xut hin nhiu ln trong mt lut th phi thay n bng cng mt bin hay cng mt hng s. V d: Thay th i vi lut nu trong v d trn, bin Z c thay bng W v cc bin kia c thay bng hng s. Ca("M", 123) Gmtin("H Ni", 123, "M", W), W>1200 Tuy nhin, nu thay X bng hng s 123 v 333 th khng c Ca("M", 123) Gmtin("H Ni", 333, "M", W), W>1200 => sai nh ngha 8: Hin trng ca lut (Rule instantiation) Hin trng ca lut l vic thay th hp l cc bin bng cc hng s. Mt thay th ng cho ngi ta mt hin trng ca lut. V d: Ca("M", 123) Gitin("H Ni", 123, "M", 1500), 1500>1200 i vi lut c th c th c nhiu hin trng hp l. xem Datalog din gii lut ra sao, ngi ta xt mt hin trng ca lut: P(Xl, X2,..., Xn) Q1(x11, X12,...,X1,mi), Q2(X21, X22,...,X2,m2),..., Qr(xr1 , Xr2, . . . ,Xr,mi), e P ng nu cc biu thc: Q1 (C11 ,C12 , ,C1 ,m1)^Q2(C21,C22, ,C2,m2)^ . . . ^Q1(Cr1, Cr2,,Cr,mi) ^ e C gi t ng, Literal Qi(Ci1, Ci2, . . . ,Ci,mi) l ng nu n_b (Ci1, Ci2, ,Ci,mi) c mt trong quan h Qi V d: i vi lut: Ca(y,X) Gintin("H Ni", X, Y, Z), Z>1200 Ca(Y, X) l ng khi c hng s Cl tho mn iu kin sau: Cl>1200 n_b("H Ni", 123, "M", Cl) c trong quan h gitin. nh ngha 9: H qun tr CSDL suy din (Deductive DBMS) H qun tr CSDL cho php suy din cc n_b ca v t theo mc ch bng bng cch s dng cc lut logic. Cc chc nng ca h qun tr CSDL suy din c m t nh sau:

CSDL suy din c xy dng da trn cc quan h c s v quan h suy din. H qun tr CSDL ny c gi l suy din bi l n cho php suy ra cc thng tin t cc d liu lu tr theo c ch suy din logic. Cc thng tin l cc v t theo mc ch, cc thng tin ny c c khi ngi ta tng tc vi v t theo mc ch hoc cp nht v t c s. nh ngha 10: Cu hi Datalog (Datalog Quay) Mt cu hi trong CSDL suy din gm c: Mt chng trnh Datalog, tc l mt tp hu hn, c th rng ca cc lut. Mt Literal n c dng P(x1, x2, ,xn)? Trong xi (I = 1, 2 , ,n) l hng s hoc tn bin. Vic khai thc cu hi trc tin l tnh chng trnh Datalog, nu c. Tip theo P(xl, x2,.., xn) c nh gi. Th tc ny tng t nh la chn trong quan h P theo rng buc ph hp. V d 1 : Tm tt c cc n_b ca quan h vay ti chi nhnh H Ni. Khi ta c: Vay("H Ni",X, Y, Z) Cu hi ny khng c chng trnh Datalog. V d 2: Tnh tp cc khch hng ca chi nhnh "H Ni" c ti khon m s d trn 1200. Chng trnh Datalog ch c mt lut n. C(Y) Guitien("H Ni", X, Y, Z), Z>1200 Cu C(Y)? l tha; v n ch nhm xc nh quan h cn th hin. loi tr hin tng tha, ngi ta c th dng k php ngn gn, nu khng s b ln ln, nhm ln. Nu by gi cho cu P(x1, x2, . . , xn) v yu cu chng trnh Datalog bao hm mt lut n phn bit l: Hi(x1, x2 , . . . ,xn) . . . . . Trong xi (i=l , 2, . . . ,n) l tn bin. iu ny hiu rng ngi ta c cu: Hi(x1, x2, . . . ,xn)?

Cu ny l mt phn ca cu hi. Do vy, cu hi sau l tng ng vi cu hi trn l: Hi(Y) Guitien("H Ni", X, Y, Z), Z>1200 2.3.4. Cu trc ca cu hi trnh by cu trc ca cu hi ngi ta s dng th lut nh ngha 11: th lut (Ru le Gianh) Mt th lut i vi cu hi q l th c hng m: Cc nt ca th ng vi tp cc k hiu Literal c mt trong cc lut ca q. Cung ca th ng vi quan h trc gia Literal trong thn ca lut v Literal c mt trong u ca lut . Do vy th s c cung ai ~ aj Nu lut ny c mt trong cu hi: ai aj Ch : Vic xy dng ny khng tnh n tp cc bin v cc hng s c mt trong cc lut a dng ca cu hi ny. Thng tin duy nht ngi ta dng l tp cc k hiu Literal v quan h ca chng theo cc lut a dng. V d 1 : Xt cu hi : pl(x Y, Z) ql(x, Y), q2(x, Z), q3(y, Z) p2(A, B) Hi(B) p1(A, B), q4(B, A) p2(A, B), p3(B, A)

th ng vi cu hi ny l:

th trn l th khng c chu trnh thng c gi l cu hi khng quy V d 2: Xt cu hi:

p1(A, B, C) q1(A, B), P2(B, C) p2(x, Y) q2(x), pi(x, Y, Z) HI(A, B) p1(A, B, C), p2(B, C) th ng vi cu hi ny l:

th ny l th c chu trnh thng c gi l cu hi quy. Kt lun: + Vic xy dng cu trc ca cu hi cho php chng ta d dng trong vic nh gi cu hi. + Gia cu hi quy v cu hi khng quy cng c nhiu khc nhau kha cnh loi hnh cu hi trn CSDL. Thc t cho thy vic nh gi cu hi quy phc tp hn nh gi cu hi thng. 2.3.5. So snh DATALOG vi i s quan h V mt c bn ngn ng Datalog vi cc cu hi khng quy c xem nh tng ng vi i s quan h v kh nng th hin. Vi cc cu hi quy cho php ngi ta mt cng c mnh hn cc ngn ng quan quan h. iu ny ngn ng Datalog cho php hi cc cu hi khng c php trong i s quan h. (1) Php hp : l tp cc lut c cng u lut Hi(Xl, X2,...,Xn) rl(xl, X2,...,Xn) Hi(Y1 , Y2 ,,Yn) r2(y 1 , Y2 ,,Yn) V d l: (ri) Cham(x,y) B(x,y) (r2) Cham(x,y) m(x,y) V d 2:Tm tn ca cc khch hng ti chi nhnh "H Ni", lm nh sau: Hi(Y) Vay("H Ni", X, Y, Z) Hi(B) Gi tin("H Ni", A, B, C) Ch : hai lut th hin php hp l tch bit (2) Php chn : ng vi mt lut m thn lut c mt v t so snh -> biu thc chn. Php chn chn cc n-b trong quan h r c vit di dng cu hi:

r(x1, x2 , . . . , xn)? Trong : xi (i= 1 , 2 , . . ,n) l tn bin hay mt hng s. V d 1 : Cham(x,y) Cham(x,y) , y= Dng iu ny y= 'Dng'(cham(x,y)) ( php chn vi iu kin l y= 'Dng' ) V d 2: Chn (tm kim) tn ca nhng khch hng vay qu 1000? Hi(Y) Vay("H Ni", X, Y, Z), Z >1000 (3) Php chiu : l php ton ng vi mt s lut m c mt s bin thn lut m khng xut hin trong u lut. Cha(x) = KQ(x) Cham(x,y) , y = Dng (4) Php kt ni : l php ng vi lut m c bin chung cc v t ca thn lut. Php kt ni hai quan h r1 v r2 c vit di dng Datalog nh sau: Hi(X1, X2 , . . . ,Xn, Y1 , Y2 , . . , Ym) r1 (X1 , X2 , . . . ,Xn) , r2(Y1 , Y2 , . . , Ym) Trong : Xi, Yj | i=l,2,..,n v j=l,2,..,m l cc tn bin phn bit nhau. V d 1 : (r3) ngb(x,y) Cham(x,z) , Cham(z,y) (5) Kh nng quy: V d 1 : nh (r7) (r4) B(x,y) (r7) : Ttin(x,y) Cham(x,z) , Ttin(z,y) V d 2: Gi s c lc quan h: Qun l(tn nhn cng, tn ngi qun l) Lc th hin mi quan h ngi qun l v nhn cng. Gi s "Qun l" l mt quan h theo m hnh trn.

Tn nhn cng M Hoa Mai Lan Chn

Tn ngi qun l M M M M Hoa

Tch Hoa Yu cu : 1 ) Tm tn ca nhng ngi lm vic trc tip di quyn ca

ng M, tc ph thuc mc 1 , vit nh sau: Hi(X) Qun l(X, "M") 2) tm tn ca nhng ngi lm vic trc tip di quyn ca ngi do ng M qun l, tc phc thuc mc 2 vo ng M, Vit nh sau: Hi(X) Qun l(X, Y), Qun l(Y, "M") Nh vy, ngi ta khng th th hin yu cu trn ngi ph thuc bc n vo ng M trong i s quan h c. D nhin cu hi tm tn ca nhn cng lm vic di quyn ca ng M, trc tip hay gin tip, khng th to c bng i s quan h hay bng Datalog vi cc cu hi khng quy. Nguyn nhn l do ngi ta khng bit ng M qun l n mc no. Tuy nhin ngi c th to cu hi ny trong Datalog di dng cu hi quy nh sau: e(X) Qun l(X, "M") e(X) Qun l(X, Y), e(Y) Hi(X) e(X) Ch : a) Cch 1: i vi nhng cu hi quy ngi ta cng c th chuyn v cu hi khng quy bng cch s dng ngn ng ta Pascal vi mt s ln hu hn cc bc lp Vic lp c th hin qua cu lnh Repeat. iu kin trong cu Until s kim tra v tp hp, nh tnh bng nhau, bao nhau hay rng. Trong cu Until cc quan h suy din c coi nh cc tp. Do vy cu hi quy trn c th c vit li nh sau: e'(x) Qun l(x, "M") Repeat e(x) e ' (X) e'(x) Qun l(x, Y), e(y) Until e = e' M t: - Lut u tin tin nhn cng m ng M trc tip qun l. Khi hon thnh cc lut trong vng Repeat c nh gi. - Ti mi ln lp, mc tip theo ca nhn cng c tin v c b sung vo tp e. Th tc ny kt thc khi tp e = e' (Khi khng cn nhn cng mi c th c b sung vo e.). Mt khc, do tp nhng ngi qun l l hu hn. Cch thc hin: Theo di chu trnh vi cc d liu trong bng khi chy.

e ' = { Hoa, Lan, Mai } e = { Hoa, Lan, Mai } e' = {Hoa, Lan, Mai, Chn, Tch} e = {Hoa, Lan, Mai, Chn, Tch} Cch 2: Ngoi cch lm nh trn ngi ta c th c cch lm khc m vn t c kt qu nh trn: m(x, Y) Qun l(x, Y) m(x, Y) Qun l(x, Z), m(z, Y) Hi(X) m(X, "M") So snh gia cch 1 v cch 2: Cch l: Tm ra cc nhn cng ca ng M. Cch ny cho php tm nhanh hn. Cch 2: Tm tt c quan h nhn cng - ngi qun l ri chn.ra cc cp c tn ngi qun l l M b) Khc vi cu hi khng quy, ngi ta c nhiu chin lc nh gi cu hi quy nh chin lc nh gi t di - ln. nh gi cu hi quy e c gi l nh gi th. Tuy n n gin nhng khng my hiu qu trong s cc chin lc di - ln. S khng hiu qu l do khi ngi ta s dng lut quy, tp e trc c s dng trong tnh ton. hiu qu hn, ngi ta dng nh gi na th. Di y ch cc nhn cng va c b sung trong ln lp trc mi c lut xt n. Cch 11: i:=0 ei (X) Qun l(x, "M") Repeat e (X) ~ ei (X) ei + l(x) Qun l(x, Y), ei (Y) Until ei e Cch 21: i:=0 mi (X, Y) ~ Qun l(x, Y) Repeat m (X, Y) mi (X, Y) mi+ l(x, Y) Qun l(X, Z), mi (Z, Y)

i: = i +l Until mi m Hi(X) Qun l(X, "M") Lu : D c phng php nh gi tt hn nh gi th, ngi ta vn khng t c hiu qu nh trong cu hi cho cng kt qu trc . Cng c nhiu k thut m bo lm tinh k thut na th. 2.3.6. Cc h c s d liu chuyn gia Qua phn trn, ngi ta thy rng cc lut da trn logic c th tch hp c vo CSDL quan h. Cc lut nh vy bt u t cc s kin trong cc n b ca cc bng quan h. Cc h chuyn gia dng ny thc hin hn na cc hot ng c iu khin. nh ngha: H thng CSDL chuyn gia (Expert Database System) Mt h thng CSDL chuyn gia bao gm cc lut c dng "nu c tp cc n b no trong CSDL, th mt th tc c bit c khai thc ". Th tc ny c th cp nht CSDL; v cu lnh IF ca cc lut khc c th ng v th tc khc c thc hin. . . Nh vy CSDL loi ny gi l CSDL nng ng. Cu trc ca h thng CSDL chuyn gia tng t nh cu trc ca h chuyn gia trong tr tu nhn to. Khc nhau chnh gia hai loi hnh ny l vic s dng CSDL hoc s dng b nh trong, hay b nh o. Theo dng chun, mt h thng CSDL chuyn gia gm CSDL chun v h chuyn gia chun. H chuyn gia hi bng ngn ng ca CSDL, chng hn nh ngn ng SQL v i tr li t pha CSDL. 2.4. Mt s vn khc Ngoi cch tip cn v CSDL suy din nh trn, ngi ta cn quan tm n mt s vn v CSDL suy din sau: - Th nht l: nhng c trng ca qu trnh x l cu hi. Cn thit m t chi tit hn v la chn cc chin lc nh gi cu hi i vi CSDL xc nh v cc ch xc nh. Mt khc vic x l cu hi trong mi trng song song cng c quan tm. - Th hai l: cc nghin cu h thng v cc kha cnh ca iu kin ton vn. Cn c s phn loi chi tit tu theo bn cht ca rng buc, cch th hin ca rng buc trong cng thc logic, v cc quan im khc nhau v tho mn v v kim tra ton vn trong CSDL suy din. Bn cnh cn c cc phng php qun l iu kin ton vn trong CSDL suy din. -

- Th ba l: mu hnh ca h thng CSDL suy din. l mt s kin trc c th chp nhn c i vi h thng CSDL suy din. Khi chp nhn mt s kin trc no , CSDL suy din mu s c pht trin trc khi dng b din gii Prolog. - Th t l: cc CSDL suy din song song. Vic gii thiu mt vi kin trc song song ca CSDL suy din gm cc thut ton m t chi tit qu trnh x l cu hi. Cc cu hi c coi l xc nh v CSDL suy din c xc nh tch bit, t do v chc nng. Vic nh gi song song i vi cc iu kin ton vn cng l quan trng. - Th nm l: vic hnh thc ho cc chc nng gp ln v cc d liu ton vn. Trong cc phn trc iu kin ton vn ch l tnh v khng gp ln, dng cho CSDL chun. Khi pht trn CSDL, cc iu kin ton vn cng c lm ph hp. Ngi ta hnh thc ho cc chc nng gp ln, cc iu kin ton vn v cc rng buc trn giao tc. Cc ni dung trnh by trn mi ch l cc hng s pht trin, lm chi tit thm.

CHNG III C S D LIU HNG I TNG

Cc CSDL quan h, theo cc bng chim t l cao, khong 70%, trn th trng phn mm ng dng. Cc d liu c x l thuc loi s, k t. Cn li cc d liu phc tp nh vn bn, ho, bn , hnh nh, d liu nhiu chiu v cc d liu ng nh chng trnh, m phng qu trnhtrong CAD, vn phng hc, h chuyn giath ngi ta khng ch dng CSDL quan h m gii quyt c. M hnh i tng hay m hnh hng i tng rt a dng. N gm nhng mng ng ngha v cc ngn ng lp trnh hng i tng. Chng cho php m hnh ho nhng i tng phc tp c c trong cc th tc x l. D c nhiu ngn ng hng i tng, a s CSDL i tng da trn C++, la chn ny do tnh hiu qu v thng dng ca C++. Cc CSDL i tng k ra gm Ontons nm 1990, Versant nm 1991, Object Store nm 1991 v CSDL Objectivity nm 1990. Thc t cho thy CSDL i tng c cc u im: - Cho php xt cc lin kt i tng di dng cc php lu tr vi cc i tng - Cc i tng dng chung gia nhiu ngi s dng - Kh nng pht trin kho tri thc bng cch thm cc i tng mi v cc php x l km theo - Pht trin h qun tr CSDL da trn vic x l cc i tng phc tp, giao din chng trnh, i tng ng v tru tng. 3.1. Nguyn tc ca cc m hnh hng i tng 3.1.1 M hnh ha cc i tng + i tng(object): L tp hp cc phn t ca cc d liu c cu trc, tham chiu duy nht qua tn. V d: C th ly v d minh ho v i tng nh: mt con ngi. Ngi c cc d liu m t chi tit v h tn v thng tin v con ci, l con ngi khc. i tng l mt my bay, gm cc thng s bay, t li, k thut. th hin cc i tng, ngi ta dng cch vit nh trong ngn ng C++, trong mt nhm cc thuc tnh c xc nh sau tn ca i tng c t trong du ngoc nhn; cc thuc tnh tch nhau bng du phy.

V d : Ngi 1 {H: Nguyn, Tn: To, Tui:25, a ch: H Ni } Mt i tng c th n gin hoc gp ca tn v mt gi tr, nh s nguyn N1 { Gi tr:25 } , tuy vy chng c th phc tp v cha c cc i tng khc, nh my bay c 2 mm, 4 cch,. . . lm vic c vi i tng cn phi bit thm mt s khi nim sau: Tn ca i tng - S tham chiu chung. + nh tn ca i tng Mi i tng c mt tn. Hai i tng tuy c cng gi tr nhng c hai tn khc nhau s c xem nh hai i tng khc nhau. Mt i tng c th thay i gi tr, nhng khng th i tn. nh ngha : nh tn i tng( Object Identifier) Tham chiu mt cch duy nht gn vi i tng t khi to ra n, cho php ch nh i tng. Trong CSDL HT, tn i tng xc nh i tng, tn khc nhau ch cc i tng khc nhau. Nhn li d liu quan h, mi n-b xc nh qua gi tr ca n-b, nay dng tn, cho php xc nh khng ch gi tr, m cn tnh cht ca i tng, dng phn bit logic v vt l vi cc i tng khc. Hai i tng l trng nhau (O1 O2) nu chng trng tn. - Hai i tng l bng nhau (O1 = O2) khi chng c cng gi tr ; Do vy nu O1 O2 th O1= O2, ngc li khng ng. +Tham chiu chung Tn ca i tng l phng tin thun li cho vic m hnh ho cc i tng phc tp. C th mt i tng c th tham chiu n i tng khc. ~ V d: i tng Ngi tham chiu n i tng Xe m h s hu. Tuy nhin c th nhiu ngi chung chic xe . Ngi 1 { Tn : To , Xe : X1 } NGI2{TN: Tm, Xe: X1 } + Thuc tnh(attribute) Tnh cht ca i tng c gn tn; cho php tng ng vi mt gi tr hay mt tham chiu n i tng khc. 3.1.2 Phng php M hnh i tng th hin cu trc anh, cho php m hnh ho cc i tng v cc lin kt gia cc i tng. Mt khc m hnh i tng cn th

hin kha cnh ng, cho php qun l cu trc ca cc i tng theo chc nng, cn c gi l phng php. nh ngha: Th tc c trng bi tn u th tc, cc tham s gi v tham s tr v dng p ln mt i tng c tn. 3.1.3. Lp (Class) Lp l khun mu cho php xc nh tp cc tnh cht ca i tng, nh cc thuc tnh v cc phng php, v to nn cc i tng mang cc tnh cht . Th d: Xc nh lp Ngi v Xe (c php c chn m t lp l c php ca ngn ng C++), ngi ta dng k php * tham chiu n loi d liu khc. C hai phng php gn vi i tng Ngi l Gi-i,cho php tng tui hng nm cho mi i tng ngi v cho kt qu l tui mi nhn, v Li cho bit vic thay i xe lin quan n i tng Class Ngi{ String h; String tn; Int tui; Xe * m; Int Gi ); Vm Li (Xe); Class Xe{ String s; Ch to *Mc; String Loi; My *Mt; } ; 3.1.4- Cc lin kt tha k gia cc lp +Tng qut ho Lin kt phn cp gia cc lp cho php xc nh nhng i tng ca lp trn l tng qut hn cc i tng ca lp di. Lp thp gi l lp con. Lp trn gi l lp cha. +Tha k (Inheritance) Vic chuyn t ng cc tnh cht ca mt lp, cho cc lp con. Tt c cc phn t ca lp con l phn t ca lp cha th chng k tha cc tnh cht ca lp cha.Mc d c tha k cc tnh cht t lp cha, lp con cn

c cc tnh cht khc nh cc phng php v thuc tnh b sung. V d: Lp ngi c hai lp con l : Ngi c vic v ngi tht vic Class C vic: Ngi{ Char Ngh [12]; Thnh ph Ni_lm; Double Lng; Double Thng; Vm Lm-vic(); }; 3.1.5. Lc lp M t mt CSDL hng i tng gm cc lp, cc thuc tnh v cc phng php, cng nh cc lin kt tng qut ho gia cc lp 3.2- Tnh bn vng ca cc i tng 3.2.1- C s d liu hng i tng Nhng khi nim trn y mi cho php m hnh ho cc i tng. Mt khi nim v CSDL c b sung trong phn ny l tnh bn vng. nh gi mt h qun tr CSDL i tng, trc ht h thng phi c cc chc nng ca mt h qun tr CSDL. Ngoi ra n cn m bo mt s tnh cht nh di y. +Tnh bn vng ca cc i tng: Cc i tng cn nm chc chn trn phng tin nh nh a t, khi c mt chng trnh to ra. i tng bn vng: l i tng c lu gi trong CSDL, c thi gian tn ti di hn thi gian ca chng trnh to ra i tng . i tng tm thi: l i tng c lu trong b nh trong; do vy thi hn tn ti ca n khng qu thi hn ca chng trnh to ra i tng . +Tnh khai thc tng tranh: CSDL i tng cho php cc giao tc dng chung. Vic kho giao tc, kho d liu cn hn ch m bo tnh tng hp v d liu. + Tnh tin cy ca i tng Nhng i tng c th khi phc li khi c sai st xy ra. Cc giao tc cn chia nh m bo hoc chng c thc hin hon ton, hoc khng thc hin t g + Tnh tin li tra cu

Ngi ta yu cu tm c cc i tng theo gi tr ca thuc tnh i tng. Do vy cn qun l tn gi tr thuc tnh, cc kt qu ca phng php, cc lin h gia cc i tng. + Chc nng khc Phn b cc i tng Nhng m hnh v cc giao tc Nhng th h ca cc i tng 3.2.2. Qun l tnh bn vng Mt m hnh CSDL i tng cho php xc nh cc loi d liu ca i tng. Trong mi trng lp trnh, cc i tng cn c xy dng v b hu b trong b nh nh cc chc nng c bit, gi l b to dng v b hu b. + To dng i tng: chc nng gn vi mt lp cho pphp to nn v khi ng mt i tng trong b nh. + Hu b i tng: chc nng gn vi mt lp cho php hu mt i tng ra khi b nh. Vn t ra trong CSDL hng i tng l m bo tnh bn vng ca cc i tng trn (ra theo cch c th tn li c n. Mt gii php thng dng bo v cc i tng trn a gm vic t tn mi i tng bn vng v trang b mt chc nng cho php mt i tng trn a l bn vng. + Tha k tnh bn vng: K thut cho php xc nh cht lng ca i tng l bn vng do tha k t lp gc, khin cho cc i tng c kch hot hay ngng hot ng. + Tnh bn vng do tham chiu K thut cho php xc cht lng bn vng ca i tng nh t kho, tc gc ca bn vng, hoc nh vic n c i tng bn vng khc tham chiu n.

TI LIU THAM KHO 1. Nguyn Vn Hun. Mt s k thut x l song song trong c s d liu phn tn Tp ch KH&CN - i hc Thi Nguyn, s 4/2004. 2. Nguyn Vn Hun. Xy dng bi ton cp pht v ng dng trong c s d liu phn tn. Hi ngh khoa hc - Khoa CNTT HTN, 14/12/2004. 3. M. Temer zsu, Patrick Valduriez. Nguyn l cc h c s d liu phn tn. NXB Thng k, 2000. 4. Nguyn B Tng. Nhp mn C s d liu phn tn. NXB Khoa hc v K thut, 2005. 5. Trung Tun. C s d liu. NXB Gio dc 1998. 6. V c Thi. C s d liu - kin thc v thc hnh. NXB Thng k, 1997. 7. L Tin Vng. Nhp mn c s d liu quan h. NXB Khoa hc v k thut, 1997. 8 . Phng K im hong. Kin thc thit y u v mng m y tnh. NXB Nng, 2000 9. David W.Embly. Object Database Development - concepts and Principles. NXB Addision Wesley Long man, lc., 1997.

MC LC
Li ni u................................................................................................................................. 2 CHNG I: C S D LIU PHN TN............................................................................. 3 1.1. H CSDL phn tn........................................................................................................... 3 1.1.2. Cc c im chnh ca c s d liu phn tn........................................................ 4 1.1.3. Mc ch ca vic s dng c s d liu phn tn................................................... 6 1.1.4. Kin trc c bn ca CSDL phn tn ....................................................................... 7 1.1 5. H qun tr CSDL phn tn ...................................................................................... 8 1.2. Kin trc h qun tr C s d liu phn tn................................................................... 9 1.2.1. Cc h khchli l .................................................................................................. 9 1 2.2. Cc h phn tn ngang hng ................................................................................... 10 1.3.Thit k c s d liu phn tn....................................................................................... 10 1.3.1- Cc chin lc thit k........................................................................................... 10 l.3.2.Cc vn thit k ................................................................................................... 11 1.3.3. Phn mnh ngang ................................................................................................... 13 1.3.4. Phn mnh dc ....................................................................................................... 26 1.3.5 - Phn mnh hn hp............................................................................................... 36 1.3.6 - Cp pht ................................................................................................................ 37 l.4-X l Vn tin (quay processor)....................................................................................... 41 1.4.1- Bi ton x l vn tin ............................................................................................. 41 1.4.2- Phn r vn tin........................................................................................................ 45 1.4.3. Cc b ha d liu phn tn ................................................................................... 52 1.4.4- Ti u ho vn tin phn tn.................................................................................... 58 1.5. Qun l giao dch........................................................................................................... 60 1.5.1. Giao dch (Transaction) .......................................................................................... 60 1.5.2. Tnh kh tun t ca cc lch biu v vic s dng chng ..................................... 64 1.5.3. Cc k thut iu khin tng tranh bng kha ..................................................... 66 1.5.4. M hnh kha c bn .............................................................................................. 68 1.5.5. M hnh kha c v kha ghi ............................................................................... 71 1.5.6. Thut ton iu khin tng tranh bng nhn thi gian......................................... 73 CHNG II: C S D LIU SUY DIN........................................................................... 76 2.1. Gii thiu chung ............................................................................................................ 76 2.2- C s d liu suy din................................................................................................... 76 2.2.1. M hnh c s d liu suy din .............................................................................. 76 2.2.2. L thuyt m hnh i vi c s d liu quan h................................................... 78 2.2.3. Nhn nhn c s d liu suy din ........................................................................... 80 2.3. CSDL da trn 1ogic..................................................................................................... 81 2.3.1. C php................................................................................................................... 81 2.3.2. Ng ngha ............................................................................................................... 81 2.3.3. Cu trc c bn....................................................................................................... 82 2.3.4. Cu trc ca cu hi ............................................................................................... 85 2.3.5. So snh DATALOG vi i s quan h ................................................................. 86 2.3.6. Cc h c s d liu chuyn gia ............................................................................. 90 2.4. Mt s vn khc........................................................................................................ 90 CHNG III: C S D LIU HNG I TNG ...................................................... 92 3.1. Nguyn tc ca cc m hnh hng i tng .............................................................. 92 3.1.1 M hnh ha cc i tng...................................................................................... 92 3.1.2 Phng php............................................................................................................ 93 3.1.3. Lp (Class) ............................................................................................................. 94 3.1.4- Cc lin kt tha k gia cc lp ........................................................................... 94 3.1.5. Lc lp ............................................................................................................ 95 3.2- Tnh bn vng ca cc i tng .................................................................................. 95

3.2.1- C s d liu hng i tng .............................................................................. 95 3.2.2. Qun l tnh bn vng ............................................................................................ 96 TI LIU THAM KHO ........................................................................................................ 97

You might also like