You are on page 1of 108

TRNG I HC LT

KHOA CNG NGH THNG TIN

Th.S Cao Th Nhn

BI GING TM TT

C S D LIU
Dnh cho sinh vin ngnh Cng ngh Thng tin (Lu hnh ni b)

Lt 2008

MC LC Li m u .......................................................................................................1 Chng 1: Gii thiu chung .........................................................................2 1. Gii thiu .................................................................................................2 1.1. Gii thiu h thng cc tp tin c in ..............................................2 1.2. nh ngha CSDL...............................................................................4 1.3. Cc i tng s dng CSDL. ...........................................................5 1.4. H qun tr CSDL...............................................................................6 1.5. Cc mc biu din mt CSDL. ..........................................................6 1.6. S tng qut mt h qun tr CSDL..............................................8 1.7. Tnh c lp gia d liu v chng trnh.........................................9 2. Cc cch tip cn ca mt CSDL .............................................................9 2.1. M hnh d liu mng ........................................................................10 2.2. M hnh d liu phn cp...................................................................11 2.3. M hnh d liu quan h thc th ......................................................12 2.4. M hnh d liu quan h. ...................................................................12 2.5. M hnh d liu hng i tng ......................................................13 3. 1. Bi tp .......................................................................................................13 M hnh thc th kt hp..........................................................................15 1.1. Thc th - tp thc th .......................................................................15 1.2. Thuc tnh ..........................................................................................15 1.3. Mi kt hp ........................................................................................16 1.4. Bn s.................................................................................................17 1.5. Kho ...................................................................................................18 1.6. S chiu ca mi kt hp ...................................................................19 1.7. Tng qut ha v chuyn bit ha .....................................................19 1.8. Tp thc th yu.................................................................................20 2. 3. V d..........................................................................................................21 Bi tp .......................................................................................................23 Chng 2: M hnh thc th kt hp ..........................................................15

Chng 3: M hnh d liu quan h............................................................24 1. Cc khi nim c bn................................................................................24 1.1. Thuc tnh ..........................................................................................24 1.2. Quan h n ngi ...................................................................................25 1.3. B .......................................................................................................25 1.4. Lc quan h.................................................................................26 1.5. Kha ca mt quan h........................................................................27 1.6. Rng buc ton vn............................................................................29 2. Cc thao tc c bn trn quan h ..............................................................29 2.1. Php thm...........................................................................................29 2.2. Php xa .............................................................................................30 2.3. Php sa .............................................................................................30 3. Cc bc chuyn i t m hnh thc th kt hp sang m hnh quan h..................................................................................31 3.1. Bin cc tp thc th chuyn bit ha v dng bnh thng .............31 3.2. Chuyn tt c cc tp thc th thnh quan h ....................................32 3.3. Mi kt hp ........................................................................................33 3.4. Nhp tt c cc quan h c cng kha ...............................................33 4. 1. Bi tp .......................................................................................................33 Cc php ton c s ..................................................................................34 1.1. Cc php ton tp hp........................................................................34 1.2. Cc php ton quan h .......................................................................37 2. Cc php ton khc ...................................................................................40 2.1. Php kt hai quan h ..........................................................................40 2.2. Php kt ni ni..................................................................................41 2.3. Php kt ni tri .................................................................................42 2.4. Php kt ni phi................................................................................43 2.5. Hm kt hp v gom nhm................................................................43 2.6. Cc php ton cp nht trn quan h..................................................44 3. Bi tp .......................................................................................................46 Chng 4: Ngn ng i s quan h .........................................................34

Chng 5: Ngn ng tn t ........................................................................49 1. Ngn ng tn t c bin l b...................................................................49 1.1. Mt s khi nim................................................................................49 1.2. nh ngha hnh thc ca php tnh b .............................................49 1.3. Lng t tn ti v vi mi ......................................................51 2. 3. 1. Ngn ng tn t c bin l min gi tr ....................................................52 Bi tp .......................................................................................................53 Cc lnh hi ..............................................................................................55 1.1. C php lnh truy vn ........................................................................55 1.2. Php chiu ..........................................................................................56 1.3. Php chn ...........................................................................................56 1.4. Php kt..............................................................................................57 1.5. Mt s lu .......................................................................................57 2. 3. 4. 5. Truy vn lng............................................................................................59 Nhm lnh thc hin tnh ton .................................................................62 Cc lnh khai bo cu trc CSDL.............................................................63 Nhm lnh cp nht d liu ......................................................................66 5.1. Thm ..................................................................................................66 5.2. Xa .....................................................................................................66 5.3. Sa......................................................................................................67 6. 1. Bi tp .......................................................................................................67 Ph thuc hm ..........................................................................................68 1.1. Khi nim ..........................................................................................68 1.2. H lut dn Amstrong ........................................................................69 1.3. Thut ton tm bao ng ca tp thuc tnh.......................................71 1.4. Bi ton thnh vin.............................................................................72 1.5. Ph ti thiu ca mt tp ph thuc hm...........................................72 2. Kha..........................................................................................................76 Chng 7: Ph thuc hm, kha, rng buc ton vn ...........................68

Chng 6: Ngn ng truy vn SQL ..........................................................55

2.1. nh ngha..........................................................................................76 2.2. Thut ton tm kha ...........................................................................76 3. Rng buc ton vn...................................................................................79 3.1. nh ngha cc yu t ca rng buc ton vn ...............................79 3.2. Cc loi rng buc ton vn ...............................................................81 4. 1. 1.1. 1.2. 1.3. 1.4. 1.5. 2. 2.1. 2.2. 3. 3.1. 3.2. 4. Bi tp .......................................................................................................87 Dng chun ca lc quan h..............................................................90 Dng chun 1........................................................................................90 Dng chun 2........................................................................................91 Dng chun 3........................................................................................94 Dng chun BC ....................................................................................95 Kim tra dng chun.............................................................................95 Php phn r..............................................................................................96 Phn r bo ton thng tin....................................................................96 Phn r bo ton ph thuc hm ..........................................................97 Thit k CSDL bng cch phn r ............................................................98 Phn r thnh dng chun BC (hoc dng chun 3) bo ton thng tin .................................................................................98 Phn r thnh dng chun 3 va bo ton thng tin va bo ton ph thuc hm.................................................................102 Bi tp .......................................................................................................102 Ti liu tham kho............................................................................................103 Chng 8: Dng chun v chun ha CSDL.............................................90

LI M U
p ng nhu cu hc tp ca sinh vin chuyn ngnh Cng ngh Thng tin, bi ging C s d liu c bin son theo chng trnh h thng tn ch ca Trng i hc Lt, cung cp cc kin thc c bn v l thuyt c s d liu. Mc d rt c gng trong qu trnh bin son bi ging nhng chc chn bi ging s cn nhiu thiu st v hn ch. Rt mong nhn c s ng gp kin qu bu ca sinh vin v cc bn c bi ging ngy mt hon thin hn.

Trang 1/103

Chng 1

Gii Thiu Chung


Chng 1 gii thiu cho hc vin cc khi nim c bn v c s d liu (CSDL) v h qun tr CSDL. 1. 1.1. Gii thiu Gii thiu h thng cc tp tin c in

Xt mt h thng cc tp tin c in: c t chc mt cch ring r, phc v cho mt mc ch ca mt n v hay mt n v con trc thuc c th. ng dng l mt h qun l nhn s ca mt cng ty. Ti mt cng ty c trang b my vi tnh cho tt c cc phng ban. Trong : Phng T chc lu gi nhng thng tin v l lch ca nhn vin nh h tn, b danh, gii tnh, ngy sinh, ngy vo on, ngy vo ng, ngy tuyn dng, h s lng, h s ph cp, hon cnh gia nh Phn mm c s dng qun l l Microsoft Access. Phng Ti v lu gi nhng thng tin v h tn, h s lng, h s ph cp, n v tnh ton lng v ph cp da trn danh sch do phng t chc gi sang. Cc bng tnh ny c lm bi Microsoft Excel. B phn Vn th s dng Microsoft word tho cc vn bn bo co v tnh hnh ca n v trong c nu tng s cng nhn vin v trnh chuyn mn c o to. Trong khi ti tng cng ty cc phng ban cng c trang b my vi tnh v cng qun l nhng thng tin ca cc cn b ch cht ca cng ty con l gim c, ph gim c, trng ph phng. Vic pht trin ca h thng qun l nh sau: Nhng chng trnh ng dng mi phi c vit khi mt nhu cu ny sinh. Cc tp tin thng trc mi c to ra theo yu cu. Trong mt thi gian di cc tp tin c th cc dng thc khc nhau. Nhng chng trnh ng dng c th vit bi cc ngn ng khc nhau.
Trang 2/103

u im: Vic xy dng nhng h thng tp tin ring l ti tng n v qun l t tn thi gian bi lng thng tin cn qun l v khai thc l nh, khng i hi u t nhiu nn trin khai nhanh. Thng tin c khai thc ch phc v cho mc ch hp nn kh nng p ng nhanh chng, kp thi. Hn ch: Do thng tin c t chc mi phng ban mi khc (thng tin v cng c trin khai) nn r rng s phi hp v mt t chc v khai thc cc phng ban rt kh khn. Thng tin phng ban ny khng c s dng cho phng ban khc, ti cng ty con vi tng cng ty. Hn na cng mt thng tin c cp nht vo my ti nhiu ni khc nhau. Do c nhng hn ch sau: D liu d tha v khng nht qun Nhng thng tin ging nhau c th b trng lp mt s ni. Tt c nhng bn sao d liu c th khng c cp nht ng. Kh khn trong vic truy xut d liu C th phi vit mt trnh ng dng mi tha yu cu mi t ra. C th to ra d liu ny mt cch th cng nhng mt thi gian. Kh khn khi vit chng trnh ng dng i hi thng tin lin quan n nhiu n v D liu nhng tp tin khc nhau. D liu cc dng thc khc nhau. Ngoi ra cn mt s vn cha c gii quyt nh: Nhiu ngi s dng Mun thi gian tr li nhanh hn cho cc tc v ng thi. Cn s bo v i vi nhng cp nht ng thi. Cc vn bo mt Mi ngi s dng h thng ch c th truy xut nhng d liu m h c php thy.
Trang 3/103

Chng hn nh nhng ngi tnh lng v ph cp ch gii quyt cc mu tin nhn vin, v khng th thy c thng tin v l lch nhn vin; nhng th qu ch truy xut nhng d liu v cc khon chi Kh khn rng buc iu ny trong nhng chng trnh ng dng. Cc vn ton vn. D liu c th c yu cu tha mn nhng rng buc. Chng hn nh nhn vin ang hng ch no phng t chc th s khng c hng ch tr cp cao nht ca phng cng on. Vi cch tip cn x l-tp tin, kh khn thc hin hoc thay i nhng rng buc nh vy. Kh khn khi nng cp h thng. Do h thng c t chc thnh cc tp tin ring l nn thiu s chia x thng tin gia cc phng ban. Bn cnh vic kt ni cc h thng ny vi nhau hay nng cp ng dng s gp rt nhiu kh khn. Nhng nhc im ny dn ti vic pht trin cc h thng qun tr c s d liu. 1.2. nh ngha c s d liu

C s d liu (database) l mt h thng cc thng tin c cu trc c lu tr trn cc thit b lu tr th cp (bng t, a t) nhm tho mn yu cu khai thc thng tin ng thi ca nhiu ngi s dng hay nhiu chng trnh ng dng vi nhiu mc ch khc nhau. u im ca CSDL: Gim s trng lp thng tin xung mc thp nht v do bo m c tnh nht qun v ton vn d liu D liu c th c truy xut theo nhiu cch khc nhau Kh nng chia x thng tin cho nhiu ngi s dng v nhiu ng dng khc nhau t c nhng u im trn CSDL t ra nhng vn cn gii quyt, l: Tnh ch quyn ca d liu. Do s chia x ca CSDL nn tnh ch quyn ca d liu c th b lu mi v lm m nht tinh thn trch nhim, c th hin trn vn an ton d liu, kh nng biu din cc mi lin h ng ngha ca d liu v tnh chnh xc ca d liu. Ngha l ngi khai thc CSDL phi c ngha v cp nht cc thng tin mi nht ca CSDL.
Trang 4/103

Tnh bo mt v quyn khai thc thng tin ca ngi s dng (NSD). Do c nhiu ngi cng khai thc CSDL mt cch ng nn cn phi c mt c ch bo mt v phn quyn khai thc CSDL. Tranh chp d liu. Nhiu ngi c php truy cp vo cng mt ti nguyn d liu (data source) ca CSDL vi nhng mc ch khc nhau nh xem, thm, xa, sa d liu. Nh vy cn phi c c ch u tin truy nhp d liu cng nh c ch gii quyt tnh trnh kho cht (DeadLock) trong qu trnh khai thc cnh tranh. C ch u tin c th c thc hin da trn: Cp quyn u tin cho ngi khai thc CSDL, ngi no c quyn u tin cao hn th c u tin cp quyn truy nhp d liu trc. Thi im truy nhp, ai c yu cu truy xut trc th c quyn truy nhp d liu trc. Hoc da trn c ch lp lch truy xut hay c ch kho. m bo d liu khi c s c. Vic qun l tp trung c th lm tng kh nng mt mt hoc sai lch thng tin khi c s c nh mt in t xut, mt phn hay ton b a lu tr d liu b h Mt s h iu hnh mng c cung cp dch v sao lu a cng (c ch s dng a cng d phng - RAID), t ng kim tra v khc phc li khi c s c. Tuy nhin bn cnh dch v ca h iu hnh, mt CSDL nht thit phi c mt c ch khi phc d liu khi cc s c bt ng xy ra m bo CSDL lun n nh. 1.3. Cc i tng s dng CSDL

Nhng ngi s dng khng chuyn v lnh vc tin hc v CSDL, do CSDL cn c cc cng c gip cho ngi s dng khng chuyn c th khai thc hiu qu CSDL Cc chuyn vin tin hc bit khai thc CSD, y l nhng ngi c th xy dng cc ng dng khc nhau phc v cho nhng yu cu khc nhau trn CSDL. Nhng ngi qun tr CSDL, l nhng ngi hiu bit v tin hc, cc h qun tr CSDL v h thng my tnh. H l ngi t chc CSDL (khai bo cu trc CSDL, ghi nhn cc yu cu bo mt cho cc d liu cn bo v), do h cn phi nm r cc vn v k thut c th phc hi d liu khi c s c. H l nhng ngi cp quyn hn khai thc CSDL nn h c th gii quyt cc vn tranh chp d liu.

Trang 5/103

1.4.

H qun tr CSDL

gii quyt tt nhng vn t ra cho mt CSDL nh trnh by trong 1.2 th cn c mt h thng cc phn mm chuyn dng. H thng ny c gi l h qun tr CSDL (Database Management System - DBMS), l cng c h tr tch cc cho cc nh phn tch, thit k v khai thc CSDL. Hin nay c nhiu h qun tr CSDL trn th trng nh: Visual Foxpro, SQL server, DB2, Microsoft Access, Oracle Mt h qun tr CSDL phi c: Ngn ng giao tip gia NSD v CSDL: Ngn ng m t d liu (Data Definition Language - DDL) cho php khai bo cu trc ca CSDL, khai bo cc mi lin h ca d liu (Data Relationship) v cc quy tc (Rules, Constraint) qun l p t trn d liu. Ngn ng thao tc d liu (Data Manipulaton Language - DML) cho php NSD c th thm, xo, d liu trong CSDL. Ngn ng truy vn d liu (Structured Query Language - SQL) cho php NSD truy vn cc thng tin cn thit. Ngn ng qun l d liu (Data Control Language - DCL) cho php nhng ngi qun tr h thng thay i cu trc ca cc bng d liu, khai bo bo mt thng tin v cp quyn khai thc CSDL cho NSD. T in d liu (Data dictionary) dng m t cc nh x lin kt, ghi nhn cc thnh phn cu trc ca CSDL, cc chng trnh ng dng, mt m, quyn s dng C bin php bo mt tt. C c ch gii quyt tranh chp d liu. C c ch sao lu v phc hi d liu khi c s c xy ra. C giao din tt, d s dng. Bo m tnh c lp gia d liu v chng trnh: khi c s thay i d liu (nh sa i cu trc lu tr cc bng d liu, thm cc ch mc,) th cc chng trnh ng dng ang chy trn CSDL vn khng cn phi vit li hay cng khng nh hng n NSD khc. 1.5. Cc mc biu din mt CSDL

h thng c th dng c th phi tm d liu mt cch hiu qu. iu ny dn n vic cn phi thit k nhng cu trc d liu phc tp i vi vic biu din d liu trong
Trang 6/103

c s d liu. V nhiu ngi s dng cc h thng c s d liu khng phi l ngi hiu bit nhiu v my tnh nn nhng ngi pht trin h thng phi che du i s phc tp khi ngi s dng thng qua mt s mc tru tng, nhm lm n gin ha s tng tc ca ngi s dng i vi h thng. C 3 mc biu din d liu, c th nh sau: Mc trong (mc vt l - Physical level) Ni n cch thc d liu c lu tr thc s. Tr li cu hi d liu g v lu tr chng nh th no? Cn cc ch mc g? V d nh ch mc, B-cy, bm. Nhng ngi thao tc ti mc ny l ngi qun tr CSDL v nhng NSD chuyn mn. Mc quan nim hay mc logic (conception level, logical level) Tr li cu hi cn phi lu tr bao nhiu loi d liu? l nhng d liu g? Mi quan h gia chng nh th no? Nh vy CSDL mc vt l l s ci t c th ca CSDL mc quan nim. Mc ngoi hay mc nhn (view level) L mc ca NSD v cc chng trnh ng dng. Lm vic ti mc ny l cc nh chuyn mn, k s tin hc, NSD khng chuyn. Mi NSD hay mi chng trnh ng dng c th c nhn CSDL theo mt gc khc nhau. Tu thuc vo vai tr ca NSD m c th thy tt c hoc mt phn ca CSDL. NSD hay chng trnh ng dng c th khng c bit v cu trc t chc lu tr thng tin trong CSDL. H ch c th lm vic trn mt phn CSDL theo cch nhn do ngi qun tr hay chng trnh ng dng quy nh, gi l khung nhn.

Trang 7/103

NGI S DNG MC NGOI KHUNG NHN NGOI KHUNG NHN NGOI

MC QUAN NIM

LC QUAN NIM

LC TRONG MC TRONG

C S D LIU LU TR

Hnh 1.1. Ba mc tru tng d liu 1.6. S tng qut mt h qun tr CSDL
Ngn ng m t d liu Ngn ng thao tc d liu

Chng trnh khai bo (m t) cu trc Chng trnh ng dng A

Cc t in d liu

CSDL

Hnh 1.2. S tng qut ca mt h qun tr CSDL Hnh 1.2 minh ha s tng qut ca mt h qun tr CSDL. C 3 mc: mc chng trnh khai bo cu trc v chng trnh ng dng; mc m t CSDL, thao tc CSDL v cc t in d liu; mc CSDL.

Trang 8/103

Mi h qun tr CSDL c mt ngn ng khai bo hay m t (Data Definition Language DDL) cu trc CSDL ring. Nhng ngi thit k v qun tr CSDL thc hin cc cng vic khai bo cu trc CSDL. Cc chng trnh khai bo cu trc CSDL c vit bng ngn ng m h qun tr CSDL cho php. Hai cng vic khai bo cu trc logic (l vic khai bo cc loi d liu v cc mi lin h gia cc loi d liu , cng cc rng buc ton vn d liu) v khai bo vt l (d liu c lu tr theo dng no, c bao nhiu ch mc) Cc chng trnh ng dng c vit bng ngn ng thao tc CSDL (Data Manipulation Langage - DML) vi mc ch: Truy xut d liu Cp nht d liu (thm, xa, sa) Khai thc d liu Ngn ng thao tc CSDL cn c s dng cho nhng ngi s dng thao tc trc tip vi CSDL. T in d liu (Data Dictionary - DD) l mt CSDL ca h qun tr CSDL s dng lu tr cu trc CSDL, cc thng tin bo mt, bo m an ton d liu v cc cu trc ngoi. T in d liu cn c gi l siu CSDL (Meta-Database) 1.7. Tnh c lp gia d liu v chng trnh

