You are on page 1of 127

BAN CH O CNG NGH THNG TIN CA C QUAN NG

***





GIO TRNH
T TH HI I T T K K , , X X Y Y D D N NG G V V Q QU U N N T TR R
C C S S D D L LI I U U









H NI, 2004
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 1
MC LC

CHNG 1: CC KHI NIM C BN V H C S D LIU.. ........ 4
I. C S D LIU .................................................................................................. 5
1. nh ngha c s d liu ........................................................................ 5
2. Cc tnh cht ca mt c s d liu ....................................................... 6
II. H QUN TR C S D LIU ...................................................................... 6
1. nh ngha h qun tr C s d liu ..................................................... 6
2. Cc chc nng ca mt h qun tr c s d liu .................................. 8
3. Cc c trng ca gii php c s d liu ............................................. 9
a. Bn cht t m t ca h c s d liu .............................................. 9
b. S c lp gia cc chng trnh v d liu. ...................................... 9
c. H tr cc khung nhn d liu nhiu thnh phn ............................. 10
d. Chia s d liu v nhiu ngi s dng ........................................... 10
e. V d v mt c s d liu ................................................................ 10
III. M HNH C S D LIU ........................................................................... 12
1. nh ngha m hnh c s d liu ........................................................ 13
2. Cc loi m hnh c s d liu ............................................................. 13
3. Con ngi trong h c s d liu ......................................................... 15
a. Ngi qun tr h c s d liu (Database Administrator-DBA) .... 16
b. Ngi thit k c s d liu (Database Designer) ........................... 16
c. Nhng ngi s dng (End User) .................................................... 16
d. Nhng ngi phn tch h thng v nhng ngi lp trnh ng dng17
e. Nhng ngi thit k v ci t h qun tr c s d liu ............... 17
f. Nhng ngi pht trin cng c ....................................................... 17
g. Cc thao tc vin v nhng ngi bo tr ........................................ 17
CHNG 2 : M HNH THC TH-LIN KT.............................................18
I. S DNG M HNH KHI NIM BC CAO CHO VIC THIT K C S
D LIU ................................................................................................................... 18
II. CC THNH PHN C BN CA M HNH THC TH-LIN KT .... 20
1. Kiu thc th, tp thc th, cc thuc tnh v cc kho ....................... 20
a. Cc thc th v cc thuc tnh ......................................................... 20
b. Cc loi thuc tnh ............................................................................ 21
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 2
c. Kiu thc th, tp thc th, khov tp gi tr ................................. 22
2. Cc lin kt, cc kiu lin kt, cc vai tr v cc rng buc cu trc .. 24
a. Cc kiu lin kt, tp lin kt v cc th hin ................................ 24
b. Cp lin kt, tn vai tr v lin kt quy ..................................... 25
c. Cc rng buc trn cc kiu lin kt ............................................. 26
III. V D V THIT K MT M HNH ER ................................................... 29
1. t vn ............................................................................................. 29
2. Xc nh cc kiu thc th, cc thuc tnh v cc kiu lin kt .......... 29
CHNG 3: M HNH QUAN H, CC RNG BUC QUAN H V I
S QUAN H .........................................................................................................32
I. CC KHI NIM CA M HNH QUAN H ............................................... 32
1. Min, thuc tnh, b v quan h ........................................................... 32
2. Cc c trng ca cc quan h ............................................................. 34
II. CC RNG BUC QUAN H, LC CSDL QUAN H ...................... 36
1. Cc rng buc min .............................................................................. 36
2. Rng buc kho v rng buc trn cc gi tr rng (null) .................... 36
3. C s d liu quan h v lc c s d liu quan h ..................... 37
4. Ton vn thc th, ton vn quy chiu v kho ngoi ......................... 40
III. CC PHP TON CA M HNH QUAN H ............................................ 42
1. Cc php ton cp nht ........................................................................ 42
a. Php chn (Insert) ............................................................................. 42
b. Php xo (Delete) ............................................................................. 42
c. Php sa i (Update) ...................................................................... 43
2. Cc php ton i s quan h ............................................................... 43
a. Php chn (SELECT) ........................................................................ 44
b. Php chiu (PROJECT) .................................................................... 45
c. Php t li tn (RENAME) ............................................................. 46
d. Cc php ton l thuyt tp hp ....................................................... 48
e. Php ni (JOIN) ................................................................................ 50
f. Tp hp y cc php ton quan h ............................................ 52
g. Php chia .......................................................................................... 52
3. Cc php ton quan h b sung ............................................................ 53
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 3
IV. CHUYN I M HNH THC TH-LINKT THNH M HNH QUAN
H .............................................................................................................................. 55
1. Cc quy tc chuyn i ........................................................................ 56
2. Chuyn i m hnh c th .................................................................. 59
CHNG 4: PH THUC HM V CHUN HO C S D LIU QUAN
H ............................................................................................................................60
I. CC NGUYN TC THIT K LC QUAN H ................................. 60
1. Ng ngha ca cc thuc tnh quan h ................................................. 60
2. Thng tin d tha trong cc b v cp nht d thng ........................ 61
3. To ra cc b gi .................................................................................. 62
II. CC PH THUC HM ................................................................................. 62
III. CC DNG CHUN DA TRN KHO CHNH ...................................... 69
1. Nhp mn v chun ho ....................................................................... 69
a. Dng chun 1 ...................................................................................... 70
b. Dng chun 2 ...................................................................................... 72
c. Dng chun 3 ...................................................................................... 73
CHNG 5: GII THIU NGN NG VN TIN C CU TRC SQL .74
I. GII THIU SQL ............................................................................................... 74
II. CC LNH NH NGHA D LIU ............................................................. 76
1. To cu trc CSDL ............................................................................... 76
2. To cu trc bng ................................................................................. 77
3. Cc rng buc ton vn SQL ............................................................... 81
III. QUN L D LIU C BN ....................................................................... 82
2. Nhp d liu ......................................................................................... 83
3. Kim tra ni dung bng ........................................................................ 83
4. Lu ni dung bng ............................................................................... 84
5. B sung d liu cho bng ..................................................................... 85
6. Sa cha ............................................................................................... 86
7. Xo hng............................................................................................... 87
8. Khi phc ni dung bng ..................................................................... 87
IV. VN TIN ......................................................................................................... 87
1. Lit k tng phn ni dung bng .......................................................... 88
2. Cc ton t lgic: AND, OR v NOT .................................................. 91
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 4
3. Cc ton t c bit .............................................................................. 93
V. CC LNH QUN L D LIU NNG CAO ............................................. 97
1. Thay i kiu d liu ca ct ............................................................... 98
2. Thay i c im thuc tnh ............................................................... 98
3. B sung ct cho bng ........................................................................... 98
4. Nhp d liu cho ct mi ..................................................................... 99
5. Sao chp mt phn bng .................................................................... 101
6. Xo bng khi CSDL ......................................................................... 102
VI. VN TIN PHC TP V CC HM SQL .................................................. 103
1. Sp xp danh sch .............................................................................. 103
2. Loi b trng lp ................................................................................ 106
3. Cc hm s hc SQL .......................................................................... 106
4. Nhm d liu ...................................................................................... 110
5. Bng o: vic to cc khung nhn ...................................................... 111
6. Ch mc SQL ...................................................................................... 112
7. Lin kt cc bng CSDL .................................................................... 113
VII. TM TT ..................................................................................................... 115
VIII. CU HI N TP ..................................................................................... 122
IX. BI TP ........................................................................................................ 124
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 5
CHNG I
CC KHI NIM C BN V H C S D LIU

Cc c s d liu v h c s d liu tr thnh mt thnh phn ch
yu ca cuc sng hng ngy trong x hi hin i. Trong vng mt ngy con
ngi c th c nhiu hot ng cn c s giao tip vi c s d liu; chng
hn, n ngn hng rt tin v gi tin, ng k ch trn my bay hoc
khch sn, truy cp vo mt th vin tin hc ho tm sch bo, t mua
tp ch mt nh xut bn, . Ti cc ngn hng, cc ca hng, ngi ta
cng cp nht t ng vic qun l tin bc hoc hng ho.
Tt c nhng giao tip nh trn c gi l cc p dng ca c s d
liu truyn thng. Trong cc c s d liu truyn thng, hu ht cc thng tin
c lu gi v truy cp l vn bn hoc s. Mt vi nm li y, nhng tin
b v k thut a n nhng p dng mi ca h c s d liu. Cc c s
d liu a phng tin by gi c th lu tr hnh nh, phim v ting ni. Cc
h thng thng tin a l c th lu tr v phn tch cc bn , cc d liu v
thi tit v cc nh v tinh. Kho d liu v cc h thng phn tch trc tuyn
c s dng trong nhiu cng ty ly ra v phn tch nhng thng tin c
li t cc c s d liu rt ln nhm a ra cc quyt nh. Cc k thut c s
d liu ng v thi gian thc c s dng trong vic kim tra cc tin trnh
cng nghip v sn xut. Cc k thut tm kim c s d liu ang c p
dng cho World Wide Web cung cp vic tm kim cc thng tin cn thit
cho ngi s dng bng cch duyt qua Internet.
hiu c cc c s k thut c s d liu chng ta phi bt u t
cc c s ca ca vic p dng c s d liu truyn thng. Trong chng ny
chng ta s nh ngha c s d liu, h qun tr c s d liu, m hnh c s
d liu v cc thut ng c bn khc.
I. C S D LIU
1. nh ngha c s d liu
C s d liu v k thut c s d liu c nh hng rt ln n vic
s dng my tnh. C th ni rng c s d liu ng vai tr quan trng trong
mi lnh v c s dng my tnh nh gio dc, thng mi, k ngh, khoa
hc th vin,. Thut ng c s d liu tr thnh mt thut ng ph dng.
Mt c s d liu l mt tp hp cc d liu c lin quan vi nhau, c
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 6
nhiu ngi s dng v c t chc theo mt m hnh.
D liu l nhng s kin c th ghi li c v c ngha.
V d, qun l vic hc tp trong mt mi trng i hc, cc d liu
l cc thng tin v sinh vin, v cc mn hc, v im thi, Chng ta t chc
cc d liu thnh cc bng v lu gi chng vo s sch hoc s dng mt
phn mm my tnh lu gi chng trn my. l mt tp hp cc d liu
c lin quan n nhau v mang nhiu ngha, l mt c s d liu.
2. Cc tnh cht ca mt c s d liu
Mt c s d liu c cc tnh cht sau:
Mt c s d liu biu th mt kha cnh no ca th gii thc: hot
ng ca mt cng ty, ca mt nh trng, mt ngn hng. Nhng thay i
ca th gii thc phi c phn nh trung thc trong c s d liu. Nhng
thng tin c a vo trong c s d liu to thnh mt khng gian c s d
liu, i khi n c gi l mt th gii nh(miniword) hoc mt khng
gian tranh lun(Universe of Discourse).
Mt c s d liu l mt tp hp d liu c kt mt cch logic v mang
mt ngha bn trong no . Mt c s d liu khng phi l mt tp hp
tu tin cc d liu.
Mt c s d liu c thit k v c ph bin vi cc d liu cho
mt mc ch ring. N c mt nhm ngi s dng c ch nh v c mt s
p dng c xc nh ph hp vi nhng li ch ca ngi s dng.
Mt c s d liu c th c c tu v c phc tp thay i. C
nhng c s d liu ch gm vi trm bn ghi (nh c s d liu phc v
qun l lng ca mt c quan nh) v c nhng c s d liu c dung lng
rt ln (nh c s d liu phc v cho tnh cc in thoi, qun l nhn s
trn mt phm vi ln). Cc d liu phi c t chc qun l sao cho nhng
ngi s dng c th tm kim, cp nht v ly ra khi cn thit. Mt c s d
liu c th c to ra v bo tr mt cch th cng v cng c th c tin
hc ho. Mt c s d liu c tin hc ho c to ra v duy tr bng mt
nhm chng trnh p dng hoc bng mt h qun tr c s d liu.
II. H QUN TR C S D LIU
1. nh ngha h qun tr C s d liu
Mt h qun tr c s d liu l mt tp hp chng trnh gip cho
ngi s dng to ra v duy tr mt c s d liu. N l mt h thng phn
mm ph dng lm d qu trnh nh ngha, xy dng v thao tc c s d
liu cho cc p dng khc nhau.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 7
nh ngha mt c s d liu bao gm vic c t cc kiu d liu, cc
cu trc v cc rng buc cho d liu s c lu gi trong c s d liu.
Xy dng mt c s d liu l qu trnh lu tr cc d liu trn cc
phng tin lu tr c h qun tr c s d liu kim sot.
Thao tc mt c s d liu bao gm cc chc nng nh truy vn c s
d liu ly ra cc d liu c th, cp nht c s d liu phn nh cc
thay i trong th gii nh v to ra cc bo co t cc d liu.
Cc h qun tr c s d liu th hin mt c s d liu tin hc ho c
th l ph dng (l mt tp cc phn mm ng gi) hoc c th l chuyn
dng (l mt tp cc phn mm c to ra vi mt mc ch ring).
Ta gi c s d liu v h qun tr c s d liu bng mt thut ng
chung l h c s d liu. Mi trng ca mt h c s d liu c m t
bng hnh v (hnh 1.1) di y.

Ngi s dng / Ngi lp trnh





















Hnh 1: Mi trng h c s d liu























Chng trnh p dng/
Truy vn
Phn mm x l
truy vn / chng trnh
Phn mm truy cp n
cc d

