Professional Documents
Culture Documents
Mon CSDLTC 75tiet Tuyen
Mon CSDLTC 75tiet Tuyen
Mon CSDLTC 75tiet Tuyen
,A
a
l l mt t hp | tr (a
1
,a
2
,a
,a
a
l thc ha| |a k|a
- V| m| thac t|ah A
|
thac Q
,a
|
thac H0I(A
|
l
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 14
- Ia t ||Q(a
1
,a
2
,a
,a
a
l|| c tha
7 !acc 1c cc sc Ja l|ea Hct lacc 1c cc sc Ja l|ea 0 la 1 tap hcp cac lacc 1c aaa he
? 9|ea khca va khca caa mct aaa he
0hc mct lacc 1c aaa he Q(A
1
, A
2
,,A
a
l
al 9|ea khca Iap thacc t|ah 9, 9 _ Q
, c| la 9|ea khca (9aper Kel caa lacc 1c aaa he Q aea 9 cc the Jaa lam
cc sc 1e phaa ||et 2 |c khac ahaa ta
1, 2 e IQ, 19 = 29 th| 1 = 2
Qa| 1|ah
- Hct lacc 1c aaa he Q laca laca cc |t ahat 1 s|ea khca va cc the cc ah|ea s|ea khca
- Ihacc t|ah tham |a vac s|ea khca khca 1acc chaa |a tr| rca
V| Ja KhA0hhAN0(H9Kh, I!NKh, !A0h!, 90Il
cc cac s|ea khca 91={H9Kh), 92={H9Kh,I!NKh), 9 = {H9Kh,!A0h!), 94 = {H9Kh,I!NKh,!A0h!)
|l Khca chi 1|ah (0aaJ|Jate Kel ha khca ac|
!a mct s|ea khca tc| t|ea khca chaa |at k mct s|ea khca aac
V| Ja 91={H9Kh)
Nea cc ah|ea khca chi 1|ah, kh| ca| 1at aea chca mct khca chi 1|ah lam khca ch|ah (lr|mar kel chc v|ec tra xaat 1ea cac |c 0ac
khca chi 1|ah cca la| 1acc xem la cac khca pha (9eccaJar kel ha khca taca 1aca
!! lh IhU0 hH
lha thacc ham (faact|caal JepeaJeacl la mct cca ca Jaa 1e ||ea J|ea mct cach h|ah thac cac raa |acc tcaa vea (vaa tat raa
|accl lhaca phap ||ea J|ea aa cc rat ah|ea aa 1|em, va 1a la mct cca ca cac k aaa trca, aa chat vc| l thaet th|et ke cc
sc Ja l|ea lha thacc ham 1acc aa Jaa trca v|ec |a| aet cac |a| tcaa t|m khca, t|m pha tc| th|ea va chaaa hca cc sc Ja l|ea
!!1 |ah ah|a
Q(A1,A2,,Aal la lacc 1c aaa he
X, Y la ha| tap cca caa Q
={A1,A2,,Aa)
IQ la aaa he trea Q
t1,t2 la ha| |c |at k caa IQ
X Y (t1X = t2X t1Y = t2Yl
(Ia ac| X xac 1|ah Y ha Y pha thacc ham vac Xl
lh thac hm X a v| m| aaa h
XY l ph thac hm h|a ah|a aa X _Y
t !={XY ah aha tra Q)
V| Q
ha ha aa ta c| tp lIh ! ca ha ha , cc pha t ca ! c| th c ah s f
1
,f
2
,
0ha ta a| c ch ca mc t cc lIh khca h|a ah|a trca tp ! (cc lIh h|a ah|a c h|a am l ca c| trca ! l
!!2 he laat Jaa Armstrca (Armstrca |afereace ralel
he laat Jaa la mct phat ||ea chc ||et aea mct aaa he IQ thca maa mct va | pha thacc ham th| ac pha| thca maa pha thacc ham
khac
Vc| X,Y,3,h la tap cca caa Q
_ ,
Z X
Z Y Y X
,
Z XW
Z YW Y X
,
Z X
Y Z Y X
_ ,
YZ X
Z X Y X
,
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 15
he aa he laat Jaa Armstrca la 1aa, ah|a la aea ! la tap cac pha thacc ham 1aa trea aaa he IQ va X Y la mct pha thacc
ham 1acc sa J|ea ta ! ahc he laat Jaa Armstrca th| X Y 1aa trea aaa he IQ Va X Y la pha thacc ham 1acc sa J|ea
lc|c ta !
II.3 Bao ng ca tp ph thuc hm F
- Bao ng (closure) ca tp ph thuc hm F (k hiu l F
+
) l tp hp tt c cc ph
thuc hm c th suy ra t F da vo cc tin Armstrong. R rng F _ F
+
- Da trn bao ng F
+
ca F ta c th xy dng mt tp thuc tnh Y ln nht da vo
mt tp thuc tnh X_Q
+
: XY
- Trn l thuyt ta hon ton c th xy dng mt th tc tnh bao ng F
+
ca F. Mc
d Q
+
v tp PTH u hu hn nn bao ng F
+
cng hu hn. Nhng trn thc t, bi
ton xc nh F
+
t tp F l khng kh thi v trong mt ng dng thc t tng s thuc
tnh v ph thuc hm c th rt ln v dn n bng n v t hp.
- Thay vo chng ta s xt mt bi ton khc kim tra mt PTH f c thuc bao ng
F
+
hay khng , bi ton ny c gi l bi ton thnh vin.
II.4 Bao ng ca mt tp thuc tnh
II.4.1 nh ngha:
Cho lc quan h Q, gi s F l tp cc ph thuc hm trong Q, XcQ
+
. Bao ng ca tp
thuc tnh X i vi F k hiu l X
+
(hoc
+
F
X ) l tp tt c cc thuc tnh A eQ
+
c suy ra t
X da vo cc ph thuc hm trong F v h tin Armstrong, ngha l:
X
+
= {A : AeQ
+
v X A eF
+
}
Cho lc quan h Q v tp PTH F ={f
1
,f
2
....}
Gi s X l tp hp con ca Q
+
, bao ng ca X da trn F, K hiu:
+
F
X l tp hp cc thuc
tnh ph thuc vo X da trn F:
+
F
X = {Y : YeQ
+
v X Y e F
+
}
Ta thy:
(1) X_
+
F
X
(2) f: XY eF
+
Y_
+
F
X
Da vo nhn xt (2) chng ta c th a bi ton thnh vin v bi ton n gin hn, l
bi ton tnh bao ng ca mt tp thuc tnh X.
!!42 Ihat tca t|m |ac |a ca tp thac t|ah
I|ah l|ea t|ep tap cac tap thacc t|ah X0,X1,X2, thec phaca phap saa
8acc 1 X
0
= X
8acc 2 laa lact xet cac pha thacc ham caa !
Nea Y3 cc Y _X
|
th| X
(|1l
= X
|
3
!ca| pha thacc ham Y 3 khc| !
8acc Nea c |acc 2 khca t|ah 1acc X
(|1l
th| X
|
ch|ah la |ac 1ca caa X
Nacc la| lap la| |acc 2
V| Ja
0hc lacc 1c aaa he Q(A80!0hl va tap pha thacc ham !
! = {f1 8 A
f2 A 0!
f h
f4 0h 0
f5 A0 )
I|m |ac 1ca caa cac tap X = {A0) Jaa trea !
0|a|
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 16
8acc 1 X
0
= A0
8acc 2 c f
1
, f
2
, f
, f
4
khca thca f
5
thca v| A0 _X
0
X
1
= A0 = A0
!ap la| |acc 2 f
1
khca thca, f
2
thca v| A_X
1
X
2
= A0 0! = A0!
f
thca v| _ X
2
X
= A0! h = A0!h
f
4
khca thca, f
5
khca xet v| 1a thca
!ap la| |acc 2 f
2
,f
=X
Nc| raa K la mct khca caa Q aea
1 (Kl = Q va
2 Khca tca ta| K'
c
K sac chc (Kl= Q
Iap thacc t|ah 9 1acc c| la s|ea khca aea 9 _ K
Ihacc t|ah A 1acc c| la thacc t|ah khca aea AeK vc| K la khca |at k caa Q Nacc la| A 1acc c| la thacc t|ah khca khca
Hct lacc 1c aaa he cc the cc ah|ea khca va tap thacc t|ah khca khca caa cc the |aa rca (Kh| th|et ke mct he thca thca t|a,
th| v|ec lap lacc 1c cc sc Ja l|ea 1at 1ea mct t|ea chaaa aac 1c la mct v|ec lam aaa trca V|ec xac 1|ah chaaa chc mct lacc 1c
aaa he cc l|ea aaa mat th|et vc| thaat tcaa t|m khcal
!!52 Ihaat tcaa t|m tat ca khca
Ihaat tcaa cc |aa
8acc 1 Xac 1|ah tat ca cac tap cca khac rca caa Q
X|
Na (IN
X
|
l
= Q
thea
9
|
= IN
X
|
8acc 5 I|m khca |aa cach lca| |c cac s|ea khca khca tc| th|ea
9
|
,9
j
e
9
!f 9
|
c
9
j
thea !ca| 9
j
ra khc| tap s|ea khca 9
9 cca la| ch|ah la tap khca caa t|m
!!5 c th| caa pha thacc ham
Ip lIh ! c| th c ||a J|a |a mt th c| ha 0c at trca th c ch|a lm 2 lc|
` Nt thac t|ah ||a J|a ch X v ta thac t|ah
` Nt lIh ||a J|a |a h|ah tr|a c| s th t ca lIh
0c caa trca th ca ch|a lm 2 lc|
` 0aa a lIh(xat pht t thac t|ah v tr| ca lIhl
` 0aa r| lIh(xat pht t thac t|ah v ph| ca lIhl
V| Ja Ve 1c th| caa tap lIh !
F={ f1:AB
f2:BC
f3:CD
f4:DB}
Nu th biu din tp PTH F khng cha chu trnh
th Q ch c duy nht 1 kha, iu ngc li l khng
ng nh v d trn.
III DNG CHUN CA LC QUAN H
III.1 Mt s khai nim lien quan n cac dng chun.
- Thuc tnh n-thuc tnh kp: mt thuc tnh A ca quan h Q gi l thuc tnh n
nu gi tr ca n khng th tch c na(hay cn gi l gi tr nguyn t), ngc
li c gi l thuc tnh kp.
- Thuc tnh kha- thuc tnh khng kha: thuc tnh A gi l thuc tnh kho nu A c
tham gia vo bt k mt kho no ca lc quan h, ngc li A gi l thuc tnh
khng kha.
- Thuc tnh ph thuc y - ph thuc hm y : thuc tnh A gi l thuc tnh
ph thuc y vo tp thuc tnh X nu ph thuc hm X A l mt ph thuc
hm y ngha l khng tn ti X' c X sao cho X' A
e
F
+
.
III.2 Dng chun 1(1NF-First Normal Form)
f1
f2
f3
f4
A
x
x B
x C
D
x
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 18
Lc quan h Q c gi l t dng chun 1 nu v ch nu ton b cc thuc tnh ca
Q u mang gi tr n.
V d: Cho quan h sau
Quan h trn khng t dng chun 1 v c b th nht thuc tnh MONHOC gm cc gi tr
K Thut Lp Trnh, C S D Liu, Cu Trc D Liu. Ta c th a quan h trn v dng
chun 1 nh sau:
III.3 Dng chun 2(2NF-Second Normal Form)
Mt lc quan h Q c gi l dng chun 2 nu:
- Q t dng chun 1.
- Mi thuc tnh khng kha ca Q ph thuc y vo cc kha ca Q.
Nhn xt:
- Nu lc quan h Q ch c mt kha K v Card(K)=1 th Q t dng chun 2.
- Nu Q t dng chun 1 v tp thuc tnh khng kha ca Q bng rng th Q t
dng chun 2.
- Mt lc quan h Q t dng chun 2 vn c th cha ng s trng lp thng
tin.
V d: Cho lc quan h Q(A,B,C,D) v tp ph thuc hm
F={ABC; BD; BCA}. Hi Q c t dng chun 2 khng?
Ta c : TN={B} TG={A,C}
(B)
+
=BD
(BA)
+
=ABCD = Q
+
AB l kha ca Q
(BC)
+
=BCDA = Q
+
BC l kha ca Q
Nh vy, Q c 2 kho l AB, BC v D l thuc tnh khng kha.
Xt D c ph thuc y vo cc kha AB, BC khng. Ngha l xt AB D, BCD c l
ph thuc hm y khng?
Ta thy, trong tp F c ph thuc hm B D nn AB D l ph thuc hm khng y .
Vy Q khng t dng chun 2.
Thut ton kim tra dng chun 2
Bc 1: Tm tt c cc kha ca Q
Bc 2: Vi mi kha K
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 19
Tm bao ng ca tt c cc tp con tht s ca K, nu c bao ng no cha thuc tnh
khng kha th Q khng t dng chun 2. Ngc li, Q t dng chun 2.
III.4 Dng chun 3(3NF- Third Normal Form)
Thuc tnh ph thuc bc cu
Cho lc quan h Q v X,Y l hai tp con ca Q
+
, A l mt thuc tnh.
Thuc tnh A ph thuc bc cu vo X nu tha ba iu kin sau y:
- X Y,Y A
- Y X
- A eX Y
Khi X A gi l ph thuc hm bc cu.
nh ngha
Mt lc quan h Q c gi l t dng chun 3 nu:
- Q t dng chun 2.
- Mi thuc tnh khng kha ca Q u khng ph thuc bt cu vo cc kha ca Q
Nhn xt:
- Nu lc quan h Q khng c thuc tnh khng kha th Q t dng chun 3.
- Dng chun 3 l tiu chun ti thiu trong vic thit k CSDL.
nh l
Cho lc quan h Q v tp ph thuc hm F c v phi mt thuc tnh. Q t dng chun
3 nu v ch nu mi ph thuc hm XAF vi AX
- Hoc X l siu kha.
- Hoc A l thuc tnh kha
Thut ton kim tra dng chun 3
Bc 1: Tm tt c cc kha ca Q
Bc 2: T F to tp ph thuc hm tng ng F co v phi mt thuc tnh.
Bc 3: Nu mi ph thuc hm X A
e
F vi AX nu c X l siu kha hoc A l thuc
tnh kha th Q t dng chun 3, ngc li Q khng t dng chun 3.
V d: Cho lc quan h Q(A,B,C,D) v tp ph thuc hm
F={ABC; DB; CABD}.
Hi Q c t dng chun 3 khng?
Gii:
Ta co : TN={} TG={A,B,C,D}
(A)
+
=A
(B)
+
=B
(C)
+
=CABD = Q
+
C l kha ca Q
(D)
+
=DB
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 20
(AB)
+
=ABCD = Q
+
AB l kha ca Q
(AD)
+
=ADBC = Q
+
AB l kha ca Q
(BD)
+
=BD
Vy K={C;AB;AD}
Cc tuc tnh kha: A,B,C,D
F={ABC; DB; CA; CB; CD}.
Cc ph thuc hm trong tp F u c v phi l thuc tnh kha.
Vy Q t dng chun 3.
III.5 Dng chun BC(Boyce-Codd Normal Form)
Mt lc quan h Q t dng chun BC nu mi ph thuc hm XAF vi AX u c X
l siu kha.
Thut ton kim tra dng chun BC
Bc 1: T F to tp ph thuc hm tng ng F c v phi mt thuc tnh.
Bc 2: Nu mi ph thuc hm X A
e
F vi AX nu c X l siu kha th Q t dng
chun BC, ngc li Q khng t dng chun BC.
V d: Cho lc quan h Q(A,B,C,D,E,I) v tp ph thuc hm
F={ACDEBI;CEAD}.
Hi Q c t dng cun BC khng?
Gii:
Bc 1: F={ ACDE; ACDB; ACDI; CEA; CED }.
Bc 2: Xt cc ph thuc hm XA
e
F vi AX th X c l siu kha ca Q hay khng?
Xt ACDE: ta thy EACD v ACD l siu kha nn ACDE tha.
Xt ACDB: ta thy B ACD v ACD l siu kha nn ACDB tha.
Xt ACDI: ta thy I ACD v ACD l siu kha nn ACDI tha.
Xt CEA : ta thy A CE v CE l siu kha nn CEA tha.
XtCED : ta thy D CE v CE l siu kha nn CED tha.
Vy Q t dng chun BC.
III.6 Thut ton kim tra dng chun ca mt lc quan h.
xc nh dng chun cao nht ca 1 lc quan h, chng ta xem hnh minh ha mi
quan h gia cc dng chun.
Nh vy, nu mt lc quan h t dng chun 3 th ng nhin t dng chun 2 v
dng chun 1, nhng cha chc t dng chun BC, t dng chun BC th lc cn phi
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 21
tha mn iu kin ca dng chun BC. Do , kim tra mt lc t dng chun my
hay lc t dng chun cao nht l dng chun my chng ta s kim tra t dng chun
cao n dng chun thp.
Thut ton kim tra dng chun ca mt lc quan h Q.
Bc 1:Kim tra dng chun BC. Nu ng th Q t dng chun BC, kt thc. Nu Q khng
t dng chun BC th qua bc 2.
Bc 2: Kim tra dng chun 3. Nu ng th Q t dng chun 3, kt thc. Nu Q khng
t dng chun 3 th qua bc 3.
Bc 3: Kim tra dng chun 2. Nu ng th Q t dng chun 2, kt thc. Nu Q khng
t dng chun 2 th qua bc 4.
Bc 4: Kt lun Q t dng chun 1.
Lu :
- Theo qui c nu lc quan h khng t dng chun 2 th t dng chun 1.
- Dng chun ca lc CSDL l dng chun thp nht ca cc lc quan h con.
V d: Cho lc quan h Q(ABCDEGH) v tp ph thuc hm
F={B A, DA CE, D H, GH C, AC D }
Xc nh dng chun cao nht ca Q.
Gii:
Bc 1: Kim tra dng chun BC
F={B A, DA C, DA E, D H, GH C, AC D }
Xt B A c (B)
+
=BA
Ph thuc hm B A c v tri khng l siu kha.
Vy Q khng t dng chun BC.
Bc 2:
Tm tt c cc kho
TN={B,G}
TG={A,C,D,H}
(BG)
+
= BGA
(BGA)
+
= BGA
(BGC)
+
= BGCADEH=Q
+
BGC l kha ca Q
(BGD)
+
= BGDACEH=Q
+
BGD l kha ca Q
(BGH)
+
= BGHACDE=Q
+
BGH l kha ca Q
Vy K={ BGC, BGD, BGH}
Cc thuc tnh kha: B, C, D, G, H
Xt B A c v tri khng l siu kha v v phi khng l thuc tnh kha.
Vy Q khng t dng chun 3.
Bc 3 :
Cc thuc tnh khng kha : A, E
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 22
Xt kha BGC:
(BG)
+
= BGA A nh vy thuc tnh khng kha A ph thuc khng y vo kho BGC
Vy Q khng t dng chun 2.
Kt lun: Q t dng chun cao nht l dng chun 1.
CHNG 4
RNG BUC TON VN
I NH NGHA
Trong CSDL c rt nhiu mi lin h gia cc quan h vi nhau. Trong mi quan h hay gia
cc quan h c nhng rng buc, nhng qui nh m tt c cc d liu u phi tha mn
nhng qui nh ny. V d, trong lc quan h KETQUA(MASV,MAMH,DIEM) s c mt qui
nh nh sau: Vi tt c cc b trong quan h KETQUA th gi tr ca thuc tnh DIEM trn mi
b ch c nhn gi tr l s nguyn trong khong t 0 n 10.
Rng buc ton vn l mt iu kin c nh ngha trn mt hay nhiu quan h khc
nhau, l iu kin bt bin m mi th hin ca quan h phi tha bt k thi im no. Rng
buc ton vn cn c gi l nhng qui tc qun l xut pht t nhng qui nh hay iu kin
trong thc t, trong m hnh d liu.
Rng buc ton vn c s dng v ci t trong CSDL nhm bo m:
- Tnh nht qun ca d liu.
- Tnh kt dnh ca d liu.
- CSDL lun biu din ng ng ngha thc t.
Ngi thit k CSDL phi pht hin cng y v cng chnh xc cc rng buc ton vn
v m t mt cch chnh xc trong h s thit k. Kim tra vi phm rng buc ton vn l mt
vn quan trng trong qu trnh phn tch v thit k CSDL.
II CC YU T CA RNG BUC TON VN
Mi rng buc ton vn c 3 yu t: iu kin, bi cnh v bng tm nh hng.
1 iu kin.
iu kin ca mt rng buc ton vn c th c biu din bng ngn ng t nhin, thut
gii, ngn ng i s tp hp, i s quan h, Ngoi ra rng buc ton vn cn c th c
biu din bng ph thuc hm(ph thuc hm s c trnh by trong chng 6)
V d 1: Vi quan h NHANVIEN chng ta c rng buc ton vn sau:
Mi nhn vin phi c m s nhn vin khc nhau, khng trng vi bt c nhn vin no
khc trong cng ty , iu kin ca rng buc ton vn ny c biu din bng ngn ng t
nhin.
Biu din bng ngn ng i s
n
1
,n
2
e NHANVIEN
Nu n
1
= n
2
th n
1
.MANV = n
2
.MANV
cui
2 Bi cnh.
Bi cnh ca rng buc ton vn l nhng quan h m rng buc c hiu lc hay ni mt
cch khc, l nhng quan h cn phi c kim tra khi tin hnh cp nht d liu. Bi cnh
ca mt rng buc ton vn c th l mt hoc nhiu quan h.
V d 2: Vi rng buc ton vn trn c bi cnh l quan h NHANVIEN.
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 23
3 Bng tm nh hng.
Bng tm nh hng cho bit ng vi thao tc cp nht d liu(thm, sa, xa) trn mt
quan h no th c cn kim tra rng buc ton vn khng.
Mt bng tm nh hng ca mt rng buc ton vn c dng sau:
ng vi mi thao tc trn quan h th i(1 i k) chng ta s dng mt trong ba k hiu
sau:
-: khng cn kim tra rng buc ton vn, c ngha l ng vi thao tc cp nht d liu
tng ng khng lm quan h ang xt vi phm rng buc ton vn.
+: cn phi kim tra rng buc ton vn, c ngha l ng vi thao tc cp nht d liu
tng ng trn quan h ang xt c kh nng gy ra vi phm rng buc ton vn.
-(*): theo qui c khng c php sa trn thuc tnh kha chnh, c ngha l ng vi thao
tc cp nht d liu tng ng trn quan h ang xt c kh nng gy ra vi phm rng buc
ton vn, nhng do y l thuc tnh kha nn khng c php sa, nh vy y l trng
hp khng vi phm do khng c php sa.
V d 3: Vi rng buc ton vn trn th bng tm nh hng nh sau
Bng tm nh hng tng hp: c xy dng trn c s bng tm nh hng ca tt c
cc rng buc ton vn c trong mt CSDL, dng kim tra rng buc ton vn khi c mt
thao tc cp nht d liu trn mt quan h no .
III PHN LOI RNG BUC TON VN
Phn loi rng buc ton vn gip ngi phn tch thit k CSDL d dng pht hin y
cc rng buc ton vn c trong mt CSDL. Cc rng buc ton vn c th c chia lm hai
loi chnh:
- Bi cnh trn mt quan h.
- Bi cnh trn nhiu quan h.
1 Rng buc ton vn c bi cnh trn mt quan h
1.1 Rng buc ton vn min gi tr
L loi rng buc c lin quan n min gi tr ca mt thuc tnh trong mt quan h.
Rng buc ny l loi rng buc thng hay gp.
V d 4: rng buc ton vn RB_DIEM nh sau:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 24
iu kin: Vi tt c cc b trong quan h KETQUA th gi tr ca thuc tnh DIEM trn mi
b ch c nhn gi tr l s nguyn trong khong t 0 n 10.
Bi cnh: KETQUA
Bng tm nh hng:
1.2 Rng buc ton vn lin thuc tnh
L loi rng buc ton vn c mi lin h gia cc thuc tnh trong mt lc quan h.
V d 5: c lc quan h NHANVIEN nh sau:
NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG, NGXEPLUONG, MANQL,
MAPHG)
Khi c mt rng buc ton vn sau:
iu kin:RB_NGXEPLUONG: vi mi nhn vin trong cng ty th ngy xp lng phi ln
hn ngy sinh
Bi cnh: NHANVIEN
Bng tm nh hng:
1.3 Rng buc ton vn lin b
L loi rng buc ton vn c mi lin h gia cc b trong mt lc quan h. dng rng
buc ton vn ny m chng ta thng gp chnh l rng buc v kha chnh.
V d 6: c lc quan h PHONGBAN(MAPHG,TENPHG, TRPHG,SONV) khi c mt rng
buc ton vn nh sau:
iu kin: RB_TENPB : vi mi phng ban th tn phng ban phi khc nhau
Bi cnh: PHONGBAN
Bng tm nh hng:
2 Rng buc ton vn c bi cnh trn nhiu quan h
2.1 Rng buc ton vn ph thuc tn ti(tham chiu,kha ngoi)
L loi rng buc ton vn m gi tr ca tt c cc b trn mt thuc tnh no ca quan
h ny ph thuc vo s tn ti gi tr trn mt thuc tnh ca quan h kia.
V d 7: c hai lc quan h
NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG, NGXEPLUONG, MANQL,
MAPHG)
PHONGBAN(MAPHG,TENPHG, TRPHG, NGNHANCHUC, SONV)
Khi c mt rng buc ton vn nh sau:
iu kin: RB_NV_PB : vi mi nhn vin trong cng ty phi thuc mt phng ban trong
cng ty
Bi cnh: NHANVIEN, PHONGBAN
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 25
Bng tm nh hng:
Lu : trng hp c bit rng buc ton vn loi ny nhng c bi cnh trn mt quan
h.
V d 8: c lc quan h NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG,
NGXEPLUONG, MANQL, MAPHG) khi c mt rng buc ton vn nh sau:
iu kin: RB_NV_QL : ngi qun l cc nhn vin trong cng ty(nu c) phi l nhn
vin trong cng ty
Bi cnh: NHANVIEN
Bng tm nh hng:
2.2 Rng buc ton vn lin thuc tnh-lin quan h.
L loi rng buc ton vn c mi lin h gia cc thuc tnh ca cc quan h.
V d 9: c hai lc quan h
NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG, NGXEPLUONG, MANQL,
MAPHG)
PHONGBAN(MAPHG,TENPHG, TRPHG, NGNHANCHUC, SONV)
Khi c mt rng buc ton vn nh sau:
iu kin: RB_NS_NNC : ngy nhn chc ca trng phng ca mi phng ban(nu
c)phi ln ngy sinh ca trng phng ca phng ban
Bi cnh: NHANVIEN, PHONGBAN
Bng tm nh hng:
2.3 Rng buc ton vn lin b-lin quan h.
L loi rng buc ton vn c mi lin h gia cc b ca cc quan h.
V d 9: c hai lc quan h
NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG, NGXEPLUONG, MANQL,
MAPHG)
PHONGBAN(MAPHG,TENPHG, TRPHG, NGNHANCHUC, SONV)
Khi c mt rng buc ton vn nh sau:
iu kin: RB_SLNV: mi phng ban phi c t nht l mt nhn vin
Bi cnh: NHANVIEN, PHONGBAN
Bng tm nh hng:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 26
2.4 Rng buc ton vn v thuc tnh tng hp
L loi rng buc ton vn m gi tr ca thuc tnh trong quan h ny c tnh ton t cc
thuc tnh hoc cc b ca quan h khc.
V d 10 : c hai lc quan h
NHANVIEN(MANV, HONV, TENNV, NGSINH, QQUAN, LUONG, NGXEPLUONG, MANQL,
MAPHG)
PHONGBAN(MAPHG,TENPHG, TRPHG, NGNHANCHUC, SONV)
Khi c mt rng buc ton vn nh sau:
iu kin: RB_TONG_NV: s lng nhn vin ca mi phng ban phi bng tng s nhn
vin thuc phng ban
Bi cnh: NHANVIEN, PHONGBAN
Bng tm nh hng:
Sau khi thit k xong tt c cc rng buc ton vn c trong CSDL, chng ta lp bng tm
nh hng tng hp. minh ha bng tm nh hng tng hp, chng ta chn ba rng buc
ton vn ca cc v d trn: RB_TENPB, RB_NV_PB, RB_SLNV
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 27
CHNG 5
I S QUAN H
I. C S D LIU QUAN H.
M Mo o h h n nh h C C s s d d l li ie e u u Q Qu ua an n h he e ( (g go o i i t ta a t t l la a M Mo o h h n nh h Q Qu ua an n h he e ) ) d do o E E. .F F C Co od dd d e e
x xu ua a t t n na a m m 1 19 97 71 1. . M Mo o h h n nh h n na a y y b ba ao o g go o m m: :
- - M Mo o t t h he e t th ho o n ng g c ca a c c k ky y h hi ie e u u e e m mo o t ta a d d l li ie e u u d d i i d da a n ng g d do o n ng g v va a c co o t t n nh h
q qu ua an n h he e , , b bo o , , t th hu uo o c c t t n nh h, , k kh ho o a a c ch h n nh h, , k kh ho oa a n ng go oa a i i, , . .. .. .
- - M Mo o t t t ta a p p h h p p c ca a c c p ph he e p p t to oa a n n t th ha ao o t ta a c c t tr re e n n d d l li ie e u u n nh h p ph he e p p t to oa a n n t ta a p p h h p p, ,
p ph he e p p t to oa a n n q qu ua an n h he e . .
- - R Ra a n ng g b bu uo o c c t to oa a n n v ve e n n q qu ua an n h he e . .
Trong chng ny, chng ta s kho st cc php ton trn d liu.
II. CC PHP TON TP HP.
1 Php hp.
Cho 2 lc quan h Q
1
v Q
2
c cng tp thuc tnh {A
1
,A
2
,..,A
n
}.
TQ
1
v TQ
2
ln lt l 2 quan h trn Q
1
v Q
2
.Php hp ca 2 lc quan h Q
1
v Q
2
s
to thnh mt quan h Q3 , Q3 c xc nh nh sau :
Q
3
+
= {A
1
,A
2
,..,A
n
}
TQ
3
={q / q
e
TQ
1
hay q
e
TQ
2
}
K hiu : Q
3
=Q
1
Q
2
TQ
3
=TQ
1
TQ
2
V d : Cho 2 lc quan h Q
1
v Q
2
Khi : Q
3
=Q
1
Q
2
2 Php giao.
Cho 2 lc quan h Q
1
v Q
2
c cng tp thuc tnh {A
1
,A
2
,..,A
n
}. TQ
1
v TQ
2
ln lt l
2 quan h trn Q
1
v Q
2
.
Php giao ca 2 lc quan h Q
1
v Q
2
s to thnh mt lc quan h Q
3
.Q
3
c
xc nh nh sau :
Q
3
+
= {A
1
,A
2
,..,A
n
}
TQ
3
={q / q
e
TQ
1
v q
e
TQ
2
}
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 28
K hiu : Q
3
=Q
1
Q
2
, TQ
3
=TQ
1
TQ
2
V d : Cho 2 lc quan h Q
1
v Q
2
Khi : Q3=Q1
Q2
3 Php tr.
Cho 2 lc quan h Q
1
v Q
2
c cng tp thuc tnh {A
1
,A
2
,..,A
n
}. TQ
1
v TQ
2
ln lt l
2 quan h trn Q
1
v Q
2
.
Php giao ca 2 lc quan h Q
1
v Q
2
s to thnh mt lc quan h Q
3
c xc
nh nh sau :
Q
3
+
= {A
1
,A
2
,..,A
n
}
TQ3={q / q
e
TQ
1
v q
e
TQ
2
}
K hiu : Q
3
=(Q
1
- Q
2
)
TQ
3
=TQ
1
- TQ
2
V d : Cho 2 lc quan h Q
1
v Q
2
Khi : Q
3
=Q
1
- Q
2
4 Php b.
Cho mt lc quan h : Q(A
1
,A
2
,...,A
n
) TQ l mt quan h nh ngha trn Q . Ta nh
ngha min gi tr hin hnh ca mt thuc tnh Ai nh sau :
MGT
hh
(A
i
) = {a
i
e
MGT(A
i
)/ q
e
TQ , gi tr A
i
ca q l a
i
}
_
MGT(A
i
)
MGT
hh
(TQ) = { (a
1
, a
2
, ..., a
n
)/ a
i
_
MGT
hh
(A
i
), i =1,....,n}
Php b ca mt lc quan h Q to thnh mt lc Q nh sau :
Q
+
={A
1
,A
2
,...,A
n
}
TQ={q/q
e
MGT
hh
(TQ) v q
e
TQ}
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 29
V d : Cho lc quan h Q
1
MGT
hh
(A) = {a1, a2, a3}
MGT
hh
(B) = {b1, b2}
B ca Q
1
l
5 Php tch Descartes
Cho 2 lc quan h Q
1
(A
1
, A
2
,..., A
n
) , Q
2
(B
1
, B
2
,..., B
m
) . TQ
1
v TQ
2
ln lt l 2 quan h
trn Q
1
v Q
2
. Tch Descartes ca 2 lc quan h Q
1
v Q
2
s to thnh mt lc quan
h Q
3
nh sau :
* Q
3
+={A
1
,A
2
,...,A
n
,B
1
,B
2
,..,B
m
}
* TQ
3
={(q
1
.q
2
) / q
1
e
TQ
1
v q
2
e
TQ
2
}
K hiu : Q
3
=(Q
1
x Q
2
)
TQ
3
=(TQ
1
x TQ
2
)
V d : Cho 2 lc quan h Q
1
v Q
2
Khi : Q
3
=Q
1
x Q
2
III. CC PHP TON QUAN H.
1 Php chiu.
Cho mt lc quan h Q(A
1
,A
2
,..,A
n
) . TQ l mt quan h nh ngha trn Q . Php chiu
mt b q ln mt thuc tnh A
i
l php trch ly gi tr thuc tnh A
i
ca b q .
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 30
Php chiu Q ln tp thuc tnh X s to thnh mt lc quan h Q = Q[X] , trong
Q
+
chnh l Q nhng ch ly cc thuc tnh ca X .
V d : Cho lc quan h Q
Q l kt qu ca php chiu Q ln thuc tnh A, B
Php chiu chnh l php rt trch d liu theo ct ( chiu dc )
Biu din php chiu bng i s quan h
C php:
V d :
2 Php chn.
Cho mt lc quan h Q(A
1
, A
2
, ..., A
n
).
TQ l mt quan h nh ngha trn Q .
X l tp thuc tnh con ca Q
+
: X Q
+
Dx l mt iu kin c pht biu da trn tp X .
Dx : TQ {true,false}
Dx(q) = true nu q tha Dx
= false nu ngc li.
Php chn trn TQ theo iu kin Dx s to thnh mt lc quan h Q nh sau :
* Q
+
= Q
+
* TQ={q eTQ/Dx(q)=true}
V d :
c
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 31
Chn vi iu kin A=a1
Biu din php chn bng i s quan h
C php:
Biu thc gm cc mnh c dng
- <tn thuc tnh> <php so snh> <hng s>
- <tn thuc tnh> <php so snh> <tn thuc tnh>
- <php so snh> gm < , > , s , > , = , =
- Cc mnh c ni li nh cc php . , v ,
V d :
3 Php kt.
Cho 2 lc quan h Q
1
(A
1
,A
2
,..,A
n
), Q
2
(B
1
,B
2
,..,B
m
).TQ
1
v TQ
2
ln lt l 2 quan h
trn Q
1
v Q
2
. Ai v Bj ln lt l cc thuc tnh ca Q
1
v Q
2
sao cho MGT(A
i
) = MGT(B
j
)
l mt php so snh trn MGT(A
i
) . Php kt gia Q
1
v Q
2
s to thnh mt lc
quan h Q
3
nh sau :
Q
3
+
= Q
1
+
Q
2
+
q
3
[Q
1
+
]=q
1
q
3
[Q
2
+
]=q
2
q3.Ai q3.Bj }
V d : cho 2 lc quan h Q1 , Q2
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 32
Nhn xt :
Php kt gia Q1 v Q2 chnh l php tch Descartes ri thc hin php chn da vo
iu kin Ai Bj
Nu c s dng trong php kt l php so snh = th ta gi l php kt bng ( equi-
join) . Hn na , nu Ai Bj ta gi l php kt t nhin ( natural join ) . Php kt t nhin l
php kt rt thng c s dng trong thc t .
K hiu :
Ta c th m rng php kt trn nhiu thuc tnh :
MGT(A
i1
) = MGT(B
j1
) vi php so snh
1
MGT(A
i2
) = MGT(B
j2
) vi php so snh
2
...............................
Bc 1 : To tch Descartes .
Bc 2 : Thc hin php chn theo iu kin
(A
i1
1
B
j1
) and (A
i2
2
B
j2
) and .....
Php kt m c bit l php kt t nhin ng mt vai tr rt quan trng trong m hnh d
liu quan h .
4 Php chia.
Cho 2 lc quan h Q
1
, Q
2
vi Q
2
+
_
Q
1
+
Bng cch nh li ch s , ta c th gi s :
Q
1
+={A
1
, A
2
,....,A
k
,
Ak+1
,...,A
n
}
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 33
Q
2
+={A
1
, A
2
,....,A
k
}
TQ
1
v TQ
2
ln lt l cc quan h c nh ngha trn Q
1
, Q
2
. Php chia Q
1
cho Q
2
s to
thnh mt lc quan h Q
3
nh sau :
Q
3
+
=Q
1
+
- Q
2
+
TQ
3
={q
3
/ q
2
eTQ
2
, -q
1
e TQ
1
: q
3
=q
1
[Q
3
+
] v q
2
=q
1
[Q
2
+
]}
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 34
CHNG 6
NGN NG TRUY VN SQL
I GII THIU SQL
Mt h qun tr CSDL phi bao gm cc ngn ng giao tip gia ngi s dng vi CSDL.
Ngn ng giao tip vi CSDL gm cc loi sau:
- Ngn ng m t d liu(Data Definition Language DDL): cho php khai bo cu
trc cc bng ca CSDL, khai bo cc mi quan h gia cc bng trong CSDL v cc quy
tc(rng buc ton vn) ca CSDL.
- Ngn ng thao tc d liu(Data Manipulation Language- DML): cho php thc
hin cc thao tc nh thm(insert), xa(delete), sa(update) d liu trong CSDL.
- Ngn ng truy vn d liu (Structured Query Language- SQL): cho php ngi s
dng khai thc CSDL truy vn cc thng tin cn thit trong CSDL.
- Ngn ng qun l d liu(Data Control Language- DCL):cho php nhng ngi
qun tr h thng thay i cu trc ca cc bng d liu, khai bo bo mt thng tin v
cp quyn khai thc CSDL cho ngi s dng.
Gia nhng nm 1970, mt nhm cc nh pht trin ti trung tm nghin cu ca IBM ti
San Jose pht trin h thng c s d liu "H thng R" da trn m hnh ca Codd. Structured
English Query Language, vit tt l "SEQUEL", c thit k qun l v truy vn d liu c
lu tr trong H thng R, sau ny tn vit tt SEQUEL c rt gn thnh SQL. Nm 1976 ngn
ng SEQUEL c ci tin thnh SEQUEL-2, khong nm 1978-1979 SEQUEL-2 c ci tin v
i tn thnh ngn ng truy vn c cu trc. Cui nm 1979 h qun tr CSDL c ci tin
thnh SYSTEM-R*. Nm 1986 vin tiu chun quc gia M (American National Standards
Institute ANSI) cng nhn v chun ho ngn ng SQL v sau t chc tiu chun th
gii (International Standards Organization -ISO) cng cng nhn ngn ng ny. l chun
SQL-86. Ti nay SQL qua cc ln chun ho (1989,1992,1999, 2003) m rng cc php
ton v tng cng kh nng bo mt v tnh ton vn d liu.
II TRUY VN D LIU
Cu lnh truy vn SQL dng rt trch d liu t mt quan h hay nhiu quan h. Kt qu
tr v ca cu lnh truy vn SQL l mt quan h. Mi cu lnh c vit trn mt dng hoc
nhiu dng, khng phn bit ch thng v ch hoa.
C php tng qut ca cu lnh truy vn nh sau:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
[WHERE <biu thc iu kin>]
[GROUP BY <danh sch thuc tnh>]
[HAVING <iu kin nhm>]
[ORDER BY <danh sch cc thuc tnh [ASC|DESC]>]
1 Php chiu
C php :
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
Php chiu cho kt qu l mt quan h, quan h kt qu bao gm cc ct c lit k trong
danh sch cc ct sau t kha SELECT, cc ct ny l cc ct trong danh sch cc bng c
lit k trong danh sch cc bng sau t kha FROM.
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 35
V d 1: C cc thng tin v nhn vin nh sau:
Nu chng ta ch mun truy vn d liu trn cc ct MANV, HONV, TENNV, PHAI th cu truy
vn nh sau:
SELECT MANV, HONV, TENNV, PHAI
FROM NHANVIEN
Kt qu l:
Trong trng hp mun hin th tt c cc thng tin trong bng NHANVIEN thay v chng ta
phi lit k tn tt c cc ct sau mnh SELECT th chng ta s dng k t thay th *
V d 2:
SELECT *
FROM NHANVIEN
Kt qu l:
Hy xem xt v d sau:
SELECT QQUAN
FROM NHANVIEN
Kt qu l:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 36
Tuy nhin, mc ch ca chng ta l mun bit qu qun ca tt c nhn vin trong cng ty
cc tnh no, c ngha l mi tnh ch xut hin 1 ln, khi chng ta dng t kha DISTINCT
cu lnh SELECT nh sau :
SELECT DISTINCT QQUAN
FROM NHANVIEN
V kt qu l:
Vi t kha DISTINCT sau cu lnh SELECT s loi b cc b trng nhau trong quan h kt
qu.
Chng ta tip tc xem xt cu lnh sau y:
SELECT ALL TINH
FROM NHANVIEN
V kt qu l:
Vi t kha ALL sau cu lnh SELECT s cho tt c cc b trong quan h kt qu, trng
hp ny cng ging nh cch vit SELECT <danh sch cc ct>
Nu chng ta mun t tn khc cho tn ca cc ct trong quan h kt qu(cn gi l b
danh - ALIAS) th thc hin bng cch thm t kha AS v theo sau l mt tn mi. Nu tn c
cha cc k t c bit hoc khong trng th vit tn trong cp du ngoc vung ([ ]).
V d 3: t tn cho ct QQUAN l QU QUN v PHAI l PHI
SELECT QQUAN AS [QU QUN],PHAI AS PHI
FROM NHANVIEN
S dng cc ct tnh ton: khi trong cu lnh truy vn cn hin th thng tin c tnh ton
hoc tng hp t cc thuc tnh khc. Chng ta c th s dng cc php ton v cc hm s.
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 37
V d 4: Hy cho bit danh sch nhn vin gm cc thng tin: m nhn vin, h nhn vin,
tn nhn vin, ngy sinh, lng v ph cp trong ph cp l 10% ca lng.
SELECT MANV,HONV,TENNV,NGSINH,LUONG,LUONG*0.1 AS PHUCAP
FROM NHANVIEN
V kt qu l:
Sau y l mt s hm v ton t thng c s dng:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 38
2 Php chn
Php chn cho php chng ta chn ra nhng b d liu tha mn mt hay nhiu iu kin
no trong quan h ngun. Cc iu kin ny chng ta t mnh WHERE v bt buc
phi s dng thm 2 cu lnh SELECT v FROM.
C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
WHERE <biu thc iu kin>
V d 5: Trong bng d liu NHANVIEN chng ta cn chn ra nhng nhn vin c qu qun
NNG, cu lnh c vit nh sau:
SELECT *
FROM NHANVIEN
WHERE QQUAN = ' NNG'
V kt qu l:
Lu : V chng ta ang s dng theo c php SQL chun, v vy khi vit cc cu lnh SQL
trong cc h qun tr CSDL khc nhau s c cch vit khc nhau. Chng hn, nu s dng
Access 2003 th iu kin mnh WHERE c vit nh sau: QQUAN= NNG, cm t
NNG c bao bi cp du nhy i , cn nu s dng SQL Server 2000 th cm t
NNG c bao bi cp du nhy n ' '. Ngoi ra, nu kiu d liu ca ct QQUAN l kiu
chui Unicode th chng ta phi thm ch N sau du bng: QQUAN=N' NNG'
Mt biu thc iu kin phi bao gm cc thnh phn sau:
<tn thuc tnh><php so snh><gi tr so snh>
Trong :
Tn thuc tnh: l thuc tnh cn t iu kin chn
Php so snh: l mt trong cc php so snh nh bng sau
Gi tr so snh: thng l mt hng s hoc l mt tp hp gi tr, so snh thuc tnh
trong biu thc iu kin nh th no so vi gi tr ny. Tuy nhin, gi tr so snh cng c th
l mt thuc tnh.
Chng ta phn tch li biu thc iu kin trong v d trn:
SELECT *
FROM NHANVIEN
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 39
WHERE QQUAN = ' NNG'
Trong :
Tn thuc tnh: QQUAN
Php so snh: =
Gi tr so snh: NNG
Khi thc hin so snh chn ra nhng b trong bng d liu ngun th biu thc iu kin
s tr v mt gi tr kiu boolean(true hoc false) cho mi b, ch nhng b no c gi tr tr v
l true th mi c chn vo bng kt qu.
V d 6: Xt b sau y
Cn c vo thuc tnh QQUAN ca b ny c gi tr l NNG nn biu thc iu kin s
cho kt qu l true v b ny c chn vo bng d liu kt qu. Ngc li, nhng b no c
gi tr khng phi l NNG th biu thc iu kin s cho gi tr false v cc b ny khng
c chn a vo bng d liu kt qu.
Trong thc t, khi truy vn d liu chng ta thng chn cc b d liu tha mn mt trong
cc iu kin hoc tha mn tt c cc iu kin, nh vy chng ta phi thit k nhiu iu
kin v cc iu kin ny c ni vi nhau bi cc php ni sau:
V d 7: Hy cho bit danh sch nhn vin c qu qun l NNG v c phi l NAM
tr li cu truy vn ny, chng ta xem trong quan h NHANVIEN nhng b no c gi tr
trn ct QQUAN l NNG v b ny c gi tr trn ct PHAI l NAM. Nh vy hai biu thc
iu kin ny phi c ni vi nhau bi php ni AND. Khi cu lnh c vit nh sau:
SELECT *
FROM NHANVIEN
WHERE QQUAN = ' NNG' AND PHAI='NAM'
V kt qu l:
V d 8 : Hy cho bit danh sch nhn vin c tn l IP hoc cc nhn vin c PHAI l
NAM.
tr li cu truy vn ny, chng ta xem trong quan h NHANVIEN nhng b no c gi tr
trn ct TENNV l IP th chn b vo quan h kt qu, nu b c TENNV khng phi l
IP nhng c PHAI l NAM th b ny cng c chn vo quan h kt qu. Ngc li nu
khng tha mn mt trong hai iu trn th b khng c chn vo quan h kt qu. Nh
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 40
vy hai biu thc iu kin ny phi c ni vi nhau bi php ni OR. Khi cu lnh c
vit nh sau:
SELECT *
FROM NHANVIEN
WHERE TENNV = 'IP' OR PHAI='NAM'
V kt qu l:
V d 9 : Hy cho bit danh sch nhn vin c qu qun NNG v LM NG.
tr li cu truy vn ny, chng ta xem trong quan h NHANVIEN nhng b no c gi tr
trn ct QQUAN l NNG hoc gi tr trn ct QQUAN l LM NG. Trong cu truy vn ny,
mc d cu hi cho l NNG v LM NG nhng chng ta phi s dng php ni OR v
trn cng mt ct QQUAN th mi b ch mang mt gi tr, khng th no c mt b m va
mang gi tr l NNG li va mang gi tr l LM NG. Khi cu lnh c vit nh sau:
SELECT *
FROM NHANVIEN
WHERE QQUAN = ' NNG' OR QQUAN = 'LM NG'
V kt qu l:
u tin trong biu thc iu kin:
Khi trong biu thc iu kin ch s dng duy nht mt loi php ni AND hoc OR th chng
ta khng cn quan tm n u tin, nhng trong biu thc iu kin va c php AND, va
c php OR th chng ta phi gom nhm phn u tin cho cc biu thc iu kin, s
dng du ( ) phn u tin.
V d 10: Hy cho bit danh sch nhn vin thuc phng s 1 v c qu qun TP.HCM
hoc NNG
SELECT *
FROM NHANVIEN
WHERE MAPHG=1 AND (QQUAN='TP.HCM' OR QQUAN=' NNG')
V kt qu l:
Sau y chng ta ln lt xt cc php so snh LIKE, IN, BETWEENAND
Php so snh LIKE: dng so snh gi tr ca thuc tnh so vi mu
C php : <tn thuc tnh> LIKE <mu>
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 41
Trong <mu> c th c nhng k t i din, ty thuc vo h qun tr CSDL khc nhau s
c qui nh khc nhau, sau y chng ta s tm hiu cc k t i din trong Access 2003 v
SQL Server 2000.
V d 11: Hy cho bit danh sch nhn vin c h l h NGUYN
SELECT *
FROM NHANVIEN
WHERE HONV LIKE 'NGUYN%'
V kt qu l:
V d 12: Hy cho bit danh sch nhn vin c tn bt u l ch Q hoc ch
SELECT *
FROM NHANVIEN
WHERE TENNV LIKE '[Q]%'
V kt qu l:
Lu : Nu cc k t lit k trong du [] l lin k nhau th chng ta c th vit k t u
du k t cui. V d: [abcdef] tng ng [a-f]
Php so snh IN: dng so snh gi tr ca thuc tnh c l mt trong cc gi tr c lit
k trong php IN hay khng.
V d 13: Hy cho bit danh sch nhn vin c qu qun NNG v LM NG.
SELECT *
FROM NHANVIEN
WHERE QQUAN IN(' NNG','LM NG')
Php so snh BETWEENAND: dng so snh gi tr ca thuc tnh c thuc trong
khong gi tr no hay khng.
V d 14: Hy cho bit danh sch nhn vin c mc lng t 2 triu n 3 triu
SELECT *
FROM NHANVIEN
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 42
WHERE LUONG BETWEEN 2000000 AND 3000000
V kt qu l:
Php ph nh NOT : dng ph nh li gi tr logic ca biu thc iu kin. Nu biu
thc iu kin c gi tr true th php ph nh s cho gi tr false, ngc li biu thc iu kin
c gi tr false th php ph nh s cho gi tr true.
V d 15: Hy cho bit danh sch nhn vin c qu qun khng TP.HCM
SELECT *
FROM NHANVIEN
WHERE NOT QQUAN='TP.HCM'
V kt qu l:
Chng ta c th s dng php ph nh NOT trong cc php so snh LIKE, BETWEENAND
V d 16: Hy cho bit danh sch nhn vin c k t u tin ca tn khng phi l k t T
SELECT *
FROM NHANVIEN
WHERE TENNV NOT LIKE 'T%'
V d 17: Hy cho bit danh sch nhn vin c lng nh hn 2 triu hoc c lng ln hn
3 triu.
SELECT *
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 2000000 AND 3000000
Gi tr NULL: c s dng trong trng hp ti chng ta cha xc nh c gi tr,
cha bit gi tr. Cn phn bit gi tr NULL khc vi gi tr rng hoc gi tr 0. Khi cn kim tra
mt b c gi tr NULL trn thuc tnh no chng ta s dng hai hm sau y:
IS NULL
IS NOT NULL
V d 18: Hy cho bit danh sch nhn vin cha c ngi qun l.
SELECT *
FROM NHANVIEN
WHERE MANQL IS NULL
V kt qu l:
3 Php kt
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 43
Khi thc hin truy vn m cc thng tin cn truy vn trn nhiu quan h khc nhau th
chng ta cn phi thc hin php kt trn cc quan h c lin quan vi nhau. Chng ta thng
s dng php kt t nhin, tuy nhin trong mt vi trng hp th chng ta s dng php kt
bng. thc hin php kt, chng ta lit k cc quan h cn truy vn thng tin sau mnh
FROM v t iu kin kt sau mnh WHERE.
V d 19: Hy cho bit danh sch nhn vin gm cc thng tin m nhn vin, h nhn vin,
tn nhn vin, ngy sinh, tn phng ban.
Chng ta quen thuc vi cu truy vn ny, nhng c mt vn cn gii quyt l mun
bit tn phng ban ca mi nhn vin th chng ta cn truy vn thng tin trn quan h
PHONGBAN. V vy chng ta cn phi thc hin php kt gia quan h NHANVIEN v quan h
PHONGBAN.
Cu truy vn c vit nh sau:
SELECT MANV,HONV,TENNV,NGSINH,TENPHG
FROM NHANVIEN,PHONGBAN
WHERE NHANVIEN.MAPHG=PHONGBAN.MAPHG
V kt qu l:
Lu :
Nh vy, sau mnh WHERE c hai loi iu kin l iu kin chn v iu kin kt, iu
kin chn th trong biu thc iu kin ch lin quan n mt quan h cn iu kin kt th lin
quan n hai quan h. Cc iu kin chn v iu kin kt c th phi hp vi nhau bi cc
php ni logic AND, OR.
Cc thng tin c truy vn t nhiu quan h, nn s c cc thuc tnh trong cc quan h s
trng tn v vy chng ta cn phi ch r thuc tnh l ca quan h no.
Cch vit : <tn quan h>.<tn thuc tnh>
B danh bng: thun tin khi vit cu lnh chng ta c th t tn b danh cho bng, khi
t tn b danh cho bng chng ta c th s dng t kho AS hoc khng s dng t kha AS
Cch vit:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 44
Tn bng AS tn b danh
Tn bng tn b danh
Ly v d trn, chng ta c th vit li nh sau:
SELECT MANV,HONV,TENNV,NGSINH,TENPHG
FROM NHANVIEN n,PHONGBAN p
WHERE n.MAPHG=p.MAPHG
4 Gom nhm d liu
Khi truy vn d liu, chng ta cn thc hin mt s cu truy vn trong c nhng con s
thng k. V d, cn thng k mi phng ban c bao nhiu nhn vin, khi chng ta cn phi
gom cc nhn vin cng phng ban thnh tng nhm v thc hin m trn tng nhm c bao
nhiu nhn vin. Nh vy, khi thc hin gom nhm da trn mt tiu ch no th cn s
dng thm cc hm thng k, sau y l 5 hm thng k thng s dng:
- COUNT
COUNT(*) m s dng
COUNT(<tn thuc tnh>) m s gi tr khc NULL ca thuc tnh
COUNT(DISTINCT <tn thuc tnh>) m s gi tr khc nhau v khc NULL ca thuc tnh
- SUM : Tnh tng trn nhm.
- MIN : Tm gi tr nh nht trn nhm.
- MAX : Tm gi tr ln nht trn nhm.
- AVG : Tnh gi tr trung bnh trn nhm.
C php :
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
GROUP BY <danh sch thuc tnh>
Cc thuc tnh dng lm tiu ch gom nhm c t sau mnh GROUP BY
Cc hm thng k c t sau mnh SELECT
V d 20: Hy cho bit mi phng ban c bao nhiu nhn vin.
SELECT MAPHG,COUNT(*) AS TONGSO
FROM NHANVIEN
GROUP BY MAPHG
V kt qu l:
Lu : Cc thuc tnh trong mnh SELECT (tr cc hm thng k) phi xut hin trong
mnh GROUP BY
Mnh WHERE c th c kt hp trong cu lnh chn ra nhng b tha mn u kin
trc khi gom nhm.
V d 21: Hy cho bit mi phng ban c bao nhiu nhn vin NAM.
Trong cu truy vn ny, chng ta thy c s dng hm thng k m mi phng ban c
bao nhiu nhn vin NAM, v vy trc khi thc hin gom nhm v thng k chng ta ch chn
nhng nhn vin NAM m thi. Khi cu lnh c vit nh sau:
SELECT MAPHG,COUNT(*) AS [TSNV NAM]
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 45
FROM NHANVIEN
WHERE PHAI='NAM'
GROUP BY MAPHG
V kt qu l:
iu kin trn nhm(iu kin sau gom nhm): dng chn ra nhng b kt qu tha
mn iu kin no . V d, cho bit nhng phng ban no c t bn nhn vin tr ln, iu
kin ny chng ta khng th t mnh WHERE, m chng ta phi t iu kin mnh
HAVING.
C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
GROUP BY <danh sch thuc tnh>
HAVING <iu kin nhm>
V d 22: Hy cho bit nhng phng ban no c t bn nhn vin tr
SELECT MAPHG,COUNT(*) AS [TSNV NAM]
FROM NHANVIEN
GROUP BY MAPHG
HAVING COUNT(*)>3
V kt qu l:
5 Sp xp d liu
Khi chng ta thc hin cu truy vn theo yu cu, vn tip theo l chng ta mun sp
xp cc d liu va truy vn. Khi sp xp c hai kiu sp xp: sp tng dn hoc sp gim dn
da trn mt thuc tnh no . Hn na, nu da trn thuc tnh ny s c nhng b bng gi
tr vi nhau th khi cc b trng ny s c sp xp da trn thuc tnh tip theo.
C php:
SELECT <danh sch cc ct>
FROM <danh sch cc bng>
ORDER BY <tn ct >|<biu thc> [ASC | DESC], <tn ctt>|<biu thc> [ASC | DESC],
...
Lit k cc thuc tnh lm tiu chun sp xp sau mnh ORDER BY, mi thuc tnh c
xc nh l sp tng dn th thm t kha ASC sau tn thuc tnh, ngc li nu xc nh l
gim dn th thm t kho DESC sau tn thuc tnh. trong trng hp sp xp tng dn chng
ta c th khng cn thm t kha ASC sau tn thuc tnh.
- ASC: tng dn (mc nh)
- DESC: gim dn
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 46
V d 23: Hy cho bit danh sch nhn vin c sp theo th t tng dn theo tn, nu
sp xp trn tn trng nhau th sp gim dn theo mc lng.
SELECT *
FROM NHANVIEN
ORDER BY TENNV ASC,LUONG DESC
V kt qu l:
Gii hn s b trong quan h kt qu
Trong trng hp cn chn ra mt s b trong quan h kt qu chng ta s dng t kha
TOP sau mnh SELECT. Chng ta c th chn chnh xc bao nhiu b hoc t l bao nhiu
phn trm.
C php:
SELECT TOP [n|n PERCENT]
Thng thng, khi s dng t kha TOP th trong cu lnh c thm thao tc sp xp.
V du 24: Hy cho bit danh sch 3 nhn vin c mc lng cao nht.
SELECT TOP 3 *
FROM NHANVIEN
ORDER BY LUONG DESC
V kt qu l:
V du 25: Hy cho bit danh sch nhn vin c mc lng cao nht vi t l l 25% trong
ton b nhn vin.
SELECT TOP 25 PERCENT *
FROM NHANVIEN
ORDER BY LUONG DESC
V kt qu l:
6 Cu truy vn lng
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 47
Trong nhiu trng hp khi truy vn thng tin, trong cu hi nu ra khng cung cp nhng
d kin mt cch tng minh, v vy chng ta cn tm kim thng tin qua nhiu bc. Kt qu
ca bc trc l d kin dng trong biu thc iu kin ca bc sau. Cu truy vn nh vy
gi l truy vn lng, chng ta c th lng nhiu cp trong cu truy vn.
Truy vn lng l cu lnh truy vn khi m trong biu thc iu kin ca WHERE hoc
HAVING l mt cu truy vn khc, cu truy vn nm mnh WHERE hoc HAVING c gi
l cu truy vn con, cn cu truy vn bn ngoi gi l cu truy vn cha. Cu truy vn con c
t trong du ( ).
C 2 loi truy vn lng: lng phn cp v lng tng quan
- Lng phn cp: cu truy vn con khng tham chiu n thuc tnh ca cc bng
trong mnh FROM ca cu truy vn cha. Cu truy vn con c thc hin trc
cu truy vn cha v ch thc hin mt ln. Kt qu tr v ca cu truy vn con c th
l mt gi tr n hoc mt tp hp.
V d 26: Hy cho bit danh sch nhn vin c lng ln hn lng ca nhn vin c m s
l NV0006
SELECT *
FROM NHANVIEN
WHERE LUONG>(SELECT LUONG
FROM NHANVIEN
WHERE MANV='NV0006')
V kt qu l:
- Lng tng quan: cu truy vn con tham chiu n thuc tnh ca cc bng trong
mnh FROM ca cu truy vn cha. Cu truy vn con c thc hin nhiu ln, mi
ln ng vi mt b ca truy vn cha.
V d 27: Hy cho bit danh sch nhn vin c mc lng ln hn mc lng trung bnh ca
cc nhn vin cng phng ban.
Mc lng trung bnh ca cc phng ban
SELECT *
FROM NHANVIEN n1
WHERE LUONG >
(SELECT AVG(luong)
FROM NHANVIEN n2
WHERE n1.MAPHG=n2.MAPHG)
V kt qu l:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 48
Khi s dng cu truy vn lng chng ta thng s dng thm cc t kha sau:
V d 28: Hy cho bit danh sch cc phng ban c nhn vin.
SELECT *
FROM PHONGBAN p
WHERE EXISTS
(SELECT *
FROM NHANVIEN n
WHERE p.MAPHG = n.MAPHG)
V kt qu l:
V d 29: Hy cho bit danh sch cc nhn vin c lng ln hn t nht l mt nhn vin
phng s 2.
SELECT *
FROM NHANVIEN
WHERE LUONG > ANY
(SELECT LUONG
FROM NHANVIEN
WHERE MAPHG = 2)
V kt qu l:
Trng cao ng Cng Ngh Th c
Mn: C S D Liu Trang 49
V d 30: Hy cho bit danh sch cc nhn vin c lng ln hn tt c cc nhn vin
phng s 2.
SELECT *
FROM NHANVIEN
WHERE LUONG > ALL
(SELECT LUONG
FROM NHANVIEN
WHERE MAPHG = 2)
V kt qu l: