You are on page 1of 28

Chng 1.

TNG QUAN V C S D LIU H qun tr c s d liu, c bit l c s d liu quan h l mt h thng phn mm c vai tr quan trng trong cc h thng lp trnh. Cng ging nh cc loi phn mm h thng ch yu khc nh: trnh bin dch v h iu hnh, cc nguyn l ca h qun tr c s d liu c pht trin t kh lu. Nhng khi nim ny rt hu ch, khng nhng gip cho vic s dng hiu qu cc h qun tr c s d liu m cn h tr trong vic thit k v ci t chng. Bi 1. Cc khi nim c bn v c s d liu (2 tit) 1. Cc h thng tp truyn thng 1.1. Bi ton: Gi thit bi ton qun l th vin c hai chc nng nh sau: - Chc nng 1 (CN1): In ra danh mc sch vi tp sch cha cc thng tin: tn sch, m sch, tn tc gi, nh xut bn,... - Chc nng 2 (CN2): Thng k mi loi sch c trong th vin vi s lng c th. gii quyt bi ton trn c th c hai cch: Cch 1: Vit CN2 c lp CN1. Vi CN2 to mt tp sch phn loi (tp 2) cha cc thng tin: m sch, tn sch, nh xut bn, s lng,... Cch ny c mt s nhc im nh sau: Gia tp 1 v tp 2 c mt s trng trng nhau dn ti d tha d liu D liu lu lp c hai tp, khi d liu thay i phi cp nht c hai tp. D liu khng nht qun khi tin hnh cc thao tc sa i (hin tng d thng) Cch 2: Tn dng tp sch c (tp 1). Sa tp 1 thnh tp mi c cha thm trng s lng. c im ca cch 2: Trnh c d tha v lp li d liu Phi sa li CN1 s dng tp mi (tp 2) -> chng trnh ph thuc vo d liu 1.2. Phng n xut theo hng mi C hai cch trn u c nhng hn ch nht nh, do cn a ra mt phng n mi, hiu qu hn, khc phc c nhng hn ch trn y, vi mc ch xy dng mt h thng tho mn cc yu cu sau: Trnh d tha d liu Khng ph thuc d liu Cc thao tc tra cu, tm kim, cp nht nhanh chng v hiu qu 2. Khi nim v phn loi cc h qun tr c s d liu 2.1. C s d liu l g ? d dng cho vic gii thch cc khi nim, trc ht xem xt h thng bn v my bay bng my tnh. D liu lu tr trong my tnh bao gm thng tin v hnh khch, chuyn bay, ng bay,v.v... Mi thng tin v mi quan h ny c biu din trong my thng qua vic t ch ca khch hng. Vy lm th no biu din c d liu v m bo cho khch hng i ng chuyn. D liu trn c lu tr trong my theo mt quy nh no v c gi l c s d liu (vit tt CSDL, ting Anh l Database) Theo mt nh ngha khc: c s d liu l b lu tr cc d liu tc nghip ca mt x

nghip, c lu tr phc v cho cc ng dng. V d 2.1: X nghip l mt th vin, d liu tc nghip l: sch, c gi, yu cu,v.v... 2.2. H qun tr c s d liu Phn chng trnh c th x l, thay i c s d liu gi l H qun tr c s d liu (vit tt HQTCSDL, ting Anh l Database management system). Theo nh ngha ny HQTCSDL c nhim v rt quan trng nh l mt b din dch (interpreter) vi ngn ng bc cao nhm gip ngi s dng c th dng c h thng m t nhiu khng cn quan tm n thut ton chi tit hoc biu din d liu trong my. Theo mt cch hiu khc: HQTCSDL l mt phn mm cho php to lp CSDL v iu khin hoc truy nhp CSDL , c bit HQTCSDL m bo tnh c lp d liu (l s bt bin ca cc chng trnh ng dng i vi cc thay i v cu trc lu tr v chin lc truy nhp). V d 2.2: Mt s H QTCSDL thng dng hin nay: MS Access, SQL Server (ca hng Microsoft), Oracle (ca hng Oracle), DB2, FoxPro,v.v... a) H qun tr c s d liu h tr cc tnh nng sau: nh ngha d liu (Database definition) Xy dng d liu (Database construction) : Chc nng nh ngha v xy dng d liu h tr ngi dng xy dng cc b d liu ring. Thao tc d liu (Database manipulation): cc thao tc cp nht, tm kim, sa, xo,... Qun tr d liu (Database administrator): phn quyn s dng, bo mt thng tin,... Bo v d liu (Database protection): thc hin cc thao tc sao chp, phc hi, trnh mt mt d liu. b) Ngn ng ca h qun tr c s d liu bao gm: Ngn ng con nh ngha d liu (Database Definition Language - DDL): cung cp cc cu lnh cho php m t, nh ngha cc i tng ca CSDL. Ngn ng con thao tc d liu (Database Manipulation Language - DML): dng thao tc, x l trn cc i tng ca CSDL nh thm, xo, sa, tm kim,v.v... Ngn ng con kim sot d liu (Database Control Language - DCL): iu khin tnh ng thi (tng tranh) i vi d liu. Hnh 1- H CSDL a ngi dng c) H qun tr c s d liu a ngi dng: C s d liu dng hp nht (hay l tp hp ton b d liu tc nghip ca x nghip), c hai tnh cht c bn sau: - Khng d tha d liu: c gng ti thiu v kim sot s d tha. - S dng chung ngun d liu: chia s nhiu ngi s dng. Ngi s dng h QTCSDL bao gm: - Ngi phn tch h thng (System analyst) - Ngi thit k CSDL (Database deginer) - Ngi vit chng trnh ng dng (Application programer): xy dng cc chng trnh ng dng da trn cc c s d liu c. - Ngi s dng cui (end - user): l ngi truy nhp vo CSDL t mt thit b u cui.

- Ngi qun tr CSDL (Database administrator): thng l mt ngi hoc mt nhm ngi c nhim v iu khin ton b h CSDL. 2.3. Phn loi cc h qun tr c s d liu H QTCDSL c th c phn loi da theo nhiu tiu ch khc nhau, v mi cch phn loi c th c nihu kiu h QTCSDL. Trong phn ny m t 3 kiu h QTCSDL khc nhau c phn loi theo quan im chung nht. a) H QTCSDL loi 1: Ngi dng va thit k, s dng, v qun tr, hay cn gi l h QTCSDL n ngi dng (h CSDL c nhn, nh). Thng s dng gii quyt nhng nhim v n l vi mt ngi hoc mt vi ngi. Hnh 2- M hnh h QTCSDL n ngi dng b) H QTCSDL loi 2: Ngi s dng cui truy nhp CSDL thng qua cc thit b truy nhp u cui (terminal), cn gi l h QTCSDL a ngi dng (h QTCSDL trung tm). Hnh 3- M hnh h QTCSDL a ngi dng c) H QTCSDL loi 3: Nhng yu cu ca ngi s dng cui v trnh ng dng c x l ti cc my trm (Client), ch nhng yu cu no cn ti CSDL mi c chuyn ti h QTCSDL nm trn my ch (Server), y l m hnh h QTCSDL Client / Server. Hnh 4 - M hnh h QTCSDL Client / Server Nhn xt: C 3 loi h QTCSDL trn u t CSDL ti mt ni. Do h QTCSDL c tnh cht tp trung. V d 2.3: Mt cng ty mun lu tr v duy tr thng tin v cc nhn vin cung cp (supplier) v cc mt hng (part). Cc thng tin lu tr cn thit v nhn vin cung cp bao gm: s hiu nhn vin, h tn, ngy sinh, mc lng, v a ch thnh ph. Thng tin v mt hng bao gm: s hiu mt hng, tn mt hng, mu sc v gi. Vic chuyn hng c m t thng qua s hiu nhn vin, tn mt hng v s lng. NHAN_VIEN s# Ho_Ten Thanh_Pho Nam_Sinh Luong 10 L Vn A Ha Noi 1960 400 20 Hong Th B HCM 1970 500 30 L Vn Sn Hai Phong 1945 600 Hnh 5 - Quan h NHN VIN Bi 2. Kin trc mt h c s d liu (1 tit) 1. M hnh kin trc 3 mc Mt CSDL c phn thnh cc mc khc nhau nh trn hnh. y c th xem nh ch c mt CSDL n gin v c mt h phn mm QTCSDL. Ngi dng truy nhp thng qua m hnh ngoi, qua nh x ngoi quan nim i vo m hnh quan nim, qua nh x quan nim trong vo m hnh trong, v truy nhp vo