c lp d liu vt l Kh nng cp nht lc vt l khng lm cho cc chng trnh ng dng phi b vit li. Vic cp nht mc ny thng cn thit ci tin hiu sut. c lp d liu logic Kh nng cp nht lc logic m khng lm cho cc chng trnh ng dng phi b vit li. Nhng cp nht thng c thc hin khi cu trc logic ca c s d liu thay i. 2. Cc cch tip cn ca mt CSDL

Nn tng ca cu trc c s d liu l m hnh d liu. M hnh d liu c nh ngha l mt su tp cc cng c khi nim dng cho vic m t d liu, cc mi quan h d liu, cc ng ngha d liu v cc rng buc d liu.
Trang 9/103

2.1.

M hnh d liu mng

M hnh d liu mng (Network Data Model) hay gi tt l m hnh mng (Network Model) l m hnh c biu din bi mt th c hng. M hnh ny c xy dng bi Honeywell vo nm 1964-1965. Trong m hnh ny, c 3 khi nim c s dng: mu tin hay bn ghi (record), loi mu tin (record type) v loi lin h (set type). Loi mu tin: c trng cho mt loi i tng ring bit. Chng hn nh trong qun l nhn s ti mt n v th i tng cn phn nh ca th gii thc c th l Phng, nhn vin, cng vic, l lch do c cc loi mu tin c trng cho tng i tng ny. Trong m hnh mng, mi loi mu tin c th hin bng mt hnh ch nht, mt th hin (instance) ca mt loi mu tin c gi l bn ghi (record) . v d trn loi mu tin Phng c cc mu tin l cc phng ban trong cng ty, loi mu tin Nhn vin c cc mu tin l cc nhn vin ang lm vic ti cc phng ban ca cng ty Loi lin h: l s lin kt gia mt loi mu tin ch vi mt mu tin thnh vin. Trong m hnh mng, mt loi lin h c th hin bng hnh bu dc v s lin kt gia hai loi mu tin c th hin bng cc cung c hng i t loi mu tin ch n loi lin h v t loi lin h n loi mu tin thnh vin. Trong loi lin kt ngi ta cn ch ra s lng cc mu tin tham gia vo trong mi kt hp. C mt s loi sau: 1 1 (One to One): Mi mu tin ca loi mu tin ch kt hp vi ng 1 mu tin ca loi mu tin thnh vin. V d, mi nhn vin c duy nht mt l lch c nhn. 1 n (One to Many): Mi mu tin ca loi mu tin ch kt hp vi 1 hay nhiu mu tin ca loi mu tin thnh vin. V d, mi phng ban c th c mt hoc nhiu nhn vin. n 1 (Many to One): Nhiu mu tin ca loi mu tin ch kt hp vi ng 1 mu tin ca loi mu tin thnh vin. V d, nhiu nhn vin cng lm mt cng vic. quy (Recursive): Mt loi mu tin ch cng c th ng thi l mu tin thnh vin vi chnh n. V d, trng phng cng l mt nhn vin thuc phng trong cng ty. Hnh 1.4 minh ho mt m hnh d liu mng.

Trang 10/103

PHNG
1n Gm C

L LCH

11

NHN VIN

Cng lm n1

C 1n

CNG VIC

THN NHN

Hnh 1.4. M hnh d liu mng u im: n gin, d s dng. Hn ch: khng thch hp trong vic biu din CSDL ln do hn ch v kh nng din t ng ngha ca d liu, c bit l cc d liu v mi lin h phc tp ca d liu trong thc th l rt hn ch. 2.2. M hnh d liu phn cp

M hnh d liu phn cp (Hieracical Data Model), cn gi l m hnh phn cp (Hieracical Model), c thc hin thng qua s kt hp gia IBM v North American Rockwell vo khong nm 1965. M hnh l mt cy, trong mi nt ca cy biu din mt thc th, gia nt con vi nt cha c lin h vi nhau theo mt mi quan h xc nh. Loi mu tin: ging trong m hnh d liu mng Loi mi lin h: kiu lin h l phn cp: Mu tin thnh vin ch ng vai tr thnh vin ca mt mi lin h duy nht, tc l n thuc mt ch duy nht. Nh vy, mi lin h t mu tin ch ti cc mu tin thnh vin l 1 n v t mu tin thnh vin vi mu tin ch l 1 1
Trang 11/103

Gia hai loi mu tin ch tn ti mt mi quan h duy nht. Hnh 1.5 minh ho m hnh d liu phn cp mt CSDL v iu tra dn s.
TON QUC TP. H NI TP. HCM TP. CN TH TNH

Loi mu tin Tnh, tph QUN 1 QUN 2 QUN 3 H. CN GI

Loi mu tin qun huyn P. A KAO P. TN NH P. BN NGH P.n

Loi mu tin phng x A BN 1 A BN 2 A BN 3 A BN n Loi mu tin a bn H 1 H 2 H 3 H n Loi mu tin h Nhn khu 1 Nhn khu 2 Nhn khu 3 Nhn khu n

Loi mu nhn khu

Hnh 1.5. M hnh d liu phn cp 2.3. M hnh d liu quan h

M hnh d liu quan h (Relational Data Model) cn c gi l m hnh quan h (Relational Model) do E.F.Codd xut nm 1970. Nn tng c bn l khi nim l thuyt tp hp trn cc quan h, tc l tp ca cc b gi tr (value tuples). Trong m hnh d liu ny nhng khi nim c s dng l thuc tnh (attribute), quan h (relation), lc quan h (relation schema), b (tuple), kha (key). M hnh quan h l m hnh c nghin cu nhiu nht, v c c s l thuyt vng chc nht. M hnh quan h cng vi m hnh d liu thc th kt hp ang c s dng rng ri nht hin nay trong vic phn tch v thit k CSDL. Chng ta s nghin cu chi tit v m hnh ny trong chng sau. 2.4. M hnh d liu thc th - kt hp

M hnh d liu thc th - kt hp (Entity Relationship Model) do Peter Pin_Shan Chen xut nm 1976. M hnh quan h-thc th c da trn s nhn thc th gii gm c
Trang 12/103

mt su tp cc i tng cn bn, c gi l cc tp thc th, v cc mi quan h gia cc i tng ny.Trong m hnh ny cc khi nim c s dng l tp thc th (entity set), thc th (entity), thuc tnh ca loi thc th (entity attribute), kha ca loi thc th (entity key), loi mi kt hp (entity relationship), s ngi ca mi kt hp (relationship degree), thuc tnh ca mi kt hp (relationship attribute), bn s ca mi kt hp (relationship cardinal). Chi tit ca m hnh ny s c nghin cu trong chng sau. 2.5. M hnh d liu hng i tng

M hnh d liu hng i tng (Object Oriented Data Model) ra i vo cui nhng nm 80 v u nhng nm 90. y l loi m hnh tin tin nht hin nay da trn cch tip cn hng i tng. M hnh ny s dng cc khi nim nh lp (class), s k tha (inheritance), k tha bi (multi - inheritance). c trng c bn ca cch tip cn ny l tnh ng gi (encapsulation), tnh a hnh (polymorphism) v tnh ti s dng (reusability). 3. Bi tp

Bi 1: Da vo nhng khi nim hc, hy biu din CSDL c cc loi mu tin Phng, Nhn vin, Cng vic, l lch trnh by trong m hnh mng theo cch tip cn phn cp.Bit: Loi lin h l phn cp. Phng c nhiu nhn vin, mi nhn vin ch thuc mt phng duy nht Cng vic c nhiu nhn vin cng lm; mi nhn vin ch lm mt cng vic duy nht Mi nhn vin c mt l lch, mi l lch ch thuc duy nht mt nhn vin. Bi 2: Da vo nhng khi nim hc, hy biu din CSDL v tng iu tra dn s ton quc c cc loi mu tin tnh thnh ph, qun huyn, phng x, a bn, h iu tra v nhn khu trnh by trong m hnh phn cp theo cch tip cn mng. Bit: Nhn khu thuc mt h iu tra H iu tra thuc mt a bn a bn iu tra thuc mt phng x
Trang 13/103

Phng x thuc mt qun huyn Qun huyn thuc mt tnh, thnh ph

Trang 14/103

Chng 2

M Hnh Thc Th Kt Hp
M hnh d liu thc th kt hp (E-R - entity-relationship data model) do Peter Pin_Shan Chen xut nm 1976, nhn th gii thc nh l mt tp cc i tng cn bn c gi l cc thc th, v cc mi quan h gia cc i tng ny. M hnh c pht trin lm thun tin cho vic thit k c s d liu bng cch c t mt t chc. Mt lc nh vy biu din mt cu trc logic tng qut ca c s d liu. 1. M hnh thc th kt hp

Nhng khi nim cn bn m m hnh thc th kt hp dng: thc th, tp thc th, kha, mi quan h, v thuc tnh.
1.1.

Thc th - Tp thc th

Mt thc th (an entity) l mt s vt hoc i tng m n tn ti v c th phn bit c vi cc i tng khc. V d nh mt nhn vin trong mt t chc l mt thc th. Mt tp thc th (an entity set) l mt tp hp cc thc th cng loi m chng chia s cng nhng tnh cht hoc thuc tnh. V d nh tp hp tt c nhng ngi m h l nhn vin ca mt t chc l mt tp thc th khch hng. Mi tp thc th c t mt tn gi, thng thng l danh t. V d nh KHACHHANG, HOADON, K hiu: hnh ch nht vi tn gi
NHANVIEN

Hnh 2.1. Tp thc th 1.2. Thuc tnh

Mi mt tp thc th c nhiu c trng ring c gi l cc thuc tnh. Mi mt thuc tnh c t mt tn, chng hn nh MaKH (m khch hng), HoTenKH (h tn khch hng) K hiu: hnh oval vi tn gi, c ng ni vi thc th

Trang 15/103

MaPhong

TenPhong

PHONGBAN

Hnh 2.2.Thuc tnh ca tp thc th Khi phn tch mt thuc tnh, thng thng cn xt n kiu d liu v min gi tr tng ng ca thuc tnh . Chng hn cc thuc tnh M nhn vin (MANV), H tn (HoTen), a ch (DiaChi) l nhng chui k t phn nh nhng thng tin trn v nhn vin; n gi l s nguyn dng, C mt s loi thuc tnh sau: Thuc tnh n, kt hp: Thuc tnh n l thuc tnh khng th chia ra thnh nhng phn con nh hn. Cn thuc tnh kt hp th c th chia ra thnh nhng phn con (tc l thnh nhng thuc tnh khc). V d tn nhn vin c th cu trc nh l thuc tnh kt hp bao gm tn, ch lt, v h. Thuc tnh kt hp c th xut hin theo s phn cp. V d thuc tnh a ch nhn vin c cc thuc tnh thnh phn l s nh, ng, thnh ph, tnh. Thuc tnh rng. Mt gi rng (null value) c dng n khi mt thc th khng c gi tr i vi mt thuc tnh. V d mt nhn vin no khng c ngi trong gia nh th gi tr ca thuc tnh tn ngi trong gia nh i vi nhn vin phi l rng. Gi tr rng cng c th c dng ch ra rng gi tr ca thuc tnh l cha bit. Mt gi tr cha bit c th hoc l gi tr tn ti nhng chng ta khng c thng tin , hoc l khng bit c (khng bit gi tr thc s c tn ti hay khng). Thuc tnh suy ra. Gi tr ca loi thuc tnh ny c th c suy ra t cc thuc tnh hoc thc th lin h khc. V d tp thc th khch hng c thuc tnh s lng ti khon vay cho bit bao nhiu ti khon vay m khch hng c t ngn hng. Chng ta c th suy ra gi tr ca thuc tnh ny bng cch m s lng cc thc th ti khon vay c kt hp vi khch hng. Mt v d khc v tp thc th nhn vin c cc thuc tnh ngy bt u, cho bit ngy bt u lm vic ti ngn hng ca nhn vin, v thuc tnh thi gian lm vic, cho bit tng s gi lm vic ca nhn vin. Gi tr ca thi gian lm vic c th c suy ra t gi tr ca ngy bt u v ngy hin thi. 1.3. Mi kt hp

Quan h gia cc tp thc th c gi l mi kt hp. Mi mi kt hp cng c t tn th hin mi kt hp, chng hn nh mi ha n ch bn cho mt khch hng, mt khch hng c th mua hng nhiu ln (nhiu ha n)
Trang 16/103

K hiu l hnh thoi ni vi nhng thc th tham gia vo mi kt hp

Hnh 2.3. a. Mi kt hp khng c thuc tnh

Hnh 2.3.b. Mi kt hp c thuc tnh 1.4. Bn s

1.4.1. Th hin ca mt thc th Trong tp thc th KHACHHANG c nhiu khch hng, v d nh {KH01, Nguyn Trng, V, 11 Nguyn Cng Tr, 063552540} l mt khch hng, y c gi l mt th hin ca thc th KHACHHANG. Mt th hin ca mt tp thc th c nhn bit bng tp hp tt c cc gi tr ca tt c cc thuc tnh ca th hin thuc tp thc th, chnh l d liu ca i tng trong th gii thc. 1.4.2. Th hin ca mt mi kt hp Xt mi kt hp bn gia HA N v MT HNG, trong mt th hin ca quan h ny s tng ng vi vic mt ha n bn mt hng vi s lng v n gi l bao nhiu. Nh vy, mt th hin ca mt mi kt hp l tp hp cc th hin ca cc tp thc th tham gia vo mi kt hp . 1.4.3. Bn s Bn s ca mt tp thc th i vi mt mi kt hp l cp (bn s ti thiu, bn s ti a). Trong chng c nh ngha nh sau:

Bn s ti thiu: bng 0 hoc 1, l s ln ti thiu m mt th hin bt k ca mt tp thc th tham gia vo cc th hin ca mi kt hp.
Trang 17/103

Bn s ti a: bng 1 hoc n, l s ln ti a m mt th hin bt k ca mt tp thc th tham gia vo cc th hin ca mi kt hp.

K hiu:

Hnh 2.4. Bn s V d mt nhn vin thuc v mt hoc nhiu phng ban, mt phng ban c th c mt hoc nhiu nhn vin trc thuc. 1.5. Kha

1.5.1. Kha ca mt tp thc th Kha ca mt tp thc th l mt thuc tnh hoc mt s thuc tnh ca thc th, sao cho vi mi gi tr ca cc thuc tnh ny, tng ng mt v ch mt th hin ca tp thc th (xc nh mt thc th duy nht). Trong nhiu trng hp kha ca tp thc th thng l thuc tnh ch nh ca tp thc th . Mt thc th c th c nhiu kha. Khi cn chn ra mt kha lm kha chnh. K hiu: L thuc tnh c gch di.

Hnh 2.5. Kha 1.5.2. Kha ca mt mi kt hp Kha ca mt mi kt hp nhn c bng cch kt hp kha ca cc tp thc th tham gia vo mi kt hp . Tp hp tt c cc gi tr ca cc thuc tnh kha ca mt mi kt hp xc nh duy nht mt th hin ca mi kt hp . Trong m hnh, kha ca mi kt hp ngm hiu m khng c ghi ra nu khng quan tm.
Trang 18/103

1.6.

S chiu (bc) ca mt mi kt hp, mi kt hp t thn ( quy)

1.6.1. S chiu ca mt mi kt hp S chiu ca mt mi kt hp l s tp thc th tham gia vo mi kt hp .

Hnh 2.6. Mi kt hp nh phn 1.6.2. Mi kt hp t thn ( quy, vai tr) Mi kt hp t thn l mt mi kt hp t mt tp thc th i n chnh tp thc th . V d mt nhn vin c th khng chu s qun l ca ai hoc mt ngi, mt ngi c th khng qun l ai hoc nhiu ngi.

Hnh 2.7. Mi kt hp quy 1.7. Tng qut ha v chuyn bit ha

Mc d khi nim bn s ca tp thc th i vi mi kt hp cho chng ta nhn bit mi th hin ca tp thc th tham gia ti thiu l bao nhiu, v ti a l bao nhiu vo mi kt hp. Nhng trong thc t, mt lp cc i tng trong t chc c khi tn ti tnh trng l: mt s i tng (tp con) ca n tham gia vo mt mi kt hp ny, s cn li c th tham gia hoc khng vo nhng mi kt hp khc, trong khi c th tt c cc phn t ca chng li cng tham gia vo mi kt hp khc na. Hoc mt tp con ny c nhng c tnh ny, cn nhng phn t khc th c thm nhng c tnh khc hoc khng. Chng hn cng l nhn vin trong nh my, th cng nhn trc tip tham gia sn xut, nhn vin qun l tham gia cng tc qun l. i vi nhn vin qun l ngi ta quan tm n chc v, cn i vi nhn vin cng nhn th ngi ta li quan tm n bc. phn nh tnh trng trong phng php m hnh ha, ngi ta dng khi nim chuyn bit ha / tng qut ha. Chuyn bit ha ngha l phn hoch mt thc th thnh cc tp (thc th) con.
Trang 19/103

Tng qut ha l gp cc tp thc th thnh mt tp thc th bao hm tt c cc th hin ca cc tp thc th con. Cc chuyn bit c tha hng tt c cc thuc tnh ca cc tp thc th mc trn v chnh n c th c nhng thuc tnh khc. Cc tp thc th chuyn bit c th c nhng mi kt hp khc nhau vi nhng tp thc th khc v do cc x l s c th khc nhau ty theo tng chuyn bit thnh phn. K hiu:

Hnh 2.8. Chuyn bit ha / tng qut ha 1.8. Tp thc th yu

Mt tp thc th c th khng c cc thuc tnh cu thnh mt kha chnh, c gi l tp thc th yu. Mt tp thc th m n c kha chnh c gi l tp thc th mnh. Tp thc th yu phi tham gia vo mi quan h m trong c mt tp thc th mnh (tp thc th m tp thc th yu ph thuc) Coi tp thc th thn nhn (THANNHAN) c cc thuc tnh l tn thn nhn (TenTN), ngy sinh (NTNS), phi (Phai), quan h vi nhn vin (QuanHe). Nh vy tp thc th ny khng c kha chnh nn n l tp thc th yu. Mc d tp thc th yu khng c kha chnh nhng chng ta cn mt phng tin phn bit trong s nhng thc th thuc tp thc th ny m chng ph thuc vo mt thc th mnh no . Phn phn bit ca mt tp thc th yu l tp hp cc thuc tnh cho php s phn bit ni trn c thc hin. V d thuc tnh tn thn nhn (TenTN) l phn phn bit ca tp thc th yu thn nhn (THANNHAN). Phn phn bit ca mt tp thc th yu cng cn c gi l kha b phn ca tp thc th yu.

Trang 20/103

Kha chnh ca tp thc th yu c hnh thnh bi kha chnh ca tp thc th mnh m tp thc th yu ph thuc vo, cng vi phn phn bit ca tp thc th yu. V d kha chnh ca THANNHAN l MaNV, TenTN. K hiu: Mt tp thc th yu c ch ra bi mt hp nt i trong lc , v quan h nh danh tng ng c v bi hnh thoi nt i. Trong hnh, phn phn bit c gch di gin on.

Hnh 2.9. Tp thc th yu


2.

V d Qun l n

2.1.

Gi s sau y l mt s yu cu d liu i vi mt cng ty chuyn thc hin cc n: Cng ty gm nhiu nhn vin, mi nhn vin c gn m nhn vin tin vic qun l, c h tn, ngy sinh, mc lng c hng. Cng ty gm nhiu phng ban, mi phng ban c chc nng ring ca mnh, c m phng, tn phng, c mt trng phng. Mi nhn vin ch thuc vo mt phng ban v mt phng c th c nhiu nhn vin. Mi nhn vin trong phng cn c th chu s qun l trc tip t mt nhn vin khc. Do cng ty thc hin n, nn mi phng c th c nhiu vn phng giao dch hay lm vic khc nhau ti nhng a im khc nhau. Mi mt n khi c xy dng, c m n, tn n, a im thc hin n v do mt phng ban chu trch nhim ch tr n. Qu trnh thc hin n c th c chia nh thnh nhiu cng vic v phn cn cho cc nhn vin thc hin, khi cng ty s ghi nhn li thi gian phn cng cng vic cho nhn vin (tnh bng s gi / tun) theo di tin thc hin. Nhm c th chm lo i sng ca nhn vin, cng ty c ghi nhn li nhng thng tin v nhng thn nhn ca nhn vin, bao gm nhng ngi nh cha m, chng v, v con ci. T m t tnh hung trn, m hnh quan h thc th nh sau:

Trang 21/103

TenNV HoNV MaNV


(1, n)

DiaChi Phai Luong


(1,1) (1,n)

MaPhg

TenPhg

Quan Ly
(0, n)

NHANVIEN
(1,1) (1,n) (1,n)

Thuoc
(1,1)

PHONGBAN
(1,n) (1,n)

La truong phong

Co
NgayNhanChuc

Moi quan he Quan he

(1,n)

Chu tri
ThoiGian

DIADIEM

(1,n)

Tham gia DiaDiem

THANNHAN
(1,n) (1,1)

MaTN HoTN TenTN

NgaySinh DEAN Phai MaDA TenDA DDiemDA

Trang 22/103

3.

Bi tp

Hy xy dng m hnh thc th kt hp cho tnh hung sau: Gi s sau y l mt s yu cu d liu i vi v d hot ng ngn hng: Ngn hng c t chc thnh cc chi nhnh. Mi chi nhnh ta lc ti mt thnh ph v c nh danh bi mt tn duy nht. Ngn hng theo di ti sn ca mi chi nhnh. Cc khch hng ca ngn hng c nh danh bi s CMND ca h. Ngn hng lu tr cc tn khch hng, ng ph v thnh ph m khch hng sinh sng. Khch hng c th c ti khon gi v ti khon vay. Mt khch hng c th c kt hp vi mt nhn vin ngn hng. Nhn vin ny c th l nhn vin cho vay hoc nhn vin bnh thng. Cc nhn vin ngn hng c nh danh bi m s nhn vin ca h. B phn qun l ngn hng lu tr tn v s phone ca mi nhn vin, tn ca cc ngi ph thuc nhn vin v m s nhn vin ca ngi qun l nhn vin. Ngn hng cng theo di ngy bt u lm vic ca nhn vin, v thi gian thu nhn vin lm vic. Ngn hng a ra cc loi ti khon gi, ti khon tit kim v ti khon sc. Cc ti khon gi c th c nm gi bi nhiu hn mt khch hng, v mt khch hng c th c nhiu hn mt ti khon. Mi ti khon gi c gn bi mt s ti khon duy nht. Ngn hng duy tr thng tin v cn i ca mi ti khon gi v ngy gn nht m ti khon gi c truy cp bi mi khch hng nm gi ti khon . Ngoi ra, mi ti khon tit kim cn c mc li sut, v ti khon sc c s tin rt vt mc. Mt ti khon vay u tin xut pht t mt chi nhnh no , v n c th c nm gi bi mt hoc nhiu khch hng. Mi ti khon vay c gn bi mt s ti khon duy nht. Vi mi ti khon vay ngn hng theo di s tin vay v s tin tr. Mc d s th t ln tr tin vay (gi tt l s ln tr) khng xc nh duy nht ln tr i vi cc ti khon vay ca ngn hng nhng n xc nh duy nht ln tr i vi mt ti khon vay c th. Ngy v s tin tr i vi mi ln tr tin vay cng c ngn hng theo di ghi nhn.

Trang 23/103

Chng 3

M Hnh D Liu Quan H

M hnh d liu quan h ln u tin c ngh bi Edgar F. Codd vo nm 1970. Hin nay m hnh quan h l m hnh u th i vi cc ng dng x l d liu thng mi. Chng ny s trnh by chi tit v cc khi nim nhc ti trong chng 1 v coi nh l nhng c s nn tng tip tc nghin cu cc phn tip theo. 1. 1.1. Cc khi nim c bn Thuc tnh

Thuc tnh (attribute) l mt tnh cht ring bit ca mt i tng cn c lu tr trong CSDL phc v cho vic khai thc d liu v i tng. V d: i tng LOPHOC c cc thuc tnh m lp, tn lp, kha, s hc vin. i tng SINHVIEN c cc thuc tnh m sinh vin, h tn, ngy sinh, qu qun. Cc thuc tnh c c trng bi mt tn thuc tnh, kiu gi tr (data type) v min gi tr (domain). Trong cc ng dng thc t, ngi phn tch thit k thng t tn thuc tnh mt cch gi nh, tuy nhin khng nn t tn qu di (v lm cho vic vit cu lnh truy vn vt v hn) nhng cng khng nn qu ngn (v khng th hin c ng ngha mt cch r rng). V d: nu c hai i tng HCVIEN v GIAOVIEN u c thuc tnh tn th nn t tn mt cch r rng l Tn_hc_vin v Tn_gio _vin v chng mang ng ngha hon ton khc nhau. Mi mt thuc tnh u phi thuc mt kiu d liu. Kiu d liu c th l v hng - l cc kiu d liu c bn nh chui, s, logic, ngy thng hoc cc kiu c cu trc c nh ngha da trn cc kiu d liu c sn. Mi h qun tr CSDL c th gi tn cc kiu d liu ni trn bng cc tn gi khc nhau, ngoi ra cn b sung thm mt s kiu d liu ring ca mnh. V d, Microsoft Access
Trang 24/103

c kiu d liu text, memo l kiu chui; SQL Server c kiu d liu text, char, varchar, nvarchar l kiu chui. Mi mt thuc tnh c th ch chn ly nhng gi tr trong mt tp hp con ca kiu d liu. Tp hp cc gi tr m mt thuc tnh A c th nhn c gi l min gi tr ca thuc tnh A, thng c k hiu l MGT(A) hoc Dom(A). V d: im ca sinh vin l mt s, nhng lun nm trong on t 0 n 10. Vi kiu d liu cu trc th min gi tr chnh l tch cc (hoc tp con ca tch cc) ca cc min gi tr thnh phn. Trong nhiu h qun tr CSDL, thng a thm vo min gi tr ca cc thuc tnh mt gi tr c bit gi l gi tr null. Ty theo ng cnh m gi tr ny c th l mt gi tr khng th xc nh c hay mt gi tr cha c xc nh thi im nhp tin v c th c xc nh vo mt thi im khc. Nu thuc tnh c kiu d liu v hng th n c gi l thuc tnh n hoc nguyn t, nu thuc tnh c kiu d liu c cu trc th ta ni rng n l thuc tnh kp. 1.2. Quan h n ngi

Mt quan h R c n ngi c nh ngha trn tp cc thuc tnh U = {A1 , A2 ,... An } v km theo n l mt tn t, xc nh mi quan h gia cc thuc tnh Ai , v c k hiu l R( A1 , A2 ,... An ) . Tp thuc tnh ca quan h R cn c k hiu l R+. Vi Ai l mt thuc tnh c min gi tr l MGT(Ai), nh vy R( A1 , A2 ,... An ) l tp con ca tch cc: MGT(A1)x MGT(A2)xx MGT(An) Quan h cn c gi l bng (table). V d: KHOA(M_khoa, Tn_khoa) l mt quan h 2 ngi vi tn t : Mi khoa c mt m khoa duy nht phn bit vi cc khoa khc, c mt tn gi. SINHVIEN (M_sinh_vin, Tn_sinh_vin, Ngy_sinh, Qu_qun, Khoa) l mt quan h 5 ngi vi tn t : Mi sinh vin c mt m sinh vin duy nht phn bit vi cc sinh vin khc, c h tn, ngy thng nm sinh, qu qun v hc ti mt khoa trong trng . 1.3. B

Mt b (tuple) gi tr l cc thng tin ca mt i tng thuc quan h. B gi tr cng thng c gi l mt mu tin hay bn ghi (record), dng ca bng (row).
Trang 25/103

Mt b q l mt vecto gm n thnh phn thuc tp hp con ca tch cc min gi tr ca cc thuc tnh v tha mn tn t cho ca quan h. V d: cc b gi tr da trn cc thuc tnh ca quan h SINHVIEN q1 = (SV001, Trn Vn Mnh, 10/10/1980, Lm ng, CTK27) q2 = (SV002, Nguyn Th Hoa Hu, 25/11/1985, Khnh Ha, MTK27) q3 = (SV003, Tng Thanh H, 11/11/1982, Tp. H Ch Minh, NVK27) ly thnh phn Ai l gi tr thuc tnh Ai ca mt b gi tr q, k hiu q.Ai. y c gi l php chiu mt b ln thuc tnh Ai V d: q1.Tn_sinh_vin = Trn Vn Mnh q2.Khoa= MTK27 1.4. Lc quan h

Lc quan h (Relation schema) l s tru tng ha ca quan h, mt s tru tng ha mc cu trc ca mt bng hai chiu. Khi ni n lc quan h tc l cp ti cu trc tng qut ca mt quan h; khi ni n mt quan h th hiu rng l mt bng c cu trc c th trn mt lc quan h vi cc b gi tr ca n. Lc c s d liu l tp hp cc lc quan h con {Ri } , k hiu l . Th hin (hay tnh trng) ca quan h R, k hiu l TR, l tp hp cc b gi tr ca quan h R vo mt thi im. Nh vy, ti nhng thi im khc nhau th quan h c nhng th hin khc nhau. Th hin ca cc lc quan h con TRi gi l tnh trng ca lc CSDL V d v th hin ca quan h KHOA v LOPHOC Bng 3.1. Th hin ca quan h KHOA
M khoa CNTT TH VL HH Tn khoa Cng ngh thng tin Ton hc Vt l Ha hc Ngy thnh lp 10/10/1994 20/10/1976 20/10/1976 20/10/1976 Trang 26/103

Bng 3.2. Th hin ca quan h LOPHOC M lp CTK27 HHK18 THK20 Tn lp Cng ngh thng tin K27 Ha hc K18 Ton hc K20 S hc vin 75 95 120 M khoa CNTT HH TH

1.5.

Kha ca mt quan h

Quan h R nh ngha trn tp cc thuc tnh U = {A1 , A2 ,..., An } Khi K U l kha ca quan h R nu tho: (i) (ii) K xc nh c gi tr ca A j , vi mi j = 1,2,..., n Khng tn ti K ' K m K ' c th xc nh c gi tr ca A j , vi mi
j = 1,2,..., n

Theo nh ngha trn, K l tp con nh nht m gi tr ca n c th xc nh c duy nht mt b gi tr ca quan h. Kha theo nh ngha trn gi l kha ngh (candidate key).
K c gi l siu kha (superkey) ca quan h R nu K ' K l mt kha ca quan h.

Nh vy mt quan h Q lun c t nht mt siu kha v c th c nhiu siu kha. V d: Vi quan h LOPHOC (MaLop, TenLop, SoSV, MaKhoa) Siu kho : K1 = {MaLop, TenLop} K2 = {MaLop, SoSV} K3= {MaLop, TenLop, MaKhoa} K4= {MaLop, SoSV, MaKhoa}
Trang 27/103

ngha thc t ca kha l dng nhn din mt b trong mt quan h, khi cn thit tm thng tin mt b q no ta ch cn bit gi tr ca kha ca q l d tm v hon ton xc nh c n trong quan h. Trong thc t, i vi cc loi thc th tn ti khch quan nh NHANVIEN, SINHVIEN, MATHANG, ngi thit k CSDL thng gn thm mt thuc tnh gi l m s lm kha nh MaNV, MSSV, MaHang, i vi cc lc quan h biu din cho s tru tng ha thng c kha ch nh l mt t hp ca hai hay nhiu thuc tnh. Trong trng hp lc quan h c nhiu kha ngh, khi ci t ln mt h qun tr CSDL ngi ta chn ra mt kha trong s cc kho ngh ny s dng. Khi kha ny c gi l kha chnh (primary key) v cc kha cn li l kha tng ng. Kha chnh ch tht s c ngha trong qu trnh khai thc CSDL, kha chnh hon ton khng c vai tr g khc so vi cc kha ch nh cn li. Trong cc h qun tr CSDL c ci t c ch t ng kim tra tnh duy nht ca kha chnh. Khi ngi s dng thm mt b mi q2 c gi tr kha chnh trng vi gi tr kha chnh ca mt b q1 c trong quan h th h thng s bo li v yu cu nhp li gi tr khc. Cc thuc tnh tham gia vo mt kha c gi l thuc tnh kho. V mt k hiu, trong lc quan h cc thuc tnh kha c gch di. Trong mt b ca quan h, cc thuc tnh kha khng cha gi tr rng. Khng c php sa i gi tr ca thuc tnh kho, nu ngi s dng mun sa gi tr thuc tnh kho ca b q, cn phi hy b b q sau thm vo b q vi gi tr kha c sa i. V d: Mt lc CSDL nh sau: KHOA (MaKhoa, TenKhoa, NgayThanhLap) LOPHOC (MaLop, TenLop, NienKhoa, SoHocvien, MaKhoa) MONHOC (MaMon, TenMon, SoTC) HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop) GIAOVIEN (MaGV, HoGV, TenGV, NgaySinh, HocVi, ChuyenNganh) KQUATHI (MaHV, MaMon, LanThi, NgayThi, DiemThi, GhiChu) DAY (MaGV, MaLop, MaMon) Vi hai quan h R v S, mt tp thuc tnh K ca quan h R c gi l kha ngoi (foreign key) ca quan h R nu K l kha ca quan h S.
Trang 28/103

V d: Trong quan h LOPHOC, MaKhoa l kho ngoi v MaKhoa l kha ca quan h KHOA. Trong quan h HOCVIEN, MaLop l kho ngoi v MaLop l kha ca quan h LOPHOC. 1.6. Rng buc ton vn

Rng buc ton vn (RBTV) l mt quy tc nh ngha trn mt hay nhiu quan h do mi trng ng dng quy nh. chnh l quy tc bo m tnh nht qun ca d liu trong CSDL. Thng thng mi RBTV c nh ngha bng mt thut ton trong CSDL. V d: Trong quan h KQUATHI, DiemThi l mt s nguyn nm trong khong t 0 n 10. Trong quan h KQUATHI, LanThi l 1 hoc 2. 2. Cc thao tc c bn trn quan h

Cc thao tc c bn trn mt quan h l thm (insert), xa (delete), sa (update) cc b gi tr ca quan h. 2.1. Php thm

Vic thm mt b mi t vo quan h R( A1 , A2 ,..., An ) lm cho th hin TR tng thm mt phn t mi TR = R t Dng thc ca php thm b mi l:
INSERT (R; A1 = v1 , A2 = v 2 ,..., An = v n ) ,

vi: A1 , A2 ,..., An l cc thuc tnh v v1 , v 2 ,..., v n l gi tr mun thm vo (vi iu kin l cc gi tr ny thuc MGT(A1), MGT(A2), MGT(An) tng ng) Trong trng hp ny nu nh cc thuc tnh khng c lit k trong danh sch gn gi tr ca b t trong cu lnh INSERT s nhn gi tr null. Nu xem th t ca cc thuc tnh l c nh v cc gi tr v1 , v 2 ,..., v n l hon ton tng ng th php chn c th vit di dng tng minh nh sau:
INSERT (R; v1 , v 2 ,..., v n )
Trang 29/103

Ch rng c th php chn khng c thc hin hoc lm mt tnh nht qun ca d liu v cc l do sau: Gi tr kha ca b mi l null hoc trng vi gi tr kha ca mt b c trong CSDL. H qun tr CSDL s khng cho thm mi trong trng hp ny. B mi khng ph hp vi lc quan h. Trng hp ny xy ra khi ngi s dng thm mi cc gi tr sai th t, sai kiu hoc ln ca cc thuc tnh trong lc . H qun tr CSDL c th s khng cho b sung nu khng tng thch kiu gi tr, hoc vn cho b sung b mi nhng tnh nht qun ca d liu khng c m bo. Mt s gi tr ca b mi khng thuc min gi tr ca thuc tnh tng ng. Trong trng hp ny, nu quan h c m bo tnh nht qun bi cc RBTV v min gi tr th h qun tr CSDL s khng cho b sung; ngc li, nu khng c RBTV v min gi tr th tnh nht qun ca CSDL b vi phm m h qun tr CSDL khng pht hin c. 2.2. Php xa

Php xa b t ca quan h s xa i mt (hoc nhiu) b t khi th hin ca quan h


TR = R \ t

Dng thc ca php xa l:


DELETE (R; A1 = v1 , A2 = v 2 ,..., An = v n ) ,

vi Ai = v j ; j = 1..n chnh l iu kin tha mt s thuc tnh ca b t loi mt b t ra khi quan h. V d: Vi quan h: HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, Khoa), v php loi b : DELETE (HOCVIEN ; QueQuan =" NhaTrang ") th tt c cc b trong th hin HOCVIEN c qu qun Nha trang s b loi b. 2.3. Php sa

Dng thc ca php sa l:


UPDATE (R; A1 = c1 , A2 = c 2 ,..., An = c n ; A1 = v1 , A2 = v 2 ,..., An = v n ) ,

vi Ai = c j ; j = 1..n l iu kin tha tm kim b mun sa v Ai = v j ; j = 1..n l gi tr mi cn cp nht


Trang 30/103

V d: Vi quan h: HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop), Trong th hin ca HOCVIEN c b: q = {HV001, Nguyn Vn, Mnh, 20/10/85, Ngh An, CNTT} v php cp nht: UPDATE (HOCVIEN ; MaHV = HV 001; QueQuan = Lam ong ) khi kt qu t c s l b q c sa li vi gi tr : q = {HV001, Nguyn Vn, Mnh, 20/10/85, Lm ng, CNTT} 3. 3.1. Cc bc chuyn i t m hnh thc th kt hp sang m hnh quan h Bin cc tp thc th chuyn bit ha v dng bnh thng

3.1.1. Tp thc th chuyn bit khng c thuc tnh ring Trong trng hp ny, a tp thc th chuyn bit ln lm thuc tnh ca tp thc th mc tng qut, khi c thuc tnh mi cho bit loi ca thc th chuyn bit

Hnh 3.1. Bin i tp thc th chuyn bit khng c thuc tnh ring

Trong v d trn Loai={NV_QL, NV_CN} 3.1.2. Tp thc th chuyn bit c thuc tnh ring Nu s lng thuc tnh ring tp thc th chuyn bit t, gom ln mc tng qut, v b sung thm rng buc.

Trang 31/103

MaNV

HoTen

DiaChi

MaNV

HoTen

DiaChi

Loai

NHANVIEN

NHANVIEN

ISA Chuc vu QUANLY CONGNHAN Bac

Chuc vu

Bac

Hnh 3.2. Bin i tp thc th chuyn bit c thuc tnh ring

Trong v d trn Loai={NV_QL, NV_CN} v cc rng buc: RBTV1: Nu Loai = NV_QL th thuc tnh Chucvu mi c gi tr RBTV2: Nu Loai = NV_CN th thuc tnh Bac mi c gi tr 3.2. Chuyn tt c cc tp thc th thnh quan h