nh ngha c
s d liu c
lu gi (Siu d

C s d liu
c lu gi
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 8
2. Cc chc nng ca mt h qun tr c s d liu
Mt h qun tr c s d liu ngy nay c cc chc nng sau:
Lu tr cc nh ngha ca cc mi lin kt d liu (gi l siu d liu)
vo mt t in d liu. Ln lt, tt c cc chng trnh truy cp n c s
d liu lm vic thng qua h qun tr c s d liu. H qun tr c s d liu
s dng d liu trong t in d liu tm kim cc cu trc thnh phn d
liu v cc mi lin kt c yu cu. Tm li, chng ta c gii phng khi
vic lp trnh cho cc mi lin kt phc tp nh vy trong tng mi chng
trnh. Mi s thay i c thc hin trong cc tp c s d liu s c t
ng ghi li vo t in d liu, iu gii phng ta khi vic sa i tt c
cc chng trnh truy cp n tp c s d liu b sa i. Ni cch khc,
h qun tr c s d liu loi b s ph thuc d liu v cu trc ra khi h
thng
To ra cc cu trc phc tp theo yu cu lu tr d liu, iu gii
phng chng ta khi nhim v kh khn l nh ngha v lp trnh cho cc c
trng d liu vt l.
Bin i cc d liu c nhp vo ph hp vi cc cu trc d liu
im 2. Nh vy h qun tr c s d liu gip ta khng phi lm phn bit
gia dng logic v dng vt l ca d liu. Bng vic duy tr s c lp d
liu, h qun tr c s d liu chuyn cc yu cu logic thnh cc lnh nh v
mt cch vt l v ly ra cc d liu yu cu. iu c ngha l h qun tr
c s d liu to khun dng cho cc d liu c ly ra lm cho n ph
hp vi cc mong mun logic ca ngi s dng.
To ra mt h thng bo mt v p t tnh bo mt v ring t trong CSDL.
To ra cc cu trc phc tp cho php nhiu ngi s dng truy cp n d
liu.
Cung cp cc th tc sao lu v phc hi d liu m bo s an ton v
ton vn d liu
Xc tin v p t cc quy tc an ton loi b vn ton vn d liu.
iu cho php ta lm ti thiu s d tha d liu v lm ti a tnh nht
qun d liu
Cung cp vic truy cp d liu thng qua mt ngn ng truy vn. (Mt
ngn ng truy vn l mt ngn ng phi th tc cho php ngi s dng ch ra
ci g cn phi lm m khng cn phi ch ra n c lm nh th no). Cc
h qun tr c s d liu cng cung cp vic truy cp d liu cho nhng ngi
lp trnh thng qua cc ngn ng th tc.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 9
3. Cc c trng ca gii php c s d liu
Trc khi khi nim c s d liu ra i, h thng tp l mt phng
php c p dng rng ri. Mt tp c th xem l mt cp h s lu tr cc
thng tin lin quan n tng loi cng vic ring bit. V d, trong mt c
quan, b phn ti v s c mt cp h s lin quan n lng ca cc nhn
vin; b phn t chc c cp h s lin quan n vn nhn s,.Vic x
l ly ra cc thng tin nh l cc thng k v lng, v qu trnh cng
tc, lc u c thc hin th cng. Dn dn khi lng thng tin ngy
cng ln, vic x l thng tin ngy cng phc tp, ngi ta s dng my tnh
vo vic qun l. Cc cp h s c chuyn thnh cc tp d liu trn my
tnh v vic x l thng tin c thc hin bng cch lp trnh (trong mt
ngn ng lp trnh th h 3). Vic qun l theo gii php h thng tp c rt
nhiu nhc im. Th nht, l s d ttha thng tin : cng mt thng tin
(chng hn danh sch cc nhn vin) c lu tr nhiu ln (trong tp lng
v c trong tp nhn s ), nh vy s gy ra vic lng ph b nh v d
gy sai st trong khi cp nht d liu, c th sinh ra cc d liu khng ng.
Th hai, l s ph thuc gia cc chng trnh p dng v d liu. Mi khi
c s thay i cu trc tp v cc d liu trong tp, chng trnh p dng
khai thc thng tin trn tp cng phi thay i theo, iu lm cho vic
bo tr rt kh khn.
Gii php c s d liu ra i gii quyt c nhng nhc im .
C th, gii php c s d liu c nhng c trng sau:
a. Bn cht t m t ca h c s d liu
Mt c trng c bn ca gii php c s d liu l h thng c s d
liu khng ch gm bn thn c s d liu m cn c c mt nh ngha hoc
m t y v cu trc c s d liu v cc rng buc. nh ngha ny c
lu tr trong t in h thng, n cha thng tin nh l cu trc ca mi tp,
kiu v dng lu tr ca tng mc d liu. Cc thng tin c lu tr trong t
in c gi l siu d liu (meta-data), v chng m t ca cu trc c s
d liu nguyn thu (hnh 1.1). Phn mm h qun tr c s d liu v cc
ngi s dng c s d liu s dng t in d liu ly thng tin v cu
trc ca c s d liu.
b. S c lp gia cc chng trnh v d liu.
Trong h thng tp, cu trc ca cc tp c s d liu c nhng vo
trong cc chng trnh truy cp v vy bt k mt thay i no v cu trc ca
mt tp cng i hi phi thay i tt c cc chng trnh truy cp n tp .
Ngc li, cc chng trnh truy cp ca h qun tr c s d liu khng i
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 10
hi vic thay i nh th. Cu trc ca cc tp d liu c lu tr trong t
in tch ri vi cc chng trnh truy cp. Tnh cht ny gi l s c lp d
liu-chng trnh.
c. H tr cc khung nhn d liu nhiu thnh phn
Mt c s d liu c nhiu ngi s dng, mi mt ngi c th i hi
mt phi cnh hoc mt khung nhn (view) khc nhau. Mt khung nhn c th
l mt tp con ca c s d liu hoc n c th cha cc d liu o, l cc
d liu c trch ra t cc tp c s d liu khc nhau nhng khng c
lu tr mt cch r rng. Mt h qun tr c s d liu nhiu ngi s dng
phi cung cp nhiu cng c nh ngha cc khung nhn nhiu thnh phn.
d. Chia s d liu v nhiu ngi s dng
Mt h qun tr c s d liu nhiu ngi s dng phi cho php nhiu
ngi s dng truy cp ng thi n c s d liu. H qun tr c s d liu
phi c phn mm kim tra cnh tranh m bo rng cc ngi s dng
cp nht n cng mt d liu phi c thc hin theo cch c kim tra
cho kt qu ca cc cp nht l ng n.
e. V d v mt c s d liu
Chng ta hy xem mt c s d liu m nhiu bn c quen bit: c
s d liu trng. C s d liu ny nhm lu gi thng tin lin quan n
sinh vin, cc mn hc, im trong mt mi trng i hc. C s d liu
c t chc thnh 5 tp, mi tp lu tr cc bn ghi d liu cng mt kiu.
Tp sinhvin lu gi d liu v mi sinh vin; tp mnhc lu gi d
liu v mi mn hc, tp hcphn lu gi cc d liu v mi hc phn ca
mn hc, tp im lu gi cc im ca tng hc phn ca sinh vin, v tp
bittrc lu gi cc mn hc cn bit trc ca tng mn hc. Cu trc ca
c s d liu v mt vi mu d liu v d c ch ra hnh 1.2

Sinhvin Htnsinhvin Mssinhvin Lp Chuyn ngnh
Nguyn Nam 17 K45T Tinhc
L Bc 8 K45C CngnghTT

Mnhc Tnmnhc M s mn hc S vht Khoa
Tin hc C s 101 8 Cng ngh
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 11
Cu trc DL&GT 102 5 Cng ngh
Ton ri rc 103 5 Cng ngh
C s d liu 104 4 Cng ngh

hcphn M s HP Ms mnhc Hck Nm Tngiovi
n
1011 101 1 2001 Vn
1012 101 2 2002 Vn
1031 103 1 2001 Hong
1032 103 2 2002 Hong
1020 102 3 2002 Ln
1040 104 4 2002 Huy

im Mssinhvin M sHP im
17 1031 8
17 102 6
8 1031 9
8 1011 10
8 1020 7
8 1040 9

Bittrc Msmn
hc
Msmnbittrc
104 102
104 103
102 101
Hnh 1.2: C s d liu v d trng
nh ngha c s d liu ny, chng ta phi ch ra ca mi bn ghi
ca mi tp bng cch c t cc kiu khc nhau ca cc phn t d liu s
c lu tr trong cc bn ghi. Theo hnh 2, mi bn ghi sinhvin bao gm cc
d liu biu din H tn sinh vin, m s sinh vin, lp, chuyn ngnh.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 12
Mi bn ghi mn hc bao gm cc d liu biu din tn mn hc, m s
mn hc, s n v hc trnh, khoa, . Chng ta phi ch ra mt kiu d liu
cho mi phn t d liu bn trong mt bn ghi. V d: ta c th c t h tn
sinh vin l mt dy k t c di 30, m s sinh vin l mt s nguyn,
xy dng c s d liu trng, chng ta lu gi cc d liu biu
din mi sinh vin, mi mn hc, hc phn, im, bit trc vo cc tp thch
hp. rng cc bn ghi trong cc tp khc nhau c th c mi quan h vi
nhau. V d, bn ghi i vi Nguyn Namtrong tp sinhvin c lin quan n
hai bn ghi trong tp im ch ra im ca Nguyn Nam trong hai hc phn.
Tng t nh vy, mt bn ghi bittrc c lin quan n hai bn ghi
mnhc. Thng thng mt c s d liu cha nhiu kiu ca cc bn ghi
v cha nhiu mi lin kt gia cc tp.
Thao tc c s d liu bao gm vic truy vn v cp nht c s d
liu.Cc truy vn c dng : Lit k cc mn hc v im ca sinh vin
Nguyn Nam, a ra danh sch cc sinh vin thi trt mn c s d liu,
v..v Cp nht c s d liu bao gm thm vo mt mn hc mi, sa li
mt im ca mt hc phn, Cc truy vn v cc cp nht phi c c t
chnh xc trong ngn ng h c s d liu mt cch chnh xc trc khi
chng c x l.
III. M HNH C S D LIU
Cc h qun tr c s d liu to ra kh nng gii quyt cc s dng ti
nguyn d liu phc tp hn rt nhiu nu c s d liu c thit k s
dng nng lc sn c . Cc loi cu trc d liu c to ra trong c s d
liu v mi lin kt gia chng ng vai tr rt ln trong vic xc nh tnh
hiu qu ca h qun tr c s d liu. V vy, thit k c s d liu tr thnh
hot ng chnh trong mi trng c s d liu.
Vic thit k c s d liu c thc hin n gin hn nhiu khi bn
dng cc m hnh. Cc m hnh l s tru tng n gin ca cc s kin
trong th gii thc. Cc tru tng nh vy s cho php chng ta kho st cc
c im ca cc thc th v cc mi lin kt c to ra gia cc thc th
. Nu cc m hnh khng ng n logic, cc thit k c s d liu rt ra t
s khng cho php rt ra c cc thng tin ng n. Cc m hnh tt s
a ra cc c s d liu tt v trn c s s c cc ng dng tt. Ngc
li, m hnh khng tt s a n thit k c d liu ti v dn n nhng p
dng khng ng.

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 13
1. nh ngha m hnh c s d liu
Mt m hnh c s d liu l mt tp hp cc khi nim dng biu
din cc cu trc ca c s d liu. Cu trc ca mt c s d liu l cc kiu
d liu, cc mi lin kt v cc rng buc phi tun theo trn cc d liu. a
s cc m hnh cn c thm mt tp hp cc php ton c bn c t cc
php rt ra v cp nht trn c s d liu.
2. Cc loi m hnh c s d liu
C rt nhiu cc m hnh d liu c ngh, chng ta c th phn
loi chng theo cc kiu khi nim m chng dng m t cu trc c s d
liu.
Cc m hnh d liu bc cao hoc m hnh d liu quan nim cung cp
cc khi nim gn lin vi cch cm nhn d liu ca nhiu ngi s dng.
Cc m hnh ny tp trung vo bn cht logic ca biu din d liu, n quan
tm n ci c biu din trong c s d liu ch khng phi cch m n
c biu din. Cc m hnh d liu bc thp hoc cc m hnh d liu vt
l cung cp cc khi nim m t chi tit v vic cc d liu c lu tr trong
my tnh nh th no. Cc khi nim do m hnh d liu vt l cung cp ni
chung c ngha i vi cc chuyn gia my tnh ch khng c ngha my
i vi cc ngi s dng thng thng. gia hai loi m hnh ny l mt
lp cc m hnh d liu th hin, chng cung cp nhng khi nim m
nhng ngi s dng c th hiu c v khng xa vi cch t chc d liu
bn trong my tnh. Cc m hnh d liu th hin che du mt s chi tit v
vic lu tr d liu nhng c th c ci t trc tip trn h thng my
tnh.
Cc m hnh d liu quan nim s dng cc khi nim nh cc thc th,
cc thuc tnh, cc mi lin kt. Mt thc th biu din mt i tng hoc
mt khi nim ca th gii thc, chng hn nh mt nhn vin hoc mt d
n c m t trong mt c s d liu. Mt thuc tnh biu din mt c
trng no ca mt thc th, chng hn nh tn hay lng ca nhn vin.
Mt mi lin kt gia hai hay nhiu thc th biu din mt mi quan h qua
li gia cc thc th, v d mi lin kt lm vic trn l mi quan h gia mt
nhn vin v mt d n (Nhn vin lm vic trn d n). Trong chng 2,
chng ta s nghin cu m hnh lin kt -thc th (Entity-Relationship
model), gi tt l m hnh ER, v mt s m rng ca m hnh ny. M hnh
d liu hng i tng cng l mt m hnh bc cao, cung cp nhng khi
nim nh lp, phng thc, thng ip,...
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 14
Cc m hnh d liu th hin l cc m hnh c s dng thng xuyn
nht trong cc h c s d liu thng mi, chng gm cc m hnh d liu
quan h, m hnh d liu mng v m hnh d liu phn cp. Cc m hnh
mng v phn cp c s dng rng ri trong qu kh nhng t khi m hnh
d liu quan h ra i (vo u nhng nm 70), do tnh u vit ca n, m
hnh quan h n dn thay th cc m hnh mng v phn cp. Trong chng
3, chng ta s nghin cu m hnh c s d liu quan h, cc ngn ng v cc
php ton ca chng.
Cc m hnh d liu vt l m t cch lu tr d liu trong my tnh
bng cch gii thiu thng tin nh khun dng bn ghi, sp xp bn ghi,
ng truy cp,
Trong mt m hnh d liu cn phi phn bit r gia m t ca c s
d liu v bn thn c s d liu. M t ca mt c s d liu c gi l
lc c s d liu, n c xc nh r trong qu trnh thit k c s d
liu v khng b thay i thng xuyn. a s cc m hnh d liu c cc quy
c hin th cc lc nh cc biu . Mt lc c hin th c gi
l mt biu ca lc . Mt biu lc ch th hin mt vi kha
cnh ca lc nh l tn ca cc kiu bn ghi v cc mc d liu, v mt
s kiu rng buc. Cc kha cnh khc khng c th hin trong biu
lc . Hnh v sau y trnh by biu lc ca c s d liu v d
hnh 1.2
sinhvin
H tn Mssinhvin Lp Chuyn ngnh
Mnhc
Msmnhc Tn mn hc Svht Khoa
Bittrc
Msmnhc Msmnbittrc
Hcphn
Ms HP Msmnhc Hck Nm Tngiovin
im
M s sinh vin M s HP im

Hnh 1.3 S lc cho c s d liu hnh 1.2

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 15
Cc d liu hin ti trong mt c s d liu c th thay i mt cch
thng xuyn. Cc d liu trong mt c s d liu mt thi im c th
c gi l mt trng thi c s d liu hoc nh ca c s d liu
(snapshot). N cn c gi l tp hp hin ti cc th hin trong c s d
liu. Nhiu trng thi quan h c th c xy dng lm tng ng vi
mt lc c s d liu c th. Mi khi chng ta chn vo hoc loi b mt
bn ghi, sa i mt gi tr ca mt mc d liu trong mt bn ghi, chng ta
lm thay i trng thi ca c s d liu sang trng thi khc.
Vic phn bt gia lc c s d liu v trng thi c s d liu l
rt quan trng. Khi chng ta nh ngha mt c s d liu mi, chng ta ch
c t lc c s d liu cho h qun tr c s d liu. Ti thi im ny,
trng thi c s d liu l mt trng thi rng, khng c d liu. Chng ta
nhn c trng thi ban u ca c s d liu khi c s d liu ln u tin
c cung cp hoc c nhp d liu. T tr i, mi khi mt php ton
cp nht c thc hin i vi c s d liu, chng ta nhn c mt trng
thi c s d liu khc. ti mi thi im, c s d liu c mt trng thi hin
ti. H qun tr c s d liu c trch nhim m bo rng ti mi trng thi
ca c s d liu l mt trng thi vng chc, iu c ngha l mt trng
thi tho mn cu trc v cc rng buc c dc t trong lc . V vy,
vic c t mt lc ng n cho mt h qun tr c s d liu l mt
vic lm cc k quan trng, v lc phi c thit k cc k cn thn. H
qun tr c s d liu lu tr cc m t ca cc cu trc lc v cc rng
buc cn gi l siu d liu vo trong catalog ca h qun tr sao cho phn
mm h qun tr c s d liu c th tham kho n lc khi n cn. Lc
i khi cn c gi l mc tiu (intension) v mt trng thi c s d liu
c gi l m rng (extension) ca lc .
3. Con ngi trong h c s d liu
Vi cc c s d liu nh, ni chung ch c mt ngi nh ngha, xy
dng, v thao tc c s d liu. Tuy nhin, vi mt c s d liu ln, rt
nhiu ngi tham gia vo vic thit k, s dng v bo tr c s d liu. Phn
ny chng ta gii thiu nhng ngi lin quan n mt h c s d liu v vai
tr ca h.
Nhng ngi lin quan n c s d liu c chia lm hai nhm chnh.
Nhm th nht gm nhng ngi m cng vic ca h lin quan hng ngy
n c s d liu; l nhng ngi qun tr c s d liu, thit k c s d
liu, s dng c s d liu, phn tch h thng v lp trnh ng dng. Nhm
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 16
th hai gm nhng ngi lm vic duy tr mi trng h c s d liu
nhng khng quan tm nhiu n bn thn c s d liu; l nhng ngi
thit k v ci t h qun tr c s d liu, pht trin cng c, thao tc vin
v bo tr.
a. Ngi qun tr h c s d liu (Database Administrator-DBA)
Trong mt t chc c nhiu ngi cng s dng cc ti nguyn cn phi
c mt ngi gim st v qun tr cc ti nguyn . Trong mi trng h c
s d liu, cc ti nguyn l c s d liu, h qun tr c s d liu v cc
phn mm lin quan. Ngi qun tr h c s d liu l ngi chu trch
nhim qun l cc ti nguyn . Ngi ny chu trch nhim v vic cho
php truy cp c s d liu, t chc v hng dn vic s dng c s d liu,
cp cc phn mm v phn cng theo yu cu.
b. Ngi thit k c s d liu (Database Designer)
Ngi ny chu trch nhim xc nh cc d liu s c lu gi trong
c s, chn cc cu trc thch hp biu din v lu gi cc d liu .
Nhng nhim v ny c thc hin trc khi c s d liu c ci t v
ph bin. Ngi thit k c trch nhim giao thip vi tt c nhng ngi s
dng tng lai hiu c cc i hi ca h v a ra mt thit k tho
mn cc yu cu . Anh ta cng c nhim v giao tip vi cc nhm ngi
s dng v c kh nng h tr cc yu cu ca cc nhm.
c. Nhng ngi s dng (End User)
Nhng ngi s dng l nhng ngi m cng vic ca h i hi truy
cp n c s d liu truy vn, cp nht v sinh ra cc thng tin. C nhiu
loi ngi s dng:
Ngi s dng khng thng xuyn: Nhng ngi ny khng thng
xuyn truy cp n c s d liu, nhng mi mt ln truy cp h c th cn
nhiu thng tin. H s dng mt ngn ng truy vn c s d liu ch ra cc
yu cu ca mnh. y l nhng ngi qun l bc trung bnh hoc bc cao.
Ngi s dng ngy th: Nhng ngi ny chim phn ln cc ngi
s dng. Chc nng cng vic ca h gn lin vi vic truy vn v cp nht
thng xuyn c s d liu bng cch s dng cc cu hi v cc cp nht
c lp trnh v kim tra cn thn (gi l cc giao dch nh sn).
Ngi s dng tinh t: l cc k s, cc nh khoa hc, cc nh phn
tch thng mi,.. Nhng ngi ny hiu bit cc tin ch ca h qun tr c
s d liu v bit s dng ci t cc chng trnh ng dng nhm tho
mn cc yu cu phc tp ca h.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 17
Ngi s dng c lp: L nhng ngi duy tr cc c s d liu c
nhn bng cch s dng cc chng trnh ng gi lp sn cung cp cc bng
chn d s dng hoc cc giao din ho
d. Nhng ngi phn tch h thng v nhng ngi lp trnh ng
dng
Nhng ngi phn tch h thng xc nh cc yu cu ca nhng ngi
s dng, ch yu l nhng ngi s dng ngy th, dc t cc chng
trnh ph hp vi yu cu ca h.
Nhng ngi vit chng trnh ng dng th hin cc c t ca nhng
ngi phn tch thnh chng trnh; sau kim th, g ri, lm ti liu, v
bo tr cc giao dch nh sn.
e. Nhng ngi thit k v ci t h qun tr c s d liu
l nhng ngi thit k v ci t cc m ul v giao din ca h
qun tr c s d liu thnh cc phn mm ng gi. Mt h qun trj c s d
liu l mt h thng phn mm phc tp bao gm nhiu thnh phn (module).
l cc module ci t t in d liu, ngn ng truy vn, b x l giao
din, truy cp d liu, kim tra cnh tranh, phc hi v an ton. H qun tr c
s d liu phi giao din vi cc h thng phn mm khc nh h iu hnh
v cc chng trnh dch cho nhiu ngn ng khc nhau.
f. Nhng ngi pht trin cng c
L nhng ngi thit k v ci t cc cng c (tool); l cc phn
mm ng gi lm d vic thit k v s dng c s d liu.
g. Cc thao tc vin v nhng ngi bo tr
L nhng ngi qun tr h thng; h chu trch nhim v vic chy v
bo tr mi trng phn cng v phn mm ca h c s d liu.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 18
CHNG 2 : M HNH THC TH-LIN KT

Trong chng ny chng ta s lm qun vi m hnh thc th-lin kt
(Entity-Relationship model), gi tt l m hnh ER. l mt m hnh d
liu quan nim bc cao ph bin, tp trung vo cc cu trc c s d liu v
cc rng buc.
M hnh ny thng c p dng thit k khi nim cc p dng c
s d liu v nhiu cng c thit k c s d liu s dng cc khi nim ca
n.
I. S DNG M HNH KHI NIM BC CAO CHO VIC THIT
K C S D LIU
Qu trnh thit k mt c s d liu bng hnh v 2.1. Bc u tin l
tp hp cc yu cu v phn tch. Trong bc ny, ngi thit k c s d
liu phng vn nhng ngi s dng c s d liu hiu v lm ti liu v
cc i hi v d liu ca h. Kt qu ca bc ny l mt tp hp ghi chp
sc tch v cc i hi ca nhng ngi s dng. Nhng i hi ny s c
c t di mt dng cng y v cng chi tit cng tt. Song song vi
vic c t cc yu cu d liu, cn phi c t cc yu cu v chc nng ca
ng dng; l cc thao tc do ngi dng nh ngha s c p dng i
vi c s d liu.
Mi khi tt c cc yu cu c thu thp v c phn tch, bc
tip theo l to ra lc quan nim cho c s d liu bng cch s dng m
hnh d liu quan nim mc cao. Bc ny c gi l thit k khi nim.
Lc khi nim l mt m t sc tch v cc yu cu d liu ca cc ngi
s dng, n bao gm cc m t chi tit ca cc kiu thc th, cc kiu lin kt
v cc rng buc ; chng c biu din bng cc khi nim do cc m hnh
d liu bc cao cung cp. V nhng khi nim ny khng cha cc chi tit ci
t (th hin), chng thng d hiu v c th s dng giao lu vi cc
ngi s dng. Lc quan nim mc cao cng c th c s dng nh
mt dn chng m bo rng tt c cc i hi ca ngi s dng u tho
mn v cc i hi ny khng cha cc mu thun. Gii php ny cho php
nhng ngi thit k c s d liu tp trung vo vic c t cc tnh cht ca
d liu m khng cn quan tm n cc chi tit lu tr. Mt thit k c s d
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 19
liu quan nim tt lm d cho cng vic ca nhng ngi thit k c s d
liu.
Trong qu trnh (hoc sau khi) thit k lc quan nim, ta c th s
dng cc php ton m hnh d liu c bn c t cc thao tc ca ngi
s dng c xc nh trong khi phn tch chc nng. iu cng gip
khng nh rng lc quan nim tho mn mi yu cu chc nng c
xc nh. Nu c mt s yu cu chc nng khng th ch ra trong lc
ban u th bc ny c th c s sa i lc khi nim cho ph hp.
Bc tip theo trong thit k c s d liu l vic th hin (ci t) c
s d liu bng cch s dng mt h qun tr c s d liu c sn. Hu ht
cc h qun tr c s d liu s dng mt m hnh d liu th hin (chng hn
nh m hnh c s d liu quan h hoc i tng) v vy lc quan nim
c chuyn i t m hnh d liu bc cao thnh m hnh d liu th hin.
Bc ny gi l thit k l gic hoc l nh x m hnh d liu. Kt qu ca
bc ny l mt lc c s d liu di dng mt m hnh d liu th hin
ca h qun tr c s d liu.
Bc cui cng trong thit k c s d liu l thit k vt l. Trong
bc ny ta phi ch ra cc cu trc lu tr bn trong, cc ng dn truy cp,
t chc tp cho cc tp c s d liu. Song song vi cc hot ng , cc
chng trnh p dng cng c thit k v ci t nh l cc giao dch c s
d liu tng ng vi cc c t giao dch mc cao.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 20
Th gi thc
TP HOP VA PHN
TCH CC YU CU
THT K QUAN NM
THT K CHUONG
TRNH NG DUNG
CA AT GAO TC
THT K LOGC
THT K VT LY
Cc yu cu c s d liu Cc yu cu c s d liu
PHN TCH CHC NANG
Lc quan nim
Lc logic
Lc bn trong
c t giao tc mc cao
(c lp vi h QTCSDL)
Cc chng trnh ng dng


Hnh 2.1 S m t cc bc chnh ca vic thit k c s d liu

II. CC THNH PHN C BN CA M HNH THC TH-LIN
KT
1. Kiu thc th, tp thc th, cc thuc tnh v cc kho
a. Cc thc th v cc thuc tnh
i tng c bn c trnh by trong m hnh ER l thc th. Thc th
l mt vttrong th gii thc c s tn ti c lp. Mt thc th c th l
mt vt c th, (chng hn nh mt ngi, mt ci t,..)hoc c th l mt
vt tru tng(chng hn mt cng ty, mt cng vic, mt mn hc). Mi
thc th c cc thuc tnh, l cc tnh cht c th m t n. V d, mt thc
th nhn vin c mt t bng htn, tui, a ch, lng v cng vic ca
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 21
nhn vin . Mt thc th c th s c mt gi tr cho mi thuc tnh ca n.
Cc gi tr thuc tnh m t mi thc th s tr thnh mt phn chnh ca cc
d liu c lu tr trong c s d liu.
Hnh v 2.2 ch ra mt s thc th v cc thuc tnh ca chng. Thc th
nhn vin e
1
c 4 thuc tnh : H tn, a ch, Tui, v S in thoi. Gi tr
ca cc thuc tnh tng ng l L Vn, H ni, 32, (04)855641.
Thc th cng ty c
1
c ba thuc tnh Tn, a im, Gim c vi cc gi tr
tng ng l Cng ty Dt may, Thanh tr, Hni, Phm M Hoa.

NHN VIN
(H tn, a ch, Tui, T)


CNG TY
(Tn, a im, Gim c)
e1
(L Vn, H Ni, 32, (04)855641)
c1
(CT dt may, Thanh Tr HN, Phm
M Hoa)
e2
(Trn B, Hi Phng, 45, 8739455)
c2
(CT Hoa qu, Hi phng, L H)
e3
(Hong Vn, H Ni, 8431845)
.
.
.
c3
CT My tnh, H Ni, Phan Anh
.
.
.
Hnh 2.2 Kiu thc th v tp thc th

b. Cc loi thuc tnh
Trong m hnh ER c mt nhiu kiu thuc tnh : thuc tnh n v
thuc tnh phc hp, thuc tnh n tr v thuc tnh a tr, thuc tnh c
lu tr v thuc tnh suy din c. Chng ta s nh ngha cc kiu thuc
tnh v minh ho chng thng qua cc v d.
Thuc tnh n v thuc tnh phc hp : Cc thuc tnh phc hp l cc
thuc tnh c th c phn chia ra thnh cc phn nh hn, biu din cc
thuc tnh c bn hn vi cc ngha c lp. V d, thuc tnh H tn ca
thc th Nhn vin c th c phn chia thnh H m, Tn. Cc thuc tnh
khng th phn chia c c gi l thuc tnh n hay thuc tnh nguyn
t. Gi tr ca mt thucc tnh phc hp l s kt hp cc gi tr ca cc thuc
tnh thnh phn to nn n.
Cc thuc tnh phc hp c li cho hon cnh m hnh m trong mt
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 22
ngi s dng i khi tham kho n mt thuc tnh phc hp nh l mt
n v nhng vo lc khc th tham kho n cc thnh phn ca n. Nu mt
thuc tnh phc hp c tham kho ch nh l mt th khng cn thit phi
chia n thnh cc thuc tnh thnh phn.
Thuc tnh n tr v thuc tnh a tr: a s cc thuc tnh c mt gi
tr duy nht cho mt thc th c th, cc thuc tnh nh vy gi l cc thuc
tnh n tr. V d, Tui l mt thuc tnh n tr ca mt ngi. Trong mt
s trng hp, mt thuc tnh c th c mt tp hp cc gi tr cho cng mt
thc th. V d, thuc tnh Bng cp ca mt ngi. Mt ngi c th khng
c bng cp no, ngi khc c th c mt bng, ngi khc na c th c
nhiu bng,. Nh vy cc ngi khc nhau c th c mt s cc gi tr khc
nhau cho thuc tnh Bng cp. Nhng thuc tnh nh vy c gi l thuc
tnh a tr.
Thuc tnh c lu tr v thuc tnh suy din c: Trong mt s
trng hp, hai hay nhiu gi tr thuc tnh c lin quan n nhau, v d thuc
tnh Tui v thuc tnh Ngy sinh ca mt ngi. Vi mt ngi c th ta c
th tnh Tui ca anh ta bng cch ly nm hin ti tr i nm ca Ngy sinh.
Thuc tnh Tui nh vy gi l thuc tnh suy din c v n c suy din
t thuc tnh Ngy sinh. Thuc tnh Ngy sinh c gi l thuc tnh lu tr.
Cc gi tr khng xc nh (null values): Trong mt s trng hp, mt
thc th c th c th khng c cc gi tr p dng c cho mt thuc tnh.
V d, Thuc tnh S in thoi ca thc th Nhn vin s khng c gi tr i
vi cc nhn vin khng c s in thoi. Trong trng hp nh vy, ta phi
to ra mt gi tr c bit gi l gi tr khng xc nh (null value). Gi tr
khng xc nh c to ra khi mt thuc tnh khng c cc gi tr p dng
c hoc khi khng bit.
Cc thuc tnh phc tp: L nhng thuc tnh phc hp v a tr.
c. Kiu thc th, tp thc th, khov tp gi tr
Cc kiu thc th v cc tp thc th: Mt c s d liu thng cha
nhng nhm thc th tng t nh nhau. V d, mt cng ty thu hng trm
nhn vin mun l gi nhng thng tin tng t lin quan n mi nhn
vin. Cc thc th nhn vin ny chia s cc thuc tnh ging nhau nhng mi
thc th c cc gi tr ring cho cc thuc tnh. Mt kiu thc th l mt tp
hp cc thc th c cc thuc tnh nh nhau. Mt kiu thc th trong c s d
liu c m t tn ca n v cc thuc tnh. Hnh v 2.2 ch ra hai kiu thc
th c tn l CNGTY v NHNVIN v cc thuc tnh ca chng. Mt tp
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 23
hp tt c cc thc th ca mt kiu thc th c th trong c s d liu ti
mt thi im c gi l mt tp thc th, n thng c tham chiu n
bng cch s dng tn ca kiu thc th. V d, NHNVIN dng ch va
l mt kiu thc th, va l tp hp hin ti ca tt c cc thc th nhn vin
trong c s d liu.
Mt kiu thc th c biu din trong s ER nh l mt hp hnh
ch nht c cha tn kiu thc th. Cc tn thuc tnh c t trong cc hnh
van v c ni vi kiu thc th bng cc ng thng. Cc thuc tnh
phc hp c ni vi cc thuc tnh thnh phn ca n bng cc ng
thng. Cc thuc tnh a tr c hin th trong cc hnh van p.

NHN VN
M sNV
H tn
H m Tn
Ngy sinh
Bng cp

Hnh 2.3 Biu din kiu thc th v cc thuc tnh

Mt kiu thc th mt t mt lc hoc mt mc ch cho mt tp
cc thc th chia s cng mt cu trc. Tp hp cc thc th ca mt kiu
thc th c th c nhm vo mt tp thc th v c gi l mt th hin
ca mt kiu thc th.
Cc thuc tnh kho ca mt kiu thc th: Mt rng buc quan trng
trn cc thc th ca mt kiu thc th l Kho hoc l rng buc v tnh duy
nht trn cc thuc tnh. Mi mt kiu thc th thng c mt thuc tnh m
cc gi tr ca n l khc nhau i vi mi thc th ring bit trong mt tp
hp. Thuc tnh nh vy gi l thuc tnh kho v cc gi tr ca n c th
dng xc nh tng thc th mt cch duy nht. V d, thuc tnh Tn ca
kiu thc th CNGTY l kho ca kiu thc th v mi thc th cng ty
c mt tn duy nht. i khi, nhiu thuc tnh kt hp vi nhau to thnh mt
kho, ngha l t hp cc gi tr ca cc thuc tnh phi khc nhau i vi mi
thc th. Trong trng hp nh vy ta c th nh ngha mt thuc tnh kho
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 24
phc hp. Ch rng kho phc hp phi ti thiu, ngha l tt c cc thuc
tnh thnh phn phi c mt trong thuc tnh phc hp tho mn tnh cht
duy nht. Trong biu din ho ca m hnh ER, thuc tnh kho c tn
c gch di bn trong hnh van.
Khi ch ra rng mt thuc tnh l kho ca mt kiu thc th ngha l
tnh cht duy nht nu trn phi c tho mn i vi mi m rng ca
kiu thc th. Do , l rng buc cm hai thc th bt k c gi tr cho
thuc tnh kho nh nhau ti cng mt thi im. khng phi l tnh cht
ca mt th hin c th, m ng hn, n l mt rng buc trn tt c cc th
hin ca kiu thc th. Rng buc kho ny cng nh cc rng buc khc s
c gii thiu sau c ly ra t cc rng buc ca th gii nhm c s
d liu biu din.
Mt kiu thc th c th c nhiu hn mt thuc tnh kho. V d, kiu
thc th NHNVIN c th c hai thuc tnh Schngminhth v
Sthbohim, c hai u l thuc tnh kho. Mt kiu thc th cng c th
khng c kho; trong trng hp , n c gi l kiu thc th yu
Cc tp hp gi tr (min) ca cc thuc tnh: Mi thuc tnh n ca
mt kiu thc th c kt hp vi mt tp hp gi tr (hay cn gi l min
gi tr). l tp hp cc gi tr c th gn cho thuc tnh ny i vi mi
thc th ring bit. Cc tp gi tr khng c hin th trong s ER.
Mt cch ton hc, mt thuc tnh A ca kiu thc th E c tp gi
tr l V c th c nh ngha nh l mt hm t E vo tp hp lc lng
P(V) ca V:
A: E P(V)
Chng ta tham chiu n gi tr ca thuc tnh A i vi thc th e nh
l A(e). nh ngha trn ng cho c cc thuc tnh n tr, thuc tnh a tr,
v c thuc tnh khng xc nh.
2. Cc lin kt, cc kiu lin kt, cc vai tr v cc rng buc cu trc
a. Cc kiu lin kt, tp lin kt v cc th hin
Mt kiu lin kt R gia n kiu thc th E
1
, E
2
,., En xc nh mt tp
hp lin kt gia cc thc th ca cc kiu . Cng nh cc kiu thc th v
cc tp thc th, mt kiu lin kt v tp lin kt tng ng vi n cng c
tn chung l R. Mt cch ton hc, tp lin kt R l mt tp hp cc th hin
lin kt ri
,
trong mi ri lin kt n thc th ring bit (e
1
, e
2
, , en), v mi
thc th ej trong ri l mt thnh phn ca kiu thc th Ej, 1<=j<=n. Nh vy,
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 25
mt kiu lin kt l mt quan h ton hc trn E
1
,E
2
,,En, hoc c th nh
ngha nh l mt tp ca tch cc E
1
x E
2
x .x En. Mi kiu thc th E
1
,
E
2
,., En oc gi l tham gia vo kiu lin kt R, v tng t, mi thc th
ring bit e
1
, e
2
, ., en c gi l tham gia vo th hin lin kt ri = (e
1
, e
2
,
.., en).
Mt cch khng hnh thc, mi th hin lin kt ri trong R l mt s kt
hp ca cc thc th, mi thc th thuc v mt kiu thc th tham gia vo
lin kt. Mi th hin lin kt ri nh th biu din mt s kin rng cc thc
th tham gia trong ri c mt quan h vi nhau theo mt cch no trong
th gii thc. V d, trong thc t, cc nhn vin lm vic cho cc n v; nh
vy, c mt kiu lin kt gia kiu thc th NHNVIN v kiu thc th
NV lin kt cc nhn vin vi cc n v m h lm vic cho.
Trong s ER, cc kiu lin kt c biu din bng mt hnh thoi
c ni trc tip vi cc hnh ch nht biu din cc kiu thc th tham gia
vo lin kt. Hnh v 2. 4 minh ho cc v d v kiu lin kt, th hin lin
kt.
Lm vic cho NHN VN ON V
e1
e2
e3
e4
e5
.
.
.
c1
e2
.
.
.
Lm vic cho NHN VN ON V


Hnh 2.4 Kiu lin kt v th hin lin kt
b. Cp lin kt, tn vai tr v lin kt quy
Cp ca mt lin kt: Cp ca mt kiu lin kt l s cc kiu thc th
tham gia. Mt kiu lin kt c th c cp 1, cp 2, cp 3, V d, kiu lin
kt <lm vic cho> gia kiu thc th NHNVIN v kiu thc th NV
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 26
l mt kiu lin kt cp 2. Kiu lin kt <bit trc> gia kiu thc th
Mnhc vi chnh n l mt kiu lin kt cp 1. v.v
Cc lin kt nh cc thuc tnh: i khi chng ta c th coi mt kiu
lin kt nh mt thuc tnh ca mt kiu thc th. V d, nu kiu thc th
NHNVIN c thuc tnh NV ch ra tn n v m nhn vin lm
vic cho, th thuc tnh NV biu th mt lin kt. Cc thuc tnh kiu ny
c th n tr hoc a tr tu theo bn cht ca mi lin kt.
Cc tn vai tr v cc lin kt quy: Mi mt kiu thc th tham gia
vo mt kiu lin kt c mt vai tr c th trong lin kt. Tn vai tr ch r
vai tr m thc th ca kiu thc th tham gia c trong mi th hin lin kt,
v gip vic gii thch ngha lin kt l g. V d: trong kiu lin kt
<lm vic cho>, kiu thc th NHNVIN ng vai tr ca nhn vin hoc
cng nhn, cn kiu thc th NV ng vai tr ca n v hoc ngi thu
nhn vin.
Cc tn vai tr l hon ton khng cn thit trong cc kiu lin kt m
trong cc kiu thc th tham gia u khc nhau, bi v mi tn kiu thc
th c th c s dng nh l mt tn vai tr. Tuy nhin, trong mt s
trng hp, mt kiu thc th c th tham gia vo kiu lin kt vi cc vai tr
khc nhau. Trong nhng trng hp nh vy tn vai tr tr nn quan trng
phn bit ngha ca mi s tham gia. Cc kiu lin kt nh vy gi l lin
kt quy. Hnh v 2.5 ch ra mt v d v lin kt quy: Trong cc nhn
vin lm vic cho mt n v, c nhn vin c giao nhim v theo di cc
nhn vin khc (chng hn lm t trng, qun c, vv). Nh vy s c
mt kiu lin kt <theo di> lin kt mt nhn vin vi mt ngi theo di
(cng l mt nhn vin). Kiu thc th NHNVIN tham gia hai ln vo kiu
lin kt < theo di>, mt ln vi vai tr ngi b theo di v mt ln vi vai
tr ngi theo di.
c. Cc rng buc trn cc kiu lin kt
Cc kiu lin kt thng c mt s rng buc hn ch s cc t hp
c th ca cc thc th c th tham gia trong tp hp lin kt tng ng. Cc
rng buc ny c xc nh t tnh trng ca th giid thc m cc lin kt
biu din. V d, nu cng ty c quy tc l mi nhn vin ch phi lm vic
cho mt n v th ta phi m t rng buc ny trong lc . C hai loi rng
buc lin kt chnh: t s lc lng v s tham gia.
Cc t s lc lng cho cc mi lin kt cp 2: T s lc lng cho mt
lin kt cp 2 ch ra s cc th hin lin kt m mt thc th c th tham gia
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 27
vo. V d, trong kiu lin kt <lm vic cho> gia ONVI v NHNVIN,
t s lc lng l 1:N, iu c ngha l mi n v c th lin kt vi
nhiu nhn vin nhng mt nhn vin ch c th lin kt vi mt n v. Cc
t s lc lng c th c l 1:1, 1:N, N:1 v M:N.
Mt v d v lin kt 1:1 l: mt nhn vin c th <qun l> mt n v
v mt n v c mt nhn vin <qun l>. Kiu lin kt NHNVIN <lm
vic trn> Dn c t s lclng l N:M v n phn nh quy tc ca th gii
thc l mt nhn vin c th lm vic trn nhiu d n v mt d n c nhiu
nhn vin lm vic.
Cc t s lc lng cho cc lin kt cp 2 c hin th trn cc lc
ER bng cch ghi 1, N, M trn cc hnh thoi (hnh v 2.5).
Qun l NHN VN ON V
1 1
Lm vic cho NHN VN ON V
N 1
Lm vic trn NHN VN DU N
M N

Hnh 2.5 T s lc lng ca cc kiu lin kt

Cc rng buc tham gia v s ph thuc tn ti: Rng buc tham gia ch
ra rng c phi s tn ti ca mt thc th ph thuc vo lin quan n mt
thc th khc thng qua mt kiu lin kt hay khng. C hai kiu rng buc
tham gia: rng buc tham gia ton b v rng buc tham gia b phn. V d,
nu chnh sch ca mt cng ty n nh rng mi nhn vin phi lm vic cho
mt n v, th mt thc th NHNVIN ch c th tn ti khi tham gia vo
mt th hin ca lin kt < lm vic cho>. Nh vy, s tham gia ca kiu thc
th NHNVIN vo lin kt <lm vic cho> c gi l tham gia ton b,
ngha l mi thc th trong tp hp ton bcc thc th NHNVIN phi
c lin kt vi mt thc th NV thng qua kiu lin kt < lm vic cho>.
S tham gia ton b cn c gi l s ph thuc tn ti. Xt mt v d khc:
Mt nhn vin c th qun l (hoc khng) mt n v. Nh vy, vic tham
gia ca kiu thc th Nhn vin vo kiu lin kt <qun l> l b phn, ngha
l ch c mt s hoc mt phn ca tp hp cc thc th NHNVIN l c
lin kt vi mt n v thng qua kiu lin kt < qun l>, ch khng phi tt
c. Chng ta gi t s lc lng v cc rng buc tham gia bng mt ci tn
chung l cc rng buc cu trc.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 28
Trong lc ER, s tham gia ton b c hin th nh mt ng
thng i ni cc kiu thc th tham gia vo kiu lin kt. S tham gia b
phn c biu din bng mt ng thng n.
Thuc tnh ca cc kiu lin kt
Cc kiu lin kt cng c th c cc thuc tnh, ging nh cc thuc tnh
ca cc kiu thc th. V d, ghi li s gi trong tun mt nhn vin lm
vic trn mt d n, chng ta c th a vo thuc tnh Sgi cho kiu lin
kt <lm vic trn> hoc ghi li vic qun l n v ca mt nhn vin
chng ta c th a vo thuc tnh Ngy bt u cho kiu lin kt <qunl>.
Cc kiu thc th yu
Cc kiu thc th khng c cc thuc tnh kho cho chnh mnh c
gi l cc thc th yu. Ngc li, cc kiu thc th thng thng (ngha l c
thuc tnh kho) c gi l thc th mnh. Cc thc th ca mt kiu thc
th yu c xc nh bng cch lin kt vi cc thc th c th ca mt kiu
thc th khc t hp vi mt s gi tr thuc tnh ca n. Ta gi kiu thc th
khc l kiu thc th xc nh hoc kiu thc th ch v ta s gi kiu lin
kt lm lin kt mt kiu thc th yu vi ch ca n l lin kt xc nh ca
kiu thc th yu. Mt kiu thc th yu lun lun c mt rng buc tham gia
hon ton (tn ti ph thuc) vo lin kt xc nh ca n bi v mt thc th
yu khng th c xc nh m khng c thc th ch. V d, ta xt kiu
thc th PHTHUC, lin kt vi kiu thc th NHNVIN c s dng
gi du vt ca cc ngi ph thuc vo mi nhn vinthng qua mt lin kt
1:N. Cc thuc tnh ca PHTHUC l Htn, Ngysinh, Gii tnh, v
Miquanh (i vi nhn vin). Hai ngi ph thuc ca hai nhn vin khc
nhau c th c cng gi tr cho cc thuc tnh nhng n l hai thc th khc
nhau. Chng ch c xc nh nh hai thc th khc nhau sau khi xc nh
mt thc th nhn vin c th c lin quan n tng ngi ph thuc. Mi
thc th nhn vin c gi l ch ca cc thc th ph thuc lin kt vi n.
Thng thng mt kiu thc th yu c mt kho b phn, l mt tp
hp cc thuc tnh c th xc nh mt cch duy nht cc thc th yu lin kt
vi cng mt thc th ch. V d, nu nh hai ngi ph thuc khng bao gi
c tn ging nhau th thuc tnh Htn ca PHTHUC l mt kho b phn.
Trong trng hp xu nht, thuc tnh phc hp gm tt c cc thuc tnh ca
thc th yu s l mt kho b phn.
Trong s ER kiu thc th yu v mi lin kt xc nh ca n c
biu din bng mt hnh ch nht v mt hnh thoi nt p.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 29
III. V D V THIT K MT M HNH ER
Trong phn ny chng ta xt v d v vic xy dng m hnh ER cho c
s d liu CNGTY.
1. t vn
Gi s rng sau khi tp hp cc yu cu v sau bc phn tch, nhng
ngi thit k c s d liu m t li hot ng ca cng ty bng nhng cu
nh sau:
Cng ty c t chc thnh cc n v. Mi n v c mt tn duy nht,
mt m s duy nht, v mt nhn vin c th qun l cng ty.Vic nhn vin
qun l cng ty c ghi li bng ngy m nhn vin bt u lm qun l.
Mt n v c th c nhiu a im.
Mt n v kim sot mt s d n. Mi d n c mt tn duy nht, mt
m s duy nht v mt a im.
Vi mi nhn vin chng ta lu gi H tn, M s bo him x hi, a
ch, lng, gii tnh, ngy sinh. Mt nhn vin c phn cng vo mt n
v nhng c th lm vic trn nhiu d n do nhiu n v kim sot. Chng
ta lu gi li s gi / tun m mt nhn vin lm vic trn mi d n. Chng
ta cng lu gi du vt ca ngi theo di trc tip ca mi nhn vin
Mi nhn vin c nhng ngi ph thuc, nhng ngi ny c hng
ch bo him. Thng tin v nhng ngi ph thuc gm H tn, gii tnh,
ngy sinh v mi quan h vi nhn vin (l con hoc b, m, .).
2. Xc nh cc kiu thc th, cc thuc tnh v cc kiu lin kt
Theo cc ghi chp trn, chng ta c th c 4 kiu thc th:
Mt kiu thc th NV vi cc thuc tnh Tn, Ms, aim,
Ngiqunl, v Ngybtuqunl. Cc thuc tnh Tn, M s u l cc
thuc tnh kho (do tnh duy nht ca chng). a im l mt thuc tnh a
tr (v mt n v c th c nhiu a im).
Mt kiu thc th dn vi cc thuc tnh Tn, Ms, aim,
NVkimsot. C hai thuc tnh Tn, Ms u l cc thuc tnh kho.
Mt kiu thc th NHNVIN vi cc thuc tnh Htn, MsBHXH
(M s bo him x hi), Giitnh, a ch, lng, Ngy sinh, NV, v
Ngi theodi. Thuc tnh Htn l mt thuc tnh phc hp (gm Hm,
Tn). Thuc tnh a ch cng l phc hp. Thuc tnh MsBHXH l thuc
tnh kho.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 30
Mt kiu thc th PHTHUC vi cc thuc tnh NHNVIN, HtnPT
(H tn ca ngi ph thuc), Gii tnh, Ngysinh, v Miquanh (i vi
nhn vin).
Gia cc kiu thc th trn c cc kiu lin kt nh sau:
Gia NV v v dn c mt kiu lin kt : NV kim sot cc d n.
y l mt lin kt kiu 1:N. S tham gia ca d n vo kiu lin kt l ton
b (ngha l mt d n bao gi cng c mt n v kim sot). Nu nh
khng phi mi n v u qun l d n th s tham gia ca NV l b
phn, ngc li, s tham gia l ton b. Thuc tnh NVkimsot y
ng vai tr l n v kim sot d n, n ch kiu lin kt kim sot
Gia NHNVIN v NV c hai kiu lin kt: Nhn vin lm vic
cho n v v nhn vin qun l mt n v
Kiu lin kt lm vic cho l mt lin kt kiu N:1. S tham gia ca c
hai kiu thc th l ton b (mt nhn vin phi lm vic cho mt n v v
mt n v phi c cc nhn vin lm vic). Thuc tnh NV ca kiu thc
th nhn vin ng vai tr l n v m nhn vin lm vic cho n. Thuc tnh
ny ch kiu lin kt lm vic choKiu lin kt qun l l mt lin kt kiu
1:1. S tham gia ca NHNVIN l b phn bi v khng phi nhn vin no
cng qun l n v. S tham gia ca NV l ton b v n v no cng
phi c mt ngi qun l. Thuc tnh Ngi qun l ca NV ng vai tr
ngi nhn vin qun l n v v thuc tnh Ngybtuqunl l thuc tnh
ca kiu lin kt qun l
Gia kiu thc th NHNVIN v kiu thc th NHNVIN c mt kiu
lin kt quy : NHNVIN theo di NHNVIN. y l mt lin kt kiu
1:N, mt nhn vin theo di trc tip cc nhn vin khc. S tham gia ca
NHNVIN ( c hai pha) l b phn bi v khng phi nhn vin no cng
c ngi theo di trc tip v khng phi nhn vin no cng theo di nhn
vin khc. Thuc tnh Ngitheodi ng vai tr l nhn vin theo di.
Gia kiu thc th NHNVIN v kiu thc th dn c mt kiu lin kt:
NHNVIN lm vic trn dn, y l mt lin kt kiu M:N, mt nhn vin c
th lm vic trn nhiu d n v mt d n c th c nhiu nhn vin lm
vic. S tham gia ca NHNVIN l b phn v mt nhn vin c th khng
lm vic cho d n no, ngc li, s tham gia ca d n l ton b v d n
no cng phi c nhn vin lm vic.
Gia kiu thc th NHNVIN v kiu thc th PHTHUC c mt mi
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 31
lin kt : ngi ph thuc ph thuc vo NHNVIN hoc NHNVIN c nhng
ngi PHTHUC. y l kiu lin kt 1:N, nhn vin c th c nhng ngi
ph thuc. S tham gia ca NHNVIN l b phn v s tham gia ca ph
thuc l ton b v khng phi nhn vin no cng c ngi ph thuc nhng
mt ngi ph thuc phi ph thuc vo mt nhn vin. thuc tnh Nhn vin
ca kiu thc th PHTHUC ng vai tr ca nhn vin m ngi ph thuc
ph thuc vo. Thuc tnh ny ch lin kt ph thuc vo.
Sau khi phn tch nh trn ta, loi b cc thuc tnh c xem nh cc
kiu lin kt ra khi cc kiu thc th. l cc thuc tnh Ngiqunl v
Ngybtuqunl ca kiu thc th NV, thuc tnh NVkimsot ca
kiu thc th d n, cc thuc tnh NV, Ngitheodi, Lmvictrn ca
kiu thc th NHNVIN v thuc tnh NHNVIN ca kiu thc th
PHTHUC. Kt qu chng ta nhn c s ER nh hnh v 2.6

NHN VN
M sNV
H tn
H m Tn
Ngy
sinh
Qun l
ON V
1 1
Gim st
DU N
1
Lng
Gii
tnh
Ngy bt u
Lm vic cho
N 1
1 N
Lm vic trn
M N
Kim sot
1
N
S gi
C C
PHU THUC PHU THUC
N
Tn
Ngy
sinh
Quan h
Gii
tnh
Tn
M s a im

Hnh 2.6 Lc ER CNG TY
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 32
CHNG 3: M HNH QUAN H,
CC RNG BUC QUAN H V I S QUAN H

M hnh quan h c Ted Codd a ra u tin vo nm 1970 v gy
c ch ngay tc khc v tnh n gin v cc c s ton hc ca n. M
hnh quan h s dng khi nim quan h ton hc nh l khi xy dng c s
v c c s l thuyt ca n trong l thuyt tp hp v logic v t bc nht.
Trong chng ny chng ta s ni v cc c trng c bn ca m hnh, cc
rng buc ca chng v tp hp cc php ton ca m hnh quan h.
I. CC KHI NIM CA M HNH QUAN H
M hnh quan h biu th c s d liu nh mt tp cc quan h. Mi
quan h c th c biu din nh mt bng gi tr, mi mt dng trong bng
biu th mt tp hp cc gi tr d liu lin quan vi nhau. Trong chng
trc, chng ta a ra cc khi nim v kiu thc th v kiu lin kt nh
l cc khi nim m hnh ho d liu ca th gii thc. Trong m hnh
quan h, mi mt dng trong bng biu th mt s kin tng ng vi mt
thc th hoc mt lin kt ca th gii thc. Tn bng v tn cc ct dng
gip gii thch ngha ca cc gi tr trong mi hng. Mi gi tr trong mt
ct u cng mt kiu d liu
Theo thut ng m hnh quan h hnh thc, mi hng c gi l mt
b, mi u ct c gi l mt thuc tnh, v bng c gi l mt quan h.
1. Min, thuc tnh, b v quan h
Mt min D l mt tp hp cc gi tr nguyn t, iu c ngha l
mi gi tr trong min l khng th phn chia trong phm vi m hnh quan h.
dc t mt min, ngi ta ch ra mt tn min, mt kiu d liu v khun
dng d liu. Mt s v d v min:
. H tn : L mt tp hp cc dy ch ci c di <= 30
. Tui : l mt tp cc s nguyn nm trong khong t 1 n 120
Ngoi ra, trong c s d liu ngi ta cn ch ra cc thng tin ph th
hin cc gi tr ca min, chng hn cc n v tnh nh tin, trng lng,
Mt lc quan h R, k hiu l R(A
1
,A
2
,., An), c to nn t
mt tn quan h R mt danh sch cc thuc tnh A
1
,A
2
,., An. Mi mt
thuc tnh Ai l tn vai tr ca mt min D no trong lc quan h R. D
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 33
c gi l min gi tr ca Ai v c k hiu l Dom(Ai). Mt lc
quan h c s dng mt t mt quan h ; R c gi l tn ca quan h
. Cp ca mt quan h l s cc thuc tnh ca lc quan h ca n.V
d, ta c lc cp 5: Sinhvin(Ms, Htn, Ngysinh, Giitnh, ach).
Quan h tng ng vi n l mt bng c tn l Sinhvin, c 5 ct c tn l
cc thuc tnh, mi thuc tnh c mt min.
Mt quan h hoc trng thi quan h r ca lc quan h
R(A
1
,A
2
,., An) c k hiu l r(R), l tp hp cc n-b r = {t
1
, t
2
, .., tn
}. Mi n-b t l mt danh sch c th t ca n gi tr, t = < v
1
, v
2
, , vn >,
trong mi vi
,
1<= i <= n, l mt phn t ca Dom(Ai) hoc l mt gi tr
khng xc nh
(null value). Gi tr th i ca b t, tng ng vi thuc tnh Ai c
tham chiu n nh l t[Ai]. Hnh 3.1 ch ra mt v d ca quan h Sinhvin
tng ng vi s quan h SINHVIN trn. Mi b trong quan h biu
din mt sinh vin c th. Quan h c biu din nh mt bng, trong
mi b c biu din nh mt hng v mi thuc tnh tng ng vi mi
u ct ch ra vai tr ca cc gi tr trong ct . Cc gi tr khng xc nh
biu th cc thuc tnh m gi tr ca n khng bit c hoc khng tn ti
i vi tng b Sinh vin c th.

SINH VIN H tn M s Ngy sinh Gii tnh a ch
L Vn 4515202 12/09/84 N H Ni
Hong Tng 4516802 21/03/84 Nam Bc Ninh
Trng nh 4620503 15/05/85 Nam H Nam
Phm An 4612203 16/04/85 Nam Nam nh
Cung 4521402 10/01/84 Nam Ngh An
Hnh 3.1 Quan h SINH VIN

nh ngha quan h trn c th pht biu li nh sau : Mt quan h
r(R) l mt quan h ton hc cp n trn cc min gi tr dom(A1),
dom(A2),.., dom(An), l tp con ca tch cac ca cc min xc
nh R:
r(R) (dom(A
1
) x dom(A
2
) x x dom(An))
Tch cac moi t hp c th c ca cc gi tr t cc min cho. Nh
vy, nu ta k hiu lc lng ca mt min D l D v gi thit rng mi
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 34
min u hu hn th tng s cc b trong tch cac l
dom(A
1
)*dom(A
2
)* ..*dom(An)
ngoi tt c cc t hp c th c ny, mt trng thi quan h mt
thi im cho trc gi l trng thi quan h hin ti ch phn nh cc b
gi tr biu din mt trng thi c th ca th gii thc. Ni chung, do trng
thi ca th gii thc thay i, quan h cng b thay i thnh trng thi quan
h khc. Lc R l n nh, khng thay i, tr phi phi thm vo mt s
thuc tnh biu din mt thng tin mi cha c lu tr trong quan h.
C th xy ra trng hp nhiu thuc tnh c cng mt min gi tr. Cc
thuc tnh ch ra cc vai tr khc nhau i vi min. V d, hai thuc tnh
achNV v achV c cng min gi tr nhng thuc tnh th nht tham
chiu n a ch ca nhn vin cn a ch th hai tham chiu n a ch ca
n v.
2. Cc c trng ca cc quan h
a) Th t ca cc b trong mt quan h : Mt quan h c nh ngha
nh mt tp hp cc b. Cc phn t trong mt tp hp khng c th t, v
vy cc b trong mt quan h khng c mt th t c th. Tuy nhin, trong
mt tp, cc bn ghi c lu tr mt cch vt l trn a v vy lun c mt
th t gia cc bn ghi. Th t ny ch r bn ghi th nht, bn ghi th i, ,
bn ghi th n. Mt cch tng t, khi ta biu din mt quan h nh l mt
bng, cc hng c hin th theo mt th t nht nh.
Th t cc b khng phi l mt phn ca nh ngha quan h bi v
mt quan h c gng biu din cc s vt mc tru tng hoc lgic. C th
c nhiu th t l gic trn mt quan h. V d, cc b gi tr trong quan h
SINHVIN hnh 3.1 c th sp xp theo nhiu cch khc nhau: theo th t
logic ca Htn, theo th t logic ca M s, . nh ngha quan h khng
ch ra th t lgic no c, v vy khng c th t logic no hn th t lgic
khc. Cc quan h cha cng mt s hng nh nhau nhng cc hng c sp
xp khc nhau c xem nh ng nht vi nhau. Khi mt quan h c ci
t nh mt tp, mt th t vt l c th c ch ra trn cc bn ghi ca tp.
b) Th t ca cc gi tr bn trong mt b : Theo nh ngha quan h
trn, mt n-b l mt danh sch c th t ca n gi tr. Nh vy th t ca cc
gi tr trong mt b l quan trng, t suy ra th t ca cc thuc tnh trong
mt lc quan h cng quan trng. Tuy nhin, mc l gic, th t ca cc
thuc tnh v cc gi tr ca n l khng thc s quan trng khi g c s
tng ng gia cc thuc tnh v cc gi tr.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 35
C th a ra mt nh ngha khc v quan h, nh ngha ny s lm
cho th t ca cc gi tr trong mt b l khng cn thit. Theo nh ngha
ny, mt lc quan h R = { A
1
, A
2
, .An} l mt tp hp cc thuc tnh
v mt quan h r = {t
1
, t
2
, . tm}l mt tp hp hu hn cc nh x t R vo
D, trong D = dom(A
1
) dom(A
2
) .. dom(An). Trong nh ngha
ny, vi mi nh x t trong r, t[Ai] phi trong dom(Ai) vi 1<= i <= n. Mi
nh x ti c gi l mt b.
Theo nh ngh ny, mt b c th xem nh mt tp hp cc cp
(<thuc tnh>, <gi tr>), trong mi cp cho mt gi tr ca nh x t mt
thuc tnh Ai n mt gi tr vi ca dom(Ai). V tn thuc tnh xut hin cng
vi gi tr ca n nn th t ca cc thuc tnh l khng quan trng. iu ny
lm nn ngha mc tru tng hoc logic v chng c l do g thch c
mt gi tr thuc tnh xut hin trc mt gi tr thuc tnh khc trong mt b.
Khi mt quan h c ci t nh mt tp, cc thuc tnh c sp xp
mt cch vt l nh l cc trng trong mt bn ghi. Trong trng hp
chng ta s s dng nh ngha th nht ca quan h, trong cc gi tr ca
cc thuc tnh trong mt b l c th t v n lm n gin rt nhiu khi
nim. Tuy nhin, nh ngha th hai l tng qut hn.
Cc gi tr trong mt b: Mi gi tr trong mt b l mt gi tr nguyn
t ; iu c ngha l n khng phn chia c thnh cc thnh phn trong
phm vi ca m hnh quan h. Nh vy, trong m hnh quan h khng cho
php c cc thuc tnh phc hp v cc thuc tnh a tr. Cc thuc tnh a tr
phi c biu din bng cc quan h cn cc thuc tnh phc hp ch c
biu din bng cc thuc tnh thnh phn n ca n.
Cc gi tr ca mt vi thuc tnh trong mt b c th c th khng
bit c hoc khng thch ng cho n. Trng hp , ngi ta s dng mt
gi tr c bit gi l gi tr null. V d, gi s quan h SINHVIN c thuc
tnh S in thoa nh. Trong mt tp th sinh vin, c ngi c in thoi
nh, c ngi khng c v cng c ngi c nhng khng bit chc. Vi
nhng trng hp khng c hoc khng bit chc, thuc tnh
Sinthoanh c gi tr null.
Th hin ca mt quan h: Mt lc quan h c th c th hin
nh l mt tuyn b hoc mt khng nh. V d lc quan h SINHVIN
trn khng nh rng, ni chung, mt thc th sinh vin c mt m s, h
tn, ngy sinh, gii tnh, a ch. Mi b trong quan h c th hin nh l
mt s kin hoc nh mt th hin c th ca mt khng nh. Ngoi cc
quan h biu din cc s kin v cc thc th, mt s quan h c th biu din
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 36
cc s kin v mi lin kt. V d, lc quan h
NHNVIN_Dn(MsNV, MsDA, Sgi) khng nh cc nhn vin
lm vic vi cc d n. Mi b trong quan h ny lin kt mt sinh vin vi
mt d n m anh ta lm vic cho n.
Nh vy, m hnh quan h biu din cc s kin v thc th v cc s
kin v lin kt di dng duy nht l cc quan h.
II. CC RNG BUC QUAN H, LC CSDL QUAN H
Trong phn ny chng ta tho lun v cc hn ch trn cc d liu
trong mt lc c s d liu quan h. Cc hn ch c gi l cc rng
buc. C cc loi rng buc : rng buc min, rng buc kho, rng buc ton
vn thc th v rng buc ton vn quy chiu.
1. Cc rng buc min
Cc rng buc min ch ra rng gi tr ca mi thuc tnh A phi l mt
gi tr nguyn t thuc min gi tr dom(A). Cc kiu d liu lin kt vi cc
min bao gm: cc kiu d liu s chun cho cc s nguyn (short integer,
integer, long integer), cc s thc (float, double precision float). Ngoi ra cn
cc kiu d liu k t (dy k t vi di c nh, dy k t vi di thay
i), ngy, thi gian v tin t. Cc loi min khc c th l cc min con ca
mt kiu d liu hoc mt kiu d liu m c trong mi gi tr c th
c lit k r rng
2. Rng buc kho v rng buc trn cc gi tr rng (null)
Mt quan h c nh ngha nh mt tp hp cc b. Theo nh ngha,
cc phn t ca mt tp hp l khc nhau, v vy, mi b trong quan h phi
khc nhau. iu c ngha l khng c hai b c cng mt t hp gi tr cho
tt c cc thuc tnh ca chng. Thng thng, c tn ti cc tp con ca cc
thuc tnh ca mt lc quan h c tnh cht l khng c hai b no
trong mi trng thi quan h r ca R c cng mt t hp gi tr cho cc thuc
tnh ca n. Gi s chng ta k hiu mt tp con nh vy l SK; khi vi
hai b khc nhau bt k t
1
v t
2
trong mt trng thi quan h r ca R chng ta
c rng buc l t
1
[SK] t
2
[SK].
Tp hp thuc tnh SK nh vy c gi l mt siu kho ca lc
quan h R. Mt siu kho SK xc nh r mt rng buc v tnh duy nht,
pht biu rng khng c hai b khc nhau trong mt trng thi r ca R c
cng mt gi tr cho SK. Mi quan h c it nht l mt siu kho mc nh,
l tp hp tt c cc thuc tnh ca n. Mt kho K ca mt lc quan h
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 37
R l mt siu kho ca R vi tnh cht l nu b i bt k thuc tnh A no ra
khi K th s cn li mt tp K khng phi l siu kho ca R. Nh vy, mt
kho l mt siu kho ti thiu, ngha l l mt siu kho m ta khng th
vt b thuc tnh no ra khi n m vn gi c rng buc v tnh duy nht.
V d, xt quan h SINHVIN vi cc thuc tnh Ms, Htn,
Ngysinh, Giitnh, ach. Tp thuc tnh {Ms} l mt kho ca
SINHVIN bi v khng c hai b sinh vin c cng mt gi tr cho Ms.
Mi tp hp thuc tnh c cha Ms, v d { Ms, Htn, Ngysinh}, u
l mt siu kho. Tuy nhin, siu kho { Ms, Htn, Ngysinh} khng phi
l kho bi v nu b i thuc tnh Htn hoc Ngysinh hoc c hai th n
vn cn l mt siu kho.
Gi tr ca mt thuc tnh kho c th c s dng xc nh mt
cch duy nht mi b trong mt quan h. V d, gi tr SV305 ca Ms xc
nh mt cch duy nht b gi tr tng ng vi sinh vin L Nam trong quan
h sinhvin. Ch rng mt tp hp thuc tnh to nn mt kho l mt tnh
cht ca lc quan h. iu rng buc l tnh cht phi tho mn trn
mi trng thi ca lc . Mt kho c xc nh t ngha ca cc thuc
tnh v tnh cht l bt bin ; tnh cht phi tha mn khi chng ta chn
thm cc b mi vo quan h. V d, ta khng th v khng c ch nh
thuc tnh Htn ca quan h SINHVIN l kho bi v khng c g m bo
rng khng tn ti hai sinh vin c cng h tn.
Ni chung, mt lc quan h c th c nhiu hn mt kho. Trong
trng hp , mi mt kho c gi l mt kho d tuyn. Thng thng
ta phi ch nh mt trong cc kho d tuyn lm kho chnh ca quan h.
Kho chnh l mt kho d tuyn m cc gi tr ca chng c dng xc
nh cc b trong quan h. Ta quy c rng, cc thuc tnh to nn kho
chnh ca mt lc quan h c gch di. V d:
Sinhvin(Ms, Htn, Ngysinh, Giitnh, ach).
Ch rng khi mt lc quan h c nhiu kho d tuyn, vic la
chn mt kho d tuyn lm kho chnh l tu ; tuy nhin tt nht l chn
kho chnh gm mt thuc tnh hoc c s cc thuc tnh it nht.
Mt rng buc khc trn cc thuc tnh ch r khi no th cho php cc
gi tr null. Nhng thuc tnh lun lun phi c mt gi tr xc nh v hp l
th b rng buc l not null.
3. C s d liu quan h v lc c s d liu quan h
trn, chng ta ni n cc lc quan h n l v cc quan h
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 38
n l. Mt c s d liu quan h thng gm nhiu quan h vi cc b gi
tr trong cc quan h c lin kt vi nhau theo nhiu cch. Trong phn ny
chng ta s nh ngha mt c s d liu quan h v mt lc c s d liu
uan h. Mt lc c s d liu quan h S l mt tp hp cc lc quan
h S = {R
1
, R
2
, ., Rn} v mt tp cc rng buc ton vn. Mt trng thi
c s d liu quan h (hoc mt c s d liu quan h) DB ca S l mt tp
hp cc trng thi quan h DB = {r
1
, r
2
, ., rn} sao cho mi ri l mt trng
thi ca Ri