CSDL thc hin cc yu cu. Sau khi thc hin cc yu cu, nh x ngc tr li pha ngi dng. Hnh 6 - Kin trc h QTCSDL y l kin trc chun 3 mc: Mc ngoi: l mc st vi ngi dng. Mc ny tng ng vi cch nhn ring ca ngi dng i vi h QTCSDL. Mc trong (mc vt l): l mc st vi lu tr thc s ca cc tp d liu theo mt cu trc no trn cc thit b nh th cp (nh a t, bng t...). Mc khi nim: l mc trung gian. CSDL mc khi nim l mt s biu din tru tng ca CSDL vt l (hay c th ni: CSDL mc vt l l s ci t c th ca CSDL mc khi nim). Cc khung nhn (view): l cch nhn hay quan nim ca tng ngi s dng i vi CSDL mc khi nim. S khc nhau gia khung nhn v mc khi nim thc cht l khng ln. Tng ng vi 3 mc trn l 3 m hnh c th ca h QTCSDL bao gm: m hnh ngoi, m hnh quan nim, m hnh trong. Cc m hnh ny tng tc thng qua cc nh x. (1) M hnh ngoi: ca mt ngi dng l tp hp tt c d liu ca ngi dng c php nhn thy v truy nhp vo, thng ch l mt b phn ca ton b CSDL. (2) M hnh quan nim: bao gm tp ton b d liu ca x nghip v c biu din t nhiu tru tng. (3) M hnh trong: bao gm tp ton b d liu ca x nghip c biu din st vi lu tr tht s trn cc thit b nh. M hnh ngoi thng c biu din thng qua bn ghi gi l bn ghi ngoi, tng ng vi m hnh quan nim v m hnh trong ta c bn ghi quan nim v bn ghi trong. Do c s khc nhau gia bn ghi ngoi v bn ghi quan nim, nh x ti ngi dng cn c nh x ngoi-quan nim. Tng ng cn c nh x quan nim-trong gia m hnh quan nim v m hnh trong. Thc cht cc m hnh ngoi, m hnh quan nim v m hnh trong l cc s kiu bn ghi, tng ng cc nh x l nh x t kiu bn ghi ny sang kiu bn ghi khc. H QTCSDL trn c qun l bi ngi qun tr CSDL: L ngi quyt nh ni dung thng tin ca CSDL, c hon thnh thng qua vit s quan nim hay biu din m hnh quan nim. L ngi quyt nh cu trc lu tr v s lng truy nhp i vi ton b d liu thng qua vit s trong. Vi s gip ca ngi s dng, vit s ngoi tng ng vi ngi s dng. a ra cc phng n sao lu, phc hi cho CSDL. a ra cc cnh kim sot thm quyn v kim tra tnh ng n ca CSDL. 2. u im ca kim trc 3 mc Ti sao phn chia h QTCSDL thnh 3 mc ? Vic phn chia nh vy c t c mc tiu t ra khng ? Kin trc mt h CSDL cn bo m cc mc tiu sau: (1) Trnh d tha d liu (2) Tnh c lp gia d liu v chng trnh ng dng.

(3) Tra cu, tm kim, cp nht d liu nhanh chng. (4) m bo tnh an ton v ton vn d liu. Chng minh tnh ng n: (1) Trnh d tha d liu: Tt c cc m hnh ngoi (thc cht l o) u truy nhp vo cng CSDL (tnh hp nht ca d liu) do m bo khng d tha d liu. (2) Tnh c lp: Ba mc trong h QTCSDL (mc ngoi, mc quan nim v mc trong) c lp vi nhau, khi xo hay thm logic din ra trn m hnh quan nim tng ng l s thay i vt l din ra m hnh trong (cu trc lu tr), do m bo tnh c lp logic (tnh bt bin ca ng dng vi s thay i c s mc logic). Ba mc m bo tnh c lp: khi m hnh trong thay i ch cn sa nh x trong quan nim, cc m hnh quan nim v ng dng ca ngi dng khng cn thay i (m bo tnh c lp vt l). Tng t, khi m hnh quan nim thay i ch cn sa nh x ngoi quan nim. (3) Tra cu, tm kim v cp nht d liu nhanh chng: S dng cc thut ton (v d: nh ch s cho CSDL,...) cho php tra cu, tm kim v cp nht nhanh d liu. (4) Tnh an ton v ton vn d liu: M hnh ngoi chnh l k thut m bo tnh an ton, ton vn d liu. M hnh quan nim l m hnh n nh v m hnh ngoi ph thuc ngi dng, m hnh trong ph thuc thit b th cp. 3. Kt lun Trong chng ny chng ta lm quen v tm hiu cc khi nim c bn lin quan n CSDL, kin trc v cc u im ca h QTCSDL so vi cch lu tr trc y. Vy khi no cn v khi no khng cn ti h QTCSDL ? 3.1. Ti sao cn h QTCSDL - m bo tnh tiu chun ho: cc h CSDL khc nhau, d liu ca cc chng trnh ng khc nhau da trn mt tiu chun chung. - Cung cp cc cng c nh ngha v thao tc d liu linh hot - Tch hp vi nhiu trnh ng dng khc nhau: cc ngn ng lp trnh, cc ng dng h tr phn tch thit k, v.v... 3.2. Khi no khng cn h QTCSDL - Khi chng ta gii quyt cc vn n gin m cc chng trnh ng dng c th thc hin tt khng cn ti h CSDL. - Khi h thng CSDL khng p ng c yu cu v hiu nng nh: tc , tnh bo mt, nh dng d liu cn lu tr, v.v.. - Khi khng cn thit a ngi dng cng truy nhp vo mt CSDL chung. 3.3. Ti liu tham kho - L Tin Vng, Nhp mn C s d liu quan h, NXB Thng k, Chng1 - P. O' Neil, Database - Principles, Programming, Performance, Chng 1.1, 1.2 - R. Elmasri, S.B. Navathe, Fundamentals of Database Systems, Chng 1

Chng 2. M HNH D LIU Trong chng ny, chng ta s xem xt cc m hnh chnh c s dng trong cc h

thng c s d liu. Trong c bit nhn mnh v m hnh thc th lin kt, m hnh ny c dng ch yu lm cng c thit k CSDL. Bi 1. S thc th lin kt (1 tit) 1. Cc khi nim chung 1.1. Thc th Thc th c nh ngha l mt i tng c thc hay tru tng m ta mun lu tr thng tin v n. biu din (hay k hiu) thc th: s dng hnh ch nht bao quanh tn thc th (tn thc th biu din l danh t). A: tn thc th, l danh t 1.2. Thuc tnh Mt thc th c xy dng bi mt tp thuc tnh c trng cho thc th. Biu din: - a1 ai : thuc tnh th i ca thc th A . (l danh t) - ai . - an V d 1.2: Thc th sch gm cc thuc tnh: m sch, tn sch, tc gi, nh xut bn 1.3. Lin kt thc th Lin kt thc th ch mi quan h rng buc gia cc thc th. Lin kt thc th chia thnh 3 loi nh sau: a) Kiu lin kt mt thc th: L lin kt ca thc th vi chnh n (hay cn gi l lin kt quy) Biu din:

b) Kiu lin kt hai thc th: Lin kt hai thc th l mi lin kt gia hai thc th khc nhau. Tn ca cc lin kt c biu din bng cc ng t. C 3 loi lin kt hai thc th: Lin kt 1 -1: l lin kt tho mn iu kin nu xut hin mt thc th A th xut hin mt thc th B hoc ngc li. Biu din nh sau: Lin kt 1 - nhiu: l lin kt tho mn iu kin nu xut hin mt thc th A th xut hin nhiu thc th B hoc ngc li, nu xut hin mt thc th B th xut hin nhiu thc th A. Biu din nh sau: V d 1.3.1: Xt quan h gia nhn vin v phng trong mt cng ty. y l quan h mt nhiu (mt nhn vin thuc ch mt phng cn mt phng c th c nhiu nhn vin). Lin kt nhiu -nhiu: l lin kt tho mn iu kin xut hin nhiu thc th A th xut hin nhiu thc th B hoc ngc li. Biu din nh sau: V d 1.3.2: Quan h gia thc th sch v thc th c gi l quan h nhiu - nhiu (gi thit mt c gi c th mn nhiu loi sch cng mt lc v mt loi sch c

nhiu bn sao c th cho mn). c) Lin kt nhiu thc th: L mi lin kt trong c nhiu hn hai thc th. biu din lin kt nhiu thc th v n gin ho khi biu din ta quy cc lin kt nhiu thc th ny v cc lin kt hai thc th bng cch a thm vo thc th trung gian (k hiu l: TG). Biu din lin kt nhiu - nhiu - nhiu nh sau:

Khi thm thc th trung gian (TG), lin kt nhiu - nhiu - nhiu s chuyn thnh 3 lin kt 1 - nhiu (y l lin kt hai thc th). Biu din nh sau: Theo nh ngha lin kt thc th ta c th coi lin kt thc th l mt dng thc th c bit v cng c lu tr. Do CSDL phi lu tr c hai i tng: thc th v lin kt thc th, ng thi CSDL phi c kh nng biu din hai i tng ny.

Bi 2. Cc m hnh d liu (2 tit) Hin nay c nhiu loi m hnh d liu khc nhau. Trong bi ny chng ta s ch nghin cu ba loi m hnh d liu c bn thng c s dng bao gm: m hnh quan h, m hnh mng, v m hnh phn cp. 1. M hnh quan h (Relational model) M hnh ny da trn c s khi nim l thuyt tp hp ca cc quan h, tc l tp cc k - b vi k c nh. Hay ni mt cch n gin hn, trong m hnh quan h d liu c biu din di dng cc bng, c bit c hai i tng: thc th v lin kt thc th c biu din di dng duy nht l dng bng. Nh vy s thc th lin kt c nh x thnh m hnh quan h: - Tn ca thc th c nh x thnh tn bng, mi bng biu din mt thc th tng ng. - Thuc tnh ca thc th tng ng vi cc ct trong bng. V d 1.1: Thc th Nhn vin trong mt cng ty c biu din di dng bng nh sau: SS# HoHo_Tenen Thanhnh_Phoho Namam_Sinhnh Luongng Bii Ngcc Anhnh HH Nii 1960 600 11 Nguynn Thanhnh Huynn HH Nii 1965 500 12 Hii Phngng 1970 400 13 Nguynn Quangng Trungng HCMCM 1975 400 Hnh 7 - Biu din thc th di dng bng

- Biu din lin kt thc th: Trc tin phi xc nh kho ca thc th, sau chuyn kho ny thnh ct kho ca bng tng ng (khi nim kho s c gii thch r trong phn sau). Bc tip theo l bin i lin kt thc th: i vi lin kt 1 - 1: Ly kho ca thc th ny t vo thc th kia. i vi lin kt 1 - nhiu: Ly kho ca bng u lin kt mt t vo bng u lin kt nhiu. i vi lin kt nhiu - nhiu: Thm mt bng mi (bng trung gian) gm kho ca cc bng lin kt v thuc tnh lin kt V d 1.2: Xt quan h gia nhn vin v phng trong mt cng ty. y l quan h mt nhiu (mt nhn vin thuc ch mt phng cn mt phng c th c nhiu nhn vin). M hnh quan h: 2. M hnh mng (Network model) D liu c biu din di dng mt th c hng phc tp (dng a danh sch). Xy dng mt nh x bin i s thc th lin kt sang m hnh mng. N ch c kh nng biu din trc tip i vi cc lin kt 1 - 1 hay 1 - nhiu. Do biu din c cc lin kt khc nh lin kt nhiu - nhiu, cn quy cc lin kt ny v dng 1nhiu bng cch a thm mt thc th trung gian (TG) vo lin kt. Chuyn thnh lin kt 1- nhiu: Vi m hnh mng: - Thc th chuyn thnh kiu bn ghi. - Thuc tnh chuyn thnh cc trng ca bn ghi. - Lin kt gia cc thc th: mt lin kt 1 - nhiu tng ng tp gn nhn. Kiu bn ghi u 1 gi l kiu bn ghi ch Kiu bn ghi u nhiu gi l kiu bn ghi thnh vin Biu din:

Chiu mi tn hng ti u nhiu V d 2: Xt quan h gia nhn vin v phng trong mt cng ty. y l quan h mt nhiu (mt nhn vin thuc ch mt phng cn mt phng c th c nhiu nhn vin). 3. M hnh phn cp (Hierachical model) M hnh d liu l mt cy, trong cc nt biu din cc tp thc th, gia cc nt con v nt cha c lin h theo mt mi quan h xc nh. M hnh phn cp l trng hp c bit ca m hnh mng vi mt s iu kin hn ch sau: Khng c chu trnh. Mi mt kiu bn ghi ch l kiu bn ghi thnh vin nhiu nht ca mt tp. Vi m hnh phn cp khi biu din khng cn k hiu mi tn. Trong cu trc cy, u mt tng ng vi nt gc ca cy, v u nhiu tng ng vi cc nt l ca cy. V d 3: Xt quan h gia nhn vin v phng trong mt cng ty nh v d trn. 4. nh gi v so snh 3 loi m hnh d liu 4.1. Cch biu din d liu

M hnh quan h: c hai i tng thc th v lin kt thc th u biu din di dng bng M hnh mng: cc i tng thc th biu din di dng bn ghi, lin kt thc th tng ng l lin kt mc ni gia cc bn ghi dng th c hng M hnh phn cp: cc i tng thc th biu din di dng bn ghi, lin kt thc th tng ng l lin kt gia cc nt ca cy 4.2. Cch thc hin yu cu V d 4: thc hin cc yu cu sau: - B sung thm mt quyn sch ('S03', 'Mng my tnh', 'NT Hi') vo CSDL - Xo c gi vi m c gi l 'G1' M hnh quan h: - Vi yu cu th nht, h thng s thm mt hng trong bng Sch. - Vi yu cu th hai xo c gi c m 'G1', trc tin s xo c gi ny trong bng Mn sau mi xo trong bng c gi. M hnh mng v m hnh phn cp: - Cc php ton thao tc i m hnh mng v phn cp phc tp hn i vi m hnh quan h (ch thao tc trn cc bng). 5. Kt lun v bi tp Chng ny trnh by cc khi nim v s thc th lin kt, c bit l ba loi m hnh d liu: m hnh quan h, m hnh mng, v m hnh phn cp. y l cc loi m hnh c bn xy dng cc h QTCSDL hin nay. 5.1. Ti liu tham kho - L Tin Vng, Nhp mn C s d liu quan h, NXB Gio dc, Chng1 - P. O' Neil, Database - Principles, Programming, Performance, Chng 1.3, 1.4 - R. Elmasri, S.B. Navathe, Fundamentals of Database Systems, Chng 3,4 5.2. Bi tp Bi 1) Cho s thc th lin kt gia cng vic, nhn vin v phng nh di y, hy bin i sang 3 m hnh d liu: Bi 2) Cho s thc th lin kt gia sch v c gi nh sau, hy hon chnh s sau bin i sang 3 m hnh d liu. 5.3. Cha bi tp Bi 1) bin i sang 3 m hnh d liu: a) M hnh quan h: Cng vic (M CV, Tn CV, nh mc) Nhn Vin (M NV, H v tn, Ngy sinh, M CV, M phng) Phng (M phng, Tn phng, S phng) b) M hnh mng:

c) M hnh phn cp:

Bi 2) Chuyn s quan h v dng di y, sau thc hin tng t: Chng 3. M HNH D LIU QUAN H M hnh d liu quan h l m hnh ph bin v quan trng, c E.Codd a ra vo nm 1970. Mt trong nhng u im ca m hnh d liu quan h l c h tr cc ngn ng khai bo, kh n gin nhng hiu qa v cc php ton trn d liu. Cc php ton ny c th t hp v phn tch d dng nh vo mt h thng k hiu i s gi l i s quan h (relational algebra). Bi 1. Cc khi nim c bn (1 tit) 1. Thuc tnh v min thuc tnh Theo khi nim ton hc, m hnh quan h c hiu l quan h vi ngha ca l thuyt tp hp, tc l tp con tch - Cc ca cc min. Vi min (domain) l mt tp cc gi tr. V d: tp cc s nguyn l mt min, tp cc xu k t to thnh tn ngi trong ting Anh c di khng qu 30 k t l mt min; tp 2 s {0,1} cng l mt min v.v... Di, vi i = 1.. nGi D1, D2, ... Dn, l n min. Tch - Cc ca n min l D1xD2x...xDn l tp tt c n - b (n - tuples) (v1, v2, ... vn) sao cho vi V d 1. 1: n =2, D1 = {0,1}, D2 = {a,b,c}, khi D1 x D2 = {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)} Theo cch hiu khc, min thuc tnh l mt tp cc gi tr m t c th rt ra nhng gi tr thc s xut hin trong ct biu din thuc tnh . V d 1. 2: min m sch, k hiu DOM (M Sch) DOM (M Sch) = {'S01', 'S02', ... , 'S99'} min tn tc gi, k hiu DOM (Tn TG) DOM (Tn TG) = { char(40) } 2. Quan h 2.1. nh ngha 1 DiCho n tp D1, D2, ... Dn, khng nht thit phn bit nhau, khi R c nh ngha l 1 quan h trn n tp nu R l mt tp no cc b c sp (d1, d2, ... dn) sao cho di V d 2.1: quan h r = { ( ) | i = 1..m } l n b c sp th i. t tn cc ct l A1, A2, ... An: A1 .., Ai,.. An .. , ,..

..., ,..

.., ,..

Mi quan h c th biu din di dng bng, khi mt dng tng ng vi mt b ca quan h, mt ct tng ng vi cc gi tr ca mt thuc tnh. Quan h Bng Tp B Dng Bn ghi Thuc tnh Ct Trng C hai i lng o kch thc quan h: S thuc tnh ca quan h: gi l bc quan h S b: gi l lc lng ca quan h 2.2. nh ngha 2 Gi R = {A1,A2,..., An} l tp hu hn ca cc thuc tnh, mi thuc tnh Ai vi i = 1,..,n c min gi tr tng ng l DOM(A1) . Khi r l quan h xc nh trn n thuc tnh nu r l tp con hoc trng vi tch Cc ca Di (i = 1..n) D1 x D2 x ... x Dnr Khi k hiu l r(R) hoc r(A1,A2,..., An). V d 2.2: Hnh cho thy quan h NHAN_VIEN bao gm cc thuc tnh Ho_Ten, Thanh_Pho, Nam_Sinh v Luong l mt quan h 4 ngi. NHAN_VIEN (Ho_Ten, Thanh_Pho, Nam_Sinh, Luong) t1 Ho_Ten Thanh_Pho Nam_Sinh Luong L Vn A Ha Noi 1960 400 t2 Hong Th B HCM 1970 500 t3 L Vn Sn Hai Phong 1945 600 Hnh 8 - Quan h NHN VIN t1 = (L Vn A, Ha Noi, 1960, 400) l mt b ca quan h NHAN_VIEN 3. Kho (Key) 3.1. nh ngha t2 [A] ). K sao cho gi tr ca thuc tnh t1 ti A khc gi tr t2 ti A ( t1[A] t2 u tn ti mt thuc tnh A r, t1 {A1,A2,..., An} nu vi mi t1, t2 Kho ca mt quan h r xc nh trn tp thuc tnh R = {A1,A2,..., An} l tp con K t2 [K]). Do vy mi gi tr ca K l xc nh duy nht mt b. Ni mt cch khc, khng tn ti hai b m c gi tr bng nhau trn mi thuc tnh ca K. iu kin ny c th vit ( t1[K] V d 3.1: K1 = {M_Sch} l kho

K2 = {M_cGi} l kho K3 = {Tn_Sch} khng phi l kho v c th c hai quyn sch c tn ging nhau nhng ni dung khc nhau (khng duy nht). 3.2. Tnh cht t2 [K']. t2 [K] lun c t1[K'] r t t1[K] R, K' cng l kho ca r, ngha l bt k t1, t2 K' Nu K l kho ca quan h r(A1,A2,..., An) th K K, K' khng l kho ca quan h r.K l kho ti thiu ca nu nh K l kho ca r v vi mi K' Mt quan h c th c nhiu kho ti thiu, do khng cn xc nh ht kho ti thiu m ch cn xc nh 1, 2 kho ti thiu lm kho chnh, cc kho khc l d b. K c gi l kho ngoi ca quan h r nu nh K khng phi l kho chnh ca quan h r nhng n li l kho chnh ca quan h khc. V d 3.2: Thc th Sch c kho chnh l M_Sch. Thc th c gi c kho chnh l M_c_Gi. Thc th Mn c kho ngoi l M_Sch v M_c_Gi. Bi 2. Cc php ton i s quan h (3 tit) Trong bi ny s trnh by chi tit i s quan h nh l c s ca mt ngn ng bc cao thao tc trn cc quan h. Bao gm cc php ton tp hp nh: hp, tr, giao, tch Cc v cc php ton quan h nh: chn, chiu, kt ni, chia. 1. nh ngha a) nh ngha 1: Hai quan h r v s gi l kh hp nu chng c xc nh trn cng tp min tr. V d: quan h r xc nh trn min {D1,D2,...,Dn} c bc n quan h s xc nh trn min {D'1,D'2,...,D'm} c bc m nu n = m v {r} = {s} th r v s c gi l kh hp b) nh ngha 2: Hai quan h r v s kh hp nu chng c xc nh trn cng tp thuc tnh, cc thuc tnh cng tn c cng min tr v i snh vi nhau. 2. Cc php ton i s 2.1. Php hp (Union) s, l tp cc b thuc r hoc s hoc thuc c hai quan h.Hp ca hai quan h r v s kh hp, k hiu l r Biu din hnh thc cho php hp c dng nh sau: V d 2.1: r (A B C) s (A B C) s = (A B C)r a1 b1 c1 a1 b1 c1 a1 b1 c1 a2 b1 c2 a2 b2 c2 a2 b1 c2 a2 b2 c1 a2 b2 c2 a2 b2 c1 2.2. Php giao (Intersect) s, l tp cc b thuc c hai quan h r v s. Biu din hnh thc cho php giao c dng nh sau:Giao ca hai quan h r v s kh hp, k hiu l r

V d 2.2: Vi r v s l hai quan h trong v d trn, giao ca chng l: s = ( A B C )r a1 b1 c1 2.3. Php tr (Minus) Hiu ca hai quan h r v s kh hp, k hiu r - s. Biu din hnh thc php tr c dng nh sau: V d 2.3: Vi r v s l hai quan h trong v d trn, php tr ca chng l: r-s=(ABC) a2 b1 c2 a2 b2 c1 s c th biu din quan php tr:Ch : Php giao ca 2 quan h r s = r - (r-s)r 2.4. Php chn (Selection) Php chn trn mt quan h thc cht l php ton lc ra mt tp con cc b ca quan h tho mn iu kin cho trc. iu kin l biu thc chn, l mt t hp logic ca cc ton hng trong mi mt ton hng l mt php so snh gia hai thuc tnh hoc gia mt thuc tnh v mt gi tr hng. (khng hay ph nh). (hoc), (v), Cc php ton logic bao gm: Cc php ton so snh trong biu thc l: <, =, >, <=, >. = v Hnh thc ho php chn c nh ngha nh sau: F(t) c hiu l gi tr ca cc thuc tnh xut hin trong biu thc F ti b t tho cc iu kin ca F. V d 2.4: cho quan h nh sau: r (A B C D) a1 b1 c1 d1 a1 b1 c1 d2 a2 b2 c2 d2 a2 b2 c3 d3 Cc php chn: A=a1(r) = s(A B C D) D = d2(r) = (A B C D) A=a1 a1 b1 c1 d1 a1 b1 c1 d2 a1 b1 c1 d2 2.5. Php chiu (Projection) Php chiu trn mt quan h l php ton loi b i mt s thuc tnh v ch gi li mt s thuc tnh cn li ca quan h . Gi s r l mt quan h n - ngi (gm n thuc tnh) ta c: X (r) c nh ngha nh sau: Gi X l tp con ca thuc tnh R = {A1,A2,..., An}. Php chiu trn tp X ca quan h r, k hiu l vi t[X] l gi tr ca b t ti thuc tnh X. V d 2.5: R = {A,B,C,D}; X = {A,B}; Y = {A,C} r (A B C D) X (r)=p(A C) X (r) = p(A B) a1 b1 c1 d1 a1 b1 a1 c1

a1 b1 c1 d2 a2 b2 a2 c2 a2 b2 c2 d2 a2 c3 a2 b2 c3 d3 X (r) v r: A=a1(r) ; p = So snh : s = lng ca r Bc p = bc ca r , lc lng ca p lc lng ca r. bc ca r; lc lng ca l s khng kh hp vi r, bc ca l 2.6. Tch Cc (Times) Gi r l quan h xc nh trn tp thuc tnh (A1,A2,..., An) v s l quan h xc nh trn tp thuc tnh (B1,B2,..., Bm). Tch Cc r x s ca r v s l tp (n+m) b vi n thnh phn u c dng mt b thuc r v m thnh phn sau c dng mt b thuc s. Biu din hnh thc ca quan h r(U) v quan h s(V) vi U = (A1,A2,..., An) v V = (B1,B2,..., Bm) c dng: vi u = (a1,a2,..., an) v s = (b1,b2,..., bm) V d 2.6: r (A B) s (C D) r x s = p(A B C D) a1 1 1 d1 a1 1 1 d1 a2 2 2 d2 a1 1 2 d2 a2 2 1 d1 a2 2 2 d2 2.7. Php kt ni (Join) Biu thc kt ni c nh ngha l t hp logic cc ton hng, trong mi ton hng l mt php so snh gia mt thuc tnh ca quan h r Php ton kt ni ca hai qua n h r(U) v s(V) c biu din nh sau: l mt trong cc php so snh { B), vi Trong F l iu kin kt ni, F = (A <, =, >, <=, >V)) vi mi gi tr ca thuc tnh B (B U) u c th so snh c (qua php }. D nhin, y cn gi thit rng mi gi tr ca thuc tnh A (A = , C) nh sau: V d 2.7: php kt ni gia quan h r v s vi iu kin kt ni F = (B r (A B) s (C D) r s = p'(A B C D) a1 1 1 d1 C a1 1 1 d1 B a2 2 2 d2 a2 2 1 d1 a2 2 2 d2 Nhn xt: Tp kt qu ca php kt ni p' l tp con ca tp kt qu php tch Cc p: pp' <=> C (p) B p' = <=> C (r x s) B r s = C B Do c th nh ngha php chiu thng qua php chn v php tch Cc nh sau:

V trong trngU v B B) vi A Nu iu kin kt ni F = (A ni c gi l "kt ni bng". hp php so snh

l "=" th php kt

V d: vi quan h r v s trong v d trn ta c: r (A B) s (C D) r s = p"(A B C D) a1 1 1 d1 B = C a1 1 1 d1 a2 2 2 d2 a2 2 2 d2 Trng hp kt ni bng ti thuc tnh cng tn ca hai quan h v mt trong hai thuc tnh c loi b qua php chiu, th php kt ni c gi l "kt ni t nhin" v s dng k hiu "*". Khi php kt ni t nhin ca hai quan h r(AB) v s(CD) biu din nh sau: s} r v t[BD] r(AB)*s(BD) = {t[ABD] | t[AB] V d: r (A B) s' (B D) r s = p"'(A B B D) a1 1 1 d1 B = B a1 1 1 d1 a2 2 2 d2 a2 2 2 d2 Hay k hiu r * s' = p"'(A B D) a1 1 d1 a2 2 d2 Nhn xt: Php kt ni t nhin c th c biu din thng qua php chiu v kt ni thng thng. Xt v d di y: Cho hai quan h r (A B C) v s (B C D) Kt ni t nhin r * s = p (A B C D) ABCD ( r s ) Hay c th biu din r * s = B = B, C=C C ngha l tp kt qu ca php kt ni t nhin thu c sau khi thc hin php chiu trn cc thuc tnh khc nhau i vi tp kt qu ca php kt ni ti cc thuc tnh cng tn. 2.8. Php chia (Divide) Gi r l quan h n ngi v s l quan h m ngi (vi n > r. u s th b t s l tp ca tt c (n - m) b t sao cho vi mi b u ). Php chia r m, v s Biu din hnh thc nh sau: (2.8) V d 2.8: r(A B C D) s = (A B) S (C D) r abcdcdab abefefed acef edcd edef 3. Cc v d v tm kim bng i s quan h V d c ba quan h: S (S#, SNAME, STATUS, CITY) : cc hng cung ng, P (P#, PNAME, COLOR, WEIGHT, CITY) : cc mt hng SP(S#, P#, QTY) : cc mt hng cung cp

Tm s hiu ca nhng hng cung cp mt hng P2 P# = 'P2'(SP)) S# ( Tm s hiu ca nhng hng cung ng t nht l mt mt hng nu COLOR = 'RED'(P*SP)) S# ( COLOR = 'RED'(P))*SP) S# (( hoc 4. Kt lun chung v bi tp: 4.1. Kt lun Ni chung cc php tnh ca i s quan h l kh n gin, mnh v l mt i s c tnh y , khng cn th tc. Tuy nhin y l ngn ng kh gn ngn ng lp trnh th tc, d dng m rng v ch yu l lm c s cho vic thit lp cc ngn ng con d liu bc cao hn. Trong bi sau s trnh by ngn ng con d liu SQL, y ngn ng con d liu quan h c xc nhn l rt mnh, ph dng v li d s dng. 4.2. Ti liu tham kho - L Tin Vng, Nhp mn C s d liu quan h, NXB Gio dc, Chng1 - P. O' Neil, Database - Principles, Programming, Performance, Chng 3 4.3. Bi tp Bi 1 (trang 175), Nhp mn C s d liu quan h, L Tin Vng, NXB Thng K. Chng 4. NGN NG VN TIN C CU TRC SQL (STRUCTURE QUERY LANGUAGE) H QTCSDL cung cp cho ngi s dng cng c thc hin cc yu cu thng quan ngn ng giao din. Trong chng ny s trnh by ngn ng d liu SQL (Structure Query Language). y l ngn ng con d liu quan h c xc nhn l rt mnh, thng dng, v d s dng. Bi 1. Ngn ng nh ngha d liu (2 tit) 1. Gii thiu v ngn ng SQL Ngn ng SQL c pht trin t ngn ng SEQUEL-2, th nghim v ci t ti Trung tm nghin cu ca hng IBM San Jose, California cho h thng QTCSDL ln in hnh l System -R. Trong System -R, SQL va ng vai tr l mt ngn ng c th thao tc c lp ca ngi s dng u cui, ng thi li c kh nng l mt ngn ng con c nhng trong ngn ng ch PL/1. Khc vi ngn ng i s quan h, l ngn ng da trn cc php ton ca i s quan h. SQL l mt ngn ng phi th tc, chun mc v in hnh. DO vy hin nay rt nhiu sn phm phn mm thng mi u c ci t SQL nh Access, SQL Server, DB2, Oracle,... Php ton c bn trong SQL l php nh x c miu t nh mt khi SELECT - FROM - WHERE. Trong phn sau, cc mnh ca ngn ng SQL s c trnh by chi tit bng cc v d. Cc thut ng trong CSDL quan h nh quan h, thuc tnh, b,... s c thay bng cc thut ng nh bng (table), ct (colum), bn ghi (record) hoc hng (row). 2. Cc mnh ca ngn ng SQL 2.1. To bng Mnh to bng to mt bng quan h mi thng quan tn bng, xc nh cc thuc tnh v cc rng buc logic ca bng. Mnh to bng c dng tng qut nh sau:

Trong : tn bng: l xu k t bt k khng c k hiu trng v khng trng vi cc t kho. tn ct: l xu k t bt k khng cha k hiu trng,trong mt bng tn ct l duy nht. Th t ca ct trong bng l khng quan trng. kiu d liu: trong mnh to bng dng mt s kiu d liu sau: - integer: kiu s nguyn, t - 2.147.483.648 n - 2.147.483.647 - smallinteger: s nguyn nh t -32.768 n 32.767 - decimal (n,p): s thp phn vi di ti a l n k c p ch s phn thp phn (khng tnh du chm thp phn). - char(n): xu k t c di c nh n. Mt s HQTCSDL cho php kch thc ti a ca char l 2000 bytes. Nu mi k t tng ng mt byte (m ASCII nh i vi h QTCSDL Access) th s k t ti a l 2000. Trong trng hp s dng b m UCS2 (nh i vi h QTCSDL SQL Server) th s k t biu din ti l 1000 k t (s dng 2 byte biu din 1 k t). - varchar(n): xu k t c di bin i, di xu c th t 0 n n v c xc nh ti thi im a gi liu vo lu tr. . Mt s HQTCSDL cho php kch thc ti a ca char l 4000 bytes. - date: d liu dng ngy thng, nh dng ngm nh: DD - MON - YY. - Ngoi ra mi h QTCSDL cng a ra cc kiu d liu ring. NULL l gi tr ngm nh khi khng bit chnh xc gi tr. Do ct ng vai tr kho chnh khng c nhn gi tr NULL, cc ct khc c th tu chn. V d 2.1: Cho CSDL gm 3 bng S (Supplier),P (Part) v SP nh sau: S (S#, SNAME, STATUS, CITY) : cc hng cung ng, vi S# l kho chnh P (P#, PNAME, COLOR, WEIGHT, CITY) : cc mt hng, P# l kho chnh SP(S#, P#, QTY,SDATE) : cc mt hng cung cp. To bng S: Hnh 9 - Cu trc lnh to bng nh cung cp To bng P: To bng SP: Nhn xt: Trong mnh to bng c th s dng thm cc yu t rng buc hn ch cc gi tr cho mt hay nhiu ct trong bng, nh: rng buc kho chnh, kho ngoi, rng buc ton vn tham chiu, rng buc min gi tr tng ng nh sau: NULL: ct c th khng cha gi tr. NOT NULL: ct phi cha mt gi tr no PRIMARY KEY: rng buc kho chnh REFERENCE: rng buc kho ngoi ON DELETE CASCADE: rng buc ton vn tham chiu 2.2. Xo bng Mnh xo bng xo mt bng quan h (c cu trc v ni dung ca bng) khi CSDL. Bng ny ch c th c to li bng cch s dng mnh CREATE TABLE.

Mnh xo bng c dng tng qut nh sau:

V d 2.2: Xo bng SP trong v d trn: DROP TABLE SP 2.3. Thm d liu y l mnh thm mt bn ghi vo mt bng v thng c s dng t chc vo d liu. Dng tng qut nh sau: C 3 cch biu din mnh thm d liu: Cch 1: INSERT INTO S(S#, SNAME, STATUS, CITY) VALUES (1,'VINH',30,'HA NOI' ) Cch 2: Nu v tr ca cc ct trong bng l c nh mnh c th vit: INSERT INTO S VALUES (1,'VINH',30,'HA NOI' ) Cch 3: Nu ngi vo d liu qun v tr ca cc ct, khi c th biu din nh sau: INSERT INTO S(S#, STATUS, CITY, SNAME) VALUES (1, 30,'HA NOI', 'VINH') Bi 2. Ngn ng thao tc d liu (3 tit) 1. Khi SELECT Cu trc n gin nht trong SQL l khi SELECT c miu t v c php nh mt khi select - from - where. Mt cch tng qut khi select bao gm 3 mnh chnh: Select: Xc nh ni dung ca cc ct cn a ra kt qu From: Xc nh cc bng cn ly thng tin ra. Where: Xc nh cc bn ghi tho mn yu cu chn lc a ra kt qu. Ngoi ra, m rng kh nng ca ngn ng, khi SELECT cn c b sung thm cc mnh group by, having, order by, cc hm mu,... Trong cc phn sau s trnh by chi tit tng mnh . Dng tng qut ca khi select c biu din nh sau: Trong mnh WHERE biu din di mt s dng sau: WHERE [NOT] <biu thc> php_so_snh <biu thc> WHERE [NOT] <tn ct> [NOT] LIKE <xu k t> WHERE [NOT] <biu thc> [NOT] BETWEEN <biu thc> AND <biu thc> WHERE [NOT] <biu thc > [NOT] IN ({danh sch / mnh con}) WHERE [NOT] <tn ct> php_kt_ni <tn ct> WHERE [NOT] <biu thc logic> WHERE [NOT] <biu thc> {AND | OR} [NOT] <biu thc> 2. Cc mnh tm kim 2.1. Tm kim theo cu hi n gin a) Tm kim khng iu kin Trc ht, n gin ta lm quen vi cc cu hi ch lin quan ti mt bng. Trong mnh select c danh sch ct, danh sch ny xc nh tn cc ct cn c trong bng kt qu. Nu s dng gi tr '*' c ngha l chn ton b cc ct ca bng.

V d 1: Cho bit m s cc nh cung cp ng vi mt mt hng no SELECT S# SP (S#, P#, QTY, SDATE) FROM SP

Kt qu S#(SP) ) ( trong i s quan h: Ch : Sau khi thc hin mt lnh SQL, bng kt qu ng l mt quan h (c ngha l khng c b trng nhau), trong mnh select cn thm t kho DISTINCT. V d 2: nh trong v d trn SELECT DISTINCT S# FROM SP Tp kt qu ch gm S1 v S2 b) Tm kim vi iu kin n gin Tm m s nhng nh cung cp cung cp mt hng P2: SELECT DISTINCT S# FROM SP WHERE P# = 'P2' Trong SQL cc php so snh c s dng bao gm >, <, >=, <=, = v <>. Cc php trn dng cho mi loi d liu. c) Tm kim c x l xu k t X l xu k t gn ng c dng trong trng hp ngi s dng khng nh r tn ngi hoc a danh,... v du l Hoa hay Hoan khi c th vit: SELECT * FROM S WHERE SNAME LIKE 'HOA%' Trong SQL s dng k hiu '%' l thay th cho mt xu con, du phn cch '_' thay th cho mt k t. V d 3: A%B: xu k t bt u bng ch A v kt thc bng ch B %A: xu k t bt k c kt thc l A A_B: xu gm ba k t c k t th hai l bt k. d) X l ngy thng Ngoi cc php tnh thng thng, SQL cn c th x l d liu dng ngy thng. V d 4: Tm nhng mt hng bn trc ngy 11-10-02 l 10 ngy SELECT P# FROM SP WHERE '11-10-02' - sdate = 10 e) Tm kim nh s dng IN v BETWEEN Tm nhng mt hng cung cp c s lng t 100 n 200 SELECT P# FROM SP WHERE QTY BETWEEN 100 AND 200 Tm m s nhng nh cung cp cung cp t nht mt trong cc mt hng P1, P2,P3

SELECT S# FROM SP WHERE P# IN ('P1', 'P2', 'P3') 2.2. Cc hm th vin Cng ging nh cc ngn ng CSDL khc, trong SQL c cc hm mu gm count, max, min, sum, avg. Ring hm count khi c i s l '*' c ngha l m s bn ghi tho mn yu cu tm kim m khng cn quan tm ti bt k mt ct no. V d 2.1: Cho bit s ln mt hng P2 c cung cp SELECT COUNT(*) FROM SP WHERE P# = 'P2' Tm s mt hng P1 bn mt ln nhiu nht SELECT MAX (QTY) FROM SP WHERE P# = 'P1' 2.3. Tm kim nh mnh GROUP BY Tm m s nhng mt hng m mi nh cung cp cung cp cho khch hng SELECT S#,P# FROM SP SP (S#, P#, QTY, SDATE) SS1 PP1 - SS1 PP2 - SS1 PP3 - SS2 PP2 - GROUP BY S#

Trong mnh ny bng d liu SP c ly ra, sau phn thnh nhm theo m s ca ngi cung cp (S#). C ngha l cc b c cng gi tr S# c sp xp lint tip nhau, ht nhm ny n nhm khc. a) Tm kim c s dng mnh HAVING Mnh Having thng c s dng cng mnh Group by. Sau Having l biu thc iu kin. Biu thc iu kin ny khng tc ng vo ton bng c ch ra mnh From m ch tc ng ln lt tng nhm cc bn ghi ch ra ti mnh Group by. V d 2.3: Tm m s nhng nh cung cp cung cp t nht hn hai mt hng.

b) Tm kim c sp xp Tm tn cc mt hng mu v sp xp theo th t gim dn ca m s mt hng.

Sau mnh Order by l tn ct cn sp xp ri n chiu sp xp tng hoc gim (ASC hoc DESC). C th sp xp nhiu ct v nu khng ch ra chiu sp xp th h thng ngm nh l chiu tng (ASC). 2.4. Tm kim vi cu hi phc tp Trong phn ny trnh by vic tm kim vi nhiu bng qua vic s dng nh x lng nhau hoc qua php kt ni. a) Php kt ni Trong php kt ni, cc ct tham gia kt ni phi c min tr l snh (so snh) c vi nhau (v d: cng l kiu integer, char, hay gia kiu char v varchar,...). Tn ct ca cc bng khc nhau c th c vit tng minh qua tn bng. Trong v d quan h ngi cung cp - mt hng, bng S cha ct s hiu mt hng S#, bng SP cng cha s hiu mt hng S#. phn bit, c th vit tng minh tn ct S# qua tn bng l S.S# v SP.S#. V d 2.4: Vi mi mt hng c cung cp, cho bit m s ca mt hng v a ch ca hng cung cp mt hng . Ta nhn thy, trong bng SP (bng mt hng c cung cp) khng cha a ch ca hng cung cp. Do cn kt ni vi bng S thu c a ch ca hng cung cp thng qua php kt ni.

SS# SNAMEME STATUSUS CTYTY SS1 OMOMO Goodod HNHN SS2 DASOSO Goodod HCMCM SS3 - - SS4 - - SS# PP# QTYTY SDATETE SS1 PP1 10 SS1 PP2 20 SS2 PP2 50 SS2 PP3 - Hnh 10 V d bng quan h S- SP Ch : Trong cc php tm kim c nhiu hn mt bng, nu tn cc ct l khng duy nht th bt buc phi vit tn ct dng tng minh. b) nh x lng Tm tn nhng hng cung cp mt hng P2. Php lng nhau c th c lng nhiu mc hoc s dng nh x lng vi s dn tr gia cc khi mi khi hng ti mt bng khc nhau.

V d: Tm s hiu v tn cc hng khng cung ng mt hng P1. c) Tm kim c s dng lng t ANY v ALL Tm tn nhng mt hng c m s mt hng l mt hng no m hng S1 bn. Tm m s nhng hng cung cp s lng mt ln mt mt hng no ln hn hoc bng s lng mi ln cung cp ca cc hng Mnh trn hon ton tng ng vi: d) Tm kim c cha php tnh tp hp Tm m s nhng hng hin thi cha cung cp mt mt hng no c Tm tn cc hng cung cp tt c cc mt hng. 3. Cc mnh cp nht d liu Trong cc phn trc trnh by cc mnh to bng, vo d liu. Phn ny s trnh by chi tit cc mnh cp nht d liu trong SQL 3.1. Thm mt b d liu Mnh thm mt b d liu c dng tng qut nh sau:

V d 3.1: C th b sung mt tp cc bn ghi l kt qu x l ca mt cu hi no , chng hn: Nu nh bng W v bng S c cng lc . SS# WNAMEME STATUSUS CTYTY SS1 OMOMO Goodod HNHN SS2 DASOSO Goodod HCMCM WW1 Haiai HaHa Goodod HNHN WW3 Kinhnh Goodod HCMCM W# WNAME STATUS CTY W1 Hai Ha Good HN W2 Halida Normal HN W3 Kinh Good HCM W4 - - Hnh 11 V d thm b d liu 3.2. Xo bn ghi Mnh xo bn ghi c th c thc hin cho mt hoc nhiu bn ghi tho mn mt iu kin no . Dng tng qut l:

V d 3.2: Loi b hng S1 khi bng S DELETE FROM S

WHERE S# = 'S1' Loi b cc mt hng c cung cp sau ngy 20 - 5 -2000 DELETE FROM SP WHERE SDATE > '20 - 5 -2000' Loi b nhng hng cha cung cp mt hng no c DELETE FROM S WHERE S# NOT IN ( SELECT S# FROM SP) 3.3. Sa i d liu Mnh sa i cc gi tr ca cc bn ghi trong bng ca CSDL theo mt iu kin no c dng tng qut nh sau: V d 3.3: i mu cc mt hng P2 thnh mu vng. UPDATE P SET COLOUR = 'Vng' WHERE P# = 'P2' 3.4. Thm ct mi V d 3.4: Thm ct PRICE (gi) cho bng SP vi kiu s liu dng s thp phn. ALTER TABLE SP ADD PRICE DECIMAL(8.2) 4. Kt lun v bi tp 4.1. Kt lun Chng ny trnh by v ngn ng d liu SQL. y l ngn ng rt mnh, ph dng v d s dng. Hin nay, cc h QTCSDL thng dng nh: Access, SQL Server, Oracle, DB2,... u h tr tt ngn ng ny. Do c th thao tc tt trn cc h QTCSDL ny, cn hiu v nm vng ngn ng SQL. 4.2. Bi tp Bi 2, 3, 4 (trang 175, 176), Sch Nhp mn C s d liu quan h, L Tin Vng, NXB Thng K. Tng quan v C s d liu quan h Li m u Thut ng C s D liu (Database) khng my xa l vi nhng ngi lm tin hc. y l mt trong nhng lnh vc c tp trung nghin cu v pht trin ca Cng ngh thng tin, nhm gii quyt cc bi ton qun l, tm kim thng tin trn cc h thng ln, phc tp, nhiu ngi s dng. T nhng nm 70, m hnh d liu quan h do Codd a ra vi cu trc hon chnh to c s ton hc cho cc vn nghin cu d liu. Vi cu trc n gin v kh nng hnh thc ho phong ph, CSDL quan h d dng m phng cc h thng thng tin a dng trong thc t. Lu tr thng tin tit kim, c tnh c lp d liu cao, d sa i, b sung cng nh khai thc d liu l nhng u im ni bt ca CSDL quan h . Sau y chng ta s cp ti nhng khi nim c bn ca CSDL quan h . I - Khi qut v CSDL & CSDL quan h I.1. Khi nim CSDL