Tp thc th mnh Vi mi tp thc th mnh, chuyn thnh quan h vi kha l kha ca tp thc th. NHANVIEN (MaNV, HoTen, DiaChi) PHONGBAN (MaPhong, TenPhong) Tp thc th yu Vi mi tp thc th yu, chuyn thnh quan h vi: Cc thuc tnh l cc thuc tnh ca tp thc th yu v kha ca tp thc th mnh m n ph thuc Kha ca quan h l kha ca tp thc th mnh v phn phn bit ca tp thc th yu. THANNHAN (MaNV, TenTN, NTNS, Phai, QuanHe)

Trang 32/103

3.3.

Mi kt hp

Mi kt hp c bn s (1,1) v (1, n), chuyn thnh cc quan h vi: Tp thc th c s tham gia (1, n) chuyn nh bnh thng Tp thc th c s tham gia (1, 1) chuyn thnh quan h gm tt c cc thuc tnh ca thc th v thuc tnh kha ca thc th c s tham gia (1, n).

NHANVIEN (MaNV, HoTen, DiaChi, MaPhong) PHONGBAN (MaPhong, TenPhong) Mi kt hp khc, chuyn thnh mt quan h vi: Thuc tnh l khc kha ca cc tp thc th tham gia vo mi kt hp v mi thuc tnh ca mi kt hp Kha l kha ca cc tp thc th tham gia vo mi kt hp v c th c thm thuc tnh ca mi kt hp

THAMGIA (MaNV, MaDA, ThoiGian): Kha l kha ca cc tp thc th tham gia vo mi kt hp 3.4. Nhp tt c cc quan h c cng kha

Sau khi thc hin chuyn i, c th c mt s quan h c cng kha, khi thc hin vic nhp tt c cc quan h c cng kha li thnh mt quan h. 4. Bi tp

Vi bi tp trong chng 2, hy chuyn i sang lc quan h.

Trang 33/103

Chng 4

Ngn Ng i S Quan H
Ngn ng i s quan h l ngn ng phi th tc. N bao gm tp hp cc php ton c p dng trn cc th hin ca quan h, kt qu ca mt cu truy vn l mt th hin ca quan h. Ngn ng i s quan h c u im trong vic th hin k hoch thc hin cu truy vn v cc k thut ti u ha cu truy vn. 1. 1.1. Cc php ton c s Cc php ton tp hp

Cc php ton c bn c p dng trn tp cc b gi tr ca cc quan h, c hnh thnh t l thuyt tp hp ton hc: hp hay hi (union), hiu (minus), giao (intersection), tch cc (cartesian product operation), chia (division), b (complement). Quan h kt qu ca cc php ton hp, hiu, tr c cng tn thuc tnh vi quan h u tin (quy c). Gi thit: R( A1 , A2 ,..., An ) v S (B1 , B2 ,..., Bn ) Tnh kh hp Quan h R( A1 , A2 ,..., An ) v S (B1 , B2 ,..., Bn ) c gi l kh hp khi: S bc ca R v S l bng nhau, ngha l cng s lng thuc tnh. Min gi tr ca thuc tnh phi tng thch MGT ( Ai ) = MGT (Bi ), vi 1 i n 1.1.1. Php hp (union) Hp (hay cn gi l hi) ca hai quan h kh hp R v S, k hiu R S , l quan h Q c nh ngha nh sau:
Q = R S = {t | t R t S }

V d: A A1 B b1 A a1 B b2
Trang 34/103

A a1

B b1

a1 a2

b2 b1

a2

b3

a1 a2 a2

b2 b1 b3
RS

Ni cch khc, hp ca hai quan h R v S l mt quan h c cng ngi vi quan h R v S, vi cc b gi tr bng gp cc b ca c R v S, nhng b gi tr trng nhau ch gi li 1 b. Trong v d trn b {a1, b2} xut hin trong c R v S, do ch xut hin 1 ln trong R S 1.1.2. Php tr (minus) Php tr (hay cn gi l hiu) ca hai quan h kh hp R v S, k hiu R S , l quan h Q c nh ngha nh sau:
Q = R S = {t | t R t S }

V d: A a1 a1 a2 R B b1 b2 b1 S
RS

A a1 a2

B b2 b3

A a1 a2

B b1 b1

Ni cch khc, hp ca hai quan h R v S l mt quan h c cng ngi vi quan h R v S, vi cc b gi tr l cc b ca c R sau khi loi b cc b c mt trong S. 1.1.3. Php giao (intersect) Giao ca hai quan h kh hp R v S, k hiu R S , l quan h Q c nh ngha nh sau:
Q = R S = {t | t R t S }

V d: A a1 B b1 A a1 B b2
Trang 35/103

A a1

B b2

a1 a2 R

b2 b1

a2

b3

RS

Ni cch khc, giao ca hai quan h R v S l mt quan h c cng ngi vi quan h R v S, vi cc b gi tr l cc b ging nhau trong c R v S. 1.1.4. Php tch cc (Cartesian Product Operation) Gi thit: R( A1 , A2 ,..., An ) v S (B1 , B2 ,..., Bm ) Php tch cc ca hai quan h ca hai quan h R v S, k hiu RxS , l quan h Q c nh ngha nh sau:
Q = RxS = {tq | t R q S }

V d: A a1 a1 a2 B b1 b2 b1 C c1 c2 D d2 d3 A a1 a1 a1 a1 a2 a2 R S B b1 b1 b2 b2 b1 b1
RxS

C c1 c2 c1 c2 c1 c2

D d2 d3 d2 d3 d2 d3

Vy tch cc ca hai quan h R v S l mt quan h gm (n+m) ngi vi n thuc tnh u l mt b ca R v m thuc tnh sau l mt b thuc S. 1.1.5. Php chia (division) Gi thit: R( A1 , A2 ,..., An ) v S (B1 , B2 ,..., Bm ) ( n > m, S ), c m thuc tnh chung. Khi php chia trn 2 quan h R v S, k hiu R S , l quan h Q c (n-m) ngi c nh ngha nh sau:
Q = R S = {t | u S , (t , u ) R}

Trang 36/103

V d 1: A a1 a1 a2 a2 a3 B b1 b1 b1 b1 b1 R C c1 c2 c2 c1 c1 D d1 d3 d3 d1 d3 S
RS

C C1 C2

D d1 d3

A a1 a2

B b1 b1

Ni cch khc, php chia ca quan h R cho S a ra tt c cc b trong quan h R, sao cho khp vi tt c cc b trong quan h S 1.2. Cc php ton quan h

Phn ny trnh by cc php ton trn quan h v v d minh ha da trn lc c s d liu Qun l n: NHANVIEN (MaNV, HoNV, tenNV, NgaySinh, DiaChi, Phai, Luong, Phong) MaNQL,

Tn t: Mi nhn vin c M nhn vin (MaNV) duy nht phn bit vi cc nhn vin khc, c h tn (HoNV, TenNV), ngy sinh (NgaySinh), a ch (DiaChi), phi Nam hoc N (Phai), mc lng (Luong), ngi qun l trc tip (MaNQL) v thuc v mt phng ban (Phong) PHONGBAN (MaPhong, TenPhong, TruongPhong, NgayNhanChuc) Tn t: Mi mt phng ban c mt m phng duy nht (MaPhong) phn bit vi cc phng ban khc, c tn phng (TenPhong), ngi trng phng (TruongPhong), v ngy nhn chc ca trng phng (NgayNhanChuc) DIADIEMPHONG (MaPhong, DiaDiem) Tn t: Mi mt phng ban (MaPhong) c th c nhiu a im lm vic khc nhau (DiaDiem) DEAN (MaDA, TenDA, DdiemDA, Phong) Tn t: Mi mt n c mt m n duy nht (MaDA) phn bit vi cc n khc, c tn n (TenDA), a im thc hin (DdiemDA), v do mt phng ban ch tr n (Phong)
Trang 37/103

PHANCONG (MaNV, MaDA, ThoiGian) Tn t: Mi mt nhn vin (MaNV) c phn cng tham gia n (MaDA) di dng tham gia s gi trn 1 tun (ThoiGian) THANNHAN(MaTN, HoTN, TenTN, Phai, NgaySinh) Tn t: Mi thn nhn c M thn nhn (MaTN) duy nht phn bit vi cc thn nhn khc, c h tn (HoTN, TenTN), phi (Phai) ngy sinh (NgaySinh) NVIEN_TNHAN(MaNV, MaTN, QuanHe) Tn t: Mi nhn vin (MaNV) c th c nhiu thn nhn (MaTN), c din gii bi quan h (QuanHe) nh v, chng, con, anh em 1.2.1. Php chn (selection) Cho php chn ra nhng b trong R tha mn biu thc iu kin chn P cho trc. K hiu l P ( R) vi nh ngha:
P ( R) = {t | t R P(t )}

vi R l quan h c chn, P l biu thc logic cha cc php so snh ( , , , =,.. ), cc php ton logic ( ,, ) dng: <Thuc tnh> <php so snh> <Thuc tnh> hay <Hng s> Nh vy kt qu ca php chn l mt quan h c cng danh sch thuc tnh vi quan h R. V d: Chn nhng nhn vin c lng >= 500000
Luong 500000 ( NHANVIEN )

Cho bit nhng nhn vin thuc phng s 5 v c lng >= 500000
Luong 500000 Phong =5 ( NHANVIEN )

1.2.2. Php chiu (projection) Cho php trch chn ra nhng ct (thuc tnh) trong R ch ra trong danh sch thuc tnh. K hiu l A , A ,..., A ( R) vi A1 , A2 ,.., An l danh sch cc thuc tnh cn chn v R l quan h cn trch chn.
1 2 k

Trang 38/103

Nhn thy rng s lng cc b kt qu lun nh hn hoc bng s lng cc b trong R. Cc b trng nhau s loi i v ch gi li b.

V d: Cho bit m nhn vin, h tn ca tt c cc nhn vin


MaNV , HoNV ,TenNV ( NHANVIEN )

Cho bit m nhn vin, h tn, phng lm vic v mc lng ca tt c cc nhn vin
MaNV , HoNV ,TenNV , Phong , Luong ( NHANVIEN )

Cho bit cc n cng vi cc phng ph trch n


MaDA,TenDA, Phong (DEAN )

1.2.3. Php gn (assignment) Khi gp nhng truy vn phc tp, php gn cho php din t mt cch r rng hn cu truy vn. Khi , cu truy vn chnh l mt chui cc php gn theo sau l mt biu thc c gi tr nh l kt qu ca cu truy vn. K hiu: Vic gn c thc hin cho mt bin quan h tm v c s dng cho cc biu thc theo sau. 1.2.4. Php i tn: V cho php t tn nn c th tham chiu ti kt qu ca biu thc i s quan h, v cho php tham chiu ti mt quan h bng nhiu tn Cc php i tn sau: i tn quan h v tn thuc tnh: Cho biu thc i s quan h E c n thuc tnh, biu thc ( A , A ,,..., A ) ( E ) tr v kt qu biu thc E di tn v cc tn ca thuc
1 n

tnh i thnh A1 , A2 ,..., An i tn quan h: Cho biu thc i s quan h E, biu thc (E ) tr v kt qu biu thc E di tn

Trang 39/103

i tn thuc tnh: Cho biu thc i s quan h E c n thuc tnh, biu thc ( A , A ,,..., A ) ( E ) tr v kt qu biu thc E vi cc tn ca thuc tnh i thnh
1 n

A1 , A2 ,..., An

1.2.5. Chui cc php ton Kt hp cc php ton i s quan h vi nhau to ra mt quan h kt qu theo yu cu. C nhiu cch th hin mt truy vn cho trc. V d: Cho bit m nhn vin, h tn cng lng ca nhn vin lm vic trong phng s 4 Cch 1: MaNV , HoNV ,TenNV , Luong ( Phong = 4 (NHANVIEN )) Cch 2:
NVIEN _ P 4 Phong = 4 (NHANVIEN ) KQ MaNV , HoNV ,TenNV , Luong (NVIEN _ P 4 )

Cch 3:
NVIEN _ P 4 Phong = 4 ( NHANVIEN ) KQ (MaNV , HoNV , TenNV , LuongNV ) MaNV , HoNV ,TenNV , Luong ( NVIEN _ P 4 )

Trong c s dng php gn v php t li tn. 2. 2.1. Cc php ton khc Php kt hai quan h

Gi thit: R( A1 , A2 ,..., An ) v S (B1 , B2 ,..., Bm ) , vic ghp b t = (a1 , a 2 ,..., a n ) R vo v = (b1 , b2 ,..., bm ) S c nh ngha nh sau:
A R + v B S + l hai thuc tnh c th so snh c.

Gi l mt trong cc php so snh {<, >, =, , , } Khi , php kt ni hai quan h R v S trn cc thuc tnh A, B vi php so snh c nh ngha:
AB

S = {v = (t , u ) | t R, u S , t. Au.B}
Trang 40/103

C th nhn thy rng php kt ni c thc hin qua 2 bc: (1) tch cc hai quan h R v S, (2) chn cc b tha iu kin AB. Nu l php ton so snh bng nhau c gi l php kt ni bng (equi join). Nu cc thuc tnh so snh l ging tn nhau th trong kt qu ca php nis loi i mt ct (thuc tnh), khi php kt c gi l php kt t nhin (natural join) v v mt k hiu b i AB. Cc trng hp cn li c gi l php kt ni theta ( join)

V d: A a1 a2 a3 B 1 2 2 C 1 1 2 C 1 2 3 D d1 d2 d3 E e1 e2 e3 A a1 a2 a2 a2 a3 R S B 1 2 2 2 2 C 1 1 1 1 2 R C 1 1 1 1 2 S D d1 d1 d1 d1 d2 E E1 E1 E1 E1 E2

R.BS.C

V kt qu ca php ni t nhin (kt bng trn thc tnh C) l A a1 a2 a3 B 1 2 2 C 1 1 2 D d1 d1 d2 E e1 e1 e2

2.2.

Php kt ni ni (inner join)

Thc cht ca php kt ni ni l php kt ni bng nu trn. Tuy nhin, ngay c khi hai thuc tnh c cng tn th kt qu vn gi li 2 tn thuc tnh . V d:
Trang 41/103

A a1 a2 a3 a5 a7

B B 1 B 2 B 3 B 5 B 7 R

C c1 c1 c2 c5 c7

A a1 a2 a4 a6 a7

D d1 d2 d4 d6 d7 S

E e1 e2 e4 e6 e7

A a1 a2 a7

B b1 b2 b7

C c1 c1 c7

A a1 a2 a7

d1 e1 d2 e2 d7 e7

RA

R.A=S.

2.3.

Php kt ni tri (left join)

Php kt ni tri hai quan h R v S trn cc thuc tnh A v B vi php so snh bng c nh ngha l tt c cc b v t c bng cch xp b gi tr ca R v S cnh nhau, nu c gi tr ging nhau trn hai thuc tnh kt ni; v cc b v t c nh cch t b R vi cc b null ca S, nu khng tm c gi tr tng ng ca thuc tnh kt ni trn quan h S.
R.A=S.B

S = {v = (t , u ) | (t R, u S : t. Au.B ) (t R, u = u null : t. A S [B ])}

Vi S[B] l tp tt c cc gi tr ca thuc tnh B ca S V d: A a1 a2 a3 B B 1 B 2 B C c1 c1 c2 A a1 a2 a4 D d1 d2 d4 E e1 e2 e4 A a1 a2 a3 B B 1 B 2 B C c1 c1 c2 A a1 a2 D d1 d2 E e1 e2

null null null

Trang 42/103

3 a5 A 7 R B 5 B 7 c5 c7 a6 a7 S d6 d7 e6 e7 a5 a7

3 b5 c5 b7 c7 R null null null a7


R.A=S.

d7 S

e7

ngha ca php kt ni ny l xc nh c cc b gi tr ca quan h bn tri nhng khng c b gi tr tng ng trong quan h bn phi. 2.4. Php kt ni phi (right join)

Php kt ni phi hai quan h R v S trn cc thuc tnh A v B vi php so snh bng c nh ngha l tt c cc b v t c bng cch xp b gi tr ca R v S cnh nhau, nu c gi tr ging nhau trn hai thuc tnh kt ni; v cc b v t c nh cch t b null ca R vi cc b ca S, nu khng tm c gi tr tng ng ca thuc tnh kt ni trn quan h R.
R.A=S.B

S = {v = (t , u ) | (t R, u S : t. Au.B ) (t = t null , u S , : u.B R[A])}

Vi R[A] l tp tt c cc gi tr ca thuc tnh A ca R

V d: A B C c1 c1 c2 c5 A a1 a2 a4 a6 D d1 d2 d4 d6 E e1 e2 e4 e6 A a1 a2 B B1 B2 C c1 c1 A a1 a2 D d1 d2 d4 d6 E e1 e2 e4 e6

A1 B 1 A2 B 2 A3 B 3 A5 B 5

null null Null a4 null null Null a6

Trang 43/103

A7 B 7 R

c7

a7 S

d7

e7

a7

b7

c7 R
R.A=S.

a7 S

d7

e7

ngha ca php kt ni ny l xc nh c cc b gi tr ca quan h bn phi nhng khng c b gi tr tng ng trong quan h bn tri. Ch rng trong mt s ngn ng truy vn CSDL, ngi ta gi hai php kt ni tri v phi chung li l php kt ni ngoi (outer join) v cho php gi li tt c cc b ca hai quan h khng tm c b gi tr ging nhau trn cc thuc tnh kt ni. 2.5. Hm kt hp v gom nhm

Dng tnh ton cc gi tr mang tnh cht tng hp trong i s quan h. Trong : Hm kt hp: u vo l mt tp gi tr v tr v mt gi tr n Avg(): gi tr trung bnh Min(): gi tr nh nht Max(): gi tr ln nht Sum(): tnh tng Count(): m s mu tin Gom nhm: cng thc nh sau:
G1 ,G2 ,..G N

F 1( A1), F 2( A2 ),..., Fn ( An ) ( E ) , vi:

E l biu thc i s quan h Gi l tn thuc tnh gom nhm (c th khng c) Fi l hm gom nhm Ai l tn thuc tnh tnh ton trong hm gom nhm V d: Cho bit s nhn vin trong cng ty v mc lng trung bnh
COUNT ( MaNV ), AVG ( Luong ) ( NHANVIEN )

Cho bit s lng nhn vin v lng trung bnh ca mi phng ban
Trang 44/103

Phong

COUNT ( MaNV ), AVG ( Luong ) ( NHANVIEN )

2.6.

Cc php ton cp nht trn quan h

Cc thao tc c vit thng qua php ton gn. C th nh sau: 2.6.1. Thm Php thm: r r E , vi r l mt quan h v E l mt biu thc i s quan h. Thng thng, a ra b cn chn mt cch tng minh hoc vit mt cu truy vn m kt qu truy vn chnh l mt tp cc b cn chn. V d: Chn mt b tng minh
DEAN DEAN {' DA01' , ' Pho cap tin hoc' , ' c Trong' ,4}

2.6.2. Xa Php xo: : r r E , vi r l mt quan h v E l mt biu thc i s quan h. Ch rng php xa thc hin xa mt hoc nhiu b m khng th xa i gi tr ca cc thuc tnh. V d: Xa tt c cc phn cng cng tc tham gia n ca nhn vin mang m s NV01
PHANCONG PHANCONG ( MaNV = ' NV 01' ( NHANVIEN ))

Xa tt c cc n do phng mang tn Qun L ch tr


r1 ( TenPhong = 'QuanL ' (PHONGBAN >< r 2 MaDA,TenDA, DDiemDA, Phong (r1) DEAN DEAN r 2
MaPhong = Phong

DEAN ))

2.6.3. Sa Php sa: r F 1, F 2,..., Fn (r ) , vi: Fi l mt biu thc, gm hng v thuc tnh ca r a ra gi tr mi cho thuc tnh ny. Mi Fi c gi tr tr v l gi tr mi cho thuc tnh th i ca r, thuc tnh ny c th c gi nguyn hoc cp nht vi gi tr mi. Php sa c th c vit thng qua php xa v thm. Khi , php xa s xa i cc b cha gi tr c v php thm s thm nhng b cha gi tr mi.
Trang 45/103