v sao cho cc trng thi quan h ri tho mn cc rng buc ton
vn ch ra trong tp cc rng buc ton vn.
V d, Hnh v 3.2 trnh by mt lc c s d liu CNGTY v
hnh v 3.3 Trnh by mt c s d liu cng ty

NHNVIN(Hm, Tn, M s NV, Ngy sinh, a ch, Gii tnh, Lng, M s NGS, M s V)
NV(Tn V, M s V, M s NQL, Ngy bt u)
NV_AIM(M s V, a im V)
DN(Tn DA, M s DA, a im DA, M s V)
NHNVIN_D N(M s NV, M s DA, S gi)
PHTHUC(M s NV, Tn PT, Gii tnh, Ngy sinh, Quan h)
Hnh 3.2 : Lc c s d liu cng ty.
N
H

N
V
I

N

M

N
V

H

m

T

n

N
g

y
s
i
n
h

a
c
h


G
i

i
t

n
h

L

n
g

M

N
G
S

M

V

NV001 L Vn 12/02/79 H Ni Nam 3000 NV002 5
NV002 Trn c Nam 14/02/66 H Ni Nam 4000 NV061 5
NV010 Hong Thanh 05/08/79 Ngh An N 2500 NV014 4
NV014 Phm Bng 26/06/52 Bc Ninh Nam 4300 NV061 4
NV016 Nguyn Sn 14/08/73 H Nam Nam 3800 NV002 5
NV018 V Hng Giang 26/03/83 Ph Th N 2500 NV002 5
NV025 Trn L Hoa 15/05/80 Ph Th N 2500 NV014 4
NV061 Hong Gip 02/05/47 H Ni Nam 5500 Null 1

NV M s V Tn V M s NQL Ngy bt u
5 Nghin cu NV002 15/09/2000
4 Hnh Chnh NV014 24/06/1997
1 Lnh o NV061 25/01/1992

NV_AIM M s V a im V
1 H Ni
4 H Ni
5 Nam nh
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 39
5 H Ni
5 Bc Ninh

DN Tn DA M s DA a im DA M s V
DA01 1 H Ni 5
DA02 2 Nam nh 5
DA03 3 Bc Ninh 5
DA04 10 H Ni 4
DA05 20 H Ni 1
DA06 30 H Ni 4

NHNVIN_D N M s NV M s DA S gi
NV001
NV001
NV016
NV018
NV018
NV002
NV002
NV002
NV002
NV010
NV010
NV025
NV025
NV014
NV014
NV061

PHTHUC M s NV Tn PT Gii tnh Ngy sinh Quan h
NV002 Giang N 04/05/1997 Con
NV002 Bnh Nam 25/10/1994 Con
NV002 Hoa N 03/05/1969 V
NV014 Lan N 28/02/1953 V
NV001 Bnh Nam 04/01/1999 Con
NV001 Ha N 04/01/1999 Con
NV001 Hng N 05/05/1981 V
Hnh 3.3 : C s d liu cng ty
Trong mt lc c s d liu quan h, cc thuc tnh biu din cng
mt khi nim th gii thc c th (hoc khng) c cng tn nh nhau trong
cc quan h khc nhau. Ngc li, cc thuc tnh biu din cc khi nim
khc nhau c th c tn nh nhau trong cc quan h khc nhau.
Trong mt s phin bn trc ca m hnh quan h, ngi ta yu cu
rng cc thuc tnh biu din cng mt khi nim ca th gii thc th phi c
tn nh nhau trong mi quan h. iu s gy ra kh khn khi cng mt
khi nim th gii thc c s dng trong cc vai tr khc nhau.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 40
Mt h qun tr c s d liu phi c ngn ng nh ngha d liu
(Data definition language DDL) nh ngha lc c s d liu quan h.
Cc h qun tr c s d liu hin nay hu nh s dng SQL cho mc ch
ny.
Cc rng buc ton vn c ch ra trn mt lc c s d liu v
c tn trng lm tho mn trn mi trng thi c s d liu ca lc
ny. Ngoi cc rng buc min v rng buc kho cn c thm cc rng buc
c xem nh mt phn ca m hnh quan h: rng buc ton vn thc th v
rng buc ton vn quy chiu.
4. Ton vn thc th, ton vn quy chiu v kho ngoi
Rng buc ton vn thc th c pht biu l : kho chnh phi lun
lun c gi tr xc nh, ngha l khng c php c gi tr null. S d c
iu l do gi tr ca kho chnh c s dng xc nh cc b gi tr
ring bit trong mt quan h. Vic c gi tr null cho kho chnh ko theo vic
chng ta khng th xc nh c mt s b gi tr. V d, nu c hai hay
nhiu hn cc b gi tr c gi tr null cho kho chnh th chng ta khng c
kh nng phn bit chng.
Cc rng buc kho v rng buc ton vn thc th c ch ra trn cc
quan h ring bit. Rng buc ton vn quy chiu c ch ra gia hai quan
h duy tr s tng ng gia cc b ca hai quan h. Mt cch khng hnh
thc, rng buc ton vn quy chiu c pht biu l: mt b gi tr trong mt
quan h c lin kt n mt quan h khc phi lin kt n mt b gi tr tn
ti trong quan h .
nh ngha ton vn quy chiu mt cch hnh thc hn, trc tin
chng ta a ra khi nim kho ngoi : Mt tp hp cc thuc tnh FK trong
mt lc quan h R
1
l mt kho ngoi ca R
1
quy chiu n quan h R
2

nu n tho mn hai quy tc sau:
qt1. Cc thuc tnh trong FK c cng min gi tr nh cc thuc tnh ca
kho chnh PK ca R
2
. Cc thuc tnh FK c gi l quy chiu n (hoc l
lin h n) quan h R
2
.
qt2. Mt gi tr ca FK trong mt b t
1
ca trng thi hin ti r
1
(R
1
)
hoc c my nh mt gi tr ca kho chnh ca mt b t
2
no y trong trng
thi hin ti r
2
(R
2
), hoc l null. Trong trng hp ny ta c t
1
[FK] = t
2
[PK]
v ta ni rng b t
1
lin h (quy chi) n b t
2
. R
1
c gi l quan h quy
chiu v R
2
c gi l quan h b quy chiu.
Trong mt c s d liu c nhiu quan h thng c nhiu rng buc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 41
ton vn quy chiu. ch ra cc rng buc ny, trc tin ta phi c mt
hiu bit r rng v ngha hoc vai tr ca mi tp thuc tnh trong cc
lc quan h khc nhau ca c s d liu. Cc rng buc ton vn quy
chiu thng ny sinh t cc mi lin kt gia cc thc th c biu din
bng cc lc quan h.
Ch rng mt kho ngoi c th quy chiu n quan h ca chnh n.
Trong trng hp , kho ngoi biu th mt lin kt quy.
Chng ta c th biu din cc rng buc quy chiu bng s . lm
iu ta v mt cnh c hng t mi kho ngoi n quan h m n quy
chiu. Hnh v 3.4 biu din lc hnh 3.2 vi cc rng buc quy chiu
c biu din theo cch ny.
NHNVN(Hm, Tn, MsNV, NgySinh, ach, Giitnh, Lng, MsNGS, MsV)
ONV(TnV, MsV, MsNQL, Ngybtu)
ONV_AM(MsV, aimV)
DUN(TnDA, MsDA, aimDA, MsV)
PHUTHUC(MsNV, TnPT, Giitnh, NgySinh, Quanh)
NHNVN_DUN(MsNV, MsDA, Sgi)

Hnh 3.4 Lc v s tham chiu

Ngoi cc rng buc ton vn trn, c s d liu cn phi tho mn
mt s rng buc khc, nh rng buc trng thi, rng buc chuyn tip,.
Cc rng buc trng thi xc nh cc rng buc m mt trng thi vng chc
ca c s d liu phi tho mn. V d v cc rng buc l:lng ca mt
nhn vin khng c vt qu lng ca ngi gim st nhn vin hoc
s gi nhiu nht m mt nhn vin c th lm vic trong mt tun trn tt
c cc d n l 56. Cc rng buc nh vy c th c c t v bt tun
theo bng cch s dng mt ngn ng c t rng buc. Ngi ta c th s
dng cc c cu nh l trigger hoc assertion. Cc rng buc chuyn tip c
th c nh ngha lm vic vi nhng thay i trng thi trong c s d
liu. V d v rng buc ny l : lng ca mt nhn vin ch c th tng .
Cc rng buc nh vy thng c nh ngha bng cch s dng cc quy
tc hoc bng cc trigger.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 42
III. CC PHP TON CA M HNH QUAN H
Trong phn ny chng ta tho lun v cc php ton ca m hnh quan
h. Cc php ton ca m hnh quan h c th phn thnh hai loi : cc php
ton cp nht v cc php ton i s quan h. Cc php ton cp nht c
s dng to ra mt quan h ng n; cc php ton i s quan h c
s dng c t cc php ly thng tin ra.
1. Cc php ton cp nht
Cc php ton cp nht gm ba php ton c bn l chn, xo v sa
i. Php chn c dng chn mt b gi tr hoc nhiu b gi tr vo
mt quan h. Php xo dng loi b cc b gi tr v php sa i dng
sa i cc gi tr ca mt s thuc tnh trong cc b gi tr c. Mi khi
cc php ton cp nht c p dng, cc rng buc trn lc c s d
liu c th b vi phm. Trong phn ny chng ta s ni n kh nng vi phm
cc rng buc ca tng php ton v cc kiu hnh ng c th thc hin khi
mt rng buc b vi phm.
a. Php chn (Insert)
Php chn cung cp mt danh sch cc gi tr cho mt b mi t c
chn vo trong mt quan h R. Php chn c th vi phm cc kiu rng buc
c m t trn. Cc rng buc min c th b vi phm nu mt gi tr
thuc tnh c cho khng thuc vo min tng ng. Cc rng buc kho c
th b vi phm nu mt gi tr kho trong b mi t tn ti trong mt b
khc trong quan h r(R). S ton vn thc th c th b vi phm nu kho
chnh ca b mi t l null. S ton vn quy chiu c th b vi phm nu mt
gi tr ca mt kho ngoi trong t quy chiu n mt b khng tn ti trong
mt quan h c quy chiu.
Nu mt php chn vi phm mt hoc nhiu rng buc, tu chn mc
nh l loi b php chn. Trong trng hp ny, thng l cc h qun tr c
s d liu c th thng bo cho ngi s dng nguyn nhn ca vic loi b
php chn.
b. Php xo (Delete)
Php xo c s dng xo mt hoc nhiu b gi tr ca mt quan
h. Php xo ch c th vi phm rng buc quy chiu trong trng hp b b
xo c quy chiu bi mt kho ngoi t cc b khc trong c s d liu.
Ba tu chn c sn sng c s dng nu mt php xo gy ra s vi
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 43
phm. Tu chn th nht l loi b php xo. Tu chn th hai l c gng lan
truyn php xo (cascade the deletion) bng cch xo ng thi cc b quy
chiu n b b xo. Tu chn th ba l sa i cc gi tr ca cc thuc tnh
quy chiu gy ra s vi phm; mi gi tr nh vy hoc l lm cho bng null
hoc c thay i thnh b c hiu lc quy chiu khc. Ch ya rng, nu
mt thuc tnh quy chiu gy ra s vi phm l mt phn ca kho chnh th
khng th lm cho thnh null, bi v nu lm vy th s vi phm rng buc
ton vn thc th.C th kt hp c ba tu chn trn.
c. Php sa i (Update)
Php ton sa i c dng thay i cc gi tr ca mt hoc nhiu
thuc tnh trong mt (hoc nhiu) b ca mt quan h R no y. la chn
cc b cn c thay i, ngi s dng phi ch ra mt iu kin trn cc
thuc tnh.
Vic sa i mt thuc tnh khng phi l mt kho chnh hac mt
kho ngoi thng khng gy ra cc vi phm rng buc; h qun tr c s d
liu ch cn kim tra khng nh rng gi tr mi l thuc min v kiu gi
tr ng n. Vic sa i gi tr mt kho chnh tng t nh vic xo mt
b v chn b khc vo ch ca n. Nh vy chng ta tr v trng hp
tho lun vi php chn v php xo. Nu mt thuc tnh kho ngoi b sa
i th h qun tr c s d liu phi m bo rng gi tr mi quy chiu n
mt b c tn ti trong quan h c quy chiu (hoc l null).
2. Cc php ton i s quan h
Ngoi vic nh ngha cu trc c s d liu v cc rng buc, mt m
hnh d liu phi cha mt tp hp php ton thao tc d liu. Tp hp c
s cc php ton m hnh quan h to nn i s quan h. Cc php ton ny
gip cho ngi s dng xc nh r cc yu cu ly tin c bn. Kt qu ca
mt php ly tin l l mt quan h mi, c th c to ra t mt hoc nhiu
quan h.. Cc quan h c th c thao tc tip theo bng cch s dng
cc php ton ca cng i s. Mt dy cc php ton quan h to nn mt
biu thc i s quan h m kt qu ca n cng l mt quan h.
Cc php ton i s quan h c chia thnh hai nhm. Mt nhm bao
gm cc php ton tp hp ly t l thuyt tp hp ton hc. Cc php ton
l php hp, php giao, php tr tp hp v php tch cc. Nhm kia
bao gm cc php ton c xy dng c bit cho cc c s d liu quan h.
Cc php ton l php chn, php chiu, php ni v mt s cc php ton
khc.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 44
a. Php chn (SELECT)
Php chn c s dng chn mt tp hp cc b tho mn iu kin
chn t mt quan h. Ta c th xem php chn nh mt b lc, n ch gi li
cc b tho mn iu kin t ra.
Php chn c k hiu l

< iu kin chn>
(R)
trong k hiu c dng k hiu php chn, cn iu kin chon
l mt biu thc l gic c ch ra trn cc thuc tnh ca R. V d, chn
cc b NHNVIN thuc v n v c m s l 4 hoc cc b NHNVIN
c lng ln hn 800000 ta c th vit nh sau:

< Ms = 4>
(NHNVIN)
hoc
< Lng > 800000>
(NHNVIN)
Ch rng R ni chung l mt biu thc i s quan h m kt qu ca
n l mt quan h; biu thc n gin nht chnh l tn ca mt quan h ca
mt c s d liu. Quan h kt qu ca php chn c cng thuc tnh nh R.
Biu thc lo gic ch ra trong <iu kin chn> c to nn t mt s hng
mc c dng :
< tn thuc tnh> < php so snh> < gi tr hng>
hoc < tn thuc tnh> < php so snh> < tn thuc tnh>
trong <tn thuc tnh> l tn ca mt thuc tnh trong R, <php so
snh> l mt trong cc php ton so snh { <, , =, , >, } cn < gi tr
hng> l mt gi tr hng t min gi tr ca thuc tnh. Cc hng mc c th
c ni vi nhau bng cc php ton l gic AND, OR, NOT to ra mt
iu kin chn chung. V d, chn ra cc b gi tr NHNVIN lm vic
n v c m s l 4 v c lng ln hn 800000 hoc cc b gi tr
NHNVIN lm vic n v c m s l 5 v c lng ln hn 500000 ta
c th vit php chn nh sau:

< Ms = 4>AND <lng>800000>OR< Ms = 5>AND <lng>500000>
(NHNVIN)
MsNV Hm Tn Ngysinh ach Giitnh Lng MsNGS MsV
NV002 Trn c Nam 14/02/66 H Ni Nam 4000 NV061 5
NV014 Phm Bng 26/06/52 Bc Ninh Nam 4300 NV061 4
NV016 Nguyn Sn 14/08/73 H Nam Nam 3800 NV002 5
Hnh 3.5 Kt qu php chn
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 45
Ch rng cc php ton so snh trong tp hp { <, , =, , >, }p
dng cho cc thuc tnh c min gi tr l cc gi tr c th t nh l min gi
tr s. Min gi tr cc dy k t c xem nh c th t da trn vic so snh
cc dy k t. Nu min gi tr ca mt thuc tnh l mt tp hp cc gi tr
khng c th t th ch c cc php so snh trong tp hp { =, } l c th p
dng c. Ngoi ra, c th cn cc php so snh b sung, chng hn nh l
mt dy con ca hoc trong khong t. n .. .
Kt qu mt php chn c xc nh nh sau: < iu kin chn> c
p dng cho mi b t trong R mt cch c lp. iu c thc hin bng
cch thay th mi xut hin ca mt thuc tnh Ai trong iu kin chon bng
gi tr t[Ai]ca n trong b. Nu iu kin chn cho gi tr ng th b t s
c chn. Tt c cc b c chn xut hin trong kt qu ca php ton
chn. Cc php ton logic AND, OR, NOT c thc hin theo quy tc bnh
thng ca chng.
Php chn l php ton mt ngi, ngha l n c p dng cho mt
quan h. Hn na, php chn c p dng cho tng b mt cch c lp, v
vy, cc cc iu kin chon khng th lin quan n nhiu b. Quan h kt
qu ca php ch c cp ging nh cp ca R. S cc b trong quan h kt
qu lun lun nh hn hoc bng s cc b trong R.
Php chn l mt php ton c tnh cht giao hon, ngha l

< iu kin 1>
(
< iu kin 2>
(R)) =
< iu kin 2>
(
< iu kin 1>
(R))
Hn na ta c th kt hp mt lot cc php chn thnh mt php chn
n gin bng cch s dng php ton AND, V d:

< iu kin 1>
(
< iu kin 2>
(R)) =
< iu kin 2>AND< iu kin 1>
(R)
b. Php chiu (PROJECT)
Nu ta coi mt quan h nh mt bng th php chn chn mt s hng
ca bng tho mn iu kin chn v b qua cc hng khng tho mn iu
kin chn. Php chiu l php ton chn mt s ct ca bng. Nu chng ta
ch quan tm n mt s thuc tnh ca quan h, chng ta dng php chiu
chiu ln cc thuc tnh . Php chiu c k hiu l:

<danh sch cc thuc tnh>
(R)
trong l k hiu dng biu din php chiu v <danh sch cc
thuc tnh> l mt danh sch con cc thuc tnh ca quan h R. Ni chung R
l mt biu thc i s quan h m kt qu ca n l mt quan h ; trng
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 46
hp n gin nht n l tn ca mt quan h ca c s d liu. Kt qu ca
php chiu l mt quan h ch c cc thuc tnh nm trong <danh sch cc
thuc tnh> v c cng th t nh th t ca chng c trong danh sch. Nh
vy, cp ca quan h kt qu l s cc thuc tnh c trong <danh sch cc
thuc tnh>.
Nu <danh sch cc thuc tnh> ch bao gm cc thuc tnh khng phi
thuc tnh kho ca R th quan h kt qu c th c nhng b trng nhau.Php
chiu loi b mi b trng lp, v nh vy, kt qu ca php chiu l mt tp
hp cc b v l mt quan h ng n.
V d, php chiu
< Ms, Htn, Lng>
(NHNVIN) cho kt qu l mt
uan h c cc thuc tnh Ms, Htn, Lng (xem hnh v 3.6)

MsNV Hm Tn ach Lng
NV001 L Vn H Ni 3000
NV002 Trn c Nam H Ni 4000
NV010 Hong Thanh Ngh An 2500
NV014 Phm Bng Bc Ninh 4300
NV016 Nguyn Sn H Nam 3800
NV018 V Hng Giang Ph Th 2500
NV025 Trn L Hoa Ph Th 2500
NV061 Hong Gip H Ni 5500
Hnh 3.6 Kt qu ca php chiu

S cc b trong quan h kt qu t mt php chiu lun lun nh hn
hoc bng s cc b trong R. Nu danh sch chiu l mt siu kho ca R
ngha l n cha mt kho no ca R th quan h kt qu c cng mt s
b nh R. Ngoi ra, nu < danh sch 2> cha tt c cc thuc tnh coa trong
<danh sch 1> th

< danh sch1>
(
< danh sch2>
(R)) =
< danh sch 1>
(R)
Php chiu khng c tnh giao hon.
c. Php t li tn (RENAME)
Chng ta c th p dng nhiu php ton quan h lin tip nhau. Trong
trng hp hoc chng ta c th vit cc php ton nh l mt biu thc
i s quan h n bng cch xp lng cc php ton li vi nhau, hoc chng
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 47
ta c th p dng mi php ton ti mt thi im v to ra cc quan h kt
qu trung gian. Trong trng hp to cc quan h trung gian, ta phi t tn
cho quan h . V d: a ra Htn v Lng ca cc NHNVIN lm
vic n v c Ms l 4 chng ta phi p dng mt php chn v mt php
chiu. Chng ta c th vit mt biu thc i s quan h n nh sau :

< Htn, Lng >
(
<Ms = 4>
(NHNVIN))
Mt cch khc, chng ta c th to ra kt qu trung gian v vit biu
thc trn thnh dy cc php ton nh sau:
KQTG
<Ms = 4>
(NHNVIN)
Ketqua
< Htn, Lng >
(FQTG)
Thng thng vic phn tch mt dy phc tp cc php ton bng cch
ch ra cc quan h kt qu trung gian l d hn vic vit mt biu thc i s
quan h n. Chng ta c th dng k thut ny t li tn (rename) cho
cc thuc tnh trong cc quan h trung gian v kt qu. t li tn cho cc
thuc tnh ca mt quan h, chng ta lit k cc tn mi ca cc thuc tnh
trong cp du ngoc. V d:
R(H_v_tn, Lng)
< Htn, Lng >
(FQTG)
Cho kt qu l quan h R, trong thuc tnh Htn c t li tn
thnh Ho_v_tn.
Nu khng c vic t li tn th tn ca cc thuc tnh trong quan h
kt qu ca mt php chn l ging nh cc tn trong quan h ban u v c
cng mt th t nh th t ca cc thuc tnh . i vi php chiu, nu
khng c vic t li tn th quan h kt qu c cc tn thuc tnh ging nh
cc tn trong danh sch chiu v c cng th t nh chng xut hin trong
danh sch.
Chng ta c th nh ngha mt php ton t li tn, n c th t li
tn cho mt tn quan h hoc cc tn thuc tnh hoc c hai. Php t li tn
c k hiu l

S(B1,B2,.Bn)
(R) hoc
S
(R) hoc
(B1,B2,.Bn)
(R)
trong k hiu c dng k hiu php ton t li tn, S l tn
quan h mi, B
1
,B
2
,.Bn l cc tn thuc tnh mi. Biu thc th nht t li
tn quan h v cc thuc tnh ca n; biu thc th hai ch t li tn quan h
v biu thc th ba ch t li tn cc thuc tnh. Nu cc thuc tnh ca R l
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 48
A
1
,A
2
, ..An th sau khi t li tn chng c tn l B
1
, B
2
, ..Bn.
d. Cc php ton l thuyt tp hp
Nhm tip theo ca cc php ton i s quan h l cc php ton ton
hc thng thng trn cc tp hp. l cc php ton hp, giao v tr tp
hp. Cc php ton ny l cc php ton hai ngi, ngha l mi php ton
c p dng cho hai tp hp. Khi p dng cc php ton ny cho c s d
liu quan h, hai quan h tham gia vo mt trong cc php ton trn phi c
kiu ca cc b nh nhau, hay ni cch khc, chng phi c cng mt cu
trc. iu kin ny c gi l tng thch ng nht. Hai quan h R(A
1
,A
2
,
, An) v S(B
1
, B
2
, .,Bn) c gi l tng thch ng nht nu chng c
cng cp n v dom(Ai) = dom(Bi) vi 1<= i <= n. iu c ngha l hai
quan h c cng s cc thuc tnh v mi cp thuc tnh tng ng c cng
min gi tr.
Cc php ton c nh ngha nh sau:
. Php hp : Hp ca hai quan h R v S, c k hiu l R S, cho kt
qu l mt quan h cha tt c cc b c trong R hoc trong S hoc trong
c hai. Cc b trng lp b loi b.
. Php giao: Giao ca hai quan h R v S, c k hiu l R S, cho kt
qu l mt quan h cha tt cc cc b c trong c hai quan h R v S
. Php tr quan h: Php tr quan h R v S, c k hiu l R S, cho
kt qu l mt quan h cha tt c cc b c trong R nhng khng c trong S.
V d, xt hai quan h
R Htn Tui Giitnh S Htn Tui Gii tnh
AA 20 Nam BB 18 N
BB 18 N EE 20 Nam
CC 21 Nam DD 25 N
DD 25 N FF 21 Nam

R
S
Htn Tui Gii tnh R
S
Htn Tui Gii
tnh
AA 20 Nam BB 18 N
BB 18 N DD 25 N
CC 21 Nam
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 49
DD 25 N R S Htn Tui Gii
tnh
EE 20 Nam AA 20 Nam
FF 21 Nam CC 21 Nam
Hnh 3.7 Kt qu ca cc php ton tp hp

Ch rng cc php ton hp v giao l cc php ton giao hon, ngha l:
R S = S R v R S = S R
Cc php ton trn cng c tnh cht kt hp, ngha l
R (S T) = (R S) T v R (S T) = (RS) T
Php ton tr tp hp khng c tnh cht giao hon.
Ngoi cc php ton trn, cn c mt php ton gi l tch cc. Tch
cc cn gi l tch hn hp (cross product) hoc l ni hn hp (cross
join), c k hiu l . cng l mt php ton hai ngi nhng nhng
quan h m n p dng trn khng phi l tng thch ng nht. Php
ton ny c s dng ni cc b ca hai quan h vo mt kiu kt hp.
Kt qu ca R(A
1
, A
2
,.., An) S(B
1
, B
2
, ,Bm) l mt quan h Q vi n+m
thuc tnh
Q(A
1
, A
2
, , An, B
1
, B
2
, ,Bm). Quan h kt qu Q c cc b c
to thnh do s kt hp mt b ca R v mt b ca S. V d, xt hai quan h
R v S nh sau:

R
A1 A2 A3 S B1 B2 B3
aa bb cc dd da db
ab ba ac cd cb ac
Khi kt qu ca Tch cc s l:
R S
A1 A2 A3 B1 B2 B3
aa bb cc dd da db
aa bb cc cd cb ac
ab ba ac dd da db
ab ba ac cd cb ac
Hnh 3.8 Tch cc ca hai quan h R v S.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 50
Nh vy, nu R c nR b v S c nS b th R S c nR

* nS

b. Php
ton ny nu p dng mt mnh th khng c ngha my. N ch c li khi
tip theo bng mt php chn cc gi tr tng thch ca cc thuc tnh xut
pht t cc quan h thnh phn. Tch cc kt hp vi mt php chn cho
ta mt php ni.
e. Php ni (JOIN)
Php ni c k hiu l c dng kt hp cc b c lin h vi
nhau t hai quan h thnh mt b. Php ton ny rt quan trng i vi c s
d liu quan h c nhiu bng bi v n cho php ta x l cc mi lin kt
gia cc quan h. Dng tng qut ca php ni trn hai quan h R(A
1
, A
2
, ,
An) v S (B
1
, B
2
, , Bm) l
R S
< iu kin ni>
Kt qu ca php ni l mt quan h Q(A
1
, A
2
, , An, B
1
, B
2
, Bm)
c n+m thuc tnh theo th t . Mi b ca Q l mt s kt ni gia mt b
ca R v mt b ca S khi chng tho mn iu kin ni. S khc nhau gia
tch cc v php ni l ch trong php ni, ch c cc b tho mn iu
kin ni mi xut hin trong kt qu, trong khi trong tch cc mi t
hp ca cc b u c trong kt qu. iu kin ni c ch ra trn cc thuc
tnh ca hai quan h R v S v c tnh ton cho mi t hp cc b. Mi t
hp b m iu kin ni l ng c cha trong quan h kt qu Q nh l
mt b n. Mt iu kin ni tng qut c dng
<iu kin> AND <iu kin> AND ..AND <iu kin>
trong mi iu kin c dng Ai Bj, Ai l mt thuc tnh ca R, Bj
l mt thuc tnh ca S, Ai v Bj c cng min v l mt trong cc du php
ton so snh { <, , =, , >, }. Mt php ton ni vi iu kin tng qut
nh vy gi l mt php ni t-ta. Cc b c cc thuc tnh ni l null khng
xut hin trong kt qu. Theo ngha , php ton khng nht thit phi x l
mi thng tin trong cc quan h tham gia. V d v php ni:
Gi s ta c hai quan h R v S nh sau:

R A1 A2 A3 S B1 B2 B3
Aa Ca Ba Ba Aaa Bbb
Ab Cb Bb Bb Ccc Ddd
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 51
Ac Ca Ba
Ad Cc Null
Ae Cd Bb
kt qu php ni s l:
R S A1 A2 A3 B1 B2 B3
<A3=B1> Aa Ca Ba Ba Aaa Bbb
Ab Cb Bb Bb Ccc Ddd
Ac Ca Ba Ba Aaa Bbb
Ac Cd Bb Bb Ccc Ddd
Hnh 3.8 Php ni hai quan h

Phn ln cc php ni ch cho php cc iu kin ni vi cc so snh
bng. Nhng php ni ch s dng php so snh bng c gi l ni bng
(equi join). V d trong hnh 3.8 l mt php ni bng. Ch rng trong kt
qu ca php ni bng chng ta thy lun lun c mt hoc nhiu cp thuc
tnh c cc gi tr nh nhau trong mi b. Vic c cc cp thuc tnh c gi tr
nh nhau l tha, v vy ngi ta ngh mt php ni mi gi l ni t
nhin, k hiu l *.Php ni t nhin nhm loi b thuc tnh th hai (thuc
tnh tha) trong iu kin ni bng. nh ngha chun ca ni t nhin i hi
hai thuc tnh ni (hoc mi cp thuc tnh ni) phi c tn nh nhau trong c
hai quan h. Nu cc thuc tnh khng cng tn th trc khi ni phi p
dng php ton t li tn. V d, ta cn ni t nhin hai quan h NV
(MsDV, TnDV) v Dn(MsDA,TnDA, NVkimsot,..), trong
thuc tnh NVkimsot ng vai tr ca n v kim sot d n, ngha l
n c cng min gi tr vi thuc tnh MsDV ca quan h NV. c
th thc hin c php ni t nhin vi iu kin so snh bng, ta phi i
tn thuc tnh NVkimsot thnh MsDV, ngha l ta phi vit
NV *
(M sDA, TnDA, M sDV,..)
(Dn)
Nu cc thuc tnh m trn ni t nhin c ch ra c tn nh nhau
th vic t li tn l khng cn thit.
Ch rng nu khng c mt t hp cc b no tho mn iu kin ni
th kt qu ca mt php ni l mt quan h rng khng cha b no. Ni
chung, nu R c nR b v S c nS b th kt qu ca php ni R vi S s c
s cc b ln hn 0 v nh hn nR*nS. C ca mt kt qu ni chia cho c
cc i nR*nS to nn mt t k gi l chn la ni, l mt tnh cht ca
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 52
mi iu kin ni. Nu khng c iu kin ni, mi t hp cc b s c
chn v php ni tr thnh mt tch cc.
Php ni c s dng kt hp cc d liu t nhiu quan h sao cho
cc thng tin c lin h vi nhau c th c biu din trong mt bng. oi
khi php ni c p dng ni mt bng vi chnh n. Chng ta c th p
dng php ni t nhin v ni bng ni nhiu bng vi nhau. Nu ta ni n
bng vi nhau th phi ch ra n-1 iu kin ni.
f. Tp hp y cc php ton quan h
Ngi ta ch rng tp hp cc php ton i s quan h {, , , -,
}l mt tp y ; ngha l mi php ton i s quan h khc c th c
biu din thng qua cc php ton ca tp hp ny. V d, php giao c th
c biu din bng cch s dng cc php hp v tr tp hp nh sau:
R S (R S) ((R-S) (S R))
Nh vy, ni mt cch chnh xc l khng cn phi c php giao. Mi
khi cn thc hin mt php giao, ta ch cn a ra biu thc phc tp ny l
.
Mt v d khc, mt php ni c th c ch ra nh mt tch cc v
sau l mt php chn:
R S =
< iu kin chn>
(R S)
< iu kin ni>
Mt cch tng t, ta c th thay th php ni t nhin bng mt tch
cc i sau mt php t li tn v sau l cc php ton chn v chiu.
Nh vy cc php ton ni cng khng cn thit. Tuy nhin cc php ton
rt quan trng bi v chng tin dng v rt thng xuyn c p dng trong
cc c s d liu. Cc php ton c a vo trong i s quan h l do
tin dng hoqn l do cn thit. Mt php ton khc cng c a vo, l
php chia
g. Php chia
Php chia c li cho mt loi truy vn c bit i khi c cc ng dng
trong c s d liu. Php chia c p dng cho hai quan h R(Z) v S(X) v
c k hiu l R(Z) S(X), trong X Z.Gi s Y = Z X (nh vy
Z=X-Y).Kt qu ca php chia l quan h T(Y) cha mt b t nu cc b tR
xut hin trong R vi tR[Y] = t v vi tR[X] = tS vi mi b tS trong S. iu
c ngha l mt b t xut hin trong kt qu T ca php chia, cc gi tr
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 53
trong t phi xut hin trong R trong s kt ni vi mi b ca S.
V d:
R A B S A
a1 b1 a1
a2 b1 a2
a3 b1 a3
a4 b1
a1 b2
a3 b2
a2 b3
a3 b3
a4 b3 T B
a1 b4 b1
a2 b4 b4
a3 b4
Hnh 3.9 : minh ho php chia T(B) R(A,B) S(B).

Trong php chia trn, do cc b gi tr b1 v b4 xut hin trong R trong
s kt hp vi tt c ba b trong S, v vy chng xut hin trong quan h kt
qu T. Tt c cc gi tr khabs ca B trong R khng xut hin vi mi b
trong S v khng c chn
Php chia c th c biu din thng qua cc php ton , , -nh sau:
T
1

Y
(R) ; T
2

Y
((S T
1
) R) ; T T
1
T
2

3. Cc php ton quan h b sung
C nhiu truy vn c s d liu khng th thc hin c bng cc
php ton i s c bn trnh by trn. Trong phn ny chng ta s trnh by
cc php ton b sung biu din cc truy vn .Cc php ton ny lm
tng cng sc mnh ca i s quan h.
Cc hm nhm v cc php nhm
Kiu cu hi u tin khng th biu din c trong i s quan h c
s l ch ra cc hm nhm ton hc trn cc tp hp gi tr ca cc c s d
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 54
liu. Cc v d v cc hm nh vay c th l a ra lng trung bnh hoc
tng lng ca tt c nhn vin, hoc cho bit s cc b ca bng nhn vin.
Cc hm hay p dng thu thp cc gi tr s l hm Tng (SUM),
Trungbnh (AVERAGE), Tnh gi tr ln nht (MAX), Gi tr b nht (MIN).
Hm m (COUNT) c s dng m cc b gi tr.
Mt kiu cu hi hay dng khc l i hi nhm cc b trong mt quan
h theo mt gi tr ca mt s cc thuc tnh ca chng v sau p dng cc
hm nhm mt cch c lp cho tng nhm.. V d, nhm cc b ca quan h
NHNVIN theo Ms n v. Nh vy, mi nhm bao gm cc nhn vin
cng lm vic trong mt n v. Sau chng ta c th a ra mi gi tr ca
Ms n v cng vi lng trung bnh ca cc nhn vin trong n v.
Chng ta c th nh ngha mt php ton nhm nh sau:
< cc thuc tnh nhm>
< danh sch cc hm>
(R)
trong l k hiu hm nhm, < cc thuc tnh nhm> l mt mt
danh sch cc thuc tnh ca quan h c ch ra trong R, <danh sch hm>
l danh sch cc cp <hm(i s)>. Trong cc cp h vy, <hm> l mt
trong cc hm cho php nh SUM, AVERAGE, MAX, MIN, COUNT, v
<thuc tnh> l mt thuc tnh ca quan h c ch ra trong R. Quan h kt
qu c cc thuc tnh nhm cng vi mt thuc tnh cho mi phn t trong
danh sch hm. V d, ly ra theo MsDV s cc nhn vin v lng
trung bnh ca cc nhn vin, ta c th vit:
< MsDV>
COUNT (), AVERAGE(Lng)
(NHNVIN)
Kt qu c minh ho hnh 3.10
M s V COUNT() AVERAGE(Lng)
1 1 5500
4 3 3100
5 4 3325
Hnh 3.10 Minh ho php ton nhm

Nu khng ch ra thuc tnh nhm th cc hm c p dng cho cc gi
tr thuc tnh ca tt c cc b trong quan h; v vy quan h kt qu ch c
mt b. Cn ch rng, ni chung, cc trng lp khng c loi b khi hm
nhm c p dng. Kt qu ca vic p dng mt hm nhm l mt quan h
ch khng phi l mt i lng v hng, thm ch nu n ch c mt gi tr.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 55
Cc php ton khp kn quy
Mt kiu php ton khc, ni chung, khng ch ra c trong cc php
ton i s quan h c s l php ton khp kn quy. Php ton ny c
p dng cho mi lin kt quy gi cc b cng kiu.Vi cc php ton ny
chng ta phi s dng k thut lp.
Cc php ton ni ngoi (outer join) hp ngoi (outer union)
Trong phn ny chng ta tho lun mt vi m rng ca php ton ni
v hp. Cc php ton ni m t trn lin kt cc b tho mn iu kin ni.
Nh vy, cc b khng c b lin kt s b loi khi kt qu ni. Cc b vi
gi tr null trong cc tthuc tnh ni cng b loi. Mt tp hp cc php ton
gi l ni ngoi c th c s dng khi chng ta mun gi cc b trong R
hoc S hoc trong c hai quan h trong kt qu ca php ni d chng c
nhng b lin kt trong quan h kia hay khng. C ba php ni ngoi gi l
ni ngoi tri (left outer join), ni ngoi phi (right outer join)v ni ngoi
y (full outer join), c k hiu tng ng l:

Ni ngoi tri Ni ngoi phi Ni ngoi y
Php ni ngoi tri gi li mi b trong quan h bn tri R trong php
ni. Nu khng c b lin kt no c tm thy trong S th cc thuc tnh ca
S trong kt qu php ni c lm ybng cc gi tr null.
Tng t nh vy i vi cc php ni ngoi phi v cc php ni ngoi
y .
Php ton hp ngoi c m rng ly hp ca cc b t cc quan h
nu cc b khng tng thch ng nht. Php ton ny ch ly hp ca cc
quan h m chng ch tng thch b phn, ngha l ch mt vi thuc tnh
ca chng l tng thch php hp. iu phi tn trng l danh sch cc
thuc tnh tng thch phi cha mt kho cho cc hai quan h. Cc b t cc
quan h thnh phn vi cng mt kho ch c biu din mt ln trong kt
qu v c gi tr cho tt c cc thuc tnh trong kt qu. Cc thuc tnh khng
tng thch php hp t bt k quan h no cng c gi trong kt qu v
cc b khng c gi tr cho cc thuc tnh ny cng c lp y bng nhng
gi tr null.
IV. CHUYN I M HNH THC TH-LINKT THNH M
HNH QUAN H
Nh tho lun chng II, bc tip theo sau vic xy dng m
hnh d liu mc khi nim, ta phi chuyn i m hnh thnh mt m
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 56
hnh d liu l gic. Trong phn ny chng ta s tho lun v thut ton
chuyn i mt m hnh ER thnh ra m hnh quan h.
1. Cc quy tc chuyn i
Thut ton chuyn i c thc hin theo cc bc sau:
Bc 1 : Vi mi kiu thc th thng thng E trong lc ER, hy
to mt quan h R cha mi thuc tnh n ca E. Vi cc thuc tnh phc
hp, ch ly cc thuc tnh thnh phn n ca n. Chn mt trong cc thuc
tnh kho ca E lm kho chnh cho R. Nu kho c chn ca E l phc
hp (gm nhiu thuc tnh) th tp cc thuc tnh n s cng nhau to nn
kho chnh ca R.
V d: Gi s ta c kiu thc th NV vi cc thuc tnh l MsDV,
TnDV, aim trong cc thuc tnh kho l MsDV, TnDV (do mi
n v c mt tn duy nht), v aim l mt thuc tnh a tr (do mi n
v c nhi a im). Khi kiu thc th NV c chuyn thnh quan
h NV vi cc thuc tnh MsDV, TnDV. Kho chnh ca quan h l
MsDV (chn mt trong hai thuc tnh kho ca kiu thc th)
Bc 2: Vi mi kiu th th yu W trong lc ER cng vi kiu
thc th ch E, hy to mt quan h cha tt cc cc thnh phn n (hoc
cc thnh phn n ca cc thuc tnh phc hp) ca W nh l cc thuc tnh
ca R. a cc thuc tnh kho chnh ca cc quan h tng ng vi kiu
thc th ch lm kho ngoi ca R. Cc thuc tnh ny s xc nh kiu lin
kt ca W. Kho chnh ca R l mt t hp ca kho chnh ca cc quan h
tng ng vi kiu thc th ch v kho b phn ca kiu thc th yu W nu
c.
V d: Gi s ta c kiu lin kt NHNVIN <c> PHTHUC
trong NHNVIN l kiu thc th ch vi cc thuc tnh MsNV,
HtnNV, NgysinhNV, GiitnhNV.Thuc tnh kho ca NHNVIN l
MsNV.
PHTHUC l kiu thc th ph thuc (vo thc th NHNVIN) vi
cc thuc tnh l HtnPT, NgysinhPT, GiitnhPT, Miquanh. Kiu thc
th ny khng c thuc tnh kho. Khi kiu thc th NHNVIN c
chuyn thnh quan h NHNVIN vi cc thuc tnh nh trn. Kiu thc th
PHTHUC c chuyn thnh quan h PHTHUC vi cc thuc tnh
HtnNV, HtnPT, NgysinhPT, GiitnhPT, Miquanh. Quan h
ny c kho ngoi l HtnNV, kho chnh l HtnNV, HtnPT.
Bc 3: Vi mi kiu lin kt 1:1 R trong lc ER, hy xc nh cc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 57
quan h S v T tng ng vi cc kiu thc th tham gia trong R. Hy chn
mt trong cc quan h, chng hn S, v a kho chnh ca T vo lm kho
ngoi trong S. Tt nht l chn S l mt kiu thc th tham gia ton b vo R.
a tt cc cc thuc tnh n (hoc cc thnh phn n ca cc thuc tnh
phc hp) ca kiu lin kt 1:1 R vo lm cc thuc tnh ca S.
Ch : C mt cch chuyyn i mi lin kt 1:1 na nhp hia kiu thc
th v mi lin kt thnh mt quan h. Cch ny thng c p dng khi c
hai kiu thc th u tam gia ton b vo lin kt.
V d: Gi s ta c kiu lin kt NHNVIN <qun l> NV, vi
cc thuc tnh ca cc kiu thc th ging nh trn. Kiu linkt <qun l>
l mt kiu lin kt 1:1, ng thi s tham gia ca NHNVIN vo kiu lin
kt l b phn (khng phi nhn vin no cng qun l n v), s tham gia
ca NV l y (mt n v lun lun phi c mt ngi qun l). Khi
, kiu thc th NHNVIN s c chuyn thnh quan h NHNVIN
vi cc thuc tnh ca n, cn kiu thc th NV s c chuyn thnh
quan h NV vi cc thuc tnh ca kiu thc th NV cng thm vi
thuc tnh MsNV v thuc tnh ca kiu lin kt <qun l>, nu c. Thuc
tnh MsNV s l kho ngoi cho quan h NV
Bc 4: Vi mi kiu lin kt hai ngi R kiu 1:N, hy xc nh quan h
S biu din kiu thc th tham gia pha N ca kiu lin kt. a kho chnh
ca quan h T biu din kiu thc th tham gia vo R pha 1 vo lm kho
ngoi trong S. Lm nh vy l v mi thc th c th ca pha N c lin kt
vi nhiu nht l mt thc th c th ca pha 1 ca kiu lin kt. a cc
thuc tnh n (hoc cc thnh phn n ca cc thuc tnh phc hp) ca
kiu lin kt 1:N vo lm cc thuc tnh ca S.
V d: Gi s ta c kiu lin kt NHNVIN <lm vic cho>NV,
trong cc kiu thc th NHNVIN, NV l cc kiu thc th trn.
Kiu lin kt < lm vic cho> l kiu lin kt N:1 (mt nhn vin ch lm vic
cho mt n v v mi n v c nhiu nhn vin lm vic cho). Khi , Kiu
thc th NV s c chuyn thnh quan h NV vi cc thuc tnh
ca kiu thc th NV cn kiu thc th NHNVIN s c chuyn
thnh quan h NHNVIN vi cc thuc tnh ca kiu thc th NHNVIN
cng thm vi thuc tnh MsDV (l kho chnh ca quan h NV).
Thuc tnh MsDV s l thuc tnh kho ngoi ca quan h NHNVIN
Bc 5: Vi mi kiu lin kt N:M hai ngi R, hy to ra mt quan h
mi S biu din R. a cc kho chnh ca cc quan h biu din cc kiu
thc th tham gia vo lm kho ngoi ca S. T hp cc kho chnh s to
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 58
nn kho chnh ca S. a tt c cc thuc tnh n (hoc cc thnh phn n
ca cc thuc tnh phc hp) ca kiu lin kt N:M vo lm cc thuc tnh
ca S. Ch rng ta khng th biu din mt kiu lin kt N:M bng mt
thuc tnh kho ngoi n gin trong mt trong cc quan h tham gia (nh
lm vi cc kiu lin kt 1:1 v 1:N) v t s lc lng N:M.
V d: Gi s ta c kiu lin kt NHNVIN < lm vic vi> Dn.
Kiu thc th NHNVIN c cc thuc tnh nh trn vi thuc tnh kho l
MsNV. Kiu thc th Dn c cc thuc tnh l MsDA, TnDA,
aim trong thuc tnh kho l MsDA. Kiu lin kt < lm vic vi>
l mt kiu lin kt N:M (mt nhn vin c th lm vic vi nhiu d n v
mi d n c nhiu nhn vin lm vic vi).Kiu lin kt ny c mt thuc
tnh l Sgi lu s gi m mi nhn vin lm vic cho mt d n. Khi
kiu lin kt < lm vic vi> s c chuyn thnh mt quan h c tn l
NHNVIN_Dn vi cc thuc tnh MsNV, MsDA, Sgi trong
hai thuc tnh MsNV, MsDA to thnh kho chnh (phc hp) cho quan
h.
Bc 6: Vi mi thuc tnh a tr A, hy to ra mt quan h mi R.
Quan h R ny s cha mt thuc tnh tng ng vi A cng vi thuc tnh
kho K ca quan h biu din kiu thc th hoc kiu lin kt c thuc tnh l
A lm kho ngoi ca. Kho chnh ca R l mt t hp ca A v K. Nu
thuc tnh a tr l phc hp th chng ta ch a vo R cc thnh phn n
ca n.
V d: Xt kiu thc th NV trn. Thuc tnh aim l mt
thuc tnh a tr. khi chuyn thnh m hnh quan h n s c chuyn thnh
mt quan h c kho chnh l MsDV, a im v c th c thm mt s
thuc tnh khc lu thng tin v a im.
Bc 7: Vi mi kiu lin kt n ngi R, trong n>2, hy to ra mt
quan h S biu din R. a cc kho chnh ca cc quan h biu din cc
kiu thc th tham gia vo lm kho ngoi ca S. a tt c cc thuc tnh
n (hoc cc thnh phn n ca cc thuc tnh phc hp) ca kiu lin kt
n-ngi vo lm thuc tnh ca S. Kho chnh ca S thng l mt t hp cc
kho chnh ca cc quan h biu din cc kiu thc th tham gia. Tuy nhin,
nu rng buc lc lng trn mt kiu thc th E no tham gia vo R l 1
th kho chnh ca S khng c cha thuc tnh kho ngoi quy chiu n
quan h E tng ng vi E.
V d: Gi s chng ta c kiu lin kt i l <cung cp> vtt cho dn
y l mt kiu lin kt cp 3. Gi s rng kiu thc th Il c thuc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 59
tnh kho l MsDL, kiu thc th Vtt c thuc tnh kho l MsVT,
kiu thc th D n c thuc tnh kho l MsDA cn kiu lin kt <cung
cp> c thuc tnh l Slng lu s lng vt t m mt ai l cung cp
cho mt d n. Khi kiu lin kt <cung cp> s c chuyn thnh mt
quan h c tn l CUNGCP vi cc thuc tnh MsDL, MsVT, MsDA,
Slng v kho chnh gm ba thuc tnh MsDL, MsVT, MsDA.
2. Chuyn i m hnh c th
Trong chng 2 chng ta phn tch v thit k m hnh ER cho bi
ton CNGTY (Hnh v 2.6). p dng cc bc ca thut ton trn, chng
ta c m hnh quan h cho bi ton CNGTY nh sau:

NHNVIN(Hm, Tn, MsNV, Ngysinh, ach, Giitnh, Lng, MsNGS, MsV)
N V (TnV, MsV, MsNQL, Ngybtu)
NV_AIM (MsV, aimV)
DN(TnDA, MsDA, aimDA, MsV)
NHNVIN_DN(M sNV, M s DA, S gi)
PHTHUC(MsNV, TnPT, Giitnh, Ngysinh, Quanh)
Hinh 3.11. Lc c s d liu CNG TY

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 60
CHNG 4: PH THUC HM V CHUN HO
C S D LIU QUAN H

Trong chng ny chng ta s tho lun v mt s vn l thuyt
c pht trin nhm mc ch chn c lc quan h tt, ngha l o
c mt cch hnh thc v sao tp hp cc thuc tnh ny nhm vo trong cc
lc quan h th tt hn nhm kia. Chng ta c th ni n tnh ttca
cc lc quan h hai mc : mc th nht l mc lgic, mc th hai l
mc ci t. Mc th nht lin quan n vic cc ngi s dng th hin cc
lc quan h v ngha ca cc thuc tnh ca chng nh th no. Mc
th hai lin quan n vic cc b trong mt quan h c s c lu tr v cp
nht nh th no.
Vic thit k c s d liu c th c thc hin bng cch s dng hai
gii php: di ln (bottom-up) hoc trn xung (top-down). Phng php
thit k di ln xem cc mi lin kt c bn gia cc thuc tnh ring r nh
l im xut pht v s dng chng xy dng nn cc quan h.Gii php
ny cn c tn gi l thit k bng tng hp (design by synthesis). Ngc li,
phng php thit k trn xung bt u t mt s cc nhm thuc tnh trong
cc quan h nhn c t thit k quan nim v cc hot ng chuyn i.
Sau vic thit k bng phn tch c p dng i vi cc quan h mt
cch ring r v tp th dn n vic tch cc quan h cho n khi t c
tnh cht mong mun.
I. CC NGUYN TC THIT K LC QUAN H
1. Ng ngha ca cc thuc tnh quan h
Khi chng ta nhm cc thuc tnh to nn mt lc quan h, ta gi
thit rng c mt ngha no gn vi cc thuc tnh. ngha ny, hoc
ng ngha, ch ra vic hiu cc gi tr thuc tnh lu trong cc b ca mt
quan h nh th no. Ni cch khc, cc gi tr thuc tnh trong mt b lin
h vi nhau nh th no. Nu vic thit k khi nim c lm mt cch cn
thn, sau l mt chuyn i sang cc quan h th hu ht ng ngha
c gii thch v thit k kt qu c mt ngha r rng. Ni chung, vic
gii thch ng ngha ca quan h cng d dng th vic thit k lc quan
h cng tt. Nguyn tc sau s h tr cho vic thit k lc quan h.
Nguyn tc 1: Thit k mt lc quan h sao cho d gii thch
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 61
ngha ca n. ng gp cc thuc tnh t nhiu kiu thc th v kiu lin kt
vo mt quan h n. Mt cch trc quan, nu mt lc quan h tng
ng vi mt kiu thc th hoc mt kiu lin kt th ngha tr nn r rng.
Ngc li, mt quan h tng ng vi mt hn hp cc thc th v lin kt
th ngha tr nn khng r rng.
2. Thng tin d tha trong cc b v cp nht d thng
Mt mc tiu ca thit k lc l lm ti thiu khng gian lu tr
cc quan h c s. Cc thuc tnh c nhm vo trong cc lc quan h
c mt nh hng ng k n khng gian lu tr. Nu cng mt thng tin
duc lu gi nhiu ln trong c s d liu th ta gi l d tha thng tin v
iu s lm lng ph khng gian nh. Ngoi vic lng ph khng gian nh
n cn dn n mt vn nghim trng l cp nht bt thng. Cp nht bt
thng bao gm : Chn bt thng, Xo bt thng, Sa i bt thng.
Nhng cp nht bt thng ny s a vo c s d liu nhng thng tin
lv lm cho c s d liu mt tnh ng n.
Nguyn tc 2: Thit k cc lc quan h c s sao cho khng sinh ra
nhng cp nht bt thng trong cc quan h. Nu c xut hin nhng cp
nht bt thng th phi ghi chp li mt cch r rng v phi m bo rng
cc chng trnh cp nht d liu se thc hin mt cch ng n.
Cc gi tr rng trong cc b
Trong mt s thit k lc , chng ta c th nhm nhiu thuc tnh
vi nhau vo mt quan h bo. Nu nhiu thuc tnh khng p dng cho
mi b trong mt quan h, chng ta s kt thc vi nhiu gi tr null trong cc
b . iu c th lm tng khng gian mc lu tr v c th dn n
vn v hiu ngha ca cc thuc tnh v v vic ch ra cc php ni
mc l gic. Mt vn na vi cc gi tr null l khng p dng c cc
hm nhm nh count, sum. Hn na, cc gi tr null c th nhiu cch gii
thch, chng hn nh thuc tnh khng p dng c cho b ny, gi tr ca
thuc tnh cho b ny l khng c hoc gi tr cho thuc tnh l c nhng
vng mt. Tm li, c cng mt cch biu din cho moi gi tr null l tho
hip cc ngha khc nhau m chung c th c.
Nguyn tc 3: Trnh cng xa cng tt vic t vo trong cc quan h c
s nhng thuc tnh m cc gi tr ca chng thng xuyn l null. Nu
khng th trnh c cc gi tr null th phi m bo rng chng ch p dng
trong cc trng hp c bit v khng p dng cho mt s ln cc b trong
quan h.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 62
3. To ra cc b gi
Nhiu khi chng ta a vo c s d liu nhng quan h khng ng,
vic p dng cc php ton(nht l cc php ni) s sinh ra cc b gi tr
khng ng, gi l cc b gi.
Nguyn tc 4: Thit k cc lc quan h sao cho chng c th c
ni vi iu kin bng trn cc thuc tnh l kho chnh hoc kho ngoi theo
cch m bo khng sinh ra cc b gi. ng c cc quan h cha cc
thuc tnh ni khc vi cc t hp kho chnh-kho ngoi. Nu khng trnh
c nhng quan h nh vy th ng ng ni chng trn cc thuc tnh ,
bi v cc php ni c th sinh ra cc b gi.
II. CC PH THUC HM
Khi nim c bn nht trong thit k lc quan h l khi nim ph
thuc hm. Trong phn ny chng ta s nh ngha hnh thc khi nim ny
v cch s dng n nh ngha cc dng chun cho cc lc quan h
nh ngha ph thuc hm
Mt ph thuc hm l mt rng buc gia hai nhm thuc tnh ca mt
c s d liu. Gi s rng lc c s d liu ca ta c n thuc tnh
A
1
,A
2
,,An v ta hy ngh rng ton b c s d liu c m t bng mt
lc quan h chung R={A1, A2, ., An}. Bn ng suy ra rng c s d
liu ca chng ta s c lu tr trong mt bng chung, chng ta ch s dng
khi nim ny pht trin l thuyt hnh thc v s ph thuc d liu. Gi
s X v Y l hai tp con ca R, X Y = .
Mt ph thuc hm, k hiu l X Y, gia hai tp thuc tnh X v Y ch
ra mt rng buc trn cc b c th c to nn mt trng thi quan h ca R.
Rng buc l : vi hai b bt k t
1
v t
2
trong r, nu c t
1
[X] = t
2
[X] th
cng phi c t
1
[Y] = t
2
[Y]. iu c ngha l cc gi tr ca thnh phn Y
ca mt b trong R ph thuc vo, hoc c xc nh bi, cc gi tr ca
thnh phn X; ni cch khc, cc gi tr cua thnh phn X ca mt b xc
nh mt cch duy nht cc gi tr ca thnh phn Y. Chng ta cng ni rng
c mt ph thuc hm t X vo Y hoc Y ph thuc hm vo X. Ph thuc
hm c vit tt l FD (functional dependency). Tp thuc tnh X c gi
l v tri ca FD, tpp thuc tnh Y c gi l v phi ca FD.
Nh vy, X xc nh hm Y trong lc quan h R khi v ch khi nu
hai b ca r (R) bng nhau trn cc gi tr ca X th chng nht thit phi
bng nhau trn cc gi tr ca Y.Ta c cc nhn xt sau:

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 63
. Nu c mt rng buc trn cc trng thi ca R l ch c mt b gi tr
duy nht ca X trong mi th hin quan h r(R) th iu ko theo X Y
vi moi tp con cc thuc tnh Y ca R
. Nu X Y th khng th ni g v Y X
Mt ph thuc hm l mt tnh cht ng ngha ca cc thuc tnh.
Nhng ngi thit k c s d liu s dng hiu bit ca h v ngha ca
cc thuc tnh ca R ch ra cc ph thuc hm c th c trn mi trng thi
quan h ca r(R) ca R. Khi ng nghi ca hai tp thuc tnh trong R ch ra
rng c th c mt ph thuc hm, chng ta s c t ph thuc hm nh mt
rng buc. Cc trng thi quan h r(R) tho mn cc rng buc ph thuc hm
c gi l cc trng thi hp php ca R, bi v chng tun theo cc rng
buc ph thuc hm. Nh vy, vic s dng ch yu ca cc ph thuc hm
l dng m t mt lc quan h R bng vic ch ra cc rng buc trn
cc thuc tnh phi tho mn mi thi im.
Mt ph thuc hm l mt tnh cht ca lc quan h R ch khng
phi l tnh cht ca mt trng thi hp php r ca R. V vy, mt ph thuc
hm khng th c pht hin mt cch t ng t mt trng thi r m phi
do mt ngi hiu bit ng ngha ca cc thuc tnh xc nh mt cch r
rng. V d, ta c quan h sau

Dy Giovin Mnhc Tiliu
AA Mnhc 1 XX
AA Mn hc 2 YY
BB Mn hc 3 ZZ
CC Mn hc 4 TT

Mi nhn qua, chng ta c th ni c mt ph thuc hm Tiliu
Mnhc, tuy nhin chng ta khng th khng nh c v iu ch ng
vi trng thi quan h ny, bit u trong trng thi quan h khc c th c
hai mn hc khc nhau s dng cng mt ti liu tham kho. Vi mt trng
thi c th, chng ta ch c th khng nh l khng c mt ph thuc hm
gia nhm thuc tnh ny v nhm thuc tnh khc. lm iu chng ta
ch cn a ra mt phn v d. Chng hn, trong quan h trn chng ta c
th khng nh rng khng c ph thuc hm gia Giovin v Mnhc bng
cch ch ra v d l AA dy hai mn hc Mn hc 1v Mn hc 2vy
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 64
Gio vin khng th xc nh duy nht Mn hc.
biu din cc ph thuc hm trong mt lc quan h, chng ta s
dng khi nim s ph thuc hm. Mi FD c biu din bng mt
ng nm ngang. Cc thuc tnh v tri ca FD c ni vi ng biu
din FD bng cc ng thng ng, cc thuc tnh v phi c ni vi
ng biu din FD bng mi tn ch n cc thuc tnh

V d: Ta c lc quan h
Mn(Sth, Mssch, Tnngimn, Tnsch, Ngymn)
Vi cc ph thuc hm:
Sth Tnngimn
Mssch Tnsch
Sth, Mssch Ngymn
c s ph thuc hm nh sau:

Mn
Sth Mssch Tnngimn Tnsch Ngymn
FD1
FD2
FD3

Cc quy tc suy din i vi cc ph thuc hm
Chng ta k hiu F l tp cc ph thuc hm c xc nh trn mt
lc quan h R. Mt ph thuc hm X Y c gi l suy din c t
mt tp cc ph thuc hm F c xc nh trn R nu X Y ng trong mi
trng thi quan h r l m rng hp php ca R; ngha l mi khi r lm tho
mn mi ph thuc hm trong F, X Y cng ng trong r. Tp hp tt cc
cc ph thuc hm suy din c t F c gi l bao ng ca F v c k
hiu l F
+
. xc nh mt cch suy din cc ph thuc hm c h thng,
chng ta phi pht hin mt tp hp cc quy tc suy din. Tp quy tc ny s
c s dng suy din cc ph thuc hm mi t mt tp cc ph thuc
hm cho trc. Ta s dng k hiu F |= X Y k hiu ph thuc hm X
Y c suy din t tp cc ph thuc hm F. cho tin, ta vit tt ph thuc
hm c dng {X,Y} Z thnh XY Z (ngha l ta ni cc bin v b du
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 65
ngoc nhn i). C 6 quy tc suy din i vi cc ph thuc hm:
QT1 (quy tc phn x) : Nu X Y th X Y
QT2 (quy tc tng) : { X Y } |= XZ YZ
QT3 (quy tc bc cu) : { X Y, Y Z } |= X Y
QT4 (quy tc chiu) : { X YZ } |= X Y
QT5 (quy tc hp) : { X Y, X Z } |= X YZ
QT6 (quy tc ta bc cu): { X Y, WY Z } |= WX Z
Quy tc phn x pht biu rng mt tp hp cc thuc tnh lun lun xc
nh chnh n hoc mt tp con bt k ca n. V QT1 to ra cc ph thuc
lun lun ng, nhng ph thuc nh vy c gi l tm thng. Mt cch
hnh thc, mt ph thuc hm X Y l tm thng nu X Y; ngc li,
no c gi l khng tm thng. Quy tc tng ni rng vic thm cng mt
tp thuc tnh vo c hai v ca mt ph thuc hm s to ra mt ph thuc
hm c gi tr. Theo quy tc 3, cc ph thuc hm l bc cu. Quy tc chiu
(QT4) ni rng chng ta c th b bt cc thuc tnh ra khi v phi ca ph
thuc hm. Vic p dng nhiu ln quy tc ny c th tch ph thuc hm
X {A1, A2, ., An} thnh mt tp hp ph thuc hm { X A1, X A2,
., X An}. Quy tc hp cho php chng ta lm ngc li; ta c th gp
cc ph thuc hm { X A1, X A2, ., X An}thnh mt ph thuc
hm n X {A1, A2, ., An}.
C th chng minh cc quy tc suy din trn mt cch trc tip hoc
bng phn chng da trn nh ngha ca ph thuc hm. chng minh
phn chng, ta gi thit mt quy tc l khng ng v ch ra rng iu l
hkng th. Sau y l chng minh cc quy tc.
Quy tc 1:
Gi s rng X Y v hai b t1 v t2 trong mt th hin quan h r ca R
sao cho t
1
[X] = t
2
[X]. Khi t
1
[Y] = t
2
[Y] bi v X Y; nh vy X Y
phi xy ra trong r.
Quy tc 2 (chng minh phn chng):
Gi s rng X Y ng trong mt th hin quan h r ca R nhng
XZ YZ khng ng. Khi phi c hai b t
1
v t
2
trong r sao cho (1) t
1
[X]
= t
2
[X], (2) t
1
[Y] = t
2
[Y], (3) t
1
[XZ] = t
2
[XZ] v (4) t
1
[YZ] t
2
[YZ]. iu
l khng th bi v t (1) v (3) chng ta suy ra (5) t
1
[Z] = t
2
[Z], v t (2) v
(5) ta suy ra t
1
[YZ] = t
2
[YZ], mu thun vi (4).
Quy tc 3:
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 66
Gi s rng (1) X Y v (2) Y Z ng trong mt quan h r. Khi
vi mi b t
1
v t
2
trong r sao cho t
1
[X] = t
2
[X] ta phi c (3) t
1
[Y] = t
2
[Y]
theo gi thit (1). Nh vy chng ta cng phi c (4) t
1
[Z] = t
2
[Z] theo (3) v
gi thit (2). Vy X Z phi ng trong r.
Chng ta c th chng minh cc quy tc t QT4 n QT6 thao phng
php trn. Tuy nhin ta c th li dng cc quy tc c chng minh l
ng chng minh chng. Sau y ta chng minh theo cch y.
Quy tc 4:
1. X YZ (cho trc)
2. YZ Y (s dng QT1 v YZ Y)
3. X Y (s dng QT3 trn 1. v 2.)
Quy tc 5:
X Y (cho trc)
X Z (cho trc)
X XY (s dng QT2 trn 1. bng cch thm vo c hai v X, v
XX=X)
X YZ (s dng QT2 trn 2. bng cch thm vo c hai v Y)
X YZ (s dng QT3 trn 3. v 4.)

Quy tc 6:
X Y (cho trc)
WY Z (cho trc)
WX WY (s dng QT2 trn 1. bng cch thm vo c hai v W)
WX Y (s dng QT3 trn 3. v 2.)
Amstrong chng minh rng cc quy tc suy din t QT1 n QT3 l
ng v y . ng c ngha l cho trc mt tp cc ph thuc hm F trn
mt lc quan h R, bt k mt ph thuc hm no suy din c bng
cch p dng cc quy tc t QT1 n QT3 cng ng trong mi trng thi
quan h r ca R tho mn cc cc ph thuc trong F. y c ngha l vic
s dng cc quy tc t QT1 n QT3 lp li nhiu ln suy din cc ph
thuc hm cho n khi khng cn suy din c na s cho kt qu l mt tp
hp y cc ph thuc hm c th c suy din t F. Ni cch khc, tp
hp cc ph thuc hm F
+
(bao ng ca F) c th xc nh c t F bng
cch p dng cc quy tc suy din t QT1 n QT3. Cc quy tc t QT1 n
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 67
QT3 c gi l cc quy tc suy din Amstrong.
Thng thng, nhng ngi thit k c s d liu u tin ch ra mt
tp cc ph thuc hm xc nh c nh nga ngha ca cc thuc tnh
ca R.
Sau , s dng cc quy tc Amstrong suy din cc ph thuc hm b
sung. Mt cch c h thng xc nh tt c cc ph thuc hm b sung l
u tin hy xc nh mi tp thuc tnh X xut hin v tri ca mt ph
thuc hm no y trong F v sau xc nh tp hp tt c cc thuc tnh
ph thuc vo X. Nh vy, vi mi tp thuc tnh X, chng ta xc nh tp X
+
cc thuc tnh ph thuc hm vo X da trn F. X
+
c gi l bao ng ca
X di F. Thut ton xc nh X
+
nh sau:
Thut ton 4.1 (xc nh X
+
, bao ng ca X di F)
X
+
= X;
Repeat
Old X
+
= X
+
;
vi mi ph thuc hm Y Z trong F thc hin
M nu X
+
Y th X
+
= X
+
Z;
until (X
+
= Old X
+
);
V d : Xt lc quan h
R = {MsNV, HtnNV, MsDA, TnDA, aimDA, Sgi }
v tp ph thuc hm F = { MsNV HtnNV,
MsDA TnDA, aimDA,
{MsNV, MsDA} S gi }
p dng thut ton 4.1 ta c:
{ MsNV}
+
= { MsNV, HtnNV }
{ MsDA }
+
= { MsDA, TnDA, aimDA }
{MsNV, MsDA}
+
= {MsNV, HtnNV, MsDA, TnDA,
aimDA, Sgi }.
S tng ng ca cc tp ph thuc hm
Trong phn ny chng ta tho lun v s tng ng ca hai tp ph
thuc hm. Mt tp hp cc ph thuc hm E c ph bi mt tp cc ph
thuc hm F hoc F ph E-nu mi mt ph thuc hm trong E u trong
F
+
, iu c ngha l mi ph thuc hm trong E c th suy din c t F.
Hai tp ph thuc hm E v F l tng ng nu E
+
= F
+
. Nh vy tng
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 68
ng c ngha l mi ph thuc hm trong E c th suy din c t F v
mi ph thuc hm trong F c th suy din c t E.
Chng ta c th xc nh xem F c ph E hay khng bng cch tnh X
+

i vi F i vi mi thuc hm X Y trong E v sau kim tr xem X
+
ny
c cc thuc tnh trong Y hay khng. Nu iu xy ra vi mi ph thuc
hm trong E, th F ph E. Chng ta xc nh xen E v F c tng ng hay
khng bng cch kim tra E ph F v F ph E.
V d : Xt hai tp ph thuc hm
F = {A C, AC D, E AD, E H }
E = { A CD, E AH }
Ta chng minh F ph E :
Tm bao ng ca cc v tri ca cc ph thuc hm trong E theo F. p
dng thut ton 4.1 trn, ta c {A}
+
= { A, C, D }; {E}
+
= {E, A,D, H}, ta
thy cc bao ng ny cha cc v phi tng ng . T suy ra F ph E.
Ta chng minh E ph F :
Tm bao ng ca cc v tri ca cc ph thuc hm trong F theo E. Ta
c {A}
+
={A,C,D }, {AC}
+
= { A,C,D}, {E}
+
= { E,A,H}, ta thy cc bao
ng ny cha cc v phi tng ng . T suy ra E ph F.
Tm li E tng ng vi F.
Cc tp ti thiu cc ph thuc hm
Mt tp ph thuc hm l ti thiu nu n tho mn cc iu kin sau
y:
V phi ca cc ph thuc hm trong F ch c mt thuc tnh
Chng ta khng th thay th bt k mt ph thuc hm X A trong F
bng ph thuc hm Y A, trong Y l tp con ng ca X m vn cn l
mt tp ph thuc hm tng ng vi S.
Chng ta khng th b i bt k ph thuc hm no ra khi F m vn c
mt tp ph thuc hm tng ng vi F
Chng ta c th ngh v tp ti thiu cc ph thuc hm nh l mt tp
hp dng chun khng c s d tha. iu kin 1 m bo rng mi ph
thuc hm l dng chnh tc vi mt thuc tnh v phi. iu kin 2 v 3
m bo rng khng c s d tha trong cc ph thuc hoc do c cc thuc
tnh d tha v tri ca ph thuc, hoc do c mt ph thuc c th c
suy din t cc ph thuc khc trong F.
Mt ph ti thiu ca mt tp ph thuc hm F l mt tp ti thiu cc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 69
ph thuc hm Fmin tng ng vi F. Thng c rt nhiu cc ph ti
thiu cho mt tp cc ph thuc hm. Chng ta lun lun c th tm c t
nht l mt ph ti thiu G cho mt tp cc ph thuc hm F bt k theo thut
ton 4.2 sau y:
Thut ton 4.2 (Tm ph ti thiu G cho F).
t G := F;
Thay th mi ph thuc hm X {A
1
, A
2
, ., An} trong G bng n ph
thuc hm X A
1
, X A
2
, , X An
Vi mi ph thuc hm X A trong G,
vi mi thuc tnh B l mt phn t ca X
nu ((G-(X A) ((X {B}) A) l tng ng vi G
th thay th X A bng (X-{B}) A trong G
Vi mi ph thuc hm X A cn li trong G
nu (G { X A }) l tng ng vi G
th loi b X A ra khi G
III. CC DNG CHUN DA TRN KHO CHNH
Sau khi nghin cu cc ph thuc hm v mt s tnh cht ca
chng, by gi chng ta s s dng chng nh thng tin v ng ngha ca cc
lc quan h. Ta gi s rng mi mt quan h c cho trc mt tp cc
ph thuc hm v mi quan h c mt kho chnh. Trong phn ny chng ta
s nghin cu cc dng chun v qu trnh chun ho cc lc quan h
1. Nhp mn v chun ho
Qu trnh chun ho (do Codd ngh 1972) ly mt lc quan h
v thc hin mt lot cc kim tra xc nhn n c tho mn mt dng
chun no hay khng. Qu trnh ny c thuc hin theo phng php
trn xung bng vic nh gi mi quan h vi tiu chun ca cc dng chun
v tch cc quan h nu cn. Qu trnh ny c th xem nh l vic thit k
quan h bng phn tch. Lc u, Codd ngh ba dng chun gi l dng
chun 1, dng chun 2 v dng chun 3. Mt nh ngha mnh hn cho dng
chun 3 gi l dng chun Boyce-Codd do Boyce v Codd ngh mun hn.
Tt c cc dng chun ny da trn cc ph thuc hm gia cc thuc tnh
ca mt quan h. Sau , dng chun 4 (4NF) v dng chun 5 (5NF) c
ngh da trn cc ph thuc hm a tr v cc ph thuc hm ni.
Chun ho d liu c th c xem nh mt qu trnh phn tch cc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 70
lc quan h cho trc da trn cc ph thuc hm v cc kho chnh ca
chng t n cc tnh cht mong mun : (1) Cc tiu s d tha v (2)
cc tiu cc php cp nht bt thng. Cc lc quan h khng tho mn
cc kim tra dng chun s c tch ra thnh cc lc quan h nh hn
tho mn cc kim tra v c cc tnh cht mong mun. Nh vy, th tc
chun ho cung cp cho nhng ngi thit k c s d liu
. Mt c cu hnh thc phn tch cc lc quan h da trn cc
kho ca n v cc ph thuc hm gia cc thuc tnh ca n.
. Mt lot cc kim tra dng chun c th thc hin trn cc lc
quan h ring r sao cho c s d liu quan h c th c chun ho n mt
mc cn thit.
Dng chun ca mt quan h lin quan n iu kin dng chun cao
nht m n tho mn. Cc dng chun khi c xem xt c lp vi cc s
kin khc khng m bo mt thit k c s d liu tt. Ni chung, vic xc
minh ring bit tng lc quan h dng chun ny dng chun n l
cha . Tt hn l qu trnh chun ho thng qua php tch phi khng nh
mt vi tnh cht h tr m tt c cc lc quan h phi c. Chng gm hai
tnh cht sau:
. Tnh cht ni khng mt mt (hoc ni khng ph thm), n m bo
rng vnn to ra cc b gi khng xut hin i vi cc lc quan h
c to ra sau khi tch.
. Tnh cht bo ton s ph thuc, n m bo rng tng ph thuc hm
s c biu hin trong cc quan h ring r nhn c sau khi tch.
Tnh cht ni khng mt mt l rt quan trng, phi t c bng mi
gi, cn tnh cht bo ton ph thuc th cng rt mong mun nhng i khi
c th hy sinh.
a. Dng chun 1
Mt quan h c gi l dng chun 1 (1NF) nu min gi tr ca
mt thuc tnh ch cha cc gi tr nguyn t (n, khng phn chia c) v
gi tr ca mi thuc tnh trong mt b phi l mt gi tr n ly t min gi
tr ca thuc tnh . Nh vy, 1NF khng cho php c mt tp gi tr, mt b
gi tr hoc mt t hp ca c hai nh l mt gi tr thuc tnh cho mt b.
Ni cch khc, 1NF khng cho php cc quan h bn trong quan h hoc
cc quan h nh l cc thuc tnh ca mt b . N ch cho php cc gi tr
ca cc thuc tnh l nguyn t.
V d, cc quan h sau y khng tho mn iu kin 1NF.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 71

1) NV
(1)
MsDV
Tn DV Ngiqunl a im
DV1 n v 1 AA H ni, Bc ninh
DV2 n v 2 BB Hi phng
DV3 n v 3 CC Ngh an, H tnh

2) NHNVIN_dn
(a)
MsDA
TnDA TnNHNVIN Sgi
DA1 D n 1 AA
BB
15
20
DA2 D n 2 BB
CC
DD
10
12
28
DA3 D n 3 AA 20

Bng NV cha mt thuc tnh a tr, Bng NHNVIN_dn cha
cc quan h lng nhau, quan h trong quan h .
t n dng chun 1 i vi cc quan h trn chng ta dng
phng php sau :
Loi b cc thuc tnh vi phm dng chun 1 v t chng vo mt bng
ring cng vi kho chnh ca thuc quan h ban u. Kho chnh ca bng
ny l mt t hp ca Kho chnh ca quan h ban u v thuc tnh a tr
hoc kho b phn ca nhm lp.
V d:* Vi bng NV, ta chia lm hai bng: Bng th nht gm cc
thuc tnh MsDV, TnDV, Ngiqun l ; bng th hai gm cc thuc tnh
MsDV v aim.
* Vi bng NHNVIN_dn ta chia lm hai bng, bng th nht
gm cc thuc tnh MsDA, TnDA ; Bng th hai gm cc thuc tnh
MsDA, TnNHNVIN, S gi.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 72
b. Dng chun 2
Dng chun 2 (2NF) da trn khi nim ph thuc hm y . Mt ph
thuc hm X Y l mt ph thuc hm y nu loi b bt k thuc tnh
A no ra khi X th ph thuc hm khng cn ng na ; iu c ngha l,
vi thuc tnh A bt k, A X, (X-{A}) khng xc nh Y. Mt ph thuc
hm X Y l ph thuc b phn nu c th b mt thuc tnh A X, ra khi
X ph thuc hm vn ng ; iu c ngha l vi A X, (X-{A}) Y.
V d, xt lc quan h
NHNVIN_Dn (MsNV, MsDA, Sgi, HtnNV,
TnDA,aimDA)
Ph thuc hm MsNV, MsDA Sgi l ph thuc hm y
Ph thuc hm MsNV, MsDA HtnNV l ph thuc hm b
phn, bi v c ph thuc hm MsNV HtnNV
Vic kim trai vi 2NF bao gm vic kim tra i vi cc ph thuc
hm c cc thuc tnh v tri ca n l mt b phn ca kho chnh. Nu
kho chnh cha mt thuc tnh n th khng cn phi kim tra. Mt lc
quan h R l dng chun 2 nu mi thuc tnh khng kho A trong R l ph
thuc hm y vo kho chnh ca R.
Nu mt quan h khng tho mn iu kin 2NF ta c th chun ho n
c cc quan h 2NF nh sau : Loi b cc thuc tnh khng kho ph
thuc vo mt b phn kho chnh v tch thnh ra mt bng ring, kho
chnh ca bng l b phn kho m chng ph thuc vo.
V d, xt lc quan h
NHNVIN_Dn (MsNV, MsDA, Sgi, HtnNV,
TnDA,aimDA)
vi cc ph thuc hm
MsNV, MsDA Sgi
MsNV HtnNV
MsDATnDA,aimDA
Ta thy y c nhng thuc tnh khng kho ph thuc vo mt b
phn ca kho chnh, nh vy n khng tho mn iu kin 2NF. p dng
phng php chun ho trn, lc c tch thnh cc lc nh sau:
N_D1(MsDA, TnDA,aimDA)
N_D2(MsNV, HtnNV)
N_D3(MsNV, MsDA, Sgi)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 73
c. Dng chun 3
Dng chun 3 (3NF) da trn khi nim ph thucbc cu.Mt ph
thuc hm X Y trong mt lc quan h R l mt ph thuc hm bc cu
nu c mt tp hp thuc tnh Z khng phi l mt kho d tuyn cng khng
phi l mt tp con ca mt kho no v c hai X Z v Z Y u ng.
Theo nh ngha nguyn thu ca Codd, mt lc quan h R l 3NF nu
n tho mn 2NF v khng c thuc tnh khng kho no ca R l ph thuc
bc cu vo kho chnh.
Nu mt lc quan h khng tho mn iu kin 3NF, ta c th
chun ho n c c cc lc 3NF nh sau : Loi b cc thuc tnh
ph thuc bc cu ra khi quan h v tch chng thnh mt quan h ring c
kho chnh l thuc tnh bc cu.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 74
CHNG 5: GII THIU
NGN NG VN TIN C CU TRC SQL