5. nh ngha Mt c s d liu l mt tp hp d liu v mt x nghip c lu gi trn my tnh, c ngi s dng, c cch qun l bng mt m hnh. VD: Qun l thi tuyn sinh th CSDL bao gm: + th sinh (tn, ngy sinh, a ch, s bo danh ...). + phch (s bo danh, s phch). + im (s phch, im). 6. Cc tiu chun ca mt CSDL Mt CSDL cn : + phn nh tt x nghip cn qun l. + khng d tha thng tin: mi thng tin ch nn c mt mt ln trong h thng thng tin tit kim lu tr, m bo truy cp duy nht. + c lp gia CSDL v chng trnh: s sa i chng trnh khng lm ko theo vic sa i CSDL. + tnh an ton: khng b hng khi c nhiu ngi s dng hoc c cc s c. + hiu sut s dng tt: d nhiu ngi s dng mt lc, CSDL vn m bo hiu sut nh ch c mt ngi s dng. 7. H QTCSDL L tp hp c th t cc phn mn cho php m t lu gi thao tc cc d liu trn mt CSDL, m bo tnh an ton, b mt trong mi trng c nhiu ngi s dng. 8. H thng thng tin L tp hp cc thng tin c lu gi, v mt tp hp cc x l cho php xy dng li mt hnh nh trung thnh v mt x nghip. 9. Kin trc mt CSDL Gm 3 thnh phn c bn + Thc th: l i tng c trong thc t m chng ta cn m t cc c trng ca n, i tng c th l c th hoc tru tng . + Thuc tnh: l cc d liu th hin cc c trng ca thc th. + Rng buc: l cc mi quan h Logic ca thc th. I.2.Cc m hnh CSDL 10. M hnh phn cp M hnh d liu l mt cy, trong cc nt biu din cc tp thc th, gia cc nt con v nt cha c lin h theo mi quan h xc nh ch-thnh vin (1-n). 11. M hnh mng M hnh c biu din l mt th c hng . 12. M hnh quan h M hnh da trn c s khi nin l thuyt tp hp ca cc quan h . I.3.Cc khi nim c bn v CSDL quan h 13. Thuc tnh + l mt l thng tin nh nht c s dng mt cch t do v c ngha, c lp vi cc l khc . + trong mt m hnh , thuc tnh l mt nh v c s thng tin, mt thuc tnh c