V d: Cng thm lng mi nhn vin vi s tin l 120000


NHANVIEN ( MaNV , HoNV ,TenNV , NgaySinh , DiaChi , Phai , Luong +120000, MaNQL , Phong ( NHANVIEN ))

Vi nhn vin nam, cng thm lng vi s tin l 100000; vi nhn vin n, cng thm lng vi s tin l 150000
NHANVIEN ( MaNV , HoNV ,TenNV , NgaySinh , DiaChi , Phai , Luong +100000, MaNQL , Phong ( Phai = ' Nam ' ( NHANVIEN ))) ( MaNV , HoNV ,TenNV , NgaySinh , DiaChi , Phai , Luong +150000, MaNQL , Phong ( Phai = ' Nu ' ( NHANVIEN )))

3.

Bi tp

Bi 1: Vi lc c s d liu Qun l n trong 2.2. Hy vit cc biu thc i s quan h theo yu cu: 1. Cho bit thng tin c nhn v nhng nhn vin c tn Mai 2. Tm m nhn vin, h tn v a ch ca tt c nhn vin lm vic phng Hnh Chnh 3. Tm m nhn vin, h tn v a ch ca tt c nhn vin lm vic phng Hnh Chnh v Ti V 4. Cho bit m nhn vin , h tn nhn vin v tn cc n m nhn vin tham gia. 5. Tm m n, tn n, tn phng ban ch tr n cng m trng phng, tn trng phng . 6. Cho bit m nhn vin, h tn ca nhng nhn vin tham gia vo n c m l DA01 v c thi gian lm vic cho n trn 30gi/tun 7. Cho bit m nhn vin, h tn ca nhng nhn vin c cng tn vi ngi thn. 8. Cho bit m nhn vin, h tn ca nhng nhn vin c ngi trng phng c h tn l Nguyn Mai 9. Cho bit m nhn vin, h tn ca nhng nhn vin c ngi qun l c h tn l Nguyn Mai
Trang 46/103

10. Cho bit m nhn vin, h tn ca nhng nhn vin tham gia mi n ca cng ty. 11. Cho bit m nhn vin, h tn ca nhng nhn vin khng tham gia n no ca cng ty. 12. Cho bit mc lng trung bnh ca nhn vin trong cng ty. 13. Cho bit mc lng trung bnh ca nhn vin nam trong cng ty. 14. Cho bit tng s n ca cng ty. 15. Vi mi n, cho bit tng s nhn vin tham gia vo n. 16. Vi mi n, cho bit tng s nhn vin n tham gia vo n. 17. Tng thi gian tham gia n ca cc nhn vin nam thm 4gi/tun 18. Xa tt c nhng nhn vin c mc lng di 500000 Bi 2: Cho lc CSDL Qun l sinh vin sau: SINHVIEN (MaSV, HoSV, TenSV, NgaySinh, DiaChi, Phai, Nam, Khoa) Tn t: Mi sinh vin c M sinh vin (MaSV) duy nht phn bit vi cc sinh vin khc, c h tn (HoSV, TenSV), ngy sinh (NgaySinh), a ch (DiaChi), phi Nam hoc N (Phai), nm nhp hc (Nam) v thuc v mt khoa (Khoa) GIANGVIEN (MaGV, HoGV, TenGV, NgaySinh, DiaChi, Phai, ChuyenNganh, Khoa) Tn t: Mi ging vin c M ging vin (MaGV) duy nht phn bit vi cc ging vin khc, c h tn (HoGV, TenGV), ngy sinh (NgaySinh), a ch (DiaChi), phi Nam hoc N (Phai), chuyn ngnh (ChuyenNganh) v thuc v mt khoa (Khoa) MONHOC (MaMH, TenMH, STC, Loai, Khoa) Tn t: Mi mn hc c m mn hc (MaMH) duy nht phn bit vi cc mn hc khc, c tn mn hc (TenMH), s tn ch (STC), l loi bt buc hay t chn (Loai), v do mt khoa (Khoa) chu trch nhim ging dy. DIEUKIEN (MaMH, MaMHTruoc) Tn t: Mt s mn hc c iu kin tin quyt, sinh vin mun hc mn hc (MaMH) th phi t c mn tin quyt ca mn hc ny (MaMHTruoc) KHOAHOC (MaKH, MaMH, HocKy, NamHoc, MaGV)
Trang 47/103

Tn t: Mt mn hc (MaMH) c t chc trong hc k (HocKy) ca mt nm hc (NamHoc) v do mt ging vin chu trch nhim ging dy (MaGV). Lu rng mt mn hc c th c m nhiu ln (chng hn nm hc 2007-2008 m cho kho CTK29, nm hc 2008-2009 m cho kho CTK30). Trong quan h ny, m kho hc (MaKH) th hin vic mt ln t chc ging dy mn hc. KETQUA (MaSV, MaKH, Diem, KetQua) Tn t: Khi sinh vin (MaSV) tham gia hc mn hc ti mt kho hc (MaKH) s c im nh gi (Diem) ca hc vin, t im nh gi s c kt qu (KetQua) t hay khng t. Hy vit cc biu thc i s quan h theo yu cu: 1. Cho bit m sinh vin, h tn ca mi sinh vin 2. Cho bit m mn hc, tn mn hc v s tn ch tng ng 3. Cho bit m mn hc, tn mn hc phi hc trc mn c m l CT101 4. Cho bit m sinh vin, h tn sinh vin cng vi cc mn hc m sinh vin t trn 5 im. 5. Cho bit m sinh vin, h tn sinh vin hc tt c cc kha hc. 6. Cho bit tng s sinh vin ca mi khoa. 7. Cho bit m sinh vin, h tn sinh vin t im cao nht trong mi kha hc 8. Cho bit m sinh vin, h tn sinh vin v im trung bnh ca sinh vin trong tng hc k ca tng nin hc 9. Cho bit m gio vin, h tn gio vin v chuyn ngnh ca nhng gio vin tham gia dy nm 2004-2005 10. Tng s tn ch cho nhng mn hc c hc trong hc k 1, nm 2004-2005 11. T im ca sinh vin, hy in vo ct KetQua tha: nu im>=5: t, ngc li: khng t.

Trang 48/103

Chng 5

Ngn Ng Tn T

Trong CSDL thc hin vic m hnh ha thng tin gm cc s kin c lin kt hay biu din mt tnh trng th gii thc. Ngn ng tn t ng dng logic ton th hin truy vn. Ngn ng tn t c hai loi, ngn ng tn t c bin l b v ngn ng tn t c bin l min gi tr. 1. 1.1. Ngn ng tn t c bin l b Mt s khi nim

Dng thc: {t | P(t )}, vi: t: bin b, nhn gi tr l mt b ca quan h. Khi t.A l gi tr ca b t ti thuc tnh A. P(t): cng thc lin quan n bin b t, ph thuc vo gi tr ca t m P(t) cho kt qu ng hay sai. Kt qu tr v l tp hp cc b t tho P(t) V d: Tm tt c nhng nhn vin nam

{t | NHANVIEN (t ) t.Phai =' Nam'}


Tm tt c nhng nhn vin n v c lng trn 1500000