Trong chng ny bn s tm hiu cc khi nim c bn v ngn ng
chun ca m hnh quan h, c gi l ngn ng vn tin c cu trc SQL
(Structured Query Langague). Ngn ng ny gm khong ba mi lnh v
c thit k lm vic vi bt c ng dng no cn x l d liu c lu
trong CSDL quan h. a s cc phn mm quan h h tr SQL, ng thi
nhiu nh cung cp phn mm pht trin thm cho tp lnh SQL c bn.
Do t kho SQL tng i t nn SQL tng i d hc. Tnh n gin
ca n c hon thin l do cc hot ng xut hin trong qu trnh s dng
c t chc hu trng CSDL. Chng hn, mt lnh SQL to ra mt tp
phc tp cc cu trc CSDL. Mt lnh n gin khc li to ra cc cu trc
bng phc tp cn cho lu tr v x l thnh cng d liu.
SQL l ngn ng phi th tc: ngi dng ch m t ci phi lm, khng
phi m t cch thc hin. S dng lnh SQL, ngi dng v cc lp trnh
vin khng cn phi bit khun dng lu tr vt l cng nh hot ng phc
tp c t chc khi lnh SQL thc hin.
Tuy nhin, cho d SQL hu dng v y nng lc, iu khng c
ngha l n hot ng c lp trong lnh vc ng dng. Nhp liu c th c
nhng khng tin li, sa v b sung d liu cng vy. SQL khng to ra cc
menu, cc khun dng bo co c th, cc menu xung hoc bt c mt
tin ch cng nh cc cng c mn hnh no khc thng c mong mun
bi ngi dng u cui. Ngc li, cc giao din c to ra bi cc lp
trnh vin ngn ng th h ba, hoc bi hng lot cc tin ch b sung c bit
cho php khai thc trit nng lc ca SQL. Bn s thy rng SQL lm cho
cc ng dng CSDL ca bn mnh ln; cc tin ch b sung s cho php bn
to ra cc giao din thn thin v trnh by cc kt qu ly t d liu hp dn
hn.
I. GII THIU SQL
V mt l thuyt, ngn ng CSDL phi cho php chng ta to ra cc cu
trc CSDL v bng; n phi cho php chng ta thc hin cc cng vic qun
l d liu c bn (b sung, xo, v sa d liu); ng thi n phi cho php
chng ta thc hin cc cu vn tin phc tp c thit k bin i d liu
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 75
thoo thnh thng tin hu dng. Hn na, n phi thc hin cc chc nng c
bn nh vy vi mt n lc ti thiu ca ngi dng, ng thi cu trc lnh
v c php ca n phi d hc. Cui cng, n phi d chuyn i; ngha l, n
phi tun theo mt chun no chng ta khng phi hc li qu nhiu khi
chng ta chuyn t mt RDBMS ny sang RDBMS khc.
SQL p ng tt cc yu cu ngn ng CSDL l tng ny. Trc ht,
nng lc ca SQL p ng c c ba loi:
nh ngha d liu to ra cu trc CSDL v cu trc bng ca n.
Qun l d liu dng mt tp cc lnh nhp, sa, xo v cp nht d liu
trong bng CSDL.
Vn tin d liu dng mt tp cc lnh kho st ni dung CSDL v cho
php ngi dng chuyn d liu th thnh thng tin hu ch.
Th hai, SQL tng i d hc: n thc cc chc nng CSDL cn thit
bi mt tp khong ba mi lnh c bn. Hn na, SQL l ngn ng phi th
tc: Bn ch phi cn yu cu ci phi lm, bn khng phi bn tm v cch
n lm nh th no.
Cui cng, Vin Tiu chun Quc gia M ANSI (American National
Standards Institute) quy nh cht ch mt chun SQL. Khng hn l chun
ANSI cht ch n mc tt c cc sn phm SQL thng mi khng th
tun theo n. Trn thc t, mt s nh cung cp tip nhn ngay chun
ANSI SQL 2, c ci t nm 1993. Do , him khi chuyn mt ng dng
t mt RDBMS ny sang mt RDBMS khc m khng phi to ra mt vi
thay i. Tuy nhin, cc phin bn SQL khc nhau dng chung cng mt tp
lnh v cu trc c bn, t cho php chng ta kt lun rng c mt chun
kh dng.
Chng ta s dng chun ny nh mt nn tng cho trnh by ca chng
ta

. Tuy nhin chng ta cng s trnh by mt s ci tin SQL, c bit l khi


cc ci tin cng c s dng rng ri gia nhiu nh cung cp RDBMS.
ng vi tht vng v s tn ti ca mt s phin bn SQL c th. Do
s khc bit gia cc phin bn SQL c th khng ln lm, bn ch phi thay
i mt cht iu chnh cc yu cu phn mm ca bn. Cho d bn s
dng XDB, ORACLE, dBASE IV, DB2, R:BASE trn DOS, OS/2 DataBase

Cc m t SQL chun c m t chi tit trong C. J. Date. Hng dn chun SQL, Addison-Wesley,
1987. C. J. Date hon ton t cch vit v cc chun; ng v E. F. Codd c mt lch s lu di v
hiu qu trong vic pht trin m hnh ca Codd thnh chun CSDL hin nay. Mt chun SQL chnh thc v
y hn ang c tip tc hon thin khi chng ti vit quyn sch ny: cc chun SQL ANSI hon
chnh hn nhiu s c cng b vo nm 1995.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 76
Manager ca IBM, hoc bt c mt phn mm RDBMS c thit lp ng
n no khc, kinh nghim ca chng ti l ch cn vi gi vi mt quyn s
tay phn mm l bn tng tc SQL nu bn bit cc ni dung c
trnh by trong chng ny. Tm li, kin thc bn nhn c trong chng
ny l kh dng.
C mt s l do chnh ng nghin cu nhng vn c bn ca
SQL:
N lc chun ho ANSI a n mt chun vn tin thc t cho CSDL
quan h. Trn thc t, nhiu chuyn gia CSDL quan h thin v khng
nh rng Khng c SQL khng phi l quan h.
SQL tr thnh c s cho nhng n lc hp nht DBMS hin nay v
trong tng lai gn, cho php chng ta lin kt cc CSDL quan h, mng v
phn cp.
SQL tr thnh cht xc tc trong qu trnh pht trin CSDL phn tn
v cc kin trc CSDL khch/ch. Chng ta s kho st qu trnh pht trin
ny trong chng 10.
II. CC LNH NH NGHA D LIU
Cc lnh nh ngha d liu c dng to cu trc CSDL v cc
bng trong CSDL. Trc ht l mt tin khng vui: To cu trc CSDL chnh
l mt c im gip phn bit r cc RDBMS vi nhau. Tin vui l tng i
d dng to ra cc cu trc CSDL rt phc tp vi bt k RDBMS no bn
dng.
1. To cu trc CSDL
Nu RDBMS ca bn s dng ci t SQL chun ANSI, to cu trc
CSDL lgic (lc ) c hon thnh bi dng lnh
CREATE SCHEMA AUTHORIZATION <ngi to>
Do nu ngi to l JONES, dng lnh
CREATE SCHEMA AUTHORIZATION JONES
a s cc RDBMS, bao gm DB2, XDB, v dBASE IV, s dng phin
bn
CREATE DATABASE <tn CSDL>
hi khc so vi phin bn CREATE SCHEMA c tha nhn trong
SQL chun ANSI nguyn gc.
Bn khng phi bn tm khi thy rng, tr qu trnh to CSDL, phn ln
cc th tc v lnh SQL c xu hng khc mt cht so vi trong SQL chun.
Tuy nhin, i khi bn c th gp mt s sai khc c php nh, v chng ti
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 77
s ch cho bn khun dng ca chng bng cch s dng cc hp ch gii nh
di y:
2. To cu trc bng
Sau khi to ra cu trc CSDL, chng ta c th to cu trc bng cho
cc bng thuc CSDL. trnh by cch thc hin chng ta to cu trc cho
hai bng vi tn INVENTRY v VENDOR tng ng.
(1) Bng 3.1 Ni dung ca bng INVENTRY
P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
13-Q2/P2
ZW-23116
2QQ23DRT
54778-2T
23114-AA
89-WRE-Q
2232/QWE
1546-QQ2
WWE/D324
2232/QTY
7.25in, power saw
blade
2.5in, wood screw,
100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in
fine
Sledge hammer,
12lb
Houselite chain
saw, 16in
B&D jigsaw, 8in,
blade
Hardware
cloth,1/4in,50ft
Claw hammer
B&D jigsaw, 12in,
blade
08/12/91
06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
08/14/91
08/12/91
11/26/90
32
237
188
43
8
11
6
15
23
8
15
100
75
20
5
5
3
5
10
3
14.99
8.45
5.87
4.99
14.40
256.99
99.87
39.95
5.95
109.92
21344
21231
21344
21344
21231
24288
24288
23119
21225
24288

Bng INVENTRY, ch ra trn bng 3.1, s c cu trc cha by
thuc tnh, vi tn tng ng l P_CODE, P_DESCRIPT, STOCK_DATE,
ON_HAND, MIN_QUANT, PRICE, v V_CODE. Lu cc c im thuc
tnh ca bng INVENTRY. Chng hn, P_CODE l mt xu hn hp cc k
t ch v s, ng thi chim ti a tm v tr. V P_CODE cha cc k t
nn n phi thuc kiu trng k t. Tng t, thuc tnh P_DESCRIPT l
trng k t c th gm ti hai nhm k t. Mt khc, thuc tnh
STOCK_DATE cha d liu ngy, trong khi cc thuc tnh ON_HAND,
MIN_QUANT v PRICE cha d liu s. Cui cng, chng ta phi xem xt
V_CODE:
Nu chng ta nh cho php my tnh to ra cc m nh cung cp mi
bng cch cng 1 vo m nh cung cp ghi ln nht, chng ta phi xem
V_CODE l thuc tnh s. (Bn khng th thc hin cc th tc ton trn d
liu k t!)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 78
Nu chng ta khng d nh thc hin cc th tc ton trn V_CODE,
chng ta c th gn cho n thuc kiu k t ngay c khi chng gm ton cc
k t s. Bn s thy rng d liu k t cho php vn tin nhanh hn. Do ,
nu khng cn thc hin cc th tc ton (cng, tr, nhn, chia...) trn thuc
tnh, nn lu n theo kiu k t.
Chng ta s s dng la chn (1) trnh by cc th tc SQL trong
chng ny.
Phn ln cc ci t SQL hin nay cho php phn loi cc c im thuc
tnh nh bng 3.2; mt s cn gm cc kiu d liu b sung nh kiu tin,
kiu k t vi di thay i, kiu k t vi di c nh v mt s kiu
khc.
Bng 3.2 Phn loi thuc tnh
Kiu M t
smallint Gi tr nguyn nh. Gi tr smallint khng cha du chm thp
phn v cha su (hoc t hn) ch s. S smallint m dnh mt
v tr cho du. Do , gi tr smallint thay i t 99999 n
999999.
integer Gi tr nguyn. Gi tr integer cha ti mi mt ch s. Nh vy
gi tr integer thay i t 9999999999 n 99999999999.
decimal Gi tr thp phn. Gi tr decimal c th cha cc v tr thp phn.
Thuc tnh thuc kiu decimal cn m t tng s ch s (gm c
du chm thp phn) v s dnh cho cc v tr thp phn. Chng
hn, m t decimal(6, 2) a ra khong gi tr c th c 99.99
ti 999.99
numeric S thp phn c th cha ti hai mi ch s, gm du chm
thp phn v cc v tr thp phn. Nh vy, cc gi tr nh
34256450967.85453567 l ph hp.
float S thp phn du chm ng c th cha ti mi chn ch s.
date Dng ngy Julian cho php dng cc php ton s hc ngy.
char Kiu (xu) k t cho php dng d liu xu trong khong t 1 n
254 k t.
logical C th nhn cc mc d liu true (T) hoc false (F)


BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 79
SQL chun khng h tr kiu d liu lgic (logical) v ngy (date). Tuy
nhin, nhiu RDBMS h tr d liu lgic, v tt c RDBMS hin nay u h
tr kiu ngy da vo bin i ton hc, t ng chuyn dng ngy chun
nh 11/24/92 thnh dng ngy Julian cho php chng ta thc hin tnh ton
s hc Julian. ng nh tn ca n, s hc ngy l qu trnh cho php chng
ta cng hoc tr ngy. Chng hn, php tr
12/01/92 08/12/90
hon ton hp l trong mi trng ngy Julian v a ra s ngy gia
12/01/92 v 08/12/90. Tng t, ngy su mi k t ngy 06/15/92 c th
c tnh ton bng cch
06/15/92 + 60
hoc ngy 90 k t ngy hin hnh trong h thng my tnh
SYSDATE + 90
S hc ngy hon ton tin li trong mi trng kinh doanh, c bit khi
chng ta mun tnh li trn tt c cc ho n cn n c trong khong thi
gian nhiu hn ba mi ngy k t ngy ghi trong ho n, hoc khi chng ta
mun tnh s ngy trung bnh mt sn phm nm trong kho.
p dng cc kiu trong bng 3.2 cho ni dung bng INVENTRY trong
bng 3.1, chng ta c th nh kiu cc thuc tnh nh trong bng 3.3. Dng
kiu thuc tnh trong bng 3.3, by gi chng ta c th to ra cu trc bng.
c mt nh ngha bng d c, chng ta t mi thuc tnh trn mt hng
ring bit:
CREATE TABLE INVENTRY ( P_CODE CHAR(8) NOT NULL,
P_DESCRIPT CHAR(25) NOT NULL,
STOCK_DATE DATE,
ON_HAND SMALLINT NOT NULL,
MIN_QUANT SMALLINT,
PRICE DECIMAL(7,2),
V_CODE SMALLINT);

Bng 3.3 Cc c im thuc tnh bng INVENTRY
Ct (thuc tnh) c im Yu cu c bit Ch thch
P_CODE char(8) Not null Ti a 8 k t
P_DESCRIPT char(25) Not null Ti a 25 k t
STOCK_DATE date Ngy Julian
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 80
ON_HAND smallint Not null Gi tr nguyn nm trong khong 0
1000
MIN_QUANT smallint Gi tr nguyn nm trong khong 0
1000
PRICE decimal(7,2) n v USD, gi tr trong khong 0.00 -
9999.99
V_CODE smallint M nh cung cp, gi tr nm trong
khong 1-1000
Nh rng chng ta dng m t NOT NULL khng nh rng kha
chnh ca bng khng th nhn gi tr null, theo m bo tnh ton vn
thc th. Nu m t NOT NULL khng c dng, v sau bng s chp nhn
mc d liu null, v bn s phi chp nhn thiu tnh ton vn thc th hoc
phi vit chng trnh duy tr ton vn thc th.
Khi kho st lnh bng c dng to cu trc bng INVENTRY, bn
lu cc c im sau y:
Cc m t thuc tnh c t trong cp du ngoc trn.
Cc m t thuc tnh tch nhau bi du phy.
Dy lnh chm dt vi du chm phy trong v d ny. (Nhng nh
rng, RDBMS ca bn c th yu cu bn b i du chm phy.)

Bng 3.4 Ni dung ca bng VENDOR
V_CODE V_COMPANY C_LNAME C_FNAME C_I V_PHONE
21231
24288
21344
23119
21225
J.I. Supplies, Inc
Harding Super
Wholesale
Q&D Building
Supplies
Charlies
Wholesale
Rathers
Building, Inc.
Fielding
Smith
Cavazos
Smithson
Smith
Anne
Stanley
Maria
Ronald
Sally
K.
G.
D.
W.
K.
666-233-
1281
800-213-
9999
800-333-
9011
212-667-
0090
800-234-
1200

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 81

V_ADDRESS V_CITY V_STATE V_ZIP
1233 Industrial Blvd. W
855 Temco Plaza
1452 West End. Suite 23B
125-C contract Circle
1117 Industrial Plaza
Indianapolis
Rockford
Dallas
Murfreesboro
Champaign
IN
IL
TX
TN
IL
21456
27122
31126
37129
22134

Bng th hai ca CSDL, VENDOR, cha d liu nh trong bng 3.4.
Cu trc bng VENDOR c to ra bi lnh sau:
CREATE TABLE VENDOR ( V_CODE SMALLINT NOT NULL,
V_COMPANY CHAR(25),
C_LNAME CHAR(12),
C_FNAME CHAR(10),
C_I CHAR(2),
V_PHONE CHAR(12),
V_ADDRESS CHAR(30),
V_CITY CHAR(20),
V_STATE CHAR(2),
V_ZIP CHAR(5));
3. Cc rng buc ton vn SQL
Trong chng 2 bn thy rng s tn trng cc quy tc ton vn
tham chiu v ton vn thc th l quan trng trong mi trng CSDL
quan h. May mn l phn ln cc ci t SQL u h tr c hai quy tc
ton vn ny. Chng hn, ton vn thc th c thc thi t ng nu
kha chnh c m t trong dy lnh CREATE TABLE. Do , chng
ta c th to cu trc bng VENDOR v chun b thc thi quy tc ton
vn thc th bi
CREATE TABLE VENDOR ( V_CODE SMALLINT NOT NULL,
V_COMPANY CHAR(25),
C_LNAME CHAR(12),
C_FNAME CHAR(10),
C_I CHAR(2),
V_PHONE CHAR(12),
V_ADDRESS CHAR(30),
V_CITY CHAR(20),
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 82
V_STATE CHAR(2),
V_ZIP CHAR(5)
PRIMARY KEY(V_CODE));
Chun b thc thi quy tc ton vn tham chiu c thit lp bi m t
kho ngoi trong lnh CREATE TABLE. Chng hn, chng ta c thc hin
nhim v ny bng cch to cu trc bng INVENTRY nh sau:
CREATE TABLE INVENTRY ( P_CODE CHAR(8) NOT NULL,
P_DESCRIPT CHAR(25),
STOCK_DATE DATE,
ON_HAND SMALLINT,
MIN_QUANT SMALLINT,
PRICE DECIMAL(7,2),
V_CODE SMALLINT
PRIMARY KEY(P_CODE),
FOREIGN KEY(V_CODE)
REFERENCES VENDOR);
Chng ta s thy trong chng 4 mnh kho ngoi v kha chnh ny
quan trng nh th no trong vic ci t m hnh E-R.
III. QUN L D LIU C BN
Trong phn ny bn s hc s dng cc lnh SQL sau y:


(b) Gii thch
INSERT Cho php bn chn d liu vo bng, mi hng mt ln.
Thng dng to mc d liu u tin cho cu trc bng mi
hoc b sung d liu cho bng ang cha d liu.

SELECT
Lit k ni dung bng. Thc t, SELECT l lnh vn tin ch khng
phi lnh qun l d liu. Tuy nhin, SELECT c gii thiu trong
phn ny v n cho php bn kim tra kt qu ca n lc qun l d
liu.
COMMIT Cho php bn lu kt qu lm vic ln a
UPDATE Cho php bn to s thay i d liu.
DELETE Cho php bn xo mt hoc nhiu hng d liu.
ROLLBACK Khi phc li ni dung CSDL v trng thi ban u (t sau
COMMIT cui cng c dng).

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 83
2. Nhp d liu
SQL yu cu dng lnh INSERT nhp d liu vo bng. Chng ta s
trnh by INSERT vi hai hng d liu u tin t bng INVENTRY c
ch ra trn bng 3.1:
13-Q2/P2
ZW-23116
25in, power saw blade
2.5in, wood screw, 100
08/12/91
06/25/91
32
237
15
100
14.99
8.45
21344
21231

nhp d liu ny, bn g
INSERT INTO INVENTRY VALUES(13-Q2/P2, 7.25in, power
saw blade, 08/12/91,32, 15, 14.99, 21344);
v nhn phm ENTER; sau g
INSERT INTO INVENTRY VALUES(ZW-23116, 2.5in, wood
screw, 100, 06/25/91,237, 100, 8.45, 21231);
v nhn li phm ENTER ln na.
Nhn xt rng
Ni dung hng c a vo gia cp du ngoc. (Lu rng k t u
tin sau VALUES l du m ngoc v k t cui cng trong dy lnh l du
ng ngoc)
Gi tr kiu ngy v kiu k t phi c a vo gia cp du nhy ().
Gi tr s khng cn bao bi du nhy.
Cc mc d liu tch nhau bi du phy.
R rng, nhp d liu hi rc ri trong mi trng SQL. Nh rng cc
ng dng ngi dng u cui c to ra tt nht vi cc tin ch c mn
hnh nhp liu hp dn (v d dng!).
3. Kim tra ni dung bng
kim tra ni dung bng ti mi thi im, dng lnh SELECT, km
theo sau l danh sch cc thuc tnh cn kim tra. Hoc nu bn mun kim
tra theo tt c thuc tnh, dng * ch ra tt c thuc tnh. (K hiu thay
th cho cc k t khc hoc cc lnh c gi l k t thay th). Chng hn,
mt trong hai dy lnh
SELECT * FROM INVENTRY
hoc
SELECT P_CODE, P_DESSCRIPT, STOCK_DATE, ON_HAND,
MIN_QUANT,
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 84
PRICE, V_CODE FROM INVENTRY
u to ra kt qu sau y:
P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
13-Q2/P2
ZW-
23116
7.25in, power
saw blade
2.5in, wood
screw, 100
08/12/91
06/25/91
32
237
15
100
14.99
8.45
21344
21231
Mc d cc lnh SQL c th c a vo trn mt dng duy nht, dy
lnh c xem l r rng d c nht (cu trc tt nht) khi cc thnh phn
ca lnh SQL c vit trn cc dng tch bit. V vy, chng ta s vit li
cc lnh nu trn nh sau:
SELECT *
FROM INVENTRY;
hoc
SELECT P_CODE, P_DESSCRIPT, STOCK_DATE,
ON_HAND, MIN_QUANT,
PRICE, V_CODE
FROM INVENTRY;
4. Lu ni dung bng
Mi thay i c to ra cho ni dung bng (nh cc gi tr c chn
vo) khng c lu vt l ln a cho n khi lnh
COMMIT <tn bng>
c dng, bn ng CSDL hoc bn thot khi SQL. Do , nu mt
in hoc mt ngt khc no t ngt xut hin trc khi bn thc hin
lnh COMMIT vi bng, ni dung bng c s c gi li. V vy, s l hu
dng nu lu ct hai bn ghi va c nhp vo bng INVENTRY bng lnh
COMMIT INVENTRY;
Lnh COMMIT thng dng lu cc kt qu b sung, thay i v xo
c to ra cho ni dung bng. Khi bn lu cu trc CSDL v bng vi
COMMIT, bn c th thot khi phn mm.