nh ngha bng tn v min gi tr ca n . 14. Quan h +Quan h c nh ngha l tp con ca tch cc D1*D2*...*Dn trong Di l min gi tr ca thuc tnh i. Ta c th xem quan h nh mt bng gm nhiu ct cha tn cc thuc tnh, mi ct cha min ga tr ca thuc tnh, mi ct cha min gi tr ca thuc tnh . + Mi hng trong bng l mt b gi tr ca quan h, l mt hnh nh ca thc th. 15. Ph thuc hm Xt tp quan h Ri v hai tp thuc tnh G1,G2 lun c mt cng nhau trong cc Ri. Ta ni c s ph thuc ca hm gia G1,G2 nu vi mi gi tr ca G1 ch c th kt hp vi mt v ch mt gi tr ca G2 ti mt thi im cho trc. Tnh cht ng trong mi Ri m c mt G1,G2 . K hiu G1 --> G2. 16. Kho L mt hoc mt tp cc thuc tnh l ngun ca mt ph thuc hm c ch ln lt l cc thuc tnh khc ca quan h. VD: + Sinh vin(S th Sv, H tn, Ngy sinh, Qu qun) S th Sv --> H tn S th Sv --> Ngy sinh S th Sv --> Qu qun Nh vy S th SV l kha ca quan h Sinh vin + Ging dy (S phng hc,Thi gian, Tn ging vin, Tn mn hc) S phng hc, Thi gian --> Tn ging vin, Tn mn hc Nh vy (S phng hc, Thi gian) l kho ca quan h Ging dy I.4.Cc php ton trn cc quan h 17. Php chiu G (R) . Xt cc tp cc thuc tnh C v R l tp cc quan h nh ngha trn C. Php chiu ca R trn tp G thuc C l s thu hp ca R n cc phn t ca G. K hiu 18. Php ni Ni hai quan h c cha cc thuc tnh hoc tp cc thuc tnh nh nhau, quan h thu c gm c cc hng hai quan h ban u t ni nhau bng cc thuc tnh ging nhau. Php ni hai quan h S v T k hiu l S |><| T 19. Php tch Mt quan h R c gi l phn r thnh hai quan h S, T nu tho mn : + S, T l cc php chiu ca R + R = S |><| T Ch rng khng phi bt k quan h no cng tch c 20. Php chn : ly ra cc hng c cc thuc tnh tho mn mt s tiu chun cho trc. Ngoi ra cn c php hp, php giao, php ly hiu cc quan h II-Thit k h thng CSDL quan h II.1.Phn tch t liu ca XN

21. Xc nh danh sch cc thuc tnh T vic kho st thc t, t cc tin tc trao i vi ngi dng, phn tch cc bi ton nghip v, ta c mt danh sch cc thuc tnh phc v cho xy dng CSDL. Mi mt thuc tnh bao gm : + tn thuc tnh + kiu thuc tnh (l tnh ton hay khng tnh ton) + min gi tr + quy tc tnh ton (nu thuc tnh l tnh ton) + ds cc tham s VD : Xt quan h : Bng lng (H tn, n v, H s, Lng, Ph cp, Tng lnh) Ta thy y Lng, Tng lnh l cc thuc tnh tnh ton vi cc qui tc Lng = H s * 14400 Tng lnh = Lng + Ph cp 22. 23. Tm ph thuc hm gia cc thuc tnh Sau khi c c mt danh sch cc thuc tnh t vic thu thp thng tin v kho st thc t, vic cn lm tip theo l xc nh cc ph thuc hm gia cc thuc tnh. Chng ta xt mt v d sau : Qun l th vin (S th, S sch, Tn sch, Loi sch, Ngy mn, Tn c gi, a ch c gi) Ta thy c cc ph thuc hm sau : S th mn, S sch --> Ngy mn S sch --> Tn sch, Loi sch S th mn -->Tn c gi, a ch c gi II.2.Chun ho cc quan h Coi danh sch cc thuc tnh thu c sau cc bc trn cng cc ph thuc hm gia chng l mt quan h, chng ta thc hin vic chun ho quan h ny. Mc ch ca qu trnh ny l gim bt s d tha thng tin, bo m tnh duy nht ca mi thng tin, do tin li cho vic truy nhp v cp nht cho CSDL.Qu trnh chun ho c th c tin hnh qua nhiu bc. Ta xt v d sau : Xe my (S xe, S my, Loi xe, Ngy ng k, Tn ch xe, S in thoi, a ch) + Nu mt ngi c nhiu xe th lp li (S in thoi, a ch ) ca ch xe, nh vy d tha thng tin. + Nu mt ngi ch xe thay i a ch th phi sa nhiu ln, nh vy cp nht ri rc Nh vy bin php khc phc l tch ra quan h Ch xe(Tn, S in thoi, a ch) 24. 25. a quan h v dng chun 1 NF Quan h cha dng chun 1NF l quan h cn cha cc nhm lp li. Ta a v dng

1NF bng cch nh sau: + b nhm lp li ra khi quan h, chuyn nhm thnh mt quan h mi + cng thm vo kho ca n kho ca quan h ban u to ra kho phc hp VD: xt quan h : R (S ho n, Ngy bn, S khch hng, Tn khch hng, S sn phm, Tn sn phm, Lng yu cu) Nhm (S sn phm, Tn sn phm, Lng yu cu ) l nhm lp li, ta c th tch R thnh R1 v R2 nh sau : + R1 (S ho n, Ngy bn, S khch hng, Tn khch hng, S sn phm) + R2 (S ho n, S sn phm, Tn sn phm, Lng yu cu) 26. 27. a quan h v dng chun 2NF Quan h dng 1NF nhng cha dng 2NF l c tn ti ph thuc hm c ngun l tp con ca kho. Ta a v dng 2NF bng cch nh sau: + nhm vo mt quan h cc thuc tnh ph thuc hon ton vo kho v gi li kho ca quan h + nhm vo mt quan h khc cc thuc tnh ph thuc vo mt phn ca kho, ly phn lm kho chnh cho quan h . VD : trong quan h R2 (S ho n, S sn phm, Tn sn phm, Lng yu cu) c ph thuc hm : S sn phm --> Tn sn phm Trong S sn phm l mt phn ca kho, ta tch R2 thnh R3 v R4 nh sau : + R3 (S ho n, S sn phm, Lng yu cu) + R4 (S sn phm, Tn sn phm) 28. 29. Dng chun 3NF Quan h dng 2NF nhng cha dng 3NF l c tn ti cc ph thuc hm gin tip. a v dng 3NF ta lm nh sau : + gi li trong quan h ban u cc thuc tnh ph thuc trc tip vo kho + nhm vo mt quan h khc cc thuc tnh bc cu, ly thuc tnh bc cu lm kho VD : trong quan h R1 (S ho n, Ngy bn, S khch hng, Tn khch hng, S sn phm) C cc ph thuc hm bc cu : S ho n --> S khch hng --> Tn khch hng Ta c th tch R1 thnh R5 v R6 nh sau : + R5 (S ho n,Ngy bn, S khch hng, S sn phm) + R6 (S khch hng ,Tn khch hng) 30. Dng chun BCNF Quan h dng 3NF nhng cha dng BCNF l c tn ti ph thuc hm c ngun l thuc tnh khng thuc kho nhng c ch l thuc tnh thuc kho . Ta xt v d : R (Hc sinh, Mn hc, Gio vin, im) Ph thuc hm Gio vin --> Mn hc c ngun khng thuc kho nhng ch thuc

kho, ta tch R thnh R1, R2 nh sau : + R1 (Hc sinh, Gio vin, im) + R2 (Gio vin, Mn hc) Cc ph thuc hm n tr dng li dng chun BCNF (Boyce - Codd). n y chng ta c th kt thc cng vic chun ho . Li kt : M hnh CSDL quan h l mt cng c rt tin li m t cu trc logic ca cc CSDL . Nh vy mc logic m hnh ny bao gm cc quan h c biu din bi cc bng. Do n v ca CSDL quan h l bng, trong cc dng ca bng l cc bn ghi d liu c th, cn cc ct l cc thuc tnh . i vi ngi s dng c th ni CSDL quan h l mt tp hp cc bng bin i theo thi gian . i vi cng vic thit k mt CDSL th cc cng vic phn tch t liu ca x nghip v chun ho l ht sc quan trng, phc v cho vic ci t thc t .

Ti liu tham kho : - C s d liu kin thc v thc hnh PGS V c Thi - NXB thng k 1997 - Nhp mn c s d liu quan h L Tin Vng - NXB Khoa hc v k thut 1997 - Bi ging mn C s d liu I - Khoa CNTT - i hc KHTN

You might also like