{t | NHANVIEN (t ) t.Phai =' N' 't.Luong > 1500000}


Vi mi bin b t, quan h R m t bin thin trn c gi l quan h vng ca bin b. Gi tr ny c ch nh bng iu kin dng R(t). 1.2. nh ngha hnh thc ca php tnh b

Dng tng qut: {t1 . A1 , t 2 . A2 ,..., t n . An | P(t1 , t 2 ,..., t n , t n +1 ,..., t n + m )}, vi:
Trang 49/103

t1 , t2 ,..., tn , tn +1 ,..., t n+ m l cc bin b


Ai l thuc tnh ca quan h m bin b ti bin thin P l cng thc hay iu kin ca php tnh b. Cng thc c hnh thnh t cc cng thc nguyn t Cng thc nguyn t: C 3 dng: a. R(ti) l cng thc nguyn t, vi R l mt quan h v ti l mt bin b Cng thc ny xc nh vng ca bin b ti di hnh thc quan h c tn R V d: DEAN(t), NHANVIEN(x) b. t i . A t j .B l cng thc nguyn t, vi: l php so snh (<, >, =, , , ) ti, tj l cc bin b A l thuc tnh ca quan h trn b ti bin thin, Bl thuc tnh ca quan h trn b tj bin thin V d: x.MaPhong = y.Phong, vi PHONGBAN(x) v DEAN(y) c. t i . A c hoac c t j .B l cng thc nguyn t, vi: l php so snh (<, >, =, , , ) ti, tj l cc bin b A l thuc tnh ca quan h trn b ti bin thin, Bl thuc tnh ca quan h trn b tj bin thin c l gi tr hng V d: x.MaPhong = PH01, y.Luong > 500000 Nhn thy rng mi cng thc nguyn t u mang gi tr ng hoc sai. Vi (a), R(t) ng nu t l mt b thuc R, ngc li mang gi tr sai; vi (b, c) gi tr ng sai ph thuc vo kt qu thay th gi tr thc s ca b vo v tr bin b.
Trang 50/103

Mt cng thc (hay iu kin) c hnh thnh t mt hay nhiu cng thc nguyn t v c ni vi nhau bng cc ton t v, hoc, ph nh ( , , ) v c nh ngha nh sau: a. Mi cng thc nguyn t l cng thc b. Nu F1 v F2 l cc cng thc th (F1 F2 ), (F1 F2 ), F1 , F2 l cng thc v c gi tr:

(F1 F2 ) ch ng khi c F1 v F2 u ng (F1 F2 ) ch sai khi c F1 v F2 u sai F1 ng nu F1 sai, F1 sai nu F1 ng


1.3. Lng t tn ti v vi mi

Bin b t do v bin kt buc Mt bin b t l kt buc nu c km lng t, ngha l n xut hin trong mnh t S (P (t ) ) hay t S (P (t ) ) , ngc li n c gi l bin t do. Nu F l cng thc nguyn t th mi bin b t trong F u l bin t do. Tt c cc bin b t do t trong F c xem l bin kt buc trong cng thc F ' = (t )F hay F ' = (t )F i vi cc cng thc F = (F1 F2 ), F = (F1 F2 ), F = F1 , F = F2 , bin t l t do hay kt buc ph thuc vo n l t do hay kt buc trong F1 v F2 Bin b t do ch ra cc b m cu truy vn tr v, ngha l c s dng trong v tri. Ngc li bin b kt buc thng c s dng thc hin vic khng nh cc b trong CSDL, ngha l c s dng trong v phi. V d: Cho bit nhng nhn vin thuc phng c m s 5 v c lng >= 500000

{n | NHANVIEN (n) n.Phong = 5 n.Luong 500000}


Cho bit nhng n do phng Qun L ph trch

{d | DEAN (d ) (p PHONGBAN (d .Phong = p.MaPhong p.TenPhong =' QuanLy '))}


Tm nhng nhn vin tham gia trong tt c cc n ca cng ty
Trang 51/103

{n | NHANVIEN (n) (d DEAN (p PHANCONG ( p.MaDA = d .MaDA p.MaNV


Ch rng
t ( F ) ng nu F ng vi mi b t, sai nu t nht mt b sai. t ( F ) sai nu F sai vi mi b t, ng nu t nht mt b ng.

= n.MaNV )))}

2.

Ngn ng tn t c bin l min gi tr

Bin min gi tr nhn gi tr t min gi tr ca mt thuc tnh. Dng thc: {x1 , x 2 ,..., x n | P} , vi:

x1 , x 2 ,..., x n l danh sch cc bin min gi tr

P l iu kin hay cng thc theo x1 , x 2 ,..., x n

Kt qu cu truy vn l tp hp cc chn la ca cc b x1 , x 2 ,..., xn sao cho, vi


mi i, gi tr xi c thay th cho cc bin t do xi th iu kin ng. Bin xi c th l hng s, khi tt c cc b trong tp hp u l hng s trong v tr i. V d: Cho bit m nhn vin thuc phng c m s 5 v c lng >= 500000
NHANVIEN (Ma, Ho, Ten, NSinh, DChi, Phai, Lg , MaQL, Phg ) Ma, Ho, Ten | PhgLg Phg = 5 Lg 500000

Nhn thy rng Ma, Ho, Ten chnh l thuc tnh c yu cu; Phg, Lg l bin thc s xut hin trong mt cu iu kin. Tm h tn, a ch ca nhn vin thuc phng Qun L
NHANVIEN (Ma, Ho, Ten, NSinh, DChi, Phai, Lg , MaQL, Phg ) Ma, Ho, Ten, DChi | Phg TenPhg (MaPhg , TenPhg , TrPhg , NgayNC ) TenPhg =' Quan Ly'

Cng thc nguyn t: C 3 dng:


Trang 52/103

a. R(x1 , x 2 ,.., x j ) l cng thc nguyn t, vi R l mt quan h bc j Mi xi ,1 i n l mt bin min.

Cng thc ny cho bit (x1 , x2 ,.., x j ) l mt b ca quan h R, vi xi l gi tr


th i ca b. V d: {x1 , x 2 ,.., x n | R(x1 , x 2 ) ...}

b. xi x j l cng thc nguyn t, vi: l php so snh (<, >, =, , , ) xi, xj l cc bin min V d: MaPhg = Phg. c. xi c hoac c x j l cng thc nguyn t, vi: l php so snh (<, >, =, , , ) xi, xj l cc bin min c l hng V d: MaPhg = 1. Mt cng thc nguyn t c tr ng hoc sai vi mt tp gi tr c th tng ng vi cc bin min. Cc nh ngha v cng thc da trn cng thc nguyn t, cc nh ngha v bin kt buc v t do, cc lng t trong trng hp php tnh min cng tng t php tnh b. 3. Bi tp

Bi 1: Hy vit bng ngn ng tn t theo yu cu nh bi tp 1 trong chng 4. Bi 2: Hy vit bng ngn ng tn t theo yu cu nh bi tp 2 trong chng 4.
Trang 53/103

Trang 54/103

Chng 6

Ngn Ng Truy Vn SQL

SQL (Structured Query Language) l ngn ng CSDL quan h chun dnh cho cc CSDL quan h thng mi. T nhng nm 70, SQL c pht trin t IBM vi h qun tr CSDL quan h SYSTEMR vi ngn ng giao tip CSDL l Sequel (Structured English Query Language). Nm 1986, phin bn chun c chp nhn bi ANSI (American National Standards Institute) gi l SQL-86 hay SQL1 v nm 1987 c chp nhn bi ISO (International Standards Organization). T cc phin bn c a ra vo 1992, 1999, 2003. 1. Cc lnh hi

Cc lnh hi hay cn c gi l truy vn rt trch d liu. Lnh SELECT l lnh c bn rt trch thng tin t CSDL. Ch rng lnh SELECT khng hon ton ging nh php ton chn trong i s quan h, SQL cho php mt bng c hai hay nhiu b c gi tr ging nhau trn mi thuc tnh cng tn ti 1.1. C php lnh truy vn

C php lnh truy vn: SELECT <danh sch thuc tnh> FROM <danh sch cc bng> WHERE <iu kin> GROUP BY <cc thuc tnh gom nhm> HAVING <iu kin gom nhm> ORDER BY <danh sch thuc tnh> vi:
Trang 55/103

SELECT <danh sch thuc tnh>: tn cc thuc tnh c ly gi tr FROM <danh sch cc bng>: tn cc bng cn x l cu truy vn WHERE <iu kin>: biu thc iu kin chn v iu kin kt cc b trong cc quan h c ch ra trong mnh FROM GROUP BY <cc thuc tnh gom nhm>: ch ra cc thuc tnh gom nhm HAVING <iu kin gom nhm>: ch ra iu kin trch chn cc nhm ORDER BY <danh sch thuc tnh>: th t hin th kt qu cu truy vn Trong cu lnh, SELECT v FROM l bt buc, nhng thnh phn cn li c th khng c. 1.2. Php chiu

S dng mnh SELECT, kt qu gn ging vi php chiu ca i s quan h, lit k cc thuc tnh cn hin th trong kt qu cu truy vn. V d: Tm m nhn vin, h tn tt c cc nhn vin SELECT MaNV, HoNV, TenNV FROM NHANVIEN Tm m n, tn cc n SELECT MaDA, TenDA FROM DEAN 1.3. Php chn

S dng mnh WHERE, kt qu gn ging vi php chn ca i s quan h, nu iu kin lin quan n thuc tnh ca quan h xut hin trong mnh FROM. Thng s dng AND, OR, NOT, BETWEEN, cc php ton so snh. V d: Tm m nhn vin, h tn tt c cc nhn vin nam SELECT MaNV, HoNV, TenNV FROM NHANVIEN
Trang 56/103

WHERE Phai=Nam 1.4. Php kt

Trong mnh WHERE thng c iu kin kt nu nh trong mnh FROM c nhiu hn hai quan h. V d: Tm m nhn vin, h tn tt c cc nhn vin tham gia vo n c m DA01 SELECT MaNV, HoNV, TenNV FROM NHANVIEN, PHANCONG WHERE NHANVIEN.MaNV= PHANCONG.MaNV AND MaDA=DA01 Tm m nhn vin, h tn tt c cc nhn vin lm vic ti phng Ti chnh SELECT MaNV, HoNV, TenNV FROM NHANVIEN, PHONGBAN WHERE Phong=MaPhong AND TenPhong = Ti chnh 1.5. Mt s lu

S dng * Khi cn ly thng tin v tt c cc ct ca bng th s dng du sao (*) thay v phi lit k mi tn thuc tnh. V d: SELECT * FROM NHANVIEN Tn b danh Khi cu truy vn cn tham chiu ti cng mt quan h 2 ln th dng b danh cho tn quan h. SQL cho php i tn quan h v tn thuc tnh c thc hin bng AS (c th dng hoc khng) theo quy tc: Tn c [as] tn mi
V d:

SELECT MaNV, HoNV as Ho, TenNV as Ten FROM NHANVIEN


Trang 57/103

WHERE Phai=Nam Biu thc trong mnh SELECT Tn thuc tnh c th km theo tn bng nu cn lm r bng cch thm du chm (.) trc tn thuc tnh. V d: NHANVIEN.MaNV. Cu lnh SELECT cn cho php thc hin tnh ton theo cng thc da trn cc ct ca bng. V d: Tm m nhn vin, h tn v lng nhn vin, trong lng c tng thm 20% cho mi nhn vin SELECT MaNV, HoNV, TenNV, Luong*1.2 FROM NHANVIEN DISTINCT Nh trnh by trn, SQL cho php cc b trng nhau trong kt qu cu truy vn. loi b cc b trng nhau, s dng t kha DISTINCT sau SELECT. V d: Cho bit nhng mc lng hin c trong cng ty SELECT DISTINCT Luong FROM NHANVIEN Php so snh trn chui S dng LIKE so snh chui, c 2 k t c bit sau: % (hoc *): thay th cho mi k t bt k _ (hoc ?) : thay th cho mt k t bt k V d: Tm tt c nhng nhn vin c tn bt u bng M nh Mai, Minh, SELECT MaNV, HoNV, TenNV FROM NHANVIEN WHERE TenNV LIKE M%
Trang 58/103

Th t hin th Mnh ORDER BY s dng sp xp cc b trong kt qu cu truy vn da trn gi tr cc thuc tnh. Trong : Asc: sp theo th t tng dn (mc nh) Desc: sp theo th t gim dn V d: Tm tt c nhng nhn vin phng 1 v lng tng ng, sp xp gim dn theo lng SELECT MaNV, HoNV, TenNV, Luong FROM NHANVIEN WHERE Phong = 1
ORDER BY Luong desc

2.

Truy vn lng

cc v d trnh by, mnh WHERE bao gm thuc tnh n, cc php so snh hng s. Phn ny gii thiu cu truy vn lng, cho php lng cc cu truy vn li vi nhau. Khi cu truy vn con thng thng c s dng kim tra cc tp hp thnh vin, so snh tp hp, kim tra s tn ti. Khi s dng truy vn con trong mnh WHERE ca mt truy vn khc, mnh SELECT trong truy vn con phi ph hp vi s thuc tnh v kiu d liu ca mnh WHERE trong cu truy vn ngoi. Truy vn con tr v gi tr tp hp trong mnh WHERE c dng: <biu thc> [NOT] IN (<truy vn con>) <biu thc> <php ton so snh> ANY (<truy vn con>) <biu thc> <php ton so snh> ALL (<truy vn con>) Kim tra s tn ti: [NOT] EXISTS (<truy vn con>) Cc cu truy vn con trong mt mnh WHERE c th c kt hp bng cch s dng cc php ni logic
Trang 59/103

V d: Tm tt c nhng nhn vin nam lm vic trong phng Ti chnh SELECT MaNV, HoNV, TenNV FROM NHANVIEN WHERE Phong IN (SELECT MaPhong as Phong FROM PHONGBAN WHERE TenPhong = Ti chnh) AND Phai = Nam Trong trng hp iu kin mnh WHERE ca cu truy vn con tham chiu ti mt thuc tnh ca quan h c khai bo trong truy vn cha th hai cu truy vn c gi l tng quan. Cc tham chiu ti cc quan h v cc thuc tnh cha xut hin thng qua vic s dng b danh. V d: Tm tt c nhng nhn vin c cng tn vi ngi thn SELECT nv.MaNV, nv.HoNV, nv.TenNV FROM NHANVIEN as nv WHERE nv.MaNV IN (SELECT MaNV FROM THANNHAN WHERE TenTN = nv.TenNV) Tm tt c nhng nhn vin c lng ln hn mi nhn vin phng s 5 SELECT MaNV, HoNV, TenNV FROM NHANVIEN WHERE Luong > ALL (SELECT Luong FROM NHANVIEN WHERE Phong = 5) Tm tt c nhng nhn vin c lng ln hn t nht 1 nhn vin phng s 5
Trang 60/103

SELECT nv1.MaNV, nv1.HoNV, nv1.TenNV FROM NHANVIEN as nv1, NHANVIEN as nv2 WHERE nv1.Luong > nv2.Luong AND nv2.Phong = 5 Cm t ln hn t nht mt c th din t bng >SOME. V d trn c vit li nh sau: SELECT MaNV, HoNV, TenNV FROM NHANVIEN WHERE Luong > SOME (SELECT Luong FROM NHANVIEN WHERE Phong = 5) Hm EXISTS s dng kim tra kt qu ca cu truy vn tng quan c rng hay khng. Khi EXISTS (r) mang gi tr true nu c t nht mt b trong r, false nu ngc li. NOT EXISTS (r) mang gi tr true nu khng c b no trong r, false nu ngc li. V d Cho bit nhng nhn vin c cng tn vi thn nhn SELECT nv.MaNV, nv.HoNV, nv.TenNV FROM NHANVIEN nv WHERE EXISTS (SELECT * FROM THANNHAN WHERE MaNV = nv.MaNV AND TenTN= nv.TenNV) Gi tr null SQL cho php s dng cc gi tr null ch ra gi tr ca thuc tnh khng bit hay khng tn ti. Ch rng kt qu ca iu kin mnh WHERE l false nu n lin quan n null. Trong SQL s dng IS NULL hay IS NOT NULL kim tra cc gi tr rng. Trong :
Trang 61/103

Php so snh bng (=) khng dng c Cc hm gom nhm ngoi tr COUNT() b qua cc gi tr null trong tp cc d liu u vo Nu c iu kin kt th cc b c gi tr null trn thuc tnh kt s khng c trong kt qu. 3. Nhm lnh thc hin tnh ton

Hm kt hp Hm kt hp c u vo l mt tp gi tr v tr v mt gi tr n Avg(): gi tr trung bnh Min(): gi tr nh nht Max(): gi tr ln nht Sum(): tnh tng Count(): m s mu tin V d Cho bit nhng mc lng trung bnh v cao nht ca cc nhn vin phng c m l 5 SELECT AVG(Luong), MAX(Luong) FROM NHANVIEN WHERE Phong = 5 Gom nhm Cc hm gom nhm c p dng trn cc nhm b cng thuc tnh trong quan h. Mi nhm b bao gm tp hp cc b c cng gi tr trn cc thuc tnh gom nhm. Trong SQL s dng c php nh sau: SELECT <danh sch thuc tnh[vi hm kt hp]> FROM <danh sch cc bng> WHERE <iu kin> GROUP BY <cc thuc tnh gom nhm>
Trang 62/103

HAVING <iu kin gom nhm> Mnh GROUP BY ch ra cc thuc tnh gom nhm, cc thuc tnh trong mnh SELET nm ngoi mt hm kt hp phi xut hin trong mnh GROUP BY Mnh HAVING ly cc gi tr ca hm gom nhm ch trn nhng nhm no tha iu kin nht nh. Mnh HAVING ch ra iu kin lc trn cc nhm, khng phi iu kin lc trn tng b. V d Cho bit tn phng v lng trung bnh ca cc nhn vin trong phng ban ln hn 100000. SELECT TenPhong, AVG(Luong) FROM NHANVIEN, PHONGBAN WHERE Phong = MaPhong GROUP BY TenPhong HAVING AVG(Luong)>100000 4. Cc lnh khai bo cu trc CSDL

Kiu d liu Chn h qun tr CSDL SQL Server minh ha, Ta c mt s kiu d liu c bn: S (number) Chui (text, char, varchar, nvarchar) Ngy thng (datetime) Logic (bit) To bng CREATE TABLE <tn bng> ( <thuc tnh 1> <kiu d liu> [not null][unique] [<RBTV thuc tnh>], <thuc tnh 2> <kiu d liu> [not null][unique] [<RBTV thuc tnh>],

Trang 63/103

<thuc tnh n> <kiu d liu> [not null][unique] [<RBTV thuc tnh>], [<RBTV bng>] ) Cc thuc tnh c xp theo th t khi to bng. Cc rng buc cng c th c b sung sau bng cch dng ALTER TABLE V d CREATE TABLE PHONGBAN ( MaPhong TenPhong TruongPhong NgayNhanChuc char(5) nvarchar(30), char(5), datetime, not null,

PRIMARY KEY (MaPhong), UNIQUE (TenPhong) FOREIGN KEY (TruongPhong) REFERENCES NHANVIEN (MaNV) ) RBTV Mt s RBTV trong khi to bng: Not null: khng c cha gi tr null Kha chnh: khng c cha gi tr null v c xc nh bi PRIMARY KEY <thuc tnh> Kha ngoi: FOREIGN KEY <thuc tnh> REFERENCE <quan h> <thuc tnh> Tnh duy nht: c th cha gi tr null v c xc nh bi UNIQUE <thuc tnh> CHECK <iu kin>: iu kin n gin, khng cha cc cu truy vn hay tham chiu ti cc quan h khc
Trang 64/103

Trong SQL server, mi RBTV c th c t tn bng cch s dng CONSTRAINT <tn rng buc> <kiu rng buc>. Ch rng tn rng buc phi duy nht trong mt lc CSDL. V d: CREATE TABLE PHONGBAN ( MaPhong TenPhong TruongPhong NgayNhanChuc char(5) nvarchar(30), char(5), datetime, not null,

CONSTRAINT PK_PHONGBAN PRIMARY KEY (MaPhong), CONSTRAINT U_PHONGBAN UNIQUE (TenPhong) CONSTRAINT PK_PHONGBAN FOREIGN REFERENCES NHANVIEN (MaNV) ) Xa bng DROP TABLE <tn bng> xa bng V d DROP TABLE PHONGBAN Thay i cu trc Thm ct ALTER TABLE NHANVIEN ADD ChuyenMon Xa ct ALTER TABLE NHANVIEN DROP ChuyenMon B sung, thay i RBTV ALTER TABLE NHANVIEN DROP CONSTRAINT FK_NHANVIEN ALTER TABLE NHANVIEN ADD CONSTRAINT FK_NHANVIEN FOREIGN KEY (MaNQL) REFERENCES NHANVIEN (MaNV)
Trang 65/103

KEY

(TruongPhong)

char(40)

5. 5.1.

Nhm lnh cp nht d liu Thm

C th thm mt b vo bng bng cch s dng: INSERT INTO <bng> [<thuc tnh 1>, <thuc tnh 2>,, <thuc tnh n>] VALUES (<gi tr 1>, <gi tr 2>,,<gi tr n>) Ch rng th t gi tr trong VALUES l th t cc thuc tnh c ch ra trong CREATE TABLE V d INSERT INTO PHANCONG VALUES (NV01, DA01, 10 )
C th thm nhiu b vo bng bng cch s dng:

INSERT INTO <bng> [<thuc tnh 1>, <thuc tnh 2>,, <thuc tnh n>] SELECT FROM WHERE 5.2. Xa

C th xa mt hay nhiu b khi bng bng cch s dng DELETE FROM <bng> [WHERE <iu kin>] V d Xa nhng nhn vin c mc lng di 100000 DELETE FROM NHANVIEN WHERE Luong<100000 Xa nhng nhn vin lm vic cho phng Nghin cu DELETE FROM NHANVIEN WHERE Phong in (SELECT MaPhong FROM PHONGBAN WHERE TenPhong = Nghin cu)

Trang 66/103

Ch rng cc b trong bng khc c th b xa do rng buc tham chiu. gii quyt vn ny c th khng cho xa hoc xa lun nhng b ang tham chiu n. 5.3. Sa

Cp nht cc gi tr thuc tnh ca mt hay nhiu b bng cch s dng UPDATE <bng> SET <thuc tnh 1>= <gi tr 1>, <thuc tnh 2>= <gi tr 2>, <thuc tnh n>= <gi tr n> [WHERE <iu kin>] Cc b tha iu kin s c cp nht gi tr cho cc thuc tnh. Ch rng cc b trong bng khc c th c cp nht do rng buc tham chiu. gii quyt vn ny c th khng cho thay i hoc thay i lun nhng gi tr tham chiu n. V d Tng thm 100000 cho cc nhn vin phng Nghin cu UPDATE NHANVIEN SET Luong = Luong +100000 WHERE Phong IN ( SELECT MaPhong FROM PHONGBAN WHERE TenPhong = Nghin cu) 6. Bi tp

Thc hin cc cu truy vn trong bi tp chng 4.

Trang 67/103

Chng 7

Ph thuc hm, kha v rng buc ton vn ca lc quan h


Ph thuc hm (functional dependency) dng biu din mt cch hnh thc cc rng buc ton vn (RBTV). Ph thuc hm c tm quan trng rt ln trong vic gii quyt cc bi ton tm kha, ph ti thiu v chun ha c s d liu. Ni dung chng cng trnh by rng buc ton vn (RBTV), cc yu t lin quan n rng buc ton vn nhm bo m tnh ng n ca d liu. 1. 1.1. Ph thuc hm Khi nim

Xt quan h DEAN(MaDA, TenDA, DdiemDA, Phong). Nhn thy rng quan h DEAN c MaDA l kha, ngha l t MaDA c th xc nh c tt c cc thng tin v tn n, a im thc hin n v phng ban ch tr n. C th pht biu li nh sau: MaDA xc nh TenDA hay TenDA ph thuc hm vo MaDA MaDA xc nh DdiemDA hay DdiemDA ph thuc hm vo MaDA MaDA xc nh Phong hay Phong ph thuc hm vo MaDA c k hiu: MaDA MaDA MaDA TenDA DdiemDA Phong

Mt cch tng qut, ta c: nh ngha ph thuc hm Q(A1, A2,, An ) l quan h; Q+= {A1, A2,, An }; X, Y l hai tp con ca Q+; t1, t2 l hai b bt k ca Q.
Trang 68/103

Khi : X Y (t1.X = t2.X t1.Y = t2.Y) Ta ni X xc nh Y hay Y ph thuc hm vo X. X c gi l v tri ph thuc hm, Y c gi l v phi ph thuc hm. Ph thuc hm hin nhin X Y gi l ph thuc hm hin nhin nu Y X .

Ph thuc hm nguyn t X Y c gi l ph thuc hm nguyn t (hoc ni cch khc Y c gi l ph thuc y vo X) nu X ' X u khng c ph thuc hm X Y. Nh vy cc ph thuc hm MaDA ph thuc hm nguyn t. TenDA, MaDA DdiemDA, MaDA Phong l

Xt quan h CTIETHOADON (SoHD, MaHang, SoLuong, DonGia, ThanhTien) v cc ph thuc hm nh sau: {SoHD, MaHang} {SoHD, MaHang} {SoHD, MaHang} SoLuong DonGia ThanhTien

Nhn thy rng SoLuong ph thuc y vo {SoHD, MaHang} nhng DonGia ch ph thuc vo MaHang (l mt thuc tnh kha) ch khng ph thuc y vo kha {SoHD, MaHang}. Nh vy, trn mt lc quan h c th tn ti nhiu ph thuc hm. Tp cc ph thuc hm c k hiu F 1.2. H lut dn Amstrong

Gi F l tp ph thuc hm i vi lc quan h R nh ngha trn tp thuc tnh U v X Y l mt ph thuc hm; X , Y U . Khi ta ni rng X Y c suy din logic t F nu R tha cc ph thuc hm ca F th cng tha X Y v k hiu l F|=X Y Bao ng ca tp ph thuc hm Bao ng ca tp ph thuc hm F, k hiu l F+ l l tp tt c cc ph thuc hm c duy din t F. Trong trng hp F=F+ th F l h y ca cc ph thuc hm.

Trang 69/103

H lut dn Amstrong Amstrong a ra h lut tin cn c gi l h lut dn Amstrong sau: Vi X , Y , Z ,W U . Ph thuc hm c cc tnh cht sau: (1) Tnh phn x Nu Y X th X Y (2) Tnh tng trng Nu X Y th XZ YZ (3) Tnh bc cu Nu X Y v Y Z th X Z T h tin Amstrong suy ra mt s tnh cht sau: (1) Tnh phn r Nu X YZ v X Y th X Z (2) Tnh kt hp Nu X Y v X Z th X YZ (3) Tnh ta bc cu Nu X Y v YZ W th XZ W V d Cho lc quan h R(A, B, C, D, E, G, H) v tp ph thuc hm F={AB C, B D, CD E, CE GH, G A} Chng t AB E c suy din t F. (1) AB C (2) AB AB (tnh phn x) (3) AB B (tnh phn r) (4) B D (5) AB D (tnh bc cu 3+4)
Trang 70/103

(6) AB CD (tnh hp 1+5) (7) CD E (8) AB E (tnh bc cu 6+7) 1.3. Thut ton tm bao ng ca tp thuc tnh

Bao ng ca tp thuc tnh


+ Bao ng ca tp thuc tnh X i vi tp ph thuc hm F, k hiu l X F l tp tt c cc thuc tnh A c th suy dn t X nh tp bao ng ca cc ph thuc hm F+ + X F = {A Q + | X A F + }

Thut ton tm bao ng ca tp thuc tnh Input: (Q, F ), X Q +


+ Output: X F

Bc 1: Tnh dy X ( 0 ) , X (1) ,..., X (i ) :


X ( 0) = X X ( i +1) = X ( i ) Z , (Y Z ) F (Y X ( i ) ) , loi (Y Z ) ra khi F

Dng khi X (i +1) = X (i ) hoc khi X (i ) = Q +


+ Bc 2: Kt lun X F = X (i ) :

V d 1 Cho lc quan h R(A, B, C, D, E, G, H) v tp ph thuc hm F={ f1: B A , f2: DA CE, f3: D H, f4: GH C, f5: AC D}
+ Tm AC F

Trang 71/103

Bc 1: X 0 = AC Bc 2: T f1 n f4 khng tho, f5 tho nn X 1 = AC D = ACD Lp li bc 2: f1 khng tho, f2 tha nn X 2 = ACD CE = ACDE f3 tha nn X 3 = ACDE H = ACDEH f4 khng tha, f5 tha Lp li bc 2: f2, f3 v f5 tha, f1 v f3 khng tha. Nn X 4 = X 3 = ACDEH
+ Vy AC F = ACDEH

1.4.

Bi ton thnh vin

Cho tp thuc tnh Q, tp ph thuc hm F trn Q v mt ph thuc hm X Y trn Q. Cu hi t ra rng X Y F + hay khng? Gii quyt: X Y F + Y X + V d Cho lc quan h R(A, B, C, D, E, G, H) v tp ph thuc hm F={ f1: B A , f2: DA CE, f3: D H, f4: GH C, f5: AC D} Cho bit AC E c thuc F+ khng?
+ Ta c ACF = ACDEH + V E AC F nn AC E F +

1.5.

Ph ti thiu ca mt tp ph thuc hm

1.5.1. Hai tp ph thuc hm tng ng

Trang 72/103

Hai tp ph thuc hm F v G tng ng nu F + = G + . K hiu F G F c gi l ph G nu F + G + Thut ton xc nh F v G c tng ng khng Bc 1: Vi mi ph thuc hm X Y F , kim tra X Y c l thnh vin ca G khng. Bc 2: Vi mi ph thuc hm X Y G , kim tra X Y c l thnh vin ca F khng. Bc 3: Nu c bc 1 v 2 u ng th kt lun F G V d Cho lc quan h R(A, B, C, D, E) v tp ph thuc hm F={ A BC , A D, CD E} G={ A BCE , A ABD, CD E} Cho bit F v G c tng ng khng? Bc 1:
+ AG = ABCDE A BC G + A D G +

Hn na ta c (CD E F CD E G ) Vy mi ph thuc hm trong F u l thnh vin ca G Bc 2:


+ AF = ABCDE (A BCE F + A ABD F + )

Hn na ta c (CD E G CD E F ) Vy mi ph thuc hm trong G u l thnh vin ca F Bc 3: Kt lun F G 1.5.2. Ph ti thiu ca tp ph thuc hm Ph thuc hm c thuc tnh v tri d tha Cho F l tp cc ph thuc hm trn lc quan h Q. Khi Z Y F l ph thuc hm c thuc tnh v tri d tha nu tn ti A Z m F = F (Z Y ) (( Z A) Y )
Trang 73/103

Ngc li Z Y l ph thuc hm c thuc tnh v tri khng d tha hay Y ph thuc y vo Z. Z Y cn c gi l ph thuc hm y . V d Cho lc quan h R(A, B, C, D, E) v tp ph thuc hm F={ A B , BC D, C D} Khi A B , C D l nhng ph thuc hm y . BC D l ph thuc hm khng c thuc tnh v tri d tha. Vn l tm cc ph thuc hm y tng ng bng cch loi b cc thuc tnh d tha. Thut ton tm cc ph thuc hm y tng ng Thc hin vi mi ph thuc hm X Y F Bc 1: X = A1, A2, An (n>=2, vi n=1 th X Y l y ) t Z=X Bc 2: Vi mi Ai, thc hin - Tam = Z \ Ai - Nu Tam Y F + th Z=Tam Tp ph thuc hm c v phi mt thuc tnh Mi tp ph thuc hm F u tng ng vi mt tp ph thuc hm G m v phi ca cc ph thuc hm thuc G ch gm mt thuc tnh V d: Cho lc quan h R(A, B, C, D, E) v tp ph thuc hm F={ A BC , A D, CD E} Khi G={ A B, A C , A D, CD E} l tp ph thuc hm c v phi mt thuc tnh v F G Tp ph thuc hm khng d tha F l tp ph thuc hm khng d tha nu khng tn ti F ' F sao cho F ' F . Ngc li F c gi l tp ph thuc hm d tha.

Trang 74/103

Thut ton loi nhng ph thuc hm d tha Vi mi ph thuc hm X Y F , nu X Y l thnh vin ca F {X Y } th loi X Y khi F. 1.5.3. Ph ti thiu ca tp ph thuc hm F c gi l ph ti thiu ca tp ph thuc hm (hay tp ph thuc hm ti thiu) nu tha: (i) (ii) (iii) F l tp ph thuc hm c thuc tnh v tri khng d tha F l tp ph thuc hm c v phi mt thuc tnh F l tp ph thuc hm khng d tha

Thut ton tm ph ti thiu ca tp ph thuc hm Bc 1: Loi cc thuc tnh c v tri d tha ca mi ph thuc hm Bc 2: Phn r cc ph thuc hm c v phi nhiu thuc tnh thnh cc ph thuc hm c v phi mt thuc tnh Bc 3: Loi cc ph thuc hm d tha khi F V d Cho lc quan h R(A, B, C, D, E, G, H) v tp ph thuc hm F={ B A , DA CE, D H, GH C, AC D} Tm ph ti thiu ca F. Bc 1:

Vi DA CE:
+ + o Gi s D tha th A CE F + : ta c AF = A , CE AF nn D khng tha + + o Gi s A tha th B CE F + : ta c DF = DH , CE DF nn A khng tha

Vi GH C:
+ + o Gi s G tha th H C F + : ta c H F = H , C H F nn G khng tha

Trang 75/103

+ + o Gi s H tha th G C F + : ta c G F = G , C G F nn H khng tha

Vi AC D:
+ + o Gi s A tha th C D F + : ta c C F = C , D C F nn A khng tha + + o Gi s C tha th A D F + : ta c AF = A , D AF nn C khng tha

Vy mi ph thuc hm u l y . Bc 2: Phn r v phi ta c F={ B A , DA C, DA E, D H, GH C, AC D} Bc 3: Loi cc ph thuc hm d tha:


+ + Vi B A: ta c BF \{B A} = B , A BF \{B A} nn B A l khng tha + + Vi DA C: ta c DAF \{DAC } = DAEH , C DAF \{DAC } nn DA C l khng tha + + Vi DA E: ta c DAF \{DA E } = DACH , E DAF \{DA E } nn DA E l khng tha
+ + Vi D H: ta c DF \{D H } = D , H DF \{D H } nn D H l khng tha + + Vi GH C: ta c GH F \{GH C } = GH , C GH F \{GH C } nn GH C l khng tha + + Vi AC D: ta c AC F \{AC D} = AC , D AC F \{AC D} nn AC D l khng tha

Vy ph ti thiu ca F: PTT(F) = { B A , DA C, DA E, D H, GH C, AC D} 2. 2.1. Kha nh ngha

Cho lc quan h Q(A1, A2, , An), Q+ l tp thuc tnh ca quan h Q, F l tp ph thuc hm trn Q, K l tp con ca Q+. Khi K gi l mt kha ca Q nu: (i) (ii) K+F = Q+ Khng tn ti K ' K sao cho K+F = Q+

Thuc tnh A c gi l thuc tnh kha nu A K , trong K l kha ca Q. Ngc li thuc tnh A c gi l thuc tnh khng kha. K c gi l siu kha nu K K ' . 2.2. Thut ton tm kha
Trang 76/103

2.2.1. Thut ton tm mt kha S dng th c hng tm kha nh sau: Bc 1: Mi nt ca th l tn mt thuc tnh ca lc quan h R Cung ni hai thuc tnh A v B th hin ph thuc hm A B

Thuc tnh ch c cc mi tn i ra (ngha l ch nm trong v tri ca ph thuc hm) c gi l nt gc Thuc tnh ch c cc mi tn i ti (ngha l ch nm trong v phi ca ph thuc hm) c gi l nt l Bc 2: Xut pht t tp cc nt gc (X), da trn tp cc ph thuc hm F, tm bao ng + XF.
+ Nu X F = Q + th X l kha, ngc li b sung mt thuc tnh khng thuc nt l vo X ri thc hin tm bao ng ca X. Dng khi tm c mt kha ca R.

V d Cho lc quan h R(A, B, C, D, E, G, H) v tp ph thuc hm F={ B A , DA CE, D H, GH C, AC D} Tm mt kha ca R. Phn r v phi ta c F ={ B A , DA C, DA E, D H, GH C, AC D}

Trang 77/103

E F3 H F4 F5 D A

G F6

F2

F1

Nhn thy t th trn, nt B v G l nt gc. Kha ca R phi cha thuc tnh B hoc G, trong v d ny chn B.
+ + BF = BA , V BF Q + nn B khng l kha. Nhn thy D l thuc tnh v tri ca ba ph

thuc hm trong F nn b sung thuc tnh D vo xt kha.


+ + BDF = BDACEH , v BDF Q + nn BD khng l kha. B sung thuc tnh G. + + BDG F = BDGACEH , v BDG F = Q + nn BDG l kha.

2.2.2. Thut ton tm tt c cc kha Tp thuc tnh ngun, k hiu l N, l tp cha nhng thuc tnh ch xut hin v tri, khng nm bn v tri v v phi ca mi ph thuc hm Tp thuc tnh trung gian, k hiu l TG, l tp cha nhng thuc tnh va xut hin v tri, va xut hin v phi trong cc ph thuc hm Thut ton
+ Bc 1: Tnh tp ngun N. Nu N F = Q + th ch c 1 kho l N, ngc li qua bc 2

Bc 2: Tnh tp trung gian TG. Tnh tp tt c cc tp con Xi ca tp TG. Bc 3: Tm tp S cha mi siu kha Si: Vi mi Xi, nu (N X i )+ = Q + th S i = (N X i ) F Bc 4: Loi cc siu kha khng ti tiu:
S i , S j S , nu S i S j th S = S S j Trang 78/103

V d. Cho lc quan h R(A, B, C) v tp ph thuc hm


F={ AB C, C A}

Tm mi kha ca R.
+ Bc 1: N = {B}, N F = B Q +

Bc 2: TG = {AC}, tp cc tp con trung gian l CTG = {, A, C , AC}

Bc 3: N B B B B Xi

N Xi

( N X i )+
B BAC BCA BAC

( N X i )+
Sai ng ng ng

= Q+ ?

B BA BC BAC

A C AC

Nh vy tp siu kho S = {BA, BC , BAC } Bc 4: Loi cc siu kha khng ti tiu: Nhn thy rng BA BAC nn loi siu kha BAC. Tp cc kha cn li l S = {BA, BC} Ci tin thut ton Nhn thy rng bc 3, khi xt tp mt con Xi, nu (N X i )+ = Q + , khi N X i l mt kho. Trong trng hp ny nu xt tip cc tp Xj : Xi Xj , th hin nhin (N Xj )+ = Q + , v cui cng siu kho N X j cng s b loi bc 4. Hn na, bc tnh tp con u tin l rng cng khng cn tnh. Do , khi tnh bao ng ca tp thuc tnh, khng tnh Xi = v nu (N X i )+ = Q + , thc hin loi b cc tnh ton cho cc trng hp Xj : Xi Xj . Khi kt thc thut ton ti bc 3, khng cn thc hin bc 4 v tt c cc kho nhn c bc 3 u l ti tiu.
Trang 79/103

3. 3.1.

Rng buc ton vn Rng buc ton vn cc yu t ca rng buc ton vn

Trong CSDL lun tn ti nhiu mi lin h gia cc thuc tnh, cc b, cc bng vi nhau. Cc mi lin h ny l nhng iu kin bt bin m tt c cc b ca nhng quan h c lin quan u phi tha mn ti mi thi im. Nhng iu kin bt bin c gi l rng buc ton vn. Rng buc ton vn (Intergrity constraint) vit tt ting vit l RBTV, l mt iu kin c nh ngha lin quan n mt hay nhiu quan h khc nhau. Cc mi lin h rng buc l nhng iu kin bt bin m mi th hin ca quan h u phi tha mn trong mi thi im. Trong thc t, RBTV l cc quy tc qun l trong th gii thc. Mc ch ca RBTV l bo m tnh nht qun ca d liu, bo m rng d liu lun biu din ng ng ngha trong thc t. V d: vi giao dch chuyn tin, thc hin qua cc bc sau: Ti ti khon ca ngi gi: tr tin Ti ti khon ca ngi nhn: thm tin Nu c hai vic trn u thnh cng th hon tt giao dch, ngc li quay lui giao dch. Qua v d trn, giao dch thc hin tr tin v tng tin trong ti khon ca ngi gi v ngi nhn, nu khng th khng thc hin g c. Vic thc hin giao dch cn phi bo m tnh ng ca d liu. Mi mt RBTV c cc yu t sau: Bi cnh Bi cnh l mt hay nhiu quan h cn phi s dng kim tra RBTV. Hay ni cch khc bi cnh ca RBTV l nhng quan h c kh nng b vi phm RBTV khi thc hin cc thao tc cp nht d liu (thm, xa, sa cc b) Biu din: iu kin hay ni dung iu kin c kim tra trn mi thay i ca th hin ca cc quan h c s. iu kin ca mt RBTV c th c biu din bng nhiu cch khc nhau, chng hn nh ngn ng t nhin, ngn ng hnh thc (thut ton, i s quan h,..).

Trang 80/103

Khi mt RBTV b vi phm, c th x l bng cch thng bo cho NSD bit RBTV b vi phm nh th no, hoc t chi thc hin thao tc cp nht d liu v thng bo cho NSD bit thao tc cp nht b t chi trn cc quan h no v ti cc bc no. Tm nh hng Trong qu trnh phn tch thit k CSDL, cn thit phi lp bng tm nh hng cho RBTV nhm xc nh thi im cn kim tra RBTV, v khi kim tra cn kim tra trn quan h no. Bng tm nh hng ca mt RBTV c dng sau: Tn RBTV R1 R2 Rn Trong : Du + th hin thao tc c th gy ra vi phm RBTV. Trong trng hp +(A) cho bit thao tc sa c th gy vi phm trn thuc tnh A. Du - th hin thao tc khng vi phm RBTV. 3.2. Cc loi rng buc ton vn Thm + + Xa Sa +(A) +(B) +

Trong qu trnh phn tch thit k CSDL, yu cu cn thit l phi tm c nhng RBTV tim n trong CSDL. Vic phn loi RBTV cho php ngi phn tch tm kim y , trnh b st nhng RBTV. Cc loi RBTV c phn thnh hai dng chnh nh sau: RBTV c bi cnh l mt quan h RBTV c bi cnh l nhiu quan h 3.2.1. Rng buc ton vn c bi cnh l mt quan h RBTV c bi cnh l mt quan h c chia thnh ba loi: RBTV min gi tr, RBTV lin b v RBTV lin thuc tnh 3.2.1.1. Rng buc ton vn min gi tr

Quy nh r v min gi tr ca mt thuc tnh.


Trang 81/103

V d. Thi gian phn cng tham gia n ca mt nhn vin khng qu 40h/tun Bi cnh: quan h PHANCONG Biu din: pc PHANCONG ( pc.ThoiGian 40 ) Bng tm nh hng: RB1 PHANCONG Thm + Xa Sa +(ThoiGian)

V d. im ca mn hc phi l thang im 10 Bi cnh: quan h KETQUA (MaMH, MaLop, MaKH, Diem ) Biu din: kq KETQUA(kq.Diem 0 kq.Diem 10 ) Bng tm nh hng: RB2 KETQUA Thm + Xa Sa +(Diem)

3.2.1.2.

Rng buc ton vn lin thuc tnh

Quy nh cc rng buc gia cc thuc tnh khc nhau trong cng mt quan h V d. Ngy tr sch phi l bng hoc sau ngy mn sch Bi cnh: quan h MUONSACH(MaSach, MaDocGia, NgayMuon, NgayHenTra, NgayThucTra) Biu
ms MUONSACH (ms.NgayMuon ms.NgayHenTra ms.NgayMuon ms.NgayThucTra )

din:

Bng tm nh hng: RB3 MUONSACH 3.2.1.3. Thm Xa + Sa +(NgayMuon, NgayHenTra, NgayThucTra)

Rng buc ton vn lin b


Trang 82/103

Quy nh s tn ti ca mt hoc nhiu b ph thuc vo s tn ti ca mt hoc nhiu b khc trong cng quan h. RBTV kha chnh l RBTV lin b V d. Mi n trong cng ty c mt m duy nht phn bit vi cc n khc Bi cnh: quan h DEAN iu kin: da1, da 2 DEAN : da1 da 2 (da1.MaDA da 2.MaDA) Bng tm nh hng: RB4 DEAN Thm + Xa Sa +(MaDA)

RBTV v s lng cc b trong mt quan h. V d. Mi sinh vin trong mt hc k c ng k khng qu 8 mn hc Bi cnh: quan h DANGKY(MaSV, MaMH) Biu din: dk1 DANGKY : count (dk 2 DANGKY | dk 2.MaSV = dk1.MaSV ) 8 , trong count() l hm m s b ca mt quan h tha iu kin trong ngoc (). Bng tm nh hng: RB4 DANGKY Thm + Xa Sa +(MaSV)

3.2.2. Rng buc ton vn c bi cnh l nhiu quan h RBTV c bi cnh l nhiu quan h c chia thnh nm loi: RBTV tham chiu RBTV lin b - lin quan h RBTV lin thuc tnh - lin quan h RBTV do thuc tnh tng hp RBTV do chu trnh
Trang 83/103

3.2.2.1.

RBTV tham chiu

Quy nh gi tr xut hin ca mt tp thuc tnh trong mt quan h phi xut hin trong mt tp thuc tnh trong mt quan h khc. RBTV ny cn c gi l RBTV tham chiu, RBTV ph thuc tn ti hay RBTV kha ngoi. V d RBTV trn 2 quan h Mt nhn vin phi thuc v mt phng trong cng ty, ngha l trong quan h NHANVIEN, nu mt m phng (Phong) m nhn vin trc thuc xut hin, th m phng ny phi xut hin trong quan h PHONGBAN, c th l thuc tnh (MaPhong). Nh vy: Bi cnh: NHANVIEN, PHONGBAN Biu
nv NHANVIEN ((nv.Phong = NULL ) (pb PHONGBAN (nv.Phong = pb.MaPhong )))

din:

Bng tm nh hng: RB5 NHANVIEN Thm + Xa + Sa +(Phong) +(MaPhong )

PHONGBAN V d RBTV trn 1 quan h

Ngi qun l (MaNQL) ca mt nhn vin cng phi l mt nhn vin trong cng ty Bi cnh: NHANVIEN iu
nv NHANVIEN ((nv.MaNQL = NULL ) (nv1 NHANVIEN (nv.MaNQL = nv1.MaNV )))

kin:

Bng tm nh hng: RB6 NHANVIEN Thm + Xa Sa +(MaNV, MaNQL)

nh hng ca RBTV i vi cc thao tc thm, xa, sa d liu Gi s r2 c mt kha ngoi tham chiu n K trong r1, khi : (r2 ) K (r1 )
Trang 84/103

Thm Khi thm mt b t2 vo r2 th phi bo m tn ti t1 trong r1 sao cho t1 [ K ] = t 2 [ ] Xa Gi s xa t1 khi r1. Khi cn x l cc b trong r2 tham chiu ti t1, ngha l s = =t1[ K ] ( r2 ) . Nu s th Khng thc hin hnh ng xa d liu, hoc Xa dy chuyn, ngha l xa tt c cc b trong s Sa Trng hp cp nht t2 trong r2 Cp nht t2 trong r2, sa kha ngoi Tng t nh trng hp thm d liu
' Kim tra t 2 [ ] K (r1 )

Trng hp cp nht t1 trong r1 Cp nht t1 trong r1 Tng t nh trng hp xa d liu Kim tra =t1[ K ] ( r2 ) = 3.2.2.2. RBTV lin b - lin quan h

Quy nh v tng nhm cc b ca nhiu quan h bi cnh khc nhau. V d Mt ha n bn hng phi c t nht mt mt hng, ngha l mt chi tit ha n bn hng phi c t nht mt mt hng. Bi cnh: HOADON, CTIETHD Biu din: hd HOADON (cthd CTIETHD (hd .MaHD = cthd .MaHD )) Bng tm nh hng: RB7 Thm Xa Sa

Trang 85/103

HOADON CTIETHD 3.2.2.3.

+ -

+(MaHD) +(MaHD)

RBTV lin thuc tnh - lin quan h

Quy nh v mi lin h gia cc thuc tnh trn nhiu quan h bi cnh khc nhau. V d Gi s cho php thanh ton tin nhiu ln v thanh ton sau khi mua hng, khi ngy thanh ton tin theo mt ha n mua hng phi bng hoc sau ngy mua hng. Bi MaKH, NgayHD, TriGia), cnh: HOADON(MaHD, THANHTOAN(MaHD, NgayTToan, LanTToan, SoTienTToan)

Biu din:
hd HOADON (tt THANHTOAN (hd .MaHD = tt.MahD hd .NgayHD tt.NgayTToan ))

Bng tm nh hng: RB8 HOADON THANHTOAN Thm + + Xa Sa +(MaHD, NgayHD) +(MaHD, NgayTToan)

3.2.2.4.

RBTV do thuc tnh tng hp

Quy nh v mi lin h gia cc thuc tnh do s c mt ca thuc tnh tnh ton. V d im trung bnh ca sinh vin bng trung bnh ca cc mn m sinh vin theo hc Bi cnh: SINHVIEN(MaSV, HoSV, KETQUA (MaSV, MaMon, Diem) TenSV, Khoa, DTB)

Biu din:
sv SINHVIEN (kq KETQUA(sv.MaSV = kq.MaSV sv.DTB = AVG (kq.Diem )))

Bng tm nh hng: RB9 SINHVIEN Thm + Xa Sa +(MaSV, DTB)

Trang 86/103

KETQUA

+(MaSV, Diem)

3.2.2.5.

RBTV do chu trnh

Xy ra khi c s hin din ca chu trnh. nhn din chu trnh, ngi ta biu din lc CSDL nh sau: Nt th hin lc Nt thuc tnh kt
NHANVIEN MaNV=MaNV

Cung ni gia nt lc v nt thuc tnh kt

NHANVIEN

MaNV=MaNV

V d Mt nhn vin ch c phn cng vo cc n do phng mnh ch tr Bi cnh: NHANVIEN, DEAN, PHANCONG th th hin chu trnh nh sau:
MaNV=MaNV

PHANCONG

NHANVIEN

MaDA=MaDA

Phong=Phong DEAN

Biu din:

Trang 87/103

pc PHANCONG (nvda NV _ DA(nvda.MaNV = pc.MaNV nvda.MaDA = pc.MaDA)) vi: NV _ DA NHANVIEN >< Phong = MaPhong DEAN

Bng tm nh hng: RB10 NHANVIEN DEAN PHANCONG 4. Bi tp Thm + Xa + + Sa +(MaNV, Phong) +(MaDA, Phong) +(MaDA, MaNV)

Bi tp 1 Hy chng minh 3 tnh cht phn r, kt hp v ta bc cu. Hy tm hiu cc tnh cht ca bao ng tp thuc tnh, ph ti thiu Bi tp 2 Cho lc quan h R(A, B, C, D, E, G) v tp ph thuc hm F={A C , A EG, B D, G E }
+ + + Tm ABF , CGDF , AF

Bi tp 3 Cho lc quan h R(A, B, C, D, E, G) v tp ph thuc hm F={B C , A EG, B A, G E }


+ + + Tm ABF , CGDF , AF

Bi tp 4 Cho lc quan h R(A, B, C, D, E) v tp ph thuc hm F={A C , BC D, D E, E A }


+ + + Tm ABF , BDF , DF

Bi tp 5 Cho lc quan h R(A, B, C, D, E) v tp ph thuc hm


Trang 88/103

F={B C , AC D, D G, AG E } Cho bit AC E c thuc F+ khng? Cho bit BD AD c thuc F+ khng? Vi cc bi tp 7, 8, 9: Tm mt kha (theo thut ton tm mt kha) Tm mi kha (theo thut ton tm mi kha) Tm ph ti thiu Bi tp 7 Cho lc quan h R(A, B, C, D) v tp ph thuc hm F={AB CD, B C,C D} Bi tp 8 Cho lc quan h R {ABCDEFGHKLM} v tp ph thuc hm F={ A Bi tp 9 Cho lc quan h R {ABCDEFGHKL} v tp ph thuc hm F={A B, AC D, F G, FK LEH, E FH} B, C D, E F, G AHK, AH G, GLC M}

Bi tp 10 Vi hai bi ton tnh hung l qun l n v qun l ngn hng, ngoi tr cc rng buc kho chnh v kho ngoi, hy tm tt c cc RBTV theo yu cu: bi cnh, biu din, tm nh hng. Vi nhng RBTV tm c, hy phn theo tng loi RBTV.

Trang 89/103

Chng 8

Dng chun v chun ha c s d liu

Chng ny gii thiu cc dng chun, phn r bo ton thng tin, bo ton ph thuc hm, qua cng trnh by cch phn r bo ton bo ton thng tin v bo ton ph thuc. 1. Dng chun ca lc quan h

d dng trnh by cc dng chun, cn nm r cc khi nim: Thuc tnh kho: Cho lc quan h Q( A1 , A2 ,..., An ) , thuc tnh B c gi l thuc tnh kho nu B l mt thuc tnh thnh phn trong mt kho no ca Q, ngc li B c gi l thuc tnh khng kho V d: R(A, B, C, D), F={AB C, B D, BC A} Trong v d trn, lc R c 2 kho l AB, BC. Khi A, B, C l thuc tnh kho, D l thuc tnh khng kho. Gi tr nguyn t Gi tr nguyn t l gi tr khng phn nh c na. V d: Gi tr ChiTietMua: Bnh Orion 1 gi, Ko mt 2 cy khng phi l gi tr nguyn t v c th phn thnh: tn hng, s lng, n v tnh. 1.1. Dng chun 1

Lc Q dng chun 1 nu mi thuc tnh u mang gi tr nguyn t. Trong bi ton xt dng chun, dng chun thp nht l dng chun 1. V d. Cho lc HOADON(MaHD, MaKH, NgayHD, CtietMua, SoTien), v c th hin nh sau

Trang 90/103

MaHD MaKH NgayHD

CtietMua Tn hng S lng 1 2 2 1 2 VT Gi Cy Kg Kg Gi

SoTien

HD01

KH01

15-10-05

Bnh Orion Ko mt

25.000 2.000 30.000 15.000 24.000

HD02 HD03

KH01 KH02

18-10-05 24-10-05

Go ng Bnh AFC

Nhn thy rng CTitMua khng mang gi tr nguyn t, do HOADON khng t dng chun 1. 1.2. Dng chun 2

1.2.1. nh ngha Lc Q dng chun 2 nu tho: (1) Q t dng chun 1 (2) Mi thuc tnh khng kha ca Q u ph thuc y vo kha 1.2.2. Kim tra dng chun 2 kim tra dng chun 2 thc hin: Bc 1: Tm mi kha ca Q Bc 2: Vi mi kha K, tm bao ng ca tp tt c cc tp con thc s Si ca K Bc 3: Nu tn ti bao ng Si+ cha thuc tnh khng kha th Q khng t dng chun 2, ngc li Q t dng chun 2. V d 1. Cho Q1 (A, B, C, D), F={A B, B DC} Lc ch c mt kha l A, nn mi thuc tnh u ph thuc y vo kha. Do vy Q1 t dng chun 2. V d 2. Cho Q2 (A, B, C, D), F={AB D, C D} Lc c kha l ABC, ngoi ra cn c CABC m C D, trong D l thuc tnh khng kha (ngha l thuc tnh D khng ph thuc y vo kha). Do vy Q2 khng t dng chun 2.
Trang 91/103

V d 3: Xem v d n gin bng CSDL gm 2 quan h MONHOC, SINHVIEN nh sau: MONHOC (MaMH, TenMH, STC, Loai) Tn t: Mi mn hc c m mn hc (MaMH) duy nht phn bit vi cc mn hc khc, c tn mn hc (TenMH), s tn ch (STC), v loi bt buc hay t chn (Loai) MaMH CT101 CT102 TN311 CT103 CT110 TenMH Nhp mn tin hc STC 4 Loai BB BB BB TC BB

TH k nng my tnh 5 Xc sut thng k Thit k Web 3 4

Nguyn l lp trnh 2 5

SINHVIEN (MSSV, MaMH, TenSV, DiaChi, Diem) Tn t: Mi sinh vin (MSSV) khi thi mt mn hc (MaMH) c ghi nhn li im (Diem), ngoi ra cn c thng tin lin quan n sinh vin nh h tn (TenSV), a ch (DiaChi) MSSV MaMH TenSV DiaChi Diem 6 4 7 8 8 3 6 9 7

0310677 CT101 0310678 CT101 0310679 CT101 0310677 CT102 0310678 CT102

Nguyn Th Hoa 11 Nguyn Cng Tr, Lt Trn Hong L Thanh Sn 20 Bi Th Xun, Lt 2 Nh Chung, Lt

Nguyn Th Hoa 11 Nguyn Cng Tr, Lt Trn Hong 20 Bi Th Xun, Lt 20 Bi Th Xun, Lt 2 Nh Chung, Lt

0310678 TN311 Trn Hong 0310679 TN311 L Thanh Sn 0310677 CT103 0310678 CT103

Nguyn Th Hoa 11 Nguyn Cng Tr, Lt Trn Hong 20 Bi Th Xun, Lt


Trang 92/103

0310000 CT110

Nguyn Ngc

1 L Hng Phong, Lt

quan h SINHVIEN c th nhn thy cc ph thuc: MSSV, MaMH Diem

MSSV TenSV, DiaChi Vy quan h SINHVIEN khng t dng chun 2 v thuc tnh TenSV, DiaChi l thuc tnh khng kho ch ph thuc vo MSSV: nh vy khng ph thuc y vo kho. Trong qu trnh cp nht v lu tr d liu xut hin nhng vn sau: quan h SINHVIEN, vic lu tr thng tin mt sinh vin b lp li (tn, a ch) Qu trnh cp nht: o Sa i: Khi cn sa i a ch ca mt sinh vin (v d nh Nguyn Th Hoa) cn phi sa i 3 ln v trng lp thng tin, hn na, khi sa i thng tin ca v mt sinh vin li khng lin quan n thng tin v thi c. Thm: Nu chn thm mt b vo quan h SINHVIEN m sinh vin cha thi mn no th khng c v kho MSSV, MaMH l khng y . Vn ny ch c khc phc khi loi b nhng thng tin v kt qu thi c ra khi quan h. Xo: Gi s rng cn xa b mn CT110 m danh sch sinh vin vn gi nguyn. Khi xa b {CT110, Nguyn l lp trnh 2, 5, BB} trong quan h MONHOC v xo b {0310000, CT110, Nguyn Ngc, 1 L Hng Phong, Lt, 9} trong quan h SINHVIEN. Khi thng tin v sinh vin s b mt.

khc phc nhng bt li trn, quan h SINHVIEN c th tch thnh 2 quan h SINHVIEN (MSSV, TenSV, DiaChi) v KETQUATHI (MSSV, MaMH, Diem). Nh vy, 3 quan h trn u dng chun th 2.

Trang 93/103

1.3.

Dng chun 3

1.3.1. nh ngha nh ngha 1 Vi mt lc Q; X, Y l hai tp con ca Q+; A l mt thuc tnh. Khi A c gi l ph thuc bc cu vo X nu tha:
(1) X Y, Y A (2) Y X

(3) A XY

Lc Q dng chun 3 nu mi thuc tnh khng kha u khng ph thuc bc cu vo kha. Vic kim tra dng chun 3 theo nh ngha trn s kh ci t. Ta c th thc hin kim tra dng chun 3 theo nh ngha sau: nh ngha 2 Lc Q dng chun 3 nu mi ph thuc hm X AF+, vi A X u c: (1) X l siu kha, hoc (2) A l thuc tnh kha 1.3.2. Kim tra dng chun 3 T nh ngha 2, kim tra dng chun 3 thc hin cc bc sau: Bc 1: Tm mi kha ca Q Bc 2: Phn r v phi ca mi ph thuc hm trong F tp F tr thnh tp ph thuc hm c v phi mt thuc tnh Bc 3: Nu mi ph thuc hm X A F, m A X u tha (1) X l siu kha (v tri cha mt kha), hoc (2) A l thuc tnh kha (v phi l tp con ca kha) th Q t dng chun 3, ngc li Q khng t dng chun 3. V d. Cho Q (A, B, C, D), F={AB D, C D} Bc 1: Q c mt kha l ABC
Trang 94/103

Bc 2: Mi ph thuc hm trong F u c v phi mt thuc tnh. Bc 3: Vi AB D, nhn thy rng D ABC c

V tri (AB) khng phi l siu kha. Hn na v phi (D) khng l thuc tnh kha
Vy Q khng t dng chun 3. 1.4. Dng chun BC (Boyce Codd)

1.4.1. nh ngha Lc Q dng chun BC nu mi ph thuc hm X AF+, vi A X u c X l siu kha. 1.4.2. Kim tra dng chun BC T nh ngha, kim tra dng chun BC thc hin cc bc sau: Bc 1: Tm mi kha ca Q Bc 2: Phn r v phi ca mi ph thuc hm trong F tp F tr thnh tp ph thuc hm c v phi mt thuc tnh Bc 3: Nu mi ph thuc hm X A F, m A X u tha X l siu kha (v tri cha mt kha), th Q t dng chun BC, ngc li Q khng t dng chun BC. V d. Cho Q (A, B, C, D, E, I), F={ACD EBI, CE AD} Bc 1: Q c hai kha l {ACD, CE} Bc 2: Phn r v phi ca cc ph thuc hm trong F, ta c: F={ACD E, ACD B, ACD I, CE A, CE D} Bc 3: Mi ph thuc hm trong F u c v tri l mt siu kha Vy Q t dng chun BC. 1.5. Kim tra dng chun

Kim tra dng chun ca lc quan h Q Bc 1: Tm mi kha ca Q Bc 2: Kim tra dng chun BC, nu ng th Q t dng chun BC,
Trang 95/103

ngc li qua bc 3. Bc 3: Kim tra dng chun 3, nu ng th Q t dng chun 3, ngc li qua bc 4. Bc 4: Kim tra dng chun 2, nu ng th Q t dng chun 2, ngc li Q t dng chun 1. Kim tra dng chun ca lc CSDL Dng chun ca mt lc CSDL l dng chun thp nht trong cc dng chun ca cc lc quan h con. 2. Php phn r

Mc tiu ca vic thit k CSDL quan h l to ra mt tp cc lc quan h cho php chng ta lu tr thng tin khng c nhng d tha khng cn thit v truy tm thng tin mt cch d dng, chnh xc. Vic phn r mt lc thnh nhng lc con u mong mun t c bo ton thng tin v bo ton ph thuc. 2.1. Phn r bo ton thng tin

Cho lc quan h Q (TenNCC, DiaChiNCC, SanPham, DonGia) Phn r Q thnh Q1 v Q2 nh sau: Q1 (TenNCC, SanPham, DonGia) Q2 (TenNCC, DiaChiNCC) Khi ta c cc th hin sau: Q TenNCC Nguyn Mai Nguyn Mai Nguyn Mai DiaChiNCC SanPham DonGia 10.000 20.000 20.000

10 Nguyn Cng Tr Bnh xp 10 Nguyn Cng Tr Ko m 20 Nguyn Vn Tri Ko m

Q1

TenNCC Nguyn Mai

SanPham Bnh xp

DonGia 10.000

Trang 96/103

Nguyn Mai

Ko m

20.000

Q2

TenNCC Nguyn Mai Nguyn Mai

DiaChiNCC 10 Nguyn Cng Tr 20 Nguyn Vn Tri

Q1 >< Q 2

TenNCC Nguyn Mai Nguyn Mai Nguyn Mai Nguyn Mai

DiaChiNCC 10 Nguyn Tr 10 Nguyn Tr

SanPham Cng Bnh xp Cng Ko m Bnh xp Ko m

DonGia 10.000 20.000 10.000 20.000

20 Nguyn Vn Tri 20 Nguyn Vn Tri

Nh vy kt qu th hin Q v Q1 >< Q 2 l khc nhau, khi ta ni php phn r gi l khng bo ton thng tin (mt mt thng tin). nh ngha Q l lc quan h, Q1, Q2 l hai lc con c:
+ Q1+ Q2 = X + Q1+ Q2 = Q +

Khi Q c phn r thnh hai lc con Q1, Q2 l php phn r bo ton thng tin nu vi r l th hin bt k ca Q ta c:
r = r.Q1 >< r.Q2

(r l kt qu ca php kt t nhin ca cc hnh chiu ca n trn Q1, Q2) 2.2. Phn r bo ton ph thuc hm

Mt vn cn quan tm khi phn r lc Q thnh cc lc con Qi vi tp cc Fi tng ng c tnh t tp ph thuc hm F. Php phn r bo ton ph thuc (gi li
Trang 97/103

ph thuc) nu vi ri l th hin ca Qi tho iu kin: ri ch tho nhng ph thuc hm X Y F+ vi XYQi+ nh ngha Gi Q1, Q2,, Qn l phn r ca lc quan h Q, tp ph thuc hm F trn Q. Hnh chiu ca F trn mt tp cc thuc tnh Qi+ k hiu Qi+(F) l tp cc ph thuc hm X Y F+ vi XYQi+ Qi+(F) = Fi+={X Y | X Y F+ v XYQi+ } Khi phn r l bo ton tp ph thuc hm F nu F Qi+(F) 3. 3.1. Thit k CSDL bng cch phn r Phn r thnh dng chun BC (hoc dng chun 3) bo ton thng tin

3.1.1. Thut ton Bc 1: Tm tt c cc kha ca Q Bc 2: Tm ph thuc hm X Y F c X khng l siu kha v Y khng cha thuc tnh kha. Nu tm thy th tch Q thnh Q1 v Q2 theo cch: o Q1 = Q[XY]; F1 Q1(F) (tm bao ng ca tt c cc tp con ca XY tnh F1). Tip tc phn r (Q1, F1). o Q2 = Q[Q+ - Y]; F2 Q2(F) (tm bao ng ca tt c cc tp con ca (Q+ - Y) tnh F2). Tip tc phn r (Q2, F2). Nu khng tm thy th xt dng chun Qi: o Nu mi ph thuc hm trong Fi u c v tri l siu kha th Qi t dng chun BC o Nu c ph thuc hm trong Fi c v tri khng l siu kha v v phi l thuc tnh kha th Qi t dng chun 3 3.1.2. V d V d 1 Cho Q (SDIM), F={SI D, SD M}
Trang 98/103

Bc 1: Q c mt kha l {SI} Bc 2: Ph thuc hm SD M c SD khng l siu kha nn tch: Q1 = (SDM); F1 = {SD M} Q2 = (SDI); F2 = {SI D} tm tp ph thuc hm F1, F2 cn tnh bao ng ca mi tp con. Tm F1: vi Q1 = (SDM): bao ng ca mi tp con
+ SF = S + DF = D + MF = M + SDF = SDM + SM F = SM + DM F = DM + SDM F = SDM

F1 = Q1(F) = {SD M, SD SM, SD DM, SD SDM } F1 = {SD M} Tm F2: vi Q2= (SDI): bao ng ca mi tp con
+ SF = S + DF = D + IF = I + SDF = SDM + SI F = SIDM + DI F = DI + SDI F = SDIM

Trang 99/103

F2 = Q2(F) = {SI D, SI SD, SI DI, SI SDI } F2 = {SI D} Bc 3: Mi ph thuc hm trong F1v F2 u c v tri l mt siu kha nn Q1 v Q2 t dng chun BC. V d 2 Cho Q (ABCDE), F = {BC A, C D, AE B, B D, B E} Bc 1: 2 kha l {CB, CAE} Bc 2: T C D tch thnh:

Q1(CD), F1= {C D}, Kha C. t dng chun BC. Q2(CABE), F2= {B E, CB A, AE B} Chi tit tnh F1, F2 nh sau: Tm F1: vi Q1 = (CD)
+ C F = CD + DF = D + CDF = CD

Vy F1 = {C D} Tm F2: vi Q2(CABE):
+ C F = CD + AF = A + BF = BDE + EF = E + CAF = CAD + CBF = CBADE + CE F = CED

Trang 100/103

+ ABF = ABDE + AE F = AEBD + BE F = BED + CABF = CABDE + CAE F = CAEBD + CBE F = CBEAD + ABE F = ABED + CABE F = CABED

F2= {B E, CB AE, AB E, AE B, CAB E, CAE B, CBE A} Vy F2= {B E, CB A, AE B} Xt dng chun Q2: Kho Q2: {CB, CAE}. Vy Q2 t dng chun 3. 3.1.3. Ci tin thut ton Nhn thy rng trong tm ph thuc hm hnh chiu trn Qi, xt tp mt con Xi, nu ( X i )+ = Q + , khi nu tip tc xt cc tp Xj : Xi Xj , th hin nhin (X j )+ = Q + , v F F cui cng th ph thuc hm c v tri Xj cng s b loi ch chn ph thuc hm c v tri Xi. Do , khi tm ph thuc hm hnh chiu trn Qi, xt tp mt con Xi, nu ( X i )+ = Q + , F thc hin loi b cc tnh ton cho cc trng hp Xj : Xi Xj . V d: vi tm F2 nh v d trn: Q2(CABE), F = {BC A, C D, AE B, B D, B E}
+ C F = CD + AF = A + BF = BDE + EF = E

Trang 101/103

+ CAF = CAD + CB F = CBADE , loi cc tp CAB, CBE, CABE + CE F = CED + ABF = ABDE + AE F = AEBD + BE F = BED + ABE F = ABED

F2= {B E, CB AE, AB E, AE B} Vy F2= {B E, CB A, AE B} 3.2. Phn r thnh dng chun 3 va bo ton thng tin va bo ton ph thuc hm

Bc 1: Tm ph ti thiu ca F. Bc 2: Loi b tt c cc thuc tnh ca Q khng lin quan n mt ph thuc hm no ca PTT(F). Bc 3: Nu c mt ph thuc hm trong PTT(F) lin quan n mi thuc tnh ca Q th khng th phn r. Ngc li, qua bc 4. Bc 4: Gom nhm nhng ph thuc hm c cng v tri. Vi mi nhm ph thuc hm c cng v tri, to thnh mt lc con. Bc 5: Kim tra cc lc con c tho dng chun 3 cha, nu cha th p dng bc 4 phn r tip. V d. Cho Q (CTHRSG), F={C T, HR C, HT R, CS G, HS R} PTT(F) = F = {C T, HR C, HT R, CS G, HS R} Ta c kt qu phn r Q1(CT), Q2(HRC), Q3(HTR), Q4(CSG), Q5(HRS) 4. Bi tp

Bi tp 7, 8, 9 trong chng 7, vi yu cu: Phn r thnh dng chun BC hoc dng chun 3 bo ton thng tin
Trang 102/103

Phn r thnh dng chun 3 bo ton thng tin v bo ton ph thuc hm

Ti Liu Tham Kho


1. Bi ging C s d liu, Nguyn Hu Tn, i Hc Lt, 2004. 2. Bi tp c s d liu, Nguyn Xun Huy L Hoi Bc, NXB thng k, 2003. 3. Gio trnh C s d liu, Nguyn ng T - Phc, i Hc Quc gia Tp. H Ch Minh, 2001. 4. Nhp mn C s d liu quan h, L Tin Vng, NXB Khoa hc v K thut, 1994. 5. David Maier, The theory of Relational Databases, Computer Science Press, Rockville, 1983.

Trang 103/103

You might also like