Lu : Mt s ci t SQL (chng hn


BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 85


Chng ti khng mun li mt n tng l vai tr chnh ca lnh
COMMIT l lu cc thay i. Trn thc t, mc ch c bn ca lnh
COMMIT v ROLLBACK (xem phn 3.3.7) l bo m ton vn cp nht
CSDL trong qun l giao dch. (Chng ta s kho st qun l giao dch trong
chng 9).
5. B sung d liu cho bng
Cho n gi, ch c hai hng u tin c lu vo trong bng
INVENTRY. Tm hng cn li c th c b sung bng cng mt dy lnh
INSERT INTO INVENTRY
VALUES(..., ..., ..., ...)
m chng ta dng a vo hai hng trn. Chng hn, hng th ba
s c b sung nh sau
INSERT INTO INVENTRY
VALUES(2QQ23DRT, PVC pipe, 3.5in, 8ft, 07/02/91, 188,
75, 5.87, 21344);
C tip tc nh vy a vo tng hng cn li, mi ln mt hng.
(ng bn tm v vic gy ra li; bn s hc cch sa li trong phn sau.)
Hy m bo l lu ni dung bng bng lnh COMMIT khi tt c cc hng
c a vo. Khi bn hon thnh, lnh
SELECT *
FROM INVENTRY
s ch ra ni dung bng kt qu:
Lu ngi dng dBASE IV 1.1: V SQL
khng c tch hp vo phn mm dBASE, bn
phi thot khi SQL trc, sau thoat khi
dBASE. Chng hn, nu bn dng SQL ca dBASE
IV, dng lnh








BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 86

P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
13-Q2/P2
ZW-
23116
2QQ23D
RT
54778-2T
23114-AA
89-WRE-
Q
2232/QW
E
1546-QQ2
WWE/D3
24
2232/QT
Y
7.25in, power
saw blade
2.5in, wood
screw, 100
PVC pipe,
3.5in, 8ft
Rat-tail file,
1/8in fine
Sledge
hammer, 12lb
Houselite chain
saw, 16in
B&D jigsaw,
8in, blade
Hardware
cloth,1/4in,50ft
Claw hammer
B&D jigsaw,
12in, blade
08/12/91
06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
08/14/91
08/12/91
11/26/90
32
237
188
43
8
11
6
15
23
8
15
100
75
20
5
5
3
5
10
3
14.99
8.45
5.87
4.99
14.40
256.99
99.87
39.95
5.95
109.92
21344
21231
21344
21344
21231
24288
24288
23119
21225
24288
6. Sa cha
Dng lnh UPDATE sa cc mc d liu. Chng hn, nu bn mun
thay i gi tr trng STOCK_DATE ca hng hai thnh 05/26/91, dng
kha chnh (ZW-23116) nh v ng hng th hai.
UPDATE INVENTRY
SET STOCK_DATE = 05/26/91
WHERE P_CODE = ZW-23116;
Nu nhiu hn mt thuc tnh cn c sa trn mt hng, tch cc php
sa cha bi du phy:
UPDATE INVENTRY
SET STOCK_DATE = 05/26/91, PRICE = 8.54, MIN_QUANT = 75
WHERE P_CODE = ZW-23116;
Kim tra li kt qu sa cha bng cch lit k bng vi lnh
SELECT *
FROM INVENTRY;
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 87
7. Xo hng
D dng xo mt hng. Chng hn, nu bn mun xo hng tm (gi tr
kho chnh P_CODE = 1546-QQ2 khi bng INVENTRY, dng lnh
DELETE FROM INVENTRY
WHERE P_CODE = 1546-QQ2;
Lu rng gi tr kha chnh cho php SQL nh v chnh xc bn ghi
cn xo. Thao tc xo khng ph thuc vo kha chnh: thuc tnh bt k c
th c dng. Chng hn,
DELETE FROM INVENTRY
WHERE MIN_QUANT = 5;
s xo ba hng.
8. Khi phc ni dung bng
Nu bn cha dng lnh COMMIT lm cho cc thay i trong ni
dung bng c nh li, bn c th khi phc li CSDL v trng thi trc
ca n vi lnh ROLLBACK. Lnh ROLLBACK khng yu cu bn m t
tn bng; SQL xem nh CSDL hin thi trong b phi c phc hi. V vy,
bn ch cn g
ROLLBACK
v nhn phm ENTER. Chng ta s kho st chi tit hn cch dng c
hai lnh COMMIT v ROLLBACK khi tho lun v qun l giao dch trong
chng 9.
IV. VN TIN
Mi cu vn tin u da trn lnh SELECT. Trn thc t, kim tra
cng vic ca mnh phn trc bn dng cu vn tin dng n gin nht,
SELECT *
FROM INVENTRY;
lit k tt c cc hng gm tt c cc ct trong bng m t. Trong
phn ny bn s bit cch iu chnh ph hp lnh SELECT bng cch b
sung cc hn ch cho yu cu tm kim. Vi cch SELECT, kt hp vi
cc hn ch tm kim thch hp, l mt cng c y nng lc s cho php bn
chuyn i d liu thnh thng tin.
Lu : Dng ROLLBACK phc hi tnh



BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 88
1. Lit k tng phn ni dung bng
Bn c th chn mt phn ni dung bng vi SELECT bng cch lit k
tn ca cc trng mong mun v t iu kin cho cc hng cn a ra. C
php di y s cho php bn m t cc gi tr bng cn a ra:
SELECT <danh sch ct>
FROM <tn bng>
WHERE <cc iu kin>;
Chng hn, cu vn tin
SELECT P_DESCRIPT, STOCK_DATE, PRICE, V_CODE
FROM INVENTRY
WHERE V_CODE = 21344;
s to ra kt qu
P_DESCRIPT STOCK_DATE PRICE V_CODE
7.25in, power saw blade
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
08/12/91
07/02/91
12/03/90
14.99
5.87
4.99
21344
21344
21344

Nhiu iu kin lgic c th c t ln ni dung bng c chn.
Theo cu trc lnh SQL m bo kh nng vn tin v cng linh hot.
Chng hn, cc k hiu ton hc nu trong bng 3.5 c th c dng hn
ch kt qu a ra. V d di y dng php ton khc (khng bng):
SELECT P_DESCRIPT, STOCK_DATE, PRICE, V_CODE
FROM INVENTRY
WHERE V_CODE <> 21344;
Kt qu a ra lit k tt c cc hng ng vi m nh cung cp khng
phi l 21344:
P_DESCRIPT STOCK_DATE PRICE V_CODE
2.5in, wood screw, 100
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
Hardware cloth,1/4in,50ft
Claw hammer
B&D jigsaw, 12in, blade
06/25/91
02/15/91
08/11/91
11/26/90
08/14/91
08/12/91
11/26/90
8.45
14.40
256.99
99.87
39.95
5.95
109.92
21231
21231
24288
24288
23119
21225
24288
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 89
v dy lnh
SELECT P_DESCRIPT, ON_HAND, MIN_QUANT, PRICE
FROM INVENTRY
WHERE PRICE <= 10;
s a ra kt qu

P_DESCRIPT ON_HAND MIN_QUANT PRICE
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Claw hammer
237
188
43
23
100
75
20
10
8.45
5.87
4.99
5.95

Bng 3.5 Cc ton t ton hc
K hiu ngha
= Bng
< Nh hn
<= Nh hn hoc bng
> Ln hn
>= Ln hn hoc bng
<> Khng bng
*

* Mt s phin bn SQL dng != thay
cho <>.
S dng cc ton t ton hc trn cc thuc tnh k t. V my tnh nhn
bit mi k t bng s l m chun ASCII ca n, nn cc ton t ton hc c
th c dng t cc hn ch cho cc thuc tnh da trn k t. V vy,
lnh
SELECT P_DESCRIPT, ON_HAND, MIN_QUANT, PRICE
FROM INVENTRY
WHERE P_CODE < 16-AAAAA;
s l ng v c th a ra mt danh sch tt c cc hng trong
P_CODE nh hn 16-2222AAAAA theo th t bng ch ci. (V gi tr
m ASCII ng vi ch ci B ln hn gi tr m ca ch ci A, suy ra rng A
nh hn B.) V vy, kt qu a ra s l
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 90
P_DESCRIPT ON_HA
ND
MIN_QU
ANT
PRICE
7.25in, power saw blade
Hardware cloth,1/4in,50ft
32
15
15
5
14.99
39.95

So snh xu k t c thc hin t tri qua phi. Kiu so snh t tri
qua phi ny c bit hu dng khi cc thuc tnh kiu nh cc tn c so
snh. Chng hn, xu Ardmore c th c nh gi ln hn xu
Aarenson nhng nh hn xu Brown; cc kt qu nh vy c th c
dng to ra cc danh sch xp theo th t bng ch ci nh kiu danh mc
in thoi.
Nu cc k t 0-9 c lu nh cc xu, cng mt so snh xu t tri qua
phi c th lm xut hin cc d thng. Chng hn, m ASCII ng vi k t
5 l, nh mong mun, ln hn m ASCII ng vi k t 4, nhng cng
chnh 5 li c nh gi ln hn xu 44 do k t u tin trong xu 44
nh hn 5. V l do ny bn c th nhn c kt qu khng nh mong
mun khi so snh gi tr ngy nu chng c lu theo kiu k t. Chng hn,
php so snh k t ASCII t tri qua phi c th kt lun rng ngy 01/01/91
xut hin trc ngy 12/31/90 do 01/01/91 nh hn 12/31/90 v k t bn
tri nht 0 trong xu 01/01/91 nh hn k t tri nht 1 trong xu
12/31/90. Mt cch t nhin, nu xu d liu c lu di dng
yy/mm/dd, cc php so snh s a ra kt qu thch hp, nhng t ngi mun
s dng cch biu din ngy khng chun . iu ny gii thch v ssao tt
c cc RDBMS hin nay u h tr kiu ngy, ng thi cng gii thch v
sao bn nn dng chng! (Hn na, bn tn dng c cc u im ca s
hc ngy nu bn dng kiu ngy.)
Dng cc ton t ton hc trn kiu ngy. Cc th tc ngy thng c
c im ring theo tng phn mm m khng phi l th tc SQL. Chng
hn, nu bn dng XDB, OS/2 EE Database Manager hoc DB2 cho my ln
mainframe ca IBM, cu vn tin da trn kiu ngy
Lit k tt c cc hng sn phm c ngy nhp kho la trong hoc trc
ngy 1 thng 7,
c dng nh sau:
SELECT *
FROM INVENTRY
WHERE STOCK_DATE >= 07/01/91;
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 91
Kt qu s l
P_CODE P_DESCRIPT STOCK_
DATE
ON_H
AND
MIN_QU
ANT
13-Q2/P2
2QQ23DRT
89-WRE-Q
1546-QQ2
WWE/D324
7.25in, power saw blade
PVC pipe, 3.5in, 8ft
Houselite chain saw, 16in
Hardware cloth,1/4in,50ft
Claw hammer
08/12/91
07/02/91
08/11/91
08/14/91
08/12/91
32
188
11
15
23
15
75
5
5
10

l lnh trn khng bao ngy vo trong cp du nhy n hoc kp.
Nu bn dng ORACLE, cu vn tin trn c vit nh sau
SELECT *
2 FROM INVENTRY
3 WHERE STOCK_DATE >= 07-JUL-91;
l ORACLE yu cu dng cp du nhy n v khun dng ngy
mc nh khc.
Khun dng ngy dBASE IV yu cu dng hm c bit c tn l CTOD
chuyn tp k t xu ngy thnh ngy Julian:
SELECT *
FROM INVENTRY
WHERE STOCK_DATE >= CTOD(07/01/91);
Nh dng cp du nhy bao quanh xu ngy.
2. Cc ton t lgic: AND, OR v NOT
SQL cho php dng cc hn ch lgic trong cc cu vn tin ca n.
Chng hn, nu bn mun nhn c mt danh sch gm cc mc ng vi gi
tr ca V_CODE hoc l 21344 hoc 24288, bn c th dng dy lnh sau
y:
SELECT *
FROM INVENTRY
WHERE V_CODE = 21344
OR V_CODE = 24288;
Lnh ny to ra su hng ph hp vi cc hn ch lgic:
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 92

P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
13-Q2/P2
2QQ23DRT
54778-2T
89-WRE-Q
2232/QWE
2232/QTY
7.25in, power saw blade
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
B&D jigsaw, 12in, blade
08/12/91
07/02/91
12/03/90
08/11/91
11/26/90
11/26/90
32
188
43
11
6
8
15
75
20
5
3
3
14.99
5.87
4.99
256.99
99.87
109.92
21344
21344
21344
24288
24288
24288

AND lgic c yu cu c php SQL tng t. Lnh di y to ra mt
danh sch tt c cc hng tho mn ng thi hai iu kin PRICE nh hn
50.000USD v STOCK_DATE l ngy xut hin trc 15 thng by nm
1991:
SELECT *
FROM INVENTRY
WHERE PRICE < 50
AND STOCK_DATE < 07/15/91;
Lnh ny s a ra kt qu di y:
P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
ZW-23116
2QQ23DRT
54778-2T
23114-AA
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
06/25/91
07/02/91
12/03/90
02/15/91
237
188
43
8
100
75
20
5
8.45
5.87
4.99
14.40
21231
21344
21344
21231
Bn c th kt hp OR v AND t thm cc hn ch cho kt qu a
ra. Chng hn, gi s bn mun c mt bng vi cc iu kin sau:
Gi tr STOCK_DATE trc ngy 15 thng 7 nm 1991 v gi PRICE
nh hn 50.000USD.
Hoc V_CODE l 24288.
Danh sch yu cu c th c to ra vi dy lnh
SELECT *
FROM INVENTRY
WHERE (PRICE < 50 AND STOCK_DATE < 07/15/91)
OR V_CODE = 24288;
Lu vic dng cc du ng m ngoc trn kt hp cc hn ch
lgic. Ni t cp du ngoc trn ph thuc vo th t u tin bn mun cc
hn ch c thc hin. Cc iu kin c lit k trong cp du ngoc trn
thng c thc hin trc. Bn hc v quy tc u tin ny trong i s
s cp v s hc: 2 + (3 5) = 17 v 3 5 = 15 v 2 + 15 = 17.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 93
Vic dng OR v AND lgic c th tr nn kh phc tp khi nhiu hn
ch c t trong cu vn tin. Trn thc t, mt lnh vc c bit trong ton
hc l i s Bool ng gp nhiu cho vic s dng cc cng c lgic.
Cu vn tin trn y a ra kt qu di y:

P_CODE P_DESCRIPT STOCK_DATE ON_HAN
D
MIN_QUANT PRICE V_CODE
ZW-23116
2QQ23DRT
54778-2T
23114-AA
89-WRE-Q
2232/QWE
2232/QTY
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
B&D jigsaw, 12in, blade
06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
11/26/90
237
188
43
8
11
6
8
100
75
20
5
5
3
3
8.45
5.87
4.99
14.40
256.99
99.87
109.92
21231
21344
21344
21231
24288
24288
24288

Lu rng ba hng vi V_CODE l 24288 lun c trong kt qu a ra
ng vi gi tr bt k ca STOCK_DATE v PRICE trong hng .
Nu phin bn SQL ca bn h tr ton t lgic NOT, bn phi dng c
php tng t nh OR hoc AND. Chng hn, nu bn mun xem mt danh
sch tt c cc hng tng ng vi m nh cung cp khng phi l 21344,
dng dy lnh
SELECT *
FROM INVENTRY
WHERE V_CODE NOT 21344;
NOT lgic c th kt hp vi AND v OR.
3. Cc ton t c bit
SQL chun ANSI cho php dng cc ton t c bit chung vi mnh
WHERE. Cc ton t c bit ny bao gm
BETWEEN, c dng nh ngha cc gii hn thay i
IS NULL, c dng kim tra xem mt gi tr thuc tnh c l null
hay khng.
LIKE, c dng kim tra i vi cc xu k t ging nhau.
IN, c dng kim tra xem gi tr thuc tnh c ph hp mt gi tr
trong mt tp cc gi tr c lit k hay khng.
EXIST, c dng kim tra mt thuc tnh c gi tr hay khng. Thc
t l EXIST l ngc ca IS NULL.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 94
Chng ta hy kho st cch s dng cc ton t ny.
Nu bn dng phn mm ci t SQL chun, iu kin
BETWEEN
c th c dng nh ngha cc gii hn thuc tnh. Chng hn, nu
bn mun bit mt danh sch tt c cc sn phm m gi ca n nm gia
50.00USD v 100.00USD, dy lnh di y s lm vic :
SELECT *
FROM INVENTRY
WHERE PRICE BETWEEN 50.00 AND 100.00;
Ci t SQL dBASE IV khng h tr BETWEEN, nhng bn c th
nhn c cng mt kt qu vi
SELECT *
FROM INVENTRY
WHERE PRICE > 50.00
PRICE < 100.00;
SQL chun cho php s dng IS NULL kim tra i vi gi tr thuc
tnh rng (hay null). Chng hn, gi s rng gi tr MIN_QUANT cha c
m t cho mt hoc nhiu sn phm trong bng INVENTRY. Mc null nh
vy c th c tm thy bi dy lnh
SELECT P_CODE, P_DESCRIPT
FROM INVENTRY
WHERE MIN_QUANT IS NULL;
Tng t, nu mc ngy null c kim tra, dy lnh
SELECT P_CODE, P_DESCRIPT
FROM INVENTRY
WHERE STOCK_DATE IS NULL;
s lm vic trong mi trng SQL chun.
SQL cho php bn dng cc k t thay th % v _ to ra xu tng
xng khi ton b xu khng c bit. Cc k t thay th % v _ c dng
nh cc k t thay th * v ? trong DOS. Tc l,
% mun ni rng mi k t bt k theo sau u hp l
_ mun ni mt k t bt k c th c thay th cho du gch di.
LIKE phi c dng kt hp vi k t thay th. Chng hn, cu vn tin
di dy c th tm tt c cc hng VENDOR ng vi cc hp ng c tn
cui bt u bng Smith.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 95
SELECT V_COMPANY, C_LNAME, V_PHONE
FROM VENDOR
WHERE C_LNAME LIKE Smith%;
Kt qu a ra l:
V_COMPANY C_LNAME V_PHONE
Harding Super Wholesale
Charlies Wholesale
Rathers Building, Inc.
Smith
Smithson
Smith
800-213-9999
212-667-0090
800-234-1200

Nhng gi s bn g vo cu vn tin di y:
SELECT V_COMPANY, C_LNAME, V_PHONE
FROM VENDOR
WHERE C_LNAME LIKE SMITH%;
Khng c hng no c in ra. iu g xy ra?
iu xy ra l cu vn tin da trn k t c th nhy cm vi dng ch.
Tc l, k t hoa c m ASCII khc k t thng, do lm cho SMITH,
Smith v smith c nh gi l cc xu khc nhau (khng bng). V trong
bng khng c ai vi tn cui bt u bng SMITH nn SMITH% (cc k
t in hoa) c dng trong vn tin khng th to ra xu tng xng. Cc xu
tng xng ch c th c to ra nu xu vn tin c vit chnh xc nh
xu trong bng.
Mt s RDBMS, chng hn XDB, t ng to ra cc quy c cn thit
loi b tnh nhy cm dng ch. S khc, nh ORACLE v dBASE IV,
cung cp mt hm UPPER c bit chuyn c hai xu k t bng v vn tin
v dng ch in hoa. (Quy c c hon thnh ch trong b nh my tnh; n
khng lm nh hng ti gi tr thc t lu trong bng.) Chnh v vy, nu
bn mun trnh kt qu khng tng xng da trn tnh nhy cm dng ch,
v nu bn RDBMS ca bn cho php s dng hm UPPER, bn c th to ra
cc kt qu ging nhau vi cu vn tin
SELECT V_COMPANY, C_LNAME, V_PHONE
FROM VENDOR
WHERE UPPER(C_LNAME) LIKE SMITH%;
Cu vn tin trn c th a ra mt danh sch gm tt c cc hng c tn
cui bt u vi Smith, cho d l xu k t hoa hay thng nh Smith,
SMith, smith, SMITH,...
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 96
Mt cch t nhin, cc ton t lgic c th dng kt hp vi cc k t
thay th. Chng hn, cu vn tin
SELECT V_COMPANY, C_LNAME, V_PHONE
FROM VENDOR
WHERE C_LNAME NOT LIKE Smith%;
s cho kt qu
V_COMPANY C_LNAME V_PHONE
J.I. Supplies, Inc
Q&D Building Supplies
Fielding
Cavazos
666-233-1281
800-333-9011

Gi s bn khng bit tn ca mt ngi no c nh vn l
Johnson hay Johnsen. K t thay th _ s cho php bn tm xu tng ng
cho c hai cch nh vn. Tm kim thch hp c lp ln bi cu vn tin
SELECT *
FROM VENDOR
WHERE C_LNAME LIKE Johns_n;
Nh vy cc k t thay th cho php chng ta to ra xu tng xng khi
ch bit gn ng v xu .
Nhiu cu vn tin dng vi OR lgic c th x l d dng hn vi s
gip owx ca ton t c bit N. Chng hn, cu vn tin
SELECT *
FROM INVENTRY
WHERE V_CODE = 21344
ORV_CODE = 24288;
c th c x l hiu qu hn vi
SELECT *
FROM INVENTRY
WHERE V_CODE IN (21344, 24288);
Nu thuc tnh nh tp k t, cc du nhy phi c s nh ngha
tp con. Chng hn, nu V_CODE c nh ngha l CHAR(5) trong
bc to bng, cu vn tin trn y c th vit li
SELECT *
FROM INVENTRY
WHERE V_CODE IN (21344, 24288);
EXIST c th c s dng bt c khi no c yu cu thc hin lnh
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 97
trn cc gi tr thuc tnh khng phi l null. Chng hn, cc hng
INVENTRY c th c xo vi
DELETE FROM INVENTRY
WHERE P_CODE EXIST;
hoc, nu bn mun lit k tt c cc hng ng vi cc m nh cung cp
hin c (khc null), bn c th dng
SELECT *
FROM INVENTRY
WHERE V_CODE EXIST;
V. CC LNH QUN L D LIU NNG CAO
Trong phn 3.2 bn hc cch to cu trc bng v nhp, sa, xo v
lit k d liu. Trong phn ny, bn s hc cch thay i cu trc bng bng
cch thay i cc c im thuc tnh v b sung ct. Sau bn s hc cch
nhp d liu vo cc ct mi va sa. Cui cng, bn s hc cch sao chp
bng hoc mt phn bng, cng nh cch xo bng.
Mi s thay i trong cu trc bng u s da trn lnh ALTER, km
theo sau l lnh to ra s thay i bn mong mun. C hai lnh thng dng
l MODIFY v ADD. Lnh MODIFY s cho php bn thay i cc c im
ct, cn lnh ADD s cho php bn b sung mt ct. Phn ln cc RDBMS s
khng cho php bn xo ct v thao tc ny c th xo d liu quan trng
c dng trong bng khc.
C php c bn ca lnh ALTER do c hai dng:
ALTER TABLE <tn bng>
MODIFY (<tn ct> <cc c im ct mi>);
hoc
ALTER TABLE <tn bng>
ADD (<tn ct mi> <cc c im ct mi>);

Lu : XDB khng dng cp cp du ngoc trn nh trn, do
cc dy lnh vit li tng ng l
ALTER TABLE <tn bng>
MODIFY <tn ct> <cc c im ct mi>;



BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 98
1. Thay i kiu d liu ca ct
Dng c php MODIFY va trnh by, thuc tnh V_CODE ca bng
INVENTRY c th c thay i t kiu nguyn thnh kiu k t vi lnh
ALTER TABLE INVENTRY
MODIFY (V_CODE CHAR(5));
Hoc, nu bn ang dng SQL XDB, g
ALTER TABLE INVENTRY
MODIFY V_CODE CHAR(5);
Mt s phin bn SQL (nh ORACLE) s khng cho php bn thay i
kiu d liu tr khi ct c thay i rng. Chng hn, nu bn mun thay
i trng V_CODE t kiu nguyn thnh kiu k t, lnh
ALTER TABLE INVENTRY
MODIFY (V_CODE CHAR(5));
s a ra thng bo li v ct V_CODE hin ang cha d liu. Nu ct
V_CODE khng cha d liu, dy lnh trn c th to ra thay i cho cu
trc bng mong mun.
2. Thay i c im thuc tnh
Nu ct cn thay i ang cha d liu, bn c th to ra bt c s thay
i no trn cc c im ct nu cc thay i khng lm thay i kiu d
liu. Chng hn, nu bn mun tng rng ca ct PRICE thnh tm ch s,
dng lnh
ALTER TABLE INVENTRY
MODIFY (PRICE DECIMAL(8,2));
Nu by gi bn lit k li ni dung, bn s thy rng rng ct PRICE
tng ln mt ch s. Nh rng, phin bn SQL ca bn c th khng dng
cp du ngoc trn:
ALTER TABLE INVENTRY
MODIFY PRICE DECIMAL(8,2);
3. B sung ct cho bng
Bn c th thay i bng hin ti vi vic b sung mt hoc nhiu ct.
Trong v d di y, chng ta s b sung ct c tn SALE_CODE cho bng
INVENTRY. (Chng ta s dng ct ny v sau xc nh xem c hay khng
mt sn phm c sn trong kho ng vi mt khong thi gian no c
bn trong mt thng v c th.)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 99
Gi s chng ta mun cc mc SALE_CODE l 1, 2, hoc 3. V chng
ta s khng thc hin cc php ton s hc vi SALE_CODE nn
SALE_CODE s c nh kiu l thuc tnh k t n. Lu s bao gm tt
c thng tin yu cu trong lnh ALTER di y:
ALTER TABLE INVENTRY
ADD (SALE_CODE CHAR(1));
Mt s phin bn SQL (chng hn ca XDB) c th b qua cp du
ngoc trn:
ALTER TABLE INVENTRY
ADD SALE_CODE CHAR(1);
4. Nhp d liu cho ct mi
a d liu vo trong mt phn ca hng, SQL dng lnh UPDATE.
Lnh INSERT chng ta dng trc y khng a ra cch xc nh v tr cc
mc d liu ct c th; hoc mt hng y hoc khng c hng no c
a vo. Chng hn, a gi tr 2 ca thuc tnh SALE_CODE vo hng
bn, dng lnh UPDATE kt hp vi kha chnh P_CODE 54778-2T
hon thnh cng vic. (Kim tra ni dung bng gc v lu rng P_CODE =
54778-2T nh danh hng bn!) Nhp gi tr vi dy lnh
UPDATE INVENTRY
SET SALE_CODE = 2
WHERE P_CODE = 54778-2T;
Lnh di y vi bng thay i kim tra nh hng ca lnh nu trn:
SELECT P_DESCRIPT, STOCK_DATE, SALE_CODE
FROM INVENTRY
WHERE P_CODE = 54778-2T;
a ra kt qu
P_DESCRIPT STOCK_DATE SALE_CODE
Rat-tail file, 1/8in fine 12/03/90 2

Dy d liu c th c nhp vo bi cng mt cch, xc nh tng v tr
mc d liu vi kha chnh P_CODE v v tr ct ca n SALE_CODE.
Chng hn, nu chng ta mun nhp gi tr SALE_CODE 1 ng vi cc gi
tr P_CODE l 2232/QWE v 2232/QTY, chng ta dng
UPDATE INVENTRY
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 100
SET SALE_CODE = 1
WHERE P_CODE IN (2232/QWE, 2232/QTY);
Hoc nu RDBMS ca bn khng h tr IN, dng hai lnh di y:
UPDATE INVENTRY
SET SALE_CODE = 1
WHERE P_CODE = 2232/QWE;
UPDATE INVENTRY
SET SALE_CODE = 1
WHERE P_CODE = 2232/QTY;
Kt qu c th c kim tra vi lnh
SELECT P_DESCRIPT, STOCK_DATE, SALE_CODE
FROM INVENTRY;
a ra kt qu

P_DESCRIPT STOCK_DATE SALE_CODE
7.25in, power saw blade
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
Hardware cloth,1/4in,50ft
Claw hammer
B&D jigsaw, 12in, blade
08/12/91
06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
08/14/91
08/12/91
11/26/90



2


1


1

Mc d dy UPDATE va ch ra cho php chng ta b sung d liu vo
cc bng ch r, qu trnh rt phc tp. May mn l, nu mi quan h c
th c thit lp gia cc mc d liu v cc ct hin c, mi quan h c
th c dng gn cc gi tr vo cc thch hp ca chng. Chng hn,
gi s rng chng ta mun t m bn hng da trn STOCK_DATE vo
bng, dng lch sau:
STOCK_DATE SALE_CODE
trc 01/01/91 2
trong khong 01/01/91 n 07/01/91 1
Hai dy lnh di y s to ra cc php gn thch hp. (Lu : Mt s
phin bn SQL yu cu khng dng cc ngoc nhn hoc du nhy cho gi tr
ngy!)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 101
UPDATE INVENTRY
SET SALE_CODE = 2
WHERE STOCK_DATE < 01/01/91;
UPDATE INVENTRY
SET SALE_CODE = 1
WHERE STOCK_DATE >= 01/01/91
STOCK_DATE < 07/01/91;
Kim tra kt qu gn nh di y:
SELECT P_DESCRIPT, STOCK_DATE, SALE_CODE
FROM INVENTRY;
Kt qu a ra l
P_DESCRIPT STOCK_DATE PRICE SALE_CODE
7.25in, power saw blade
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
Hardware cloth,1/4in,50ft
Claw hammer
B&D jigsaw, 12in, blade
08/12/91
06/25/91
07/02/91
12/03/90
02/15/91
08/11/91
11/26/90
08/14/91
08/12/91
11/26/90
14.99
8.45
5.87
4.99
14.40
256.99
99.87
39.95
5.95
109.92

1

2
1

2


2
(Lu cc thay i bi lnh COMMIT.)
5. Sao chp mt phn bng
V sau bn s thy rng c th cn phi tch cu trc bng thnh mt s
phn no khi n khng tha mn mt kim tra thit k no . May mn
l, SQL cho php chng ta sao chp ni dung ca cc ct chn sang cc
bng mi va c to ra trnh phi nhp li d liu mt cch th cng.
sao chp cc ct chn t mt bng, trc ht cn to cu trc bng
mi nhn d liu. Chng hn, nu bn mun sao chp P_CODE v PRICE
t bng INVENTRY sang bng mi c tn l TEMP_1, trc ht cn to ra
cu trc bng TEMP_1 nh di y.
CREATE TABLE TEMP_1 ( PART_CODE CHAR(8) NOT NULL,
PRICE DECIMAL(8,2));
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 102
Nh rng cc tn ct ca bng TEMP_1 khng trng vi cc tn ct ca
bng gc v bng mi khng nht thit phi c s ct bng s ct ca bng
gc. Khi , ct u tin trong bng TEMP_1 c t tn l PART_CODE,
m khng phi l P_CODE c trong bng INVENTRY; ng thi bng
TEMP_1 ch cha hai ct, khng phi by ct nh trong bng INVENTRY.
Tuy nhin, cc c im ct phi tng xng; bn khng th sao chp thuc
tnh kiu k t vo cu trc s, v ngc li.
Sau khi to c bng nhn, sao chp cc gi tr ct tng ng vo
bng TEMP_1 mi to ra bi dy lnh
INSERT INTO <Bng nhn> (Danh sch tn ct ca bng nhn)
SELECT <Danh sch tn ct ca cc ct cn sao chp>
FROM <Tn bng gc>
Do , chng ta dng
INSERT INTO TEMP_1 (PART_CODE, PRICE)
SELECT P_CODE, PRICE FROM INVENTRY;
Ni dung ca bng TEMP_1 by gi c th c kim tra bi cu vn tin
SELECT * FROM TEMP_1;
lit k ni dung ca mi TEMP_1:
PART_CODE PRICE
13-Q2/P2
ZW-23116
2QQ23DRT
54778-2T
23114-AA
89-WRE-Q
2232/QWE
1546-QQ2
WWE/D324
2232/QTY
14.99
8.45
5.87
4.99
14.40
256.99
99.87
39.95
5.95
109.92
Trong chng 5 bn s thy tm quan trng ca sao chp mt phn bng
trong ci gi l qu trnh chun ho.
6. Xo bng khi CSDL
Mt bng c th b xo khi CSDL bi lnh DROP. Chng hn, chng ta c
th xo bng TEMP_1 va to vi
DROP TABLE TEMP_1;
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 103
VI. VN TIN PHC TP V CC HM SQL
Mt trong nhng u im quan trng nht ca SQL l kh nng cho
php ngi dng to ra cc cu vn tin phc tp vi nhiu dng khc nhau.
Cc ton t lgic c gii thiu phn trc cp nht ni dung bng
cng s ch lm vic trong mi trng vn tin. Ngoi ra, SQL cn cung cp
cc hm hu ch m, tm gi tr nh nht v ln nht, tnh gi tr trung
bnh... Hn th na, SQL cng cho php ngi dng hn ch cc cu vn tin
i vi cc mc d liu khng trng lp hoc cc mc trng lp ca n c th
c nhm li.
1. Sp xp danh sch
Mnh ORDER BY ca SQL c bit hu dng nu th t lit k quan
trng i vi bn. C php
ORDER BY <thuc tnh>
to ra mt danh sch theo th t tng dn. Nu danh sch cn ch ra theo
th t gim dn, dng
ORDER BY <thuc tnh> DESC
Chng hn, nu bn mun ni dung ca bng INVENTRY c lit k
bi PRICE theo th t tng dn, dng
SELECT *
FROM INVENTRY
ORDER BY PRICE;
a ra kt qu nh di y.

P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
54778-2T Rat-tail file, 1/8in fine 12/03/1990 43 20 4.99 21344
2QQ23DRT PVC pipe, 3.5in, 8ft 07/02/1991 188 75 5.87 21344
WWE/D324 Claw hammer 08/12/1991 23 10 5.95 21225
ZW-23116 2.5in, wood screw, 100 06/25/1991 237 100 8.45 21231
23114-AA Sledge hammer, 12lb 02/15/1991 8 5 14.4 21231
13-Q2/P2 7.25in, power saw blade 08/12/1991 32 15 14.99 21344
1546-QQ2 Hardware cloth,1/4in,50ft 08/14/1991 15 5 39.95 23119
2232/QWE B&D jigsaw, 8in, blade 11/26/1990 6 3 99.87 24288
2232/QTY B&D jigsaw, 12in, blade 11/26/1990 8 3 109.92 24288
89-WRE-Q Houselite chain saw, 16in 08/11/1991 11 5 256.99 24288

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 104
So snh danh sch ny vi ni dung bng thc t trong bng 3.1 v lu
s thay i theo th t c lit k: sn phm gi thp nht by gi c
ng u tin, tip theo l cc sn phm gi thp nht tip theo... Bn nn bit
rng ORDER a ra qu trnh sp xp lgic; ni dung bng thc t khng b
nh hng bi lnh ORDER.
Tip theo, g dng lnh
SELECT *
FROM INVENTRY
ORDER BY PRICE DESC;
v kho st kt qu a ra:
P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
89-WRE-Q Houselite chain saw, 16in 08/11/1991 11 5 256.99 24288
2232/QTY B&D jigsaw, 12in, blade 11/26/1990 8 3 109.92 24288
2232/QWE B&D jigsaw, 8in, blade 11/26/1990 6 3 99.87 24288
1546-QQ2 Hardware cloth,1/4in,50ft 08/14/1991 15 5 39.95 23119
13-Q2/P2 7.25in, power saw blade 08/12/1991 32 15 14.99 21344
23114-AA Sledge hammer, 12lb 02/15/1991 8 5 14.4 21231
ZW-23116 2.5in, wood screw, 100 06/25/1991 237 100 8.45 21231
WWE/D324 Claw hammer 08/12/1991 23 10 5.95 21225
2QQ23DRT PVC pipe, 3.5in, 8ft 07/02/1991 188 75 5.87 21344
54778-2T Rat-tail file, 1/8in fine 12/03/1990 43 20 4.99 21344

Nu bn mun to ra mt danh mc in thoi, c l l hu dng nu
bn a ra dy c sp th t (tn cui, tn u, k t u ca tn m) theo
ba bc:
Sp xp theo tn cui.
Trong cc tn cui, sp xp theo tn u.
Trong cc tn c sp theo bc 2, sp xp theo k t u ca tn m.
Dy c sp a mc nh vy c gi l dy c sp theo tng, n
c to ra mt cch d dng bi vic lit k danh sch thuc tnh, cch nhau
bi du phy, sau mnh ORDER BY:
ORDER BY <thuc tnh 1, thuc tnh 2, ...>
(Khi nim tng c dng m t iu kin theo php sp xp
lgic c thc hin theo bc.) Chng hn, lnh
SELECT C_LNAME, C_FNAME, C_I, V_PHONE
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 105
FROM VENDOR
ORDER BY C_LNAME, C_FNAME, C_I;
s a ra kt qu di y:
C_LNAME C_FNAME C_I V_PHONE
Cavazos Maria D. 800-333-9011
Fielding Anne K. 666-233-1281
Smith Sally K. 800-234-1200
Smith Stanley G. 800-213-9999
Smithson Ronald W. 212-667-0090

Mnh ORDER BY hu dng trong nhiu ng dng, c bit khi iu
kin DESC c s dng. Hy xem xt kh nng khi kim tra ngy n hn
ho n theo th t gim dn, kim tra cc hng mc ngn sch cc c quan
chnh ph theo s lng, hoc kho st mt s bt k cc giao dch ti chnh.
Chng ta cng c th dng mnh ORDER BY kt hp vi cc lnh
SQL khc. Chng hn, cch dng cc hn ch trong dy lnh di y:
SELECT P_DESCRIPT, V_CODE, STOCK_DATE, PRICE
FROM INVENTRY
WHERE STOCK_DATE < 07/15/91
AND PRICE <= 50.00
ORDER BY V_CODE, PRICE DESC;
Kt qu a ra s l danh sch di y:
P_DESCRIPT V_CODE STOCK_DATE PRICE
Sledge hammer, 12lb 21231 02/15/1991 14.40
2.5in, wood screw, 100 21231 06/25/1991 8.45
PVC pipe, 3.5in, 8ft 21344 07/02/1991 5.87
Rat-tail file, 1/8in fine 21344 12/03/1990 4.99

Nhn xt rng bn trong V_CODE u tin cc gi c lit k theo th
t gim dn, theo ngay sau bi V_CODE th hai, cng vi cc gi c lit
k theo th t gim dn.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 106
2. Loi b trng lp
C bao nhiu nh cung cp khc nhau hin c th hin trong bng
INVENTRY? Mt php lit k n gin (SELECT) s khng hiu qu lm
nu bng cha vi ngn hng v chng ta phi chn lc ra mt cch th cng
cc m ca nh cung cp. My mn l, mnh DISTINCT ca SQL c
thit k a ra mt danh sch cc gi tr khc nhau. Chng hn, lnh
SELECT DISTINCT V_CODE
FROM INVENTRY;
s ch a ra cc m (V_CODE) nh cung cp khc nhau c tm thy
trong bng INVENTRY:
V_CODE
21344
21231
24288
23119
21225

3. Cc hm s hc SQL
SQL s thc hin cc tm tt ton hc khc nhau cho bn, nh m s
hng tha mn mt iu kin cho no , tm cc gi tr ln nht v nh
nht ca mt thuc tnh cho no , cng cc gi tr trong mt ct cho,
tnh trung bnh cc gi tr trong mt ct cho... Cc hm c ch ra trong
bng 3.6.
Bng 3.6 Cc hm s hc SQL
Hm Kt qu thc hin
COUNT S hng bao hm thuc tnh m t
MIN Gi tr thuc tnh nh nht
MAX Gi tr thuc tnh ln nht
AVG Trung bnh s hc ng vi thuc tnh m t
SUM Tng tt c cc gi tr ca thuc tnh chn

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 107
COUNT. V COUNT c thit k m s g tr c th ca thuc
tnh, n thng c dng kt hp vi mnh DISTINCT. Chng hn, tr
li cho cu hi C bao nhiu nh cung cp khc nhau hin c tm thy
trong bng INVENTRY? chng ta c th dng lnh
SELECT COUNT (DISTINCT V_CODE)
FROM INVENTRY;
s a ra kt qu

COUNT(DISTINCT V_CODE)
5

Ni cch khc, bng cha nm m nh cung cp khc nhau.
Tt c cc hm s hc u c th c dng kt hp vi cc iu kin
c ch ra. Gi s bn c yu cu a ra cu tr li cho bi ton sau:
Tm s mt hng trong bng INVENTRY m gi ca chng nh hn
hoc bng 10.00USD.
Cu tr li c cho bi dng lnh
SELECT COUNT(DISTINCT V_CODE)
FROM INVENTRY
WHERE PRICE <= 10.00;
Dy lnh ny s a ra kt qu
COUNT(DISTINCT V_CODE)
3

(Kho st bng INVENTRY ta thy rng bng cha nm s V_CODE
khc nhau 21344, 21231, 24288, 23119 v 21225 trong c ba s ng
vi cc sn phm m gi ca chng nh hn hoc bng 10.00USD.)
Du hoa th (*) vn c dng nh mt k t thay th tt c cc bn
ghi tha mn iu kin m t. Tr li cu hi
C bao nhiu hng trong bng INVENTRY cha sn phm ng vi
PRICE nh hn hoc bng 10.00USD?
dng dy lnh
SELECT COUNT(*)
FROM INVENTRY
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 108

WHERE PRICE <= 10.00;
a ra cu tr li ng
COUNT(*)
4
(Kho st ni dung bng INVENTRY ta thy rng c bn hng tho mn
iu kin ch ra.)
MAX v MIN. Cc hm MAX v MIN s gip chng ta tm cu tr li
cho cc i ton nh
Tm gi ln nht trong bng INVENTRY.
Tm gi nh nht trong bng INVENTRY.
Cu tr li ng cho bi ton th nht c to ra bi
SELECT MAX(PRICE)
FROM INVENTRY;
Dy lnh ny s a ra kt qu
MAX(PRICE)
256.99
Cu tr li ng cho bi ton th hai c to ra bi
SELECT MIN(PRICE)
FROM INVENTRY;
Dy lnh ny s a ra kt qu
MIN(PRICE)
4.99
Cc hm s hc cng c th c dng vi cc hn ch lgic phc tp
hn. Tuy nhin, bn phi nh rng cc hm s hc ch a ra mt gi tr duy
nht trn tt c cc gi tr c tm thy trong bng: gi tr ln nht duy nht,
gi tr nh nht duy nht, tng m duy nht hoc gi tr trung bnh duy nht.
Thng d qun cc cnh bo n gin ny. Chng hn, chng ta cng kho
st cu hi
Sn phm no c gi cao nht?
Mc d cu hi ny khc n gin, dy lnh SQL
SELECT P_CODE, P_DESCRIPT, PRICE
FROM INVENTRY
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 109
WHERE PRICE = MAX(PRICE);
s khng a ra cc kt qu mong mun v
SELECT a ra mt danh sch nhiu gi tr gi.
Php so snh vi MAX(PRICE) xy ra qu mun trong dy lnh; cc gi
tr PRICE c ly ra t bng trc khi hm MAX(PRICE) c th c
khp vo php so snh.
Do , tr li cu hi, bn phi duyt cc mc vi mt hn ch gi tr
duy nht bng cch s dng mt th tc c gi l vn tin lng nhau. Nh
tn ca n ch r, vn tin lng nhau l vn tin trong vn tin. Trong trng
hp ny, vn tin lng nhau gm hai phn:
vng trong, c thc hin trc.
vng ngoi, c thc hin sau. (Vng ngoi thng l SELECT u
tin c gp trong dy lnh.)
Dng dy lnh di y nh mt v d, lu rng vng trong trc ht
tm gi tr gi ln nht, c lu trong b nh. V by gi vng ngoi c mt
gi tr so snh tng gi tr PRICE vi n nn cu vn tin c thc hin
ng n.
SELECT P_CODE, P_DESCRIPT, PRICE
FROM INVENTRY
WHERE PRICE = (SELECT MAX(PRICE)
FROM INVENTRY);
Nh mong mun, dy lnh trn a ra kt qu
P_CODE P_DESCRIPT PRICE
89-WRE-Q Houselite chain saw, 16in 256.99

AVG. Hm AVG tng t nh cc hm MIN v MAX, c cng cc hn
ch tnh ton. Mt gi tr PRICE trung bnh duy nht c th c to ra bng
cch dng lnh
SELECT AVG(PRICE)
FROM INVENTRY;
a ra kt qu
AVG(PRICE)
56.14

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 110
Mt danh sch theo th t gi gim dn ca tt c cc sn phm c gi
ln hn gi tr trung bnh c th c to ra bi
SELECT *
FROM INVENTRY
WHERE PRICE > (SELECT AVG(PRICE)
FROM INVENTRY)
ORDER BY PRICE DESC;
Kt qu a ra nh sau:
P_CODE P_DESCRIPT STOCK_DATE ON_HAND MIN_QUANT PRICE V_CODE
89-WRE-Q Houselite chain saw, 16in 08/11/1991 11 5 256.99 24288
2232/QTY B&D jigsaw, 12in, blade 11/26/1990 8 3 109.92 24288
2232/QWE B&D jigsaw, 8in, blade 11/26/1990 6 3 99.87 24288

SUM. Hm SUM tnh tng cho mt thuc tnh ch ra no , theo bt
c iu kin no bn p t. Chng hn, nu bn mun tm gi tr tng cng
ca tt c cc sn phm theo thng k, bn c th dng
SELECT SUM(ON_HAND*PRICE)
FROM INVENTRY;
v gi tr tng cng l tch ca s sn phm hin c v gi ca n.
4. Nhm d liu
Phn loi tn s xut hin c th c to ra mt cch nhanh chng v
d dng vi mnh GROUP BY ca SQL. Mnh GROUP BY c th
c kt hp vi mi hm s hc. Chng hn, tm ra gi tr nh nht ng
vi tng m bn hng, s dng
SELECT SALE_CODE, MIN(PRICE)
FROM INVENTRY
GROUP BY SALE_CODE;
to ra kt qu di y:

SALE_CODE MIN(PRICE)

1
2
5.87
8.45
4.99

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 111
Tng t bn c th tm c gi trung bnh trong mi m bn hng bi
SELECT SALE_CODE, AVG(PRICE)
FROM INVENTRY
GROUP BY SALE_CODE;
a ra kt qu
SALE_CODE AVG(PRICE)

1
2
64.75
11.43
71.59

Nh rng mnh GROUP BY khng th theo di cc thuc tnh khng
c m t trong lnh SELECT. Chng hn, cu vn tin
SELECT *
FROM INVENTRY
GROUP BY SALE_CODE;
s a ra thng bo li
not a GROUP BY expression (khng phi biu thc GROUP BY)
v bin nhm c ch r duy nht l SALE_CODE, ng thi bn ang
ra lnh so snh mt bin duy nht ny vi tt c cc bin trong bng. (Chng
hn, khng th nhm PRICE bi SALE_CODE!)
5. Bng o: vic to cc khung nhn
Bn c th to ra mt bng lgic (o) vi lnh VIEW. Bng lgic ny ch
tn ti trong b nh, ng thi vn c x l nh mt bng thc. Do , c
th to ra bng o sn dng trnh cc nguy c ngi dng ngu nhin hoc
(ch ) xo d liu hoc b sung d liu sai vo bng thc.
Lnh VIEW c bit hu dng do n c dng hn ch ngi dng
truy cp vo phn chn ca d liu trong bng. c php trong dy
lnh di y, n to ra bng c t tn l INVENT_2. Bng lgic
INVENT_2 ch cha hai thuc tnh c n nh (P_CODE v PRICE) v
km theo l ch ng vi cc gi ln hn 50.00USD.
CREATE VIEW INVENT_2 AS
SELECT P_CODE, PRICE
FROM INVENTRY
WHERE PRICE > 50.00;
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 112
Sau khi to ra bng lgic, SELECT s ch trnh by cc thuc tnh
c gii hn trn:
SELECT *
FROM INVENT_2;
Kt qu t c l:
P_CODE PRICE
89-WRE-Q
2232/QWE
2232/QTY
256.99
99.87
109.92

Vi cc khung nhn chng ta c th lm cho mi d liu sn dng vi
ngi dng ng thi khng phi bn tm n cc hnh vi lm sai d liu
trong bng thc, theo nng cao tnh an ton d liu ca h thng. ng
thi kh nng hn ch ngi dng vo cc phn d liu c ch r ca chng
ta l yu t c bn m bo tnh b mt cng nh an ton d liu.
6. Ch mc SQL
Bn bit trong chng 2 ch mc l g v cch m n c dng
nng cao hiu qu tm kim d liu. Cc ch mc thng c to ra p
ng mt loi tm kim c bit sau khi cc bng c s dng mt thi
gian no . Tuy nhin, nhiu RDBMS cha cc tin ch s cho php bn m
t cc ch mc theo cc thuc tnh c chn khi cc bng c to ra. V v
sau bn cng s thy nhu cu cn c cc ch mc b sung trong qu trnh s
dng bng. V vy, kh nng to ra nhanh chng v hiu qu cc ch mc ti
thi im bt k l quan trng. Cc ch mc SQL c th c to ra trn c s
cc thuc tnh chn. Chng hn, dy lnh di y to ra ch mc vi tn
P_CODEX, da vo thuc tnh P_CODE c lu trong bng INVENTRY:
CREATE INDEX P_CODEX
ON INVENTRY(P_CODE);
SQL s khng cho bn ghi ln mt ch mc ang tn ti trc khi
cnh bo bn, theo bo ton cu trc ch mc trong t in d liu. Bn
cng c th to mt ch mc km vi vic ngn chn bn dng gi tr c
dng trc . c im nh vy c bit hu dng khi thuc tnh ch mc l
kho chnh vi cc gi tr khng trng nhau.
CREATE UNIQUE INDEX P_CODEX
ON INVENTRY(P_CODE);
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 113
Nu bn c gng a vo gi tr P_CODE c, SQL s a ra thng
bo li
duplicate value in index (gi tr c trong ch mc)
7. Lin kt cc bng CSDL
Kh nng kt hp (JOIN) cc bng theo cc thuc tnh chung c l l s
phn bit quan trng nht gia CSDL quan h v cc CSDL khc. Lnh JOIN
c thc hin khi d liu cn ly ra t nhiu hn mt bng ti mt thi
im. (Nu cn thit, xem li cc nh ngha JOIN t nhin, JOIN bng v cc
v d trong chng 2. Nh rng SQL da trn i s quan h.)
thc hin lnh JOIN thnh cng, danh sch cc thuc tnh c lit
k trong SELECT phi c xc nh r. Chng hn, gi s bn mun lit k
thng tin c dn ra t hai bng CSDL ROBCOR. V V_CODE l kho
ngoi trong bng INVENTRY v kha chnh trong bng VENDOR, lin kt
c thnh lp theo V_CODE:
Bng Cc thuc tnh cn ch ra Thuc tnh lin kt
INVENTRY P_DESCRIPT, PRICE V_CODE
VENDOR V_COMPANY, V_PHONE

Vy lnh c th l
SELECT INVENTRY.P_DESCRIPT,
INVENTRY.PRICE,
VENDOR.V_COMPANY, VENDOR.V_PHONE
FROM INVENTRY, VENDOR
WHERE INVENTRY.V_CODE = VENDOR.V_CODE;
Dy lnh trn a ra kt qu:
P_DESCRIPT PRICE V_COMPANY V_PHONE
7.25in, power saw blade
2.5in, wood screw, 100
PVC pipe, 3.5in, 8ft
Rat-tail file, 1/8in fine
Sledge hammer, 12lb
Houselite chain saw, 16in
B&D jigsaw, 8in, blade
Hardware cloth,1/4in,50ft
Claw hammer
B&D jigsaw, 12in, blade
14.99
8.45
5.87
4.99
14.40
256.99
99.87
39.95
5.95
109.92
Q&D Building Supplies
J.I. Supplies, Inc
Q&D Building Supplies
Q&D Building Supplies
J.I. Supplies, Inc
Harding Super Wholesale
Harding Super Wholesale
Charlies Wholesale
Rathers Building, Inc.
Harding Super Wholesale
800-333-9011
666-233-1281
800-333-9011
800-333-9011
666-233-1281
800-213-9999
800-213-9999
212-667-0090
800-234-1200
800-213-9999

BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 114
Kt qu a ra c th c trnh by theo mt th t khc do lnh SQL
a ra mt danh sch da trn v tr con tr hin thi. Trn thc t, bn c th
nhn c mt danh sch vi th t khc nhau ti cc thi im khc nhau.
Tuy nhin, bn c th to ra mt danh sch vi th t bit trc vi iu kin
ORDER:
SELECT INVENTRY.P_DESCRIPT, INVENTRY.PRICE,
VENDOR.V_COMPANY, VENDOR.V_PHONE
FROM INVENTRY, VENDOR
WHERE INVENTRY.V_CODE = VENDOR.V_CODE
ORDER BY PRICE;
Trong trng hp ny, danh sch ca bn s lun c sp xp t gi
thp nht ti gi cao nht:

P_DESCRIPT PRICE V_COMPANY V_PHONE
Rat-tail file, 1/8in fine 4.99 Q&D Building Supplies 800-333-9011
PVC pipe, 3.5in, 8ft 5.87 Q&D Building Supplies 800-333-9011
Claw hammer 5.95 Rathers Building, Inc. 800-234-1200
2.5in, wood screw, 100 8.45 J.I. Supplies, Inc 666-233-1281
Sledge hammer, 12lb 14.4 J.I. Supplies, Inc 666-233-1281
7.25in, power saw blade 14.99 Q&D Building Supplies 800-333-9011
Hardware cloth,1/4in,50ft 39.95 Charlies Wholesale 212-667-0090
B&D jigsaw, 8in, blade 99.87 Harding Super Wholesale 800-213-9999
B&D jigsaw, 12in, blade 109.92 Harding Super Wholesale 800-213-9999
Houselite chain saw, 16in 256.99 Harding Super Wholesale 800-213-9999

Lu rng dy lnh SQL trn kt ni mt hng trong bng INVENTRY
vi mt hng ph hp theo ct V_CODE ca bng VENDOR. V nh cung
cp bt k c th chuyn mt s bt k cc sn phm c t mua vo
CSDL ROBCOR, bng INVENTRY c th nhiu mc V_CODE ng vi mi
mc V_CODE trong bng VENDOR. Ni cch khc, mi V_CODE trong
VENDOR c th tng ng vi nhiu hng V_CODE trong INVENTRY.
Nu chng ta qun khng m t mnh WHERE, chng ta s nhn
c mt kt qu l tch tng ng vi kt ni t nhin. (Xem chng 2
n li cc khi nim ny, nu cn thit.) V bng INVENTRY cha mi
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 115
hng v bng VENDOR cha nm hng, tch -cc c th a ra mt danh
sch (10 5) = 50 hng do mi hng trong INVENTRY c th kt ni vi
tng hng ca bng VENDOR.
Tt c cc lnh SQL u c th c dng kt ni bng. Chng hn,
dy lnh di y hon ton c th chp nhn c trong SQL:

SELECT INVENTRY.P_DESCRIPT, INVENTRY.PRICE,
VENDOR.V_COMPANY, VENDOR.V_PHONE
FROM INVENTRY, VENDOR
WHERE INVENTRY.V_CODE = VENDOR.V_CODE
AND INVENTRY.STOCK_DATE > 07/01/91;
Mt b danh (tn gi khc) c th c dng nh danh cc bng
c dng ly ra d liu. Lu rng chng ta dng b danh A v B
gn cho cc bng INVENTRY v VENDOR trong dy lnh di y. Bt
c mt tn bng hp php no u c th c dng nh mt b danh. (Chng
ta cng ch lit k cc tn bng - khng i km thuc tnh nh mt ngun
d liu do cc bng khng cha cc tn trng lp xut hin trong lnh
SELECT.)
SELECT P_DESCRIPT, PRICE, V_COMPANY, V_PHONE
FROM INVENTRY A, VENDOR B
WHERE A.V_CODE = B.V_CODE
ORDER BY PRICE;
Mt b danh c bit hu dng khi mt bng phi c kt ni vi chnh
n theo cc nhm.
VII. TM TT
Cu trc lnh SQL c th c chia thnh ba tp th tc: nh ngha d
liu, qun l d liu, v thao tc (vn tin) d liu.
nh ngha d liu
1. To CSDL. SQL chun s dng nh ngha lc :
CREATE SCHEMA AUTHORIZATION <Ngi to>
Nhiu ci t SQL s dng
CREATE DATABASE <Tn CSDL>
hoc mt s dng gn gi vi lnh ny.
2. To cc bng CSDL. Chun SQL s dng cu trc lnh
CREATE TABLE <Tn bng>
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 116
Qun l d liu v vn tin
INSERT c dng nhp d liu vo trong bng.
UPDATE c dng thay i (cp nht) d liu trong bng.
DELETE c dng xo cc hng bng.
SELECT l c s cho mi cu vn tin SQL.
Nhiu ci t SQL, chng hn dBASE IV v ORACLE, yu cu mt
lnh SQL phi c kt thc vi mt du chm phy. Mt s khc, bao gm
OS/2 Database Manager ca IBM v XDB, khng chp nhn cch s dng
vi du chm phy nh vy. c ti liu tra cu ca phn mm tng ng
nh r cc c php thch hp.
Tm tt lnh SQL di y trnh by cch s dng cc cu vn tin SQL,
vi bng v d l STUDENT, cha cc thuc tnh S_NUM, S_NAME,
S_DOB, S_STATE v S_GPA, S_NUM l kho chnh ca bng STUDENT.
To bng STUDENT.
Dng NOT NULL kt hp vi kho chnh khng nh ton vn thc
th.
CREATE TABLE STUDENT (S_NUM CHAR(8) NOT NULL,
S_NAME CHAR(25),
S_DOB DATE,
S_STATE CHAR(2),
S_GPA DECIMAL(4,2));
Nhp d liu vo bng STUDENT.
INSERT INTO STUDENT
VALUES(23122456, Jane P. Genaldo, 02/12/46, TN, 3.67);
Lit k tt c cc thuc tnh cho tt c cc hng.
(K hiu * l k t thay th ch ra tt c cc hng.)
SELECT *
FROM STUDENT;
Lit k cc thuc tnh chn ng vi mi hng.
SELECT S_NAME, S_GPA
FROM STUDENT;
Lit k cc thuc tnh chn ng vi sinh vin c tn l George W.
Batmman.
SELECT S_NAME, S_GPA
FROM STUDENT
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 117
WHERE S_NAME = George W. Batmman;
Lu bng.
COMMIT STUDENT;
Sa cha.
UPDATE STUDENT
SET S_NAME = Jane G. Bronner, S_GPA = 3.76
WHERE S_NUM = 231234536;
Xo hng.
DELETE FROM STUDENT
WHERE S_NUM = 24112324;
Khi phc ni dung bng.
ROLLBACK;
S dng cc ton t ton hc hn ch kt qu vn tin. Cc ton t
ton hc bao gm:
= Bng
< Nh hn
> Ln hn
<= Nh hn hoc bng
>= Ln hn hoc bng
<> Khng bng
Cc ton t ton hc c th c dng trn cc xu cng nh trn cc s.
So snh xu c thc hin t tri qua phi theo cc gi tr m ASCII. Do
AB < BB.
SELECT *
FROM STUDENT
WHERE S_GPA = 3.00;
S dng thuc tnh d liu hn ch kt qu vn tin.
SELECT *
FROM STUDENT
WHERE S_DOB < 01/01/40;
(Mt s ci t SQL khng yu cu dng cc du ng m ngoc
chn cc gi tr ngy; mt s khc dng dng ngy mc nh 01-JAN-40;
ring dBASE IV yu cu dng hm STOD chuyn xu ngy thnh ngy
Julian:
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 118
SELECT *
FROM STUDENT
WHERE S_DOB < CTOD(01/01/40);)
S dng cc ton t lgic hn ch cc kt qu a ra.
Cc ton t lgic bao gm AND, OR, v NOT.
SELECT S_NAME, S_GPA
FROM STUDENT
WHERE S_DOB < 01/01/40
AND S_GPA >= 3.00;
SELECT *
FROM STUDENT
WHERE S_STATE NOT IN;
Xc nh khong gi tr cho cc thuc tnh trong vn tin: BETWEEN.
SELECT *
FROM STUDENT
WHERE S_GPA BETWEEN 3.00 AND 3.50;
Mt s ci t SQL khng h tr BETWEEN. Mt cu vn tin tng t
c th c to ra vi cc ton t ton hc:
SELECT *
FROM STUDENT
WHERE S_GPA >= 3.00
AND S_GPA <= 3.50;
Kim tra iu kin null.
SELECT *
FROM STUDENT
WHERE S_DOB IS NULL;
dBASE IV khng h tr ton t null. kim tra ngy null, dng
SELECT *
FROM STUDENT
WHERE DTOC(S_DOB = / / );
Kim tra cc gi tr trong mt tp.
SELECT *
FROM STUDENT
WHERE S_NUM IN (22122454, 21222456, 2543667);
lit k cc hng tng ng vi cc s sinh vin 22122454 hoc
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 119
21222456 hoc 2543667.
Kim tra s tn ti ca cc gi tr trong thuc tnh.
SELECT *
FROM STUDENT
WHERE S_NUM EXIST;
Thay i cu trc bng.
- Thay i c im thuc tnh.
ALTER TABLE STUDENT
MODIFY (S_GPA DEC(5,3));
Lu : Kiu d liu khng th b thay i tr khi ct khng c gi tr
(rng).
- Thm ct.
ALTER TABLE STUDENT
ADD (S_PHONE CHAR(8));
- Cp nht nhiu ct.
ALTER TABLE STUDENT
ADD (S_PHONE CHAR(8)
S_HONOR CHAR(12));
Cp nht d liu.
- Mc d liu n.
UPDATE STUDENT
SET S_GPA = 2.79
WHERE S_NUM = 21332433;
- Cp nht phc tp.
UPDATE STUDENT
SET S_HONOR = President list
WHERE S_GPA > 3.75;
Sao chp mt phn bng.
- To cu trc bng.
CREATE TABLE TEMP ( ST_NUMBER CHAR(8)
NOT NULL,
ST_NAME CHAR(25));
- Sao chp cc gi tr ct tng ng vo bng mi.
INSERT INTO TEMP(ST_NUMBER, ST_NAME)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 120
SELECT S_NUM, S_NAME
FROM STUDENT;
- Xo bng khi CSDL.
DROP TABLE <Tn bng>;
- Nhy cm dng ch. SQL xem k t in hoa v in thn l khc nhau.
Do , Smith v SMITH s c xem l cc tn khc nhau. Mt s ci t
SQL (dBASE IV, ORACLE) h tr hm UPPER cho php chuyn ch in
thng thnh ch in hoa, qua cho php to s tng ng trong mi trng
hp.
SELECT *
FROM STUDENT
WHERE UPPER(S_NAME) = JOHN D. SMITH;
To s ph hp cho cc xu b phn
S dng cc k t thay th % v _.
SELECT *
FROM STUDENT
WHERE S_NAME LIKE Smith%;
SELECT *
FROM STUDENT
WHERE S_NAME LIKE J__n_s;
SELECT *
FROM STUDENT
WHERE S_NAME NOT LIKE Smith%;
Lit k theo th t
S dng ORDER BY <danh sch thuc tnh> DESC.
SELECT *
FROM STUDENT
ORDER BY S_NAME, S_GPA;
SELECT *
FROM STUDENT
ORDER BY S_NAME, S_GPA DESC;
Loi b trng lp trong danh sch.
SELECT DTINCT S_GPA
FROM STUDENT;
Cc hm s hc SQL: COUNT, MIN, MAX, SUM.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 121
SELECT COUNT(DISTINCT S_GPA)
FROM STUDENT;
a ra s cc im trung bnh GPA ca cc sinh vin khc nhau.
SELECT MAX(S_GPA)
FROM STUDENT;
a ra im GPA cao nht.
SELECT AVG(S_GPA)
FROM STUDENT;
a ra im GPA trung bnh...
SELECT SUM(S_GPA)
FROM STUDENT;
a ra tng s im GPA ca tt c cc sinh vin.
Tm ra cc thuc tnh kt hp vi cc kt qu ca cc hm s hc ny,
dng cu vn tin lp.
SELECT *
FROM STUDENT
WHERE S_GPA = (SELECT MAX(S_GPA)
FROM STUDENT);
Nhm d liu
SELECT S_GPA, S_STATE
FROM STUDENT
GROUP BY S_GPA;
To bng o: VIEW
CREATE VIEW TEMP_2
SELECT S_NAME, S_GPA
FROM STUDENT
WHERE S_STATE = TN;
To ch mc SQL.
CREATE INDEX NUMDEX
ON STUDENT(S_NUM);
Nu ch mc c dng gip bn trnh s dng gi tr trng lp, s
dng iu kin UNIQUE.
CREATE UNIQUE INDEX NUMDEX
ON STUDENT(S_NUM);
Kt ni cc bng
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 122
Thao tc c thc hin khi d liu cn c ly ra t hai hay nhiu
bng khc nhau. Bng d liu ngun phi c xc nh. Gi s tn ti hai
bng PROD v VENDOR. Cc thuc tnh ca bng PROD l P_NUM (kho
chnh), P_DESCRIPT v V_CODE. Cc thuc tnh ca bng VENDOR l
V_CODE (kho chnh) v V_NAME. Danh sch cha cc thuc tnh
P_DESCRIPT v V_NAME c th nhn c bi
SELECT PROD.P_DESCRIPT, VENDOR.V_NAME
FROM PROD.VENDOR
WHERE PROD.V_CODE = VENDOR.V_CODE;
Tt c cc lnh SQL v cc hm nu trn u c th c dng kt hp
vi cc bng kt ni.
VIII. CU HI N TP
Tt c cc cu hi n tp u da vo bng c tn EMP_1 di y.
PER_NUM LASTNAME FIRSTNAME MI HIRED JOB_CODE
287
853
778
855
750
Johnson
Smithfied
Alonzo
Washington
Smith
Alice
William
Maria
Brandon
Larry
K.
P.
D.
B.
W.
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
5
2
4
2
3
Cu trc bng EMP_1 c ch ra di y:
PER_NUM CHAR(3)
LASTNAME CHAR(12)
FIRSTNAME CHAR(10)
MI CHAR(2)
HIRED DATE
JOB_CODE CHAR(1)
Vi cc thng tin ny, tr li cc cu hi di y:
1. Vit m lnh SQL to cu trc bng.
2. Sau khi to c cu trc bng cu 1, vit m lnh SQL nhp hai
hng d liu vo trong bng EMP_1.
3. Gi s d liu cn li c a vo, vit m lnh SQL lit k tt c
cc thuc tnh ng vi m cng vic 5.
4. Vit m lnh SQL lu bng EMP_1.
5. Vit m lnh SQL thay i m cng vic thnh 5 cho tt c nhng
ngi c s nhn s PER_NUM l 778.
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 123
6. Vit m lnh SQL xo hng ng vi ngi c tn l Wiliam P.
Smithfield, c thu vo ngy 03/20/88 v m cng vic ca h l 2.
Lu : S dng ton t lgic gp mi thng tin c cho trong cu hi
ny.
7. Vit m lnh SQL khi phc d liu v trng thi trc ; tc l,
bng s cha d liu tn ti trc khi bn to ra s thay i cu 5 v 6.
8. Vit m lnh SQL b sung hai ct, BONUS_PCT v PROJ_NUM,
cho bng EMP_1. Thuc tnh BONUS_PCT l DECIMAL c hai v tr thp
phn, thuc tnh PROJ_NUM l xu gm ti a hai k t.
9. Vit m lnh SQL nhp gi tr thuc tnh BON_PCT 3.85 ng vi
ngi c s nhn s PER_NUM tng ng l 287. Gi s rng tt c cc mc
BONUS_PCT c to ra ti thi im ny v bng EMP_1 hin cha d
liu nh di y:
PER_NUM LASTNAME FIRSTNAME MI HIRED JOB_CODE BONUS_PCT PROJ_NUM
287
853
778
855
750
Johnson
Smithfied
Alonzo
Washington
Smith
Alice
William
Maria
Brandon
Larry
K.
P.
D.
B.
W.
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
5
2
4
2
3
3.85
2.00
3.75
0.00
4.52


10. S dng dy lnh n, vit m lnh SQL a vo s d n
PROJ_NUM l 18 ng vi cc nhn vin c loi m cng vic (JOB_CODE)
l 2.
11. S dng dy lnh n, vit m lnh SQL a vo s d n
(PROJ_NUM) l 25 ng vi cc nhn vin c loi m cng vic
(JOB_CODE) l 3 hoc cao hn. Khi bn hon thnh cc cu hi 10 v 11,
bng EMP_1 s cha d liu nh di y:
PER_NUM LASTNAME FIRSTNAME MI HIRED JOB_CODE BONUS_PCT PROJ_NUM
287
853
778
855
750
Johnson
Smithfied
Alonzo
Washington
Smith
Alice
William
Maria
Brandon
Larry
K.
P.
D.
B.
W.
09/29/83
03/20/88
07/01/87
12/12/85
11/09/89
5
2
4
2
3
3.85
2.00
3.75
0.00
4.52
25
18
25
18
25
(Bn c th gi thit rng bng c lu li ti thi im ny!)
12. Vit m lnh SQL nhp PROJ_NUM l 14 ng vi cc nhn vin
c thue trc ngy 1 thng 1 nm 1987 v c m cng vic t nht l 3.
(Bn c th gi thit rng bng c khi phc v trng thi ch ra trong bi
tp 11.)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 124
13. Vit dy lnh SQL
a. To bng tm thi c tn l TEMP_1, vi cu trc gm cc thuc tnh
PER_NUM v BONUS_PCT ca bng EMP_1.
b. Sao chp cc gi tr EMP_1 tng ng sang bng TEMP_1.
14. Vit lnh SQL xo bng TEMP_1 va to ra khi CSDL.
15. Vit m lnh SQL lit k tt c cc nhn vin c tn cui bt u
bng Smith. Ni cch khc, cc hng ng vi c Smith v Smithfield u s
c gp vo danh sch kt qu.
Gi : Dng k t thay th.
16. Gi s rng CSDL ca bn cng cha bng PROJECT di y:
PROJ_NUM PROJ_NAME PROJ_MGR
18
25
Starflight
Rolling Run
Jane M. Gosinger
George W. Carson

Vi thng tin cho, vit m lnh SQL a ra kt qu di y:
PROJ_NAME LASTNAME FIRSTNAME MI JOB_CODE PROJ_MGR
Rolling Run
Starflight
Rolling Run
Starflight
Rolling Run
Johnson
Smithfied
Alonzo
Washington
Smith
Alice
William
Maria
Brandon
Larry
K.
P.
D.
B.
W.
5
2
4
2
3
George W. Carson
Jane M. Gosinger
George W. Carson
Jane M. Gosinger
George W. Carson

Gi : Bn phi kt ni cc bng EMP_1 v PROJECT.
17. Vit m lnh SQL to ra mt bng o vi tn REP_1, cha thng tin
ging trong cu 16.
18. Vit m lnh SQL tm gi tr trung bnh t l phn trm phn thng
trong bng EMP_1.
19. Vit m lnh SQL to mt danh sch cho d liu trong bng EMP_1
theo th t tng dn ca phn trm phn thng.
20. Vit m lnh SQL ch lit k s d n khc nhau c trong bng
EMP_1.
IX. BI TP
1. To CSDL vi tn ROBAIR cha cc bng CHARTER, PILT,
CHAR_CUS v AIRCRAFT. (Ni dung bng ch ra trong 2, bi tp 12.)
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 125
2. Vi ni dung ca bn bng c to ra trong bi tp 1, vit m lnh
SQL
a. To danh sch di y ng vi my bay 2778V:
C_DATE AC_NO DEST DIST HR_F
L
FUEL
05/26/91
05/30/91
06/01/91
01/03/91
2778V
2778V
2778V
2778V
TYS
MOB
BNA
GNV
644
884
320
1574
3.6
4.9
2.1
9.2
138.4
184.9
78.4
345.2

b. To bng o (t tn l AC2778V) cha kt qu a ra trnh by 2a.
c. To danh sch di y cho my bay 2778V:
C_DATE AC_NO DEST AC_TYPE DIST HR_FL FUEL P_LNAME
05/26/91
05/30/91
06/01/91
01/03/91
2778V
2778V
2778V
2778V
TYS
MOB
BNA
GNV
PA-31-350 Navajo
PA-31-350 Navajo
PA-31-350 Navajo
PA-31-350 Navajo
644
884
320
1574
3.6
4.9
2.1
9.2
138.4
184.9
78.4
345.2
Tallahoga
Browing
Lamont
Lamont

d. To danh sch di y cho my bay 2778V:
C_DATE AC_NO DIST HR_FL FUEL DIST/HR_FL DIST/FUEL FUEL/HR_FL P_LNAME
05/26/91
05/30/91
06/01/91
01/03/91
2778V
2778V
2778V
2778V
644
884
320
1574
3.6
4.9
2.1
9.2
138.4
184.9
78.4
345.2
178.88889
180.40816
152.38095
171.08696
4.6531792
4.7809627
4.0816327
4.5596756
38.444444
37.734694
37.333333
37.521739
Tallahoga
Browing
Lamont
Lamont

Gi : Hai ct kt qu cui cng c tnh ton thay v c ly ra t
bng. Chng hn, c th dng dy lnh SQL
SELECT HR_FL, FUEL, FUEL/HR_FL
FROM CHARTER
WHERE AC_NO = 2778V;
Lu : Mc d cc gi tr a ra khng ph hp vi danh sch c ch
ra, khun dng kt qu a ra c xc nh bi phn mm bn dng. Bn
nn hc cch iu chnh khun dng vi s gip ca cc tin ch ring
DBMS ca bn.
3. Cp nht bng AIRCRAFT cho my bay 2778V, s dng s gi tng
cng bay c ly t bng CHARTER.
Lu : V s gi bay tng cng bay trong mt giai on c trong bng
BAN CH O CNTT CA C QUAN NG Thit k, xy dng v qun tr CSDL

Trang 126
CHARTER l 19.8 nn s gi trn hng cp nht ng vi my bay 2778V
phi ln hn s gi ban u 19.8.
BAN U
AC_NO AC_TYPE FB LAST_100 TTA TTLE TTRE TAS P_PAY
2778V PA-31-350 Navajo 36.0 08/05/91 9211.9 1124.2 429.8 180 25.00

SAU CP NHT
AC_NO AC_TYPE FB LAST_100 TTA TTLE TTRE TAS P_PAY
2778V PA-31-350 Navajo 36.0 08/05/91 9231.7 1144.0 449. 180 25.00

4. To mt danh sch khch hng cha thanh ton.
C_DATE DEST AC_TYPE C_NAME
05/26/91
05/30/91
05/30/91
06/01/91
STL
MY
MOB
BNA
PA-23-250 Aztec
C-90A King Air
PA-31-350 Navajo
PA-31-350 Navajo
C. J. Pary
Smithson Industries
C. J. Pary
Smithson Industries

5. Cho d lu trong bng CHAR_CUS, tm d n trung bnh.
6. Cho d lu trong bng CHAR_CUS, tm d n tng cng.
7. Nhm d liu my bay theo s my bay to ra kt qu sau y:

AC_NO COUNT(*) AVG(DIST) AVG(HR_FL) AVG(FUEL)
1484P
2289L
2778V
4278Y
2
4
4
2
478
664
855.5
947
2.95
3.825
4.95
5.45
80.15
222.075
186.725
203.45

8. To ra mt bo co tng t nh m t trong bi tp 7, nhng hn ch
kt qu a ra theo ngy, gm nhng ngy nm trong khong t 30 thng 5
nm 1991 n 1 thng 6 nm 1991, k cc ngy .
9. CSDL CH3SQL c to ra gip t ng cc th tc bn hng.
c bit, bn hng a ra mt ho n c dng tng t dng n gin m t
nh hnh di y.

You might also like