Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
HỌC VIỆN KỸ THẬT QUÂN SỰKHOA CÔNG NGHỆ THÔNG TIN
BÀI GIẢNG
HỌC PHẦN: Nhập môn cơ sở dữ liệu quan hệ (60 tiết)Bộ môn: CHTTTGiáo viên: 1) PGS.TS Nguễn Bá Tường
2) ThS Đỗ Mai Hường
Bài 1. CÁC KHÁI NIỆM LIÊN QUAN ĐẾN QUAN HỆ
1.1 TËp hîp
- Hợp X ∪ Y; Giao X ∩ Y; HiÖu X \ Y; PhÇn bï -X.
- X ⊂ Y hoÆc Y ⊃ X biÓu thÞ X lµ tËp con thùc sù cña Y.
- X ⊆ Y hoÆc Y ⊇ X biÓu thÞ X lµ tËp con ( cã thÓ b»ng Y ) cña Y.
1.2 TÝch DECAC
B× C = {(a,b) : a∈B vµ b∈C}. ThÝ dô B = {1, 2, 3}. C = {x, y} khi ®ã
B× C = {(1,x), (2,x), (3,x), (1,y), (2,y), (3,y)}
C× C = {(x,x), (x,y), (y,y), (y,x)}
B× B = {(1,1), (2,2), (3,3), (1,2),(1,3), (2,1),(3,1), (2,3), (3,2)}
1.3 Ph©n ho¹ch vµ phñ cña kh«ng gian U§Þnh nghÜa 1.1.a §Þnh nghÜa ph©n ho¹ch cña U
Hä c¸c tËp con E = {E1, E2, ..., Ek }, k ≥ 1 cña U ®îc gäi lµ mét ph©n ho¹ch cña U nÕu:(1) Ei ≠ ; víi i =1,...,k
(2) Ei ∩ EJ = ; víi i ≠ j
(3) k
i 1=
Ei = U
Mçi Ei ta thêng gäi lµ mét nhãm cña ph©n ho¹ch E.
§Þnh nghÜa 1.1.b §Þnh nghÜa phñ cña U
Hä c¸c tËp con E = {E1, E2, ..., Ek }, k ≥ 1 cña U ®îc gäi lµ mét phñ cña U nÕu:
(1) Ei ≠ ; víi i =1,...,k
(2) k
i 1=
Ei = U
Mçi Ei ta thêng gäi lµ mét nhãm cña phñ E.
1.4 Quan hÖ vµ quan hÖ t¬ng ®¬ng
Cho A1, A2, ..., An ; n ≥ 2 lµ c¸c tËp bÊt kú.
§Þnh nghÜa 1.2 §Þnh nghÜa quan hÖ n-ng«i
TËp R ⊆ A1 × A2 × ... × An ®îc gäi lµ quan hÖ n- ng«i trªn A1, A2, ..., An.
§Þnh nghÜa 1.3 Quan hÖ t¬ng ®¬ng
Quan hÖ 2-ng«i R ⊆ B × B ®îc gäi lµ quan hÖ t¬ng ®¬ng trªn B nÕu R tho¶ m·n 3
®iÒu kiÖn:
(1) Ph¶n x¹: ∀ a∈B aRa
(2) §èi xøng: ∀ a, b ∈B aRb khi vµ chØ khi bRa
(3) B¾c cÇu: ∀ a, b, c ∈B aRb & bRc th× aRc
B/R = { [a]R : a ∈B } víi [a]R lµ nhãm c¸c phÇn tö b mµ aRb lµ ph©n ho¹ch t¬ng®¬ng
Bæ ®Ò 1.1
a. Mäi quan hÖ t¬ng ®¬ng R trªn B th× B/R = { [a]R: a ∈ B } lµ mét ph©n häach cña B.
b. Mäi ph©n ho¹ch E = { E1, E2, ..., Ek} cña B cã mét quan hÖ t¬ng ®¬ng R trªn B ®Ó B/R = E.
Bæ ®Ò 1.2
Gäi R vµ S lµ c¸c quan hÖ t¬ng ®¬ng trªn U. Khi ®ã ta cã U/R << U/S khi vµ chØ khi R⊆ S.
1.5 Logic mÖnh ®ÒLogic mÖnh ®Ò ®îc x©y dùng trªn c¸c mÖnh ®Ò cã gi¸ trÞ logic ®óng hoÆc sai.
Mét biÓu thøc logic thêng bao gåm c¸c biÕn mÖnh ®Ò, c¸c h»ng logic, c¸c dÊu ®ãng, mëngoÆc vµ c¸c phÐp to¸n logic.
Ta thêng dïng c¸c biÕn mÖnh ®Ò lµ p, q, p1, q1,... vµ c¸c phÐp to¸n logic :
∧ , ∨ , ⇒ , ⇔ , ¬ víi
BiÓu thøc p ∧ q ký hiÖu p vµ q ( héi cña p vµ q)
BiÓu thøc p ∨ q ký hiÖu p hoÆc q ( tuyÓn cña p vµ q)
BiÓu thøc p ⇒ q ký hiÖu p kÐo theo q ( p suy ra q)
BiÓu thøc p ⇔ q ký hiÖu p t¬ng ®¬ng q ( p kÐo theo q vµ ngîc l¹i)
BiÓu thøc ¬p ký hiÖu phñ ®Þnh cña p ( kh«ng p)
Gi¶ sö , lµ c¸c biÓu thøc logic khi ®ã ta cã c¸c tÝnh chÊt :
(1) ∧ =
(2) ∨ =
(3) ∧ ( ∨ ) =
(4) ∨ ( ∧ ) =
(5) ( ∨ ) ∧ ( ∨ ) = ( ∧ ) ∨ ( ∧ ) ∨ ( ∧ ) ∨ ( ∧ )
(6) ( ∧ ) ∨ ( ∧ ) = ( ∨ ) ∧ ( ∨ ) ∧ ( ∨ ) ∧ ( ∨ )
Bài 2. QUAN HỆ TRÊN TẬP THUỘC TÍNH
2.1 Më ®Çu
Ta hiÓu mét c¬ së d÷ liÖu lµ tËp c¸c d÷ liÖu liªn quan ®Õn mét bµi to¸n qu¶n lý. Mét c¬ sëd÷ liÖu quan hÖ lµ tËp c¸c d÷ liÖu d¹ng b¶ng liªn quan ®Õn mét bµi to¸n qu¶n lý.
ThÝ dô 2.1:
XÐt bµi to¸n qu¶n lý b¸n hµng ta cÇn (vÝ dô) 5 b¶ng sau:
1. B¶ng nh©n viªn NV(TT, Manv, Tenv, Que, GT, L¦¥NG)
NV
TT Manv Tenv NS Que GT L¦¥NG
1 01 Huy 1945 Hµnéi Nam 300
(TT, Manv, Tenv, NS, Que, GT, L¦¥NG lµ c¸c thuéc tÝnh cña nh©n viªn gåm sè thø tù,m· sè nh©n viªn, tªn nh©n viªn, quª, giíi tÝnh, l¬ng t¬ng øng).
2. B¶ng kh¸ch hµng KH(Makh, Tenkh, Tk). Gåm c¸c thuéc tÝnh cña kh¸ch hµng lµM· kh¸ch hµng, tªn kh¸ch hµng, tµi kho¶n cña kh¸ch hµng.
KH
Makh Tekh TK
3. B¶ng s¶n phÈm SP(Masp, Tensp, DVT, NSX, gia)
SP
Masp Tensp DVT NSX Gia
4. B¶ng hãa ®¬n HD( SoHD, Makh, Manv, NHD, TienHD)
HD
SoHD Makh Manv NHD TienHD
5. B¶ng chi tiÕt hãa ®¬n CTHD( SoHD, Masp, SL)
CTHD
SoHD Masp SL
ThÝ dô 2.2:
XÐt sæ theo dâi kh¸ch cña mét kh¸ch s¹n: cã MK lµ m· kh¸ch, NR lµ sè phßng, Sèngêilµ sè ngêi, TiÒn lµ sè tiÒn kh¸ch hµng ph¶i tr¶.
MK NR Sèngêi TiÒn
101 301 2 400
102 302 1 200
103 303 3 600
104 304 2 400
105 304 3 600
Trong thÝ dô 2.1 c¸c thuéc tÝnh lµ: {TT, Manv, Tenv, NS, Que, GT,…}.
Trong thÝ dô 2.2 c¸c thuéc tÝnh lµ: {MK, NR, Sèngêi, TiÒn}.
VÒ sau c¸c b¶ng d÷ liÖu ®îc m« t¶ díi d¹ng b¶ng nh trªn sÏ ®îc gäi lµ c¸c quan hÖ.
2.2 §Þnh nghÜa quan hÖ
Cho tËp h÷u h¹n kh¸c rçng c¸c phÇn tö A = {A1, A2, ... An} ®îc gäi lµ tËp c¸c thuéc tÝnh.
Mçi Ai cña tËp A cã miÒn gi ̧trÞ ( miÒn trÞ) D(Ai).
§Þnh nghÜa 2.1 Quan hÖ trªn tËp thuéc tÝnh A
R lµ quan hÖ trªn tËp thuéc tÝnh A nÕu:
R ⊆ D(A1) × D(A2) ×... × D(An)..
Ta thÊy tÝch Decac D(A1) × D(A2)... × D(An) cã rÊt nhiÒu tËp con nªn trªn A cã nhiÒuquan hÖ kh¸c nhau.
ThÝ dô 2.3:
Gi¶ sö A = {E, B, C }, D(E) = {0,1}, D(B) = {a, b, c}, D(C) ={x,y}.
D(E) × D(B) × D(C) = {(0,a,x), (0,a,y), (0,b,x), (0,b,y), (0,c,x), (0,c,y), (1,a,x), (1,a,y),(1,b,x), (1,b,y), (1,c,x), (1,c,y)}.
D(E) × D(B) × D(C) cã 12 phÇn tö nªn trªn A = {E,B,C} ta cã 212 quan hÖ R kh¸c nhau.
Lu ý
1. Mçi phÇn tö t ∈ R t = ( a1, a2, …, an) trong ®ã ai ∈ Ai
2. Quan hÖ R lµ mét tËp hîp, nªn trong R kh«ng cã hai phÇn tö gièng nhau.
VÝ dô R sau kh«ng ph¶i lµ quan hÖ
Hä tªn N¨m sinh Quª
TuÊn Anh 1982 Hµ néi
TuÊn Anh 1982 Hµ Néi
3. Mäi quan hÖ R ®Òu cã thÓ biÓu diÔn díi d¹ng b¶ng
R
A1 A2 ... Aj ... An
a11 A12 ... a1j a1n
... ... ... ... ...
ai1 ai2 ... aij ain
... ... ... ... ... ...
am1 am2 ... amj ... amn
HoÆc R
R A1 A2 ... Aj ... An
t1 a11 ai2 ... a1j a1n
... ... ... ... ... ...
ti ai1 ai2 ... aij ain
... ... ... ... ... ... ...
tm am1 am2 ... amj ... amn
b¶ng quan hÖ R
Khi ®ã R = { t1, t2, ..., tm}, ti = ( ai1, ai2, ai3, ...,ain), i = 1, 2, ..., n
4. Ta viÕt: R(A1, A2, . . . An) ®Ó chØ quan hÖ R trªn A = {A1, A2,... An}. VÝ dô
sv( MASV, HOTEN, NGAYSINH, QUE, GIOITINH).
5. Khi cho tËp thuéc tÝnh A = {A1, A2,... An} lµ ®· cho lîc ®å cña quan hÖ,
R
A1 A2 . . . An
Nªn A= {A1, A2,... An} cßn ®îc gäi lµ lîc ®å quan hÖ
6. Lîc ®å quan hÖ ®îc hiÓu nh mét Class trong lËp tr×nh híng ®èi tîng
7. Trong thùc tÕ qu¶n lý nÕu gÆp c¸c trêng hîp trïng nhau ta thªm thuéc tÝnh m· choc¸c ®èi tîng cÇn qu¶n lý.
ThÝ dô 2.4:
XÐt danh s¸ch sinh viªn
Cho A = {MASV, HOTEN, QUE, NS, KHOA} vµ quan hÖ R nh sau:
R
MASV HOTEN NS QUE KHOA
01 LAN ANH 1980 Hn CNTT
02 LAN ANH 1980 Hn CNTT
03 LAN ANH 1980 Hn CNTT
2.3 ThiÕt kÕ mét c¬ së d÷ liÖu (Thùc hiÖn trong ACCESS).
C¸c bíc thiÕt kÕ:
Bíc 1. §Æt tªn file
B¬c 2. T¹o khung c¸c b¶ng
Bíc 3. T¹o liªn kÕt khãa chÝnh khãa ngo¹i
Bíc 4. NhËp d÷ liÖu, lu ý trong bíc nhËp d÷ liÖu ph¶i theo ®óng t×nh tù sau : C¸c
b¶ng cã khãa ngo¹i ph¶i nhËp sau b¶ng cã khãa chÝnh. VÝ dô xÐt CSDL qu¶n lý®å ¸n tèt nghiÖp c¸c b¶ng nh sau
GV(MaGV, TenGV, MaKHOA, HH, HV)
DT( MaDT, TenDT, MaGV,NBD, NKT)
SV(MaSV, TenSV, MaDT, DIEM)
KH( MaKHOA, TenKH, DC)
Trong 4 b¶ng trªn b¶ng khoa KH kh«ng cã khãa ngo¹i chØ cã khãa chÝnh nhËp tríc, sau®Õn b¶ng gi¸o viªn GV, tiÕp theo b¶ng ®Ò tµi DT vµ cuèi cïng nhËp b¶ng sinh viªn SV.
Bµi 3. §ẠI SỐ QUAN HỆ
Nh ta ®· biÕt quan hÖ lµ mét tËp hîp nªn trªn c¸c quan hÖ ta cã thÓ thùc hiÖn c¸c phÐpto¸n tËp hîp nh hîp, giao, hiÖu, ... c¸c phÐp to¸n ®ã ngêi ta thêng gäi lµ ®¹i sè quanhÖ(§SQH).
§Þnh nghÜa 3.1 C¸c quan hÖ t¬ng thÝch
R1 vµ R2 lµ t¬ng thÝch nÕu chóng cïng x¸c ®Þnh trªn tËp thuéc tÝnh A.
3.1.1 PhÐp hîp
§Þnh nghÜa 3.2
Hîp R1 ∪ R2 lµ mét quan hÖ trªn A
R1 ∪ R2 = {t: t ∈ R1 hoÆc t ∈ R2}.
ThÝ dô 3.1:
Cho hai quan hÖ S vµ R nh sau:
H×nh 3.1. Quan hÖ S vµ R
Khi ®ã ta cã quan hÖ R ∪ S:
R ∪ S
Masv Hoten NS
sv1 An 02/01/1986
sv2 Khang 03/01/1986
sv3 Thinh 02/02/1988
sv4 Vuong 02/02/1984
sv5 Phu 02/02/1986
Lu ý
∀ R1, R2 th× R1 ∪ R2 = R2 ∪ R1
∀ R th× R ∪ R = R
3.1.2 PhÐp giao
Cho A = {A1, A2,... , An}, R1 vµ R2 lµ 2 quan hÖ trªn A.
§inh nghÜa 3.3
Giao R1 ∩ R2 lµ mét quan hÖ trªn A
R1 ∩ R2 = {t: t ∈ R1 vµ t ∈ R2}.
ThÝ dô 3.2:
Cho hai quan hÖ R vµ S nh trong h×nh 2.3:
Khi ®ã R ∩ S = R giao S
H×nh 3.2 Giao cña hai quan hÖ S vµ R
3.1.3 PhÐp trõ (hiÖu)
Cho R1 vµ R2 trªn A.
§Þnh nghÜa 3.4
HiÖu R1 \ R2 lµ mét quan hÖ trªn A.
R1 \ R2 {t: t ∈ R1 vµ t ∉ R2}.
ThÝ dô:
R1 R2
A1 B C D A1 B C D
a1 b1 c1 d1 x y z v
a3 b3 c3 d3 a3 b3 c3 d3
Khi ®ã
R2 \ R1
A1 B C D
x y z v
3.1.4 PhÐp chiÕu
Cho R(A) = R(A1, A2, ... An), X ⊂ A.
§Þnh nghÜa 3.5
ChiÕu r.X hoÆc r[X], lµ mét quan hÖ trªn X.
R.X = {t.X: t ∈ r}, t.X lµ chiÕu cña phÇn tö t lªn tËp thuéc tÝnh X.
ThÝ dô 3.5:
Cho quan hÖ r nh sau:
R
A1 B C D E F G
a1 b1 c1 d1 e1 f1 g1
a2 b2 c2 d2 e2 f2 g2
a3 b3 c3 d3 e3 f3 g3
a4 b4 c4 d4 e4 f4 g4
X = { B, C}, Y = {F, G}.
ChiÕu cña R lªn X vµ Y t¬ng øng:
R.X R.Y
B C F G
b1 c1 f1 g1
b2 c2 f2 g2
b3 c3 f3 g3
b4 c4 f4 g4
3.1.5 PhÐp tÝch Decac (Descartes)
TÝch Decac cña R, S.
Cho R(A) = R(A1, A2,... An)
Cho S( A’) = S(B1, B2,... Bm)
Víi A ∩ A’ = ∅.
§Þnh nghÜa 3.6
TÝch Decac cña R vµ S: R × S lµ quan hÖ trªn A ∪ A’ = {A1, A2,... An, B1, B2,... Bm}
R × S = {( t1, t2): t1 ∈ R, t2 ∈ S}.
ThÝ dô 3.5:
Cho R vµ S nh sau:
R S
B C D E F G
b1 c1 d1 e1 f1 g1
b2 c2 d2 e2 f2 g2
Nh vËy r1cã hai phÇn tö, r2 cã ba phÇn tö, tÝch Decac r1 × r2 sÏ cã s¸u phÇn tö.
R × S
B C D E F G
b1 c1 d1 e1 f1 g1
b1 c1 d1 e2 f2 g2
b2 c2 d2 e1 f1 g1
b2 c2 d2 e2 f2 g2
3.1.6 PhÐp nèi tù nhiªn
Cho R(A) vµ S(A’).
§Þnh nghÜa 3.7
PhÐp nèi tù nhiªn cña R vµ S , ký hiÖu R |><| S lµ quan hÖ trªn A ∪ A’.
R |><| S = {t : t.A ∈ R vµ t.A’ ∈ S}
ThÝ dô 3.6:
Cho R vµ S lµ hai quan hÖ sau:
R S
B C D C D E F
b1 c1 d1 c1 d1 e1 f1
b2 c2 d2 c2 d2 e2 f2
b3 c3 d3 x y z v
Nèi tù nhiªn cña R vµ S:
R |><| S
B C D E F
b1 c1 d1 e1 f1
b2 c2 d2 e2 f2
ThÝ dô 3.7:
XÐt hai quan hÖ cïng tËp thuéc tÝnh:
r1 r2
B C D E B C D E
b1 c1 d1 e1 y1 z1 w1 v1
b2 c2 d2 e2 b1 c1 d1 e1
b3 c3 d3 e3 y2 z2 w2 v2
r1 |><| r2
B C D E
b1 c1 d1 e1
b2 c2 d2 e2
b3 c3 d3 e3
b4 c4 d4 e4
b5 c5 d5 e5
b6 c6 d6 e6
VËy trong trêng hîp hai tËp thuéc tÝnh nh nhau th× r1 |><| r2 = r1 ∩ r2
Sau ®©y ta xÐt thÝ dô mµ c¸c tËp thuéc tÝnh rêi nhau.
Cho hai quan hÖ r1 vµ r2 nh sau:
r1 r2
B C D E F G H
b1 c1 d1 e1 f1 g1 h1
b2 c2 d2 e2 f2 g2 h2
Trong trêng hîp nµy ta cã r1|><| r2 nh sau:
r1 |><| r2
B C D E F G H
b1 c1 d1 e1 f1 g1 h1
b1 c1 d1 e1 f2 g2 h2
b2 c2 d2 e2 f1 g1 h1
b2 c2 d2 e2 f2 g2 h2
VËy trong trêng hîp A ∩ A’ = ∅ th× r1 |><| r2 = r1 × r2.
3.1.7 PhÐp chia
Cho R(A), S(A’) vµ A’ ⊂ A.
§Þnh nghÜa 3.8
PhÐp chia R/S lµ quan hÖ trªn A \ A’
R / S = {t[A\ A’]: t ∈ R vµ t[A’] ∈ S}.
ThÝ dô 3.8:
Cho r lµ quan hÖ trªn A = {H, B, C, D, E, G}, s lµ quan hÖ trªn A’ = {H, E, G} nh sau:
R S
H B C D E G H E G
a1 b1 c1 d1 e1 g1 a1 e1 g1
a2 b2 c2 d2 e2 g2 x y z
a3 b3 c3 d3 e3 g3 a3 e3 g3
a4 b4 c4 d4 e4 g4
Khi ®ã
R / S
B C D
b1 c1 d1
b3 c3 d3
3.1.8 PhÐp chän
§Þnh nghÜa 3.9
Cho R(A) vµ E lµ biÓu thøc ®iÒu kiÖn trªn A.
PhÐp chän σE(R) lµ quan hÖ trªn A
σE(R) = { t(E): t ∈ R }.
ThÝ dô 3.9:
R
TT HOTEN NS §IEM_CSDL §IEM_C
1 TuÊn Anh 1974 7 5
2 Huy C«ng 1974 8 3
3 Th. H¬ng 1975 8 9
4 B×nh Minh 1976 2 3
E lµ Ýt nhÊt mét ®iÓm kÐm.
VËy
σE(R)
TT HOTEN NS §IEMCDL §IEMFOX
2 Huy C«ng 1974 8 3
4 B×nh Minh 1976 2 3
3.1.9 PhÐp kÕt nèi theo
Cho θ ∈{ = , < , > , ≤ , ≥ , ≠ } ; R(A), S(A’) víi
A ∩ A’ = ∅ vµ A = {A1, ...Ai, ..., An}, A’ = { B1, ...Bj, ..., Bm}
§Þnh nghÜa 3.10
PhÐp nèi theo R |><| i θjS lµ quan hÖ trªn A ∪ A’.
R |><| iθjS = {t ∈ R × S: t tháa Ai θ Bj hay t (Ai θ Bj)}.
ThÝ dô 3.10:
R S
H B C D E
1 2 3 3 1
4 5 6 6 2
7 8 9
Khi ®ã ta cã:
R |><| 2< 1S
H B C D E
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
3.1.10 PhÐp nèi nöa
Cho R(A) vµ S(A’) .
§Þnh nghÜa 2.12
Nèi nöa R|>< S lµ quan hÖ trªn A.
R |>< S = { t: t ∈ (R |><| S).A } = {t.A : t ∈ R |><| S }.
Tøc r |>< s = (r |><| s).A
ThÝ dô 3.11:
R S
H B C B C D
a b c b c d
d b c b c e
b b f a d b
R |>< S
H B C
a b c
d b c
Bài 4. TRUY VẤN BẰNG ĐSQH
Chóng ta cã thÓ dïng c¸c phÐp to¸n §SQH ®Ó truy vÊn th«ng tin tõ mét CSDL
ThÝ dô 4 .1:
Cho CSDL b¸n hµng gåm 5 quan hÖ sau:
kh( Makh , Tenkh, Tk).
§©y lµ quan hÖ kh¸ch hµng gåm c¸c thuéc tÝnh: m· kh¸ch hµng Makh, tªn kh¸ch hµng(Tenkh), tµi kho¶n(Tk).
nv( Manv , tenv...).
§©y lµ quan hÖ nh©n viªn gåm c¸c thuéc tÝnh m· nh©n viªn (Manv), tªn nh©n viªn(Tenv), v.v.
sp( Masp, Tensp, DVT, NSX, GIA).
§©y lµ quan hÖ s¶n phÈm gåm c¸c thuéc tÝnh: m· s¶n phÈm (Masp), tªn s¶n phÈm(Tensp), ®¬n vÞ tÝnh (DVT), n¬i s¶n xuÊt (NSX), gi¸ (GIA).
hd( SOHD, NHD, Makh, Manv, Trigia).
§©y lµ quan hÖ hãa ®¬n gåm c¸c thuéc tÝnh: sè ho¸ ®¬n (SOHD), ngµy lËp ho¸ ®¬n(NHD), m· kh¸ch hµng , m· nh©n viªn lËp ho¸ ®¬n, trÞ gi¸ ho¸ ®¬n (Trigia).
cthd( SOHD, Masp, SL).
§©y lµ quan hÖ chi tiÕt hãa ®¬n gåm c¸c thuéc tÝnh: sè ho¸ ®¬n, m· s¶n phÈm, sè lîng(SL)
C¸c thuéc tÝnh khãa ®îc g¹ch ngang díi, vÝ dô Masp
B»ng c¸c phÐp to¸n ®¹i sè quan hÖ(§SQH), thùc hiÖn c¸c yªu cÇu sau :
1. LËp b¶ng Masp, Tensp do kh¸ch hµng cã tªn lµ A mua.
2. LËp b¶ng SOHD, TRIGA do nh©n viªn cã tªn lµ Hoa lËp trong ngµy 1/1/2009.
3. T×m c¸c SOHD ®· mua cïng lóc hai mÆt hµng cã m· 1 vµ 2.
4. LËp danh s¸ch Masp, Tensp kh«ng b¸n ®îc.
5. LËp danh s¸ch Makh, Tenkh ®· mua hÕt tiÒn ( tæng c¸c TRIGIA = Tk).
6. Läc m· nh©n viªn, tªn nh©n viªn ®· lËp hãa ®¬n cho okhachs hµng A trong quÝ 1 n¨m2011
H×nh 4.1 Minh häa c¬ së d÷ liÖu b¸n hµng
Thùc hiÖn c¸c yªu cÇu trªn:
1. Nèi – chän – chiÕu
R1 = kh |><| hd |><| cthd |><| sp
§Æt E lµ ®iÒu kiÖn : Tenkh = A
Chän trong R1 nh÷ng bé tho¶ m·n ®iÒu kiÖn E cho vµo R2
R2 = E (R1) vµ chiÕu R2 lªn Masp, Tensp
R = R2[Masp, Tensp]
Hay
R = ( E ( kh |><| hd |><| cthd |><| sp))[Masp, Tensp].
Kªt qu¶ cã trong b¶ng A_MUA h×nh 2.11
H×nh 4.2 Minh häa kÕt qu¶ phÐp läc
2.
- Nèi
R1 = hd |><| nv
- Chän
Gäi E lµ diÒu kiÖn: (Tenv = Hoa) and ( NHD = 1/1/2007)
R2 = E (R1) vµ kÕt qu¶ cã trong R sau
- ChiÕu
R = R2[SOHD, Trigia].
Hay
R = ( E ( hd |><| nv))[SOHD, Trigia]
E lµ ®iÒu kiÖn: (Tenv = Hoa) and ( NHD = 01/01/2007)
3. Ta t×m lÇn lît c¸c sè ho¸ ®¬n ®· mua 1 vµ c¸c sè ho¸ ®¬n ®· mua 2, giao cña hai tËp®ã lµ nh÷ng sè ho¸ ®¬n ®· mua c¶ hai mÆt hµng 1 vµ 2.
R1 = ( MASP = 1 (cthd))[SOHD]
R2 = ( MASP = 2 (cthd))[SOHD]
R = R2 ∩ R4 .
Hay
R = ( MASP = 1 (cthd))[SOHD] ∩ ( MASP = 2 (cthd))[SOHD]
4. M· s¶n phÈm kh«ng b¸n ®îc lµ nh÷ng m· s¶n phÈm cã trong b¶ng sp nhng kh«ngxuÊt hiÖn ( dï 1 lÇn) trong c¸c cthd.
R1 = sp[Masp] \ cthd[Masp]
R2 = sp |><| R1
R = R2[Masp, Tensp]
Hay
R = (sp |><| (sp[Masp] – cthd[Masp]))[Masp, Tensp]
5. Muèn tÝnh tæng trÞ gi¸ chóng ta ph¶i cã mét phÐp to¸n sè häc, phÐp tÝnh tæng nhngtrong §SQH kh«ng cã phÐp to¸n nµy. VËy yªu cÇu ®Æt ra kh«ng gi¶i ®îc.
Lu ý
Trong §SQH n¨m phÐp to¸n: hîp, hiÖu, tÝch Decac, chän, chiÕu lµ n¨m phÐp to¸n c¬b¶n.
N¨m phÐp to¸n: Nèi tù nhiªn, nèi theo , nèi nöa, giao, chia lµ c¸c phÐp to¸n kh«ng c¬b¶n.
§Þnh lý 4.1
C¸c phÐp to¸n c¬ b¶n ®éc lËp lÉn nhau.
C¸c phÐp to¸n kh«ng c¬ b¶n ®îc biÓu thÞ qua n¨m phÐp c¬ b¶n.
ThÝ dô 4.2:
XÐt CSDL QL ®iÓm gåm c¸c quan hÖ sau:
SV(MaSV, HoTEN, NS, QUE, GT, MaLOP)
KH( MaKH, TeNKH, DC)
LOP(MaLOP, TenLOP, SL, MaKH)
MH(MaMH, TenMH, ST)
KQ(MaSV, MaMH, DIEM)
B»ng §SQH läc
a. Sinh viªn cã ®iÓm CSDL trªn 8
b. Sinh viªn cha thi m«n CSDL
c. M· m«n häc, tªn m«n häc cã sè tr×nh (ST) trªn 3.
d. M· líp tªn líp cã sè lîng ( SL) sinh viªn trªn 100.
ThÝ dô 4.3:
XÐt CSDL qu¶n lý då ¸n tèt nghiÖp gåm c¸c quan hÖ sau
KH(MaKH, TenKH, DC)
GV(MaGV, TenGV, MaKH,HH, HV)
DT(MaDT, TenDT, MaGV, NBD, NKT)
SV(MaSV, TenSV, NS, GT, MaDT, Diem)
B»ng §SQH thùc hiÖn c¸c yªu cÇu sau:
a. Läc MaSV, TenSV do c¸c GS híng dÉn
b. Läc MaSv, TenSV do c¸c Ths híng dÉn
c. Läc MaSV, TenSV do PGS ‘NguyÔn V¨n’ híng dÉn
d. Läc gi¸o viªn kh«ng híng dÉn sinh viªn n¨m 2010
e. Läc gi¸o viªn cã híng dÉn ®å ¸n hai n¨m 2010 va 2011
Bµi 5: KH¸I NIÖM Phô THUéC HµM (PTH)
5.1 §Þnh nghÜa phô thuéc hµm trªn lîc ®å A
Cho A = {A1, A2,... , An} ; X, Y ⊂ A.
§Þnh nghÜa 5.1 Phô thuéc hµm trªn lîc ®å A
Ta nãi Y phô thuéc hµm vµo X (hoÆc X x¸c ®Þnh phô thuéc hµm Y) trªn lîc ®å quan hÖ
A, ký hiÖu X → Y nÕu t. X = t’. X t.Y = t’.Y, víi t, t’ R vµ R lµ quan hÖ trªn A.
X lµ tËp thuéc tÝnh x¸c ®Þnh (determinant), Y lµ tËp thuéc tÝnh phô thuéc (dependent).
ThÝ dô 5.1:
Cho lîc ®å A = {Manv, Hoten, NS, Que, HS, Luong} víi thuéc tÝnh m· nh©n viªn Manv,Hä tªn, n¨m sinh , quª, HÖ sè vµ L¬ng t¬ng øng.
Manv → { Manv, Hoten, NS, Que, HS, Luong}, HS → Luong, Luong → HS.
Ta cã tËp phô thuéc hµm trªn A lµ
F = { Manv → { Manv, Hoten, NS, Que, Hs, Luong}, HS → Luong, Luong → HS}=
{Manv → A, HS → Luong, Luong → HS}...
5.2 §Þnh nghÜa phô thuéc hµm trong quan hÖ R
Cho R(A) = R(A1, A2,... , An) ; X, Y ⊂ A.
§Þnh nghÜa 5.2 Phô thuéc hµm trong mét quan hÖ R
Ta nãi X x¸c ®Þnh phô thuéc hµm Y, ký hiÖu X → Y, trong R nÕu ∀ t, t’ ∈ R mµ t. X
= t’.X th× t. Y = t’.Y.
ThÝ dô :
R
H B C D
0 0 0 0
1 1 1 1
0 1 0 1
Râ rµng trong R th× H → C ( v× c¸c bé b»ng nhau trong H còng b»ng nhau trong C), B →D,...
5.3 C¸c tÝnh chÊt cña phô thuéc hµm
A1. TÝnh ph¶n x¹: X →X, vµ nÕu Y ⊂ X th× X → Y
A2. TÝnh më réng hai vÕ: X → Y ⇒ XZ → YZ ( më réng hai vÕ tËp Z)
A3. TÝnh b¾c cÇu: X → Y vµ Y → Z ⇒ X → Z
4. TÝnh tùa b¾c cÇu: X → Y vµ Y Z → W ⇒ XZ → W
5. TÝnh më réng tr¸i vµ thu hÑp ph¶i: X → Y ⇒ XZ → Y - W
6. TÝnh céng ®Çy ®ñ: X → Y vµ Z → W ⇒ XZ → YW
7. TÝnh tÝch lòy: X → Y vµ Y → ZW ⇒ X → YZW
ThËt vËy:
TÝnh ph¶n x¹ Ar1: §iÒu nµy hiÓn nhiªn v× t vµ t’ ®· b»ng nhau trong tËp
X th× chóng ph¶i b»ng nhau trong mäi tËp con cña X, nãi c¸ch kh¸c
t.X = t’.X ⇒ t.X = t’.X vµ t.Y = t’.Y víi mäi Y ⊂ X.
TÝnh b¾c cÇu Ar3: Gi¶ sö t.X = t’.X theo gi¶ thiÕt X → Y nªn ta cã t.Y = t’.Y mµ
t.Y = t’.Y theo gi¶ thiÕt Y → Z ta l¹i cã t.Z = t’.Z. VËy tõ t.X = t’.X ta suy ra ®îc
t.Z = t’.Z, nªn X → Z.
TÝnh më réng hai vÕ Ar2: Gi¶ sö t.XZ = t’.XZ ta ph¶i chøng minh t.YZ = t’.YZ
Tõ t.XZ = t’.XZ ta cã t.X = t’.X vµ t.Z = t’.Z. Theo gi¶ thiÕt
t.X = t’.X th× t.Y = t’.Y. VËy tõ t.XZ = t’.XZ ta cã t.Y = t’.Y vµ
t.Z = t’.Z mµ t.Y = t’.Y vµ t.Z = t’.Z th× t.YZ = t’.YZ. VËy XZ → YZ.
Bµ× 6. PHEP SUY D¢N
6.1 HÖ tiªn ®Ò Armstrong vµ c¸c phÐp suy dÉn
HÖ {A1, A2, A3} ®îc gäi lµ hÖ tiªn ®Ò Armstrong.
HÖ {A1, A2, A3} lµ hÖ tiªn ®Ò v× tõ ®©y chóng ta cã thÓ suy ra c¸c tÝnh chÊt kh¸c.
a. PhÐp suy dÉn theo hÖ tiªn ®Ò
§Þnh nghÜa 6.1 Phô thuéc hµm suy dÉn ®îc tõ hÖ tiªn ®Ò
Ta nãi phô thuéc hµm f suy dÉn ®îc theo hÖ tiªn ®Ò Armstrong tõ tËp F, ký hiÖu F |= f,nÕu f cã thÓ nhËn ®îc tõ F sau mét sè h÷u h¹n lÇn ¸p dông hÖ tiªn ®Ò Armstrong vµo c¸cphô thuéc hµm trong F.
ThÝ dô6.1:
Cho A = {H, B, C, D} lµ lîc ®å quan hÖ.
F = {H → B, H → C, H → D}, f lµ H → BCD
Ta thÊy ngay f cã thÓ nhËn ®îc tõ phÐp céng ®Çy ®ñ tøc F |= H→BCD vµ
F |= H → HB (theo tÝnh ph¶n x¹ vµ céng ®Çy ®ñ) hoÆc F |= H → HBCD (theo tÝnh
céng ®Çy ®ñ),...
b. PhÐp suy dÉn theo quan hÖ
§Þnh nghÜa 6.2 Phô thuéc hµm suy dÉn ®îc theo quan hÖ
Ta nãi r»ng f suy dÉn ®îc tõ tËp F theo quan hÖ, ký hiÖu F |- f, nÕu víi mäi quan hÖ R
trªn lîc ®å A mµ F tháa m·n quan hÖ R th× f còng tháa m·n R.
§Þnh lý 6.1
F |- f F |= f.
§Þnh lý 6.2
HÖ tiªn ®Ò Armstrong lµ ®óng ®¾n vµ ®Çy ®ñ.
Bµi 7. KHAI NI£M BAO §ONG
7.1 Bao ®ãng F+ cña tËp phô thuéc hµm F
a. §Þnh nghÜa F+
Cho lîc ®å A = {A1, A2,... An}; F lµ tËp phô thuéc hµm trªn A.
§Þnh nghÜa 7.1 Bao ®ãng cña tËp phô thuéc hµm F
Bao ®ãng cña tËp phô thuéc hµm F ký hiÖu F+ lµ tËp tÊt c¶ c¸c phô thuéc hµm f suy dÉn ®-îc tõ tËp F.
VËy F+ = {f: F | = f}.
ThÝ dô 7.1:
Cho lîc ®å A = { B, C, D, E}
F = {E → B, B → C, E → D, B → D}
Khi ®ã F + = {E → B, B → C, E → D, B → D, E → BD, E → BCD, E → C, E → CD, E
→ BC, B → CD,... }.
Ta thÊy F + lu«n chøa F.
b. C¸c tÝnh chÊt ®¬n gi¶n cña tËp F+
a. TÝnh ph¶n x¹: F ⊂ F+.
b. TÝnh ®¬n ®iÖu: nÕu F ⊆ G th× F+ ⊆ G+.
c. TÝnh lòy ®¼ng: F++ = F+.
7.2 Bao ®ãng X+ cña tËp thuéc tÝnh X
a. §Þnh nghÜa bao ®ãng X+
Cho A = {A1, A2,... An}. F lµ tËp phô thuéc hµm trªn A; X ⊆ A.
§Þnh nghÜa 7.2
Bao ®ãng X+ : X+ = {B: B ∈ A vµ X → B ∈ F+}.
Ta cã thÓ nãi bao ®ãng X+ lµ tËp tÊt c¶ nh÷ng thuéc tÝnh B cña A mµ X kÐo theo.
ThÝ dô 7.2:
Gi¶ sö A = {H, B, C, D, E, G}.
F = {H → C, H → EG, B → D, G → E}.
X = {H, B}, Y = {C, G, D}.
Khi ®ã ta sÏ cã: X+ = {H, B, C, D, E, G}
Y+ = {C, G, D, E}.
b. C¸c tÝnh chÊt cña tËp bao ®ãng X+
NÕu X, Y lµ c¸c tËp con cña tËp thuéc tÝnh A th× ta cã c¸c tÝnh chÊt:
1.TÝnh ph¶n x¹: X ⊆ X+
2.TÝnh ®¬n ®iÖu: NÕu X ⊆ Y th× X+ ⊆ Y+
3.TÝnh lòy ®¼ng: X+ + = X+
4. (XY)+ ⊇ X+Y+ ( bao ®ãng cña hîp chøa hîp c¸c bao ®ãng)
5. (X+Y)+ = (XY+)+ = (X+ Y+)+. = (XY)+
6. X → Y ⇔ Y ⊆ X+
7. X → Y ⇔ Y+ ⊆ X+
8. X → X+ vµ X+ → X
9. X+ = Y+ ⇔ X → Y vµ Y → X.
Chøng minh :
TÝnh chÊt 1: X ⊆ X+. ThËt vËy theo tÝnh ph¶n x¹ cña hÖ tiªn ®Ò Armstrong ta cã ngay víi
mäi thuéc tÝnh B cña X th× X → B, nªn theo ®Þnh nghÜa cña X+( X+ lµ tËp c¸c thuéc tÝnh B
mµ X → B) th× X ⊆ X+
TÝnh chÊt 2 (tÝnh ®¬n ®iÖu): Gi¶ sö X ⊆ Y ta ph¶i chøng minh X+ ⊆ Y+.
ThËt vËy lÊy B ∈ X+, theo ®Þnh nghÜa ta cã X → B mµ X ⊆ Y nªn ta cã Y → B. VËy B ∈Y+
TÝnh chÊt 8: Ta chøng minh tÝnh chÊt 8 tøc lµ tÝnh chÊt ∀ X th× X →X+ vµ
X+ → X.
Theo tÝnh ph¶n x¹ v× X ⊆ X+ nªn X+ → X.
B©y giê ta chøng minh X → X+.
Theo ®Þnh nghÜa cña tËp X+ ta cã X+ = {B: X → B ∈ F+ }.
VËy gi¶ sö X+ = {D, B, C,...} khi ®ã :
X → D
X → B
X → C
...
Theo tÝnh céng ®Çy ®ñ ta cã X → {D, B, C, ...} = X+.
TÝnh chÊt 3: X+ + = X+
Râ rµng theo tÝnh ph¶n x¹ ta cã ngay X+ ⊆ X+ +. B©y giê lÊy B ∈ X++ tøc lµ X+ → B mµ
theo tÝnh chÊt 8 võa chøng minh th× X → X+ nªn X → B hay B∈ X +.
VËy X + + = X+.
TÝnh chÊt 4: (XY)+ ⊇ X+Y+
LÊy B ∈ X+Y+ tøc B ∈ X+ hoÆc B ∈ Y+ tøc lµ X → B hoÆc Y → B ⇒ XY → B .
Hay B ∈ (XY)+.
TÝnh chÊt 9: X+ = Y+ ⇔ X → Y vµ Y → X
a - ChiÒu xu«i ⇒ : ta cã X+ = Y+. V× X → X+ vµ Y+ → Y nªn X → Y chøng minh t¬ng
tù ta cã Y → X.
b - ChiÒu ngîc ⇐ : LÊy B ∈ X+ tøc lµ X → B v× Y → X nªn Y → B hay B ∈ Y+. T¬ng
tù lÊy B ∈ Y+ ta chøng minh ®îc B ∈ X+. VËy X+ = Y+.
TÝnh chÊt 6 : §· ®îc chøng minh trong bæ ®Ò 2.6.
TÝnh chÊt 7 : Gi¶ sö X → Y, theo tÝnh chÊt 6 ta cã Y ⊆ X+
lÊy bao ®ãng ta cã Y+ ⊆ X++ mµ X++ = X+ nªn Y+ ⊆ X+. Ngîc l¹i gi¶ sö Y+ ⊆ X+ nªn
X+ → Y+. Theo tÝnh chÊt 8 ta cã X → X+ vµ Y+ → Y nªn X → Y.
TÝnh chÊt 5 : ¸nh x¹ tõ X lªn X + lµ ¸nh x¹ ®ãng nªn chóng ta cã thÓ sö dông kÕt qu¶ bæ®Ò 1.3 trong phÇn 1.4 cña ch¬ng 1 ®Ó chøng minh tÝnh chÊt 5. HoÆc c¸c b¹n cã thÓ chøngminh trùc tiÕp.
7.4 ThuËt to¸n t×m bao ®ãng X+, bµi to¸n thµnh viªn
a. Bµi to¸n thµnh viªn
Cho tËp F vµ mét phô thuéc hµm f, cã hay kh«ng mét kh¼ng ®Þnh f thuéc F+ ? ( hay f cãlµ thµnh viªn cña F+ kh«ng ? )
§Ó gi¶i bµi to¸n thµnh viªn chóng ta cã thÓ dïng tÝnh chÊt 6 cña tËp bao ®ãng X + hoÆc bæ
®Ò 2.1 ®ã lµ tÝnh chÊt: X → Y ∈ F + ⇔ Y ⊂ X +. Do vËy chØ cÇn tÝnh X + vµ so s¸nh víi
tËp Y ta cã ngay c©u tr¶ lêi lµ X → Y = f thuéc F + hay kh«ng.
b. ThuËt to¸n t×m bao ®ãng X +
ThuËt to¸n t×m X+ cña Beeri vµ Bernstein.
Input: A = {A1, A2,... , An}; F lµ tËp phô thuéc hµm trªn A; X ⊆ A.
Output : X +
Algorithm :
Ta sÏ x©y dùng d·y X0, X1,... , Xk... nh sau:
X0 = X
X(i +1) = XiZ i víi Z i = {B: B ∉ Xi vµ Xi → B∈F+}, trong ®ã i = 0, 1, 2,...
Tån t¹i sè nguyªn k (bÐ nhÊt) sao cho:
Xk = X(k+1) = X(k+2) = ... vµ Zk = Zk+1 = . . . =
TËp Xk ®ã chÝnh lµ tËp X+ = Xk
ThÝ dô 7.4:
Gi¶ sö A = {H, B, C, D, E, G} vµ tËp F nh sau:
F = {HB → C, C → H, BC → D, HCD → B, D → EG, BE → C, CG → BD, CE → HG},X = {B, D}, X + = ?
X + = {B, D}+ = {H, B, C, D, E, G} = A.
ThuËt to¸n 7.1 TÝnh X+
Input: Lîc ®å quan hÖ A, tËp phô thuéc hµm F trªn A, tËp thuéc tÝnh X ⊆ A
Output: TËp X +
ThuËt to¸n:
Begin
Y: = X;
repeat
Z: = ∅;
for each B in A do
if (B ∉ Y and Y → B ∈ F+) then Z: = Z ∪ B;
Y: = Y ∪ Z;
until Z = ∅;
X+ = Y
end;
Bµi 8. KhÁi nIỆM KHÓA
8.1. Khãa, khãa chÝnh, khãa ngo¹i
Cho lîc ®å quan hÖ A = {A1, A2,... An}; F lµ tËp phô thuéc hµm trªn A.
§Þnh nghÜa 8.1 S¬ ®å quan hÖ
S¬ ®å quan hÖ lµ cÆp A , F ký hiÖu lµ W = < A, F >.
8.1 §Þnh nghÜa khãa cña s¬ ®å quan hÖ
Cho s¬ ®å quan hÖ W = < A, F >. Trong ®ã A = {A1, A2, ..., An} lµ tËp thuéc tÝnh, F lµ tËpphô thuéc hµm trªn A.
§Þnh nghÜa 8.2 Kho¸ (key) tèi thiÓu
TËp k ⊆ A ®îc gäi lµ kho¸ tèi thiÓu cña W = < A, F > nÕu k tho¶ hai ®iÒu kiÖn:
(1) k+ = A ( hay k →A)
(2) k tèi thiÓu.
Bæ ®Ò 8.1
Mäi s¬ ®å quan hÖ W = < A, F > lu«n cã kho¸.
Chøng minh bæ ®Ò 8.1 b»ng c¸ch lÊy k = A råi bít dÇn c¸c thuéc tÝnh B mµ (k-B)+ = A ®Ócã k tèi thiÓu.
Lu ý
1. Ký hiÖu Fn lµ tËp c¸c thuéc tÝnh thø cÊp ( kh«ng khãa )cña W = < A, F >.2. Mét s¬ ®å quan hÖ cã thÓ cã nhiÒu khãa vµ tËp thø cÊp Fn cã thÓ rçng.
ThÝ dô 8.1:
Cho s¬ ®å quan hÖ W = < A, F > víi A = {H, B, C, D, E, G},
F = {HB → C, D → EG, C → H, BE → C, BC → D, CG → BD, HCD → B, CE → HG}.Ta sÏ thÊy c¸c tËp thuéc tÝnh:
k1 = {H, B}, k2 = {B, E}, k3 = {C, G}, k4 = {C, E}, k5 = {C, D}, k6 = {B, C} ®Òu lµ c¸c
khãa cña W vµ tËp c¸c thuéc tÝnh khãa b»ng A, vµ v× vËy Fn = ∅.
8.2 C¸c thuËt to¸n t×m khãa cña W = < A, F >
Cho s¬ ®å quan hÖ W = < A, F >. T×m mét khãa cña W.
ThuËt to¸n 8.1 T×m 1 khãa cña W = < A, F >
Input: W= < A, F >;
Output: k lµ khãa cña W;
Algorithm:
Bíc 1: §Æt k = A
Bíc 2: LÆp qu¸ tr×nh lo¹i khái k c¸c thuéc tÝnh thõa B mµ (k - B)+ = A
Begin
k: = A ;
for each B in k do
if (k - B)+ = A then k: = k - B
End
ThÝ dô 8.2.a:
Cho W = < A, F >, víi A = {H, B, C, D, E, G, J, I}
F ={HC → B, BI → HCD, HBC → D , J → I, HCE → BCG, CG →HE}
T×m k = ?
Bíc 1: k = A = {H, B, C, D, E, G, J, I}
Bíc 2: LÇn lît lo¹i c¸c thuéc tÝnh thõa trong k:
k = {C, G, J} lµ mét khãa cña W.
ThuËt to¸n 8.2 ThuËt to¸n t×m c¸c khãa cña W = < A, F >
Input W = < A, F >
Output k1, k2, ..., kl lµ c¸c khãa cña W
Algorithm
Bíc1: X©y dùng P(A) = { X1, X2, ...} lµ hä tÊt c¶ c¸c tËp con cña A
Bíc 2: X¸c ®Þnh M = { Xi : Xi∈ P(A) & Xi+ = A}.
Bíc 3: X¸c ®Þnh K lµ hä c¸c tËp cùc tiÓu cña M ( k lµ cùc tiÓu cña M nÕu nã kh«ngchøa phÇn tö nµo cña M). Khi ®ã K lµ hä khãa cña W
ThÝ dô 8.2.b:
Cho W = < A, F >, víi A = {H, B, C, D}, F ={HC → B, HBC → D }
Bíc 1:
P(A) = {Φ, H, B, C, D, HB , HC, HD, BC, BD, CD, HBC, HBD, HCD, BCD, HBCD}
Bíc 2: M = { HC, HBC, HBCD}
Bíc 3: K = { HC}. VËy W cã 1 khãa k = HC.
ThÝ dô 8.3:
Cho W = < A, F >, víi A = {H, B, C, D}
F ={HC → B, HBC → D, D → HC }
Bíc 1:
P(A) = {Φ, H, B, C, D, HB , HC, HD, BC, BD, CD, HBC, HBD, HCD, BCD, HBCD}
Bíc 2: M = { HC, HBC, HBCD, D}
Bíc 3: K = { HC, D}. VËy W cã 2 khãa k1= HC, k2 = D.
8.3 C¸c tÝnh chÊt cña kho¸
Bæ ®Ò 8.2
1 - C¸c thuéc tÝnh kh«ng xuÊt hiÖn trong c¶ vÕ tr¸i vµ vÕ ph¶i cña tËp F ph¶i cã trong mäikhãa k cña W = < A, F >.
2 - C¸c thuéc tÝnh chØ xuÊt hiÖn bªn tr¸i cña c¸c phô thuéc hµm trong F cña
W = <A, F > còng ph¶i thuéc mäi khãa k.
3- Sè lîng c¸c phÇn tö trong mçi kho¸ cã thÓ kh¸c nhau.
4- Hä tÊt c¶ c¸c kho¸ cña mét W lµ hÖ Sperner ( tøc kh«ng cã hai kho¸ bao nhau)
§Þnh nghÜa 8.3 Kho¸ (key) tèi thiÓu- ®Þnh nghÜa t¬ng ®¬ng víi ®Þnh nghÜa 2.22
TËp k ⊆ A lµ kho¸ cña W = < U, F > nÕu k tháa m·n hai ®iÒu kiÖn:
(1) ∀ t1, t2 ∈ R (R bÊt kú trªn A) mµ t1 ≠ t2 th× t1. k ≠ t2. k
(2) k lµ tèi thiÓu.
§Þnh lý 8.1
Hai ®Þnh nghÜa 2.22 vµ 2.23 t¬ng ®¬ng nhau ( nghÜa lµ tõ ®Þnh nghÜa nµy suy ®Þnh nghÜakia)
8.4 Kho¸ cña mét quan hÖ R
§Þnh nghÜa 8.4 Kho¸ cña quan hÖ R
TËp k ⊆ A ®îc gäi lµ kho¸ cña R nÕu k tháa 2 ®iÒu kiÖn:
(1) t. k ≠ t’.k ∀ t, t’ ∈ R vµ t ≠ t’
( k ) k tèi thiÓu
Cho A= {A1, A2 ..., An} lµ lîc ®å quan hÖ. R = {t1, t2, ..., tm} lµ quan hÖ trªn A
Ta x©y dùng hai ma trËn: ma trËn kh¸c nhau D vµ ma trËn gièng nhau E
§Þnh nghÜa 8.5 Ma trËn kh¸c nhau ( ma trËn ph©n biÖt) D cña quan hÖ R
D = ( dij )m × m
víi dij = {b ∈ A: ti. b ≠ tj. b} lµ ma trËn kh¸c nhau ( hay ma tr©n ph©n biÖt) .
Ta dÔ dµng thÊy r»ng D lµ ma trËn ®èi xøng qua ®êng chÐo chÝnh.
§Þnh nghÜa 8.6 Ma trËn b»ng nhau E cña quan hÖ R
E = ( eij )m × m
víi eij = {b ∈ A: ti. b = tj. b} lµ ma trËn b»ng nhau cña R trªn A.
Lu ý
1. E, D lµ c¸c ma trËn ®èi xøng qua ®êng chÐo chÝnh.2. eij ∪ dij = A.3. eii = A4. dii = .
5. Khi cÇn tÝnh E hoÆc D ta chØ cÇn tÝnh nöa trªn
ThÝ dô 8.7:
Cho quan hÖ R gåm 3 phÇn tö trªn A = { I, B, C, G, L, H} nh sau:
R
I B C G L H
1 2 2 2 3 3
1 2 3 3 3 4
1 1 3 2 2 4
Khi ®ã ma trËn D vµ E cã c¸c d¹ng:
E =
−−−−−−−−−−−−−−−−−−−−−−−
AIHIG
IHAIBL
IGIBLA
D =
−−−−−−−−−−−−
BCGLBCLH
BCGLCGH
BCLHCGH
Trong ma trËn E, A = {I, B, C, G, L, H} lµ tËp tÊt c¶ c¸c thuéc tÝnh.
ThuËt to¸n 8.4 T×m 1 kho¸ cña R dùa vµo E
Input Quan hÖ R = {t1, t2, ..., tm } trªn A = { A1, A2, ..., An}
Output k lµ mét kho¸ cña R
Algorithm
Bíc 1. TÝnh nöa trªn cña ma trËn E, tøc tÝnh eij víi j > i
Bíc 2. Läc trong E ra c¸c phÇn tö cùc ®¹i cho vµo M ( phÇn tö cùc ®¹i cña E
lµ phÇn tö kh«ng bÞ chøa trong phÇn tö kh¸c cña E).
Bíc 3. §Æt k = A
Bíc 4. Cho i ch¹y tõ 1 ®Õn n nÕu (k - Ai) kh«ng lµ tËp con cña mäi m∈M th×
k = k- Ai
KÕt thóc vßng lÆp ë bíc 4 ta cã k lµ mét kho¸ cña R.
§Þnh lý 8.2
k t×m ®îc theo thuËt to¸n 2.3 lµ mét kho¸ cña R.
Chøng minh:
§Ó chøng minh k lµ kho¸ ta cÇn lu ý r»ng k lµ tèi thiÓu v× trong qu¸ tr×nh tèi thiÓu hãa kë bíc 4 ta ®· kiÓm tra cho mäi thuéc tÝnh cña A. B©y giê ta chØ cÇn chøng minh nÕu i ≠j th× ti.k ≠ tj.k. §iÒu nµy hiÓn nhiªn v× nÕu ti.k = tj.k th× k lµ tËp con cña mét tËp m trongM, ®iÒu nµy v« lý víi viÖc chän tËp k trong bíc 4.
ThuËt to¸n 8.5 T×m tÊt c¶ c¸c kho¸ cña R dùa vµo D
Input Quan hÖ R = {t1, t2, ..., tm } trªn A = { A1, A2, ..., An}
Output K = {k1, k2, ...kq} lµ hä kho¸ cña R
Algorithm
Bíc 1. TÝnh nöa trªn cña ma trËn D, tøc tÝnh dij víi j > i
Bíc 2. Coi mçi thuéc tÝnh lµ mét biÕn logic. §Æt f = ∧ ( ∨ dij ) ; f lµ héi cña
c¸c tuyÓn ( ∨ dij lµ tuyÓn cña c¸c thuéc tÝnh trong dij )
Bíc 3. Tèi gi¶n f vµ ®a f vÒ d¹ng tuyÓn cña c¸c héi f = k1 ∨ k2 ∨ ... ∨ kq
víi mçi ki lµ mét héi cña c¸c thuéc tÝnh.
Khi ®ã mçi ki lµ mét kho¸ cña R
§Þnh lý 8.2
Hä c¸c ki t×m ®îc trong thuËt to¸n 2.5 lµ hä kho¸ cña quan hÖ R.
Tríc khi chøng minh ®Þnh lý 2.7 ta xÐt thÝ dô
ThÝ dô 8.8:
Cho R = {t1, t2, t3, t4, t5, t6, t7 } lµ quan hÖ trªn A = {I, B, C, G, H} sau:
R
I B C G H
1 0 1 0 1
1 2 3 3 1
2 2 3 4 2
3 3 2 2 3
4 4 0 5 5
5 5 4 1 1
4 5 5 6 0
Khi ®ã nöa trªn ( c¶ ®êng chÐo) cña ma trËn D sÏ lµ
d11 d12 d13 d14 d15 d16 d17 BCG A A A IBCG A
d22 d23 d24 d25 d26 d27 IGH A A IBCG A
d33 d34 d35 d36 d37 A A A A
d44 d45 d46 d47 = A A A
d55 d56 d57 A BCGH
d66 d67 ICGH
d77
Sö dông c¸c tÝnh chÊt cña tuyÓn vµ héi:
α ∧ α = α (1)
α ∨ α = α (2)
α ∧ (α ∨ β) = α (3)
α ∨ (α ∧ β) = α (4)
( a ∧ b) ∨ (α ∧ β) = (a ∨ α) ∧( a ∨ β) ∧ ( b ∨ α) ∧ ( b∨β) (5)
( a ∨ b) ∧ (α ∨ β) = (a ∧ α) ∨ ( a ∧ β) ∨ ( b ∧ α) ∨ ( b∧β) (6)
Khi ®ã f = ∧(∨ di j) = ( B∨C ∨G ) ∧ (I ∨G ∨H) = (I∧B) ∨ (B∧H) ∨ G = IB ∨ BH ∨ G =
k1 ∨ k2 ∨ k3.
VËy R cã 3 kho¸ k1= IB, k2 = BH, k3 = G
Chóng ta thÊy biÓu thøc tèi gi¶n cña f = ∧(∨ dij) lµ tuyÓn cña c¸c héi sau khi ®· lîc bác¸c sè h¹ng t¬ng ®¬ng.
Lu ý
Mét quan hÖ R cã thÓ cã nhiÒu khãa
§Þnh nghÜa 8.7 Khãa chÝnh, khãa ngo¹i
khãa chÝnh ( primary key-pk) cña quan hÖ R lµ mét khãa cña R ®îc chän lµm khãachÝnh.
Khãa ngo¹i ( foreign key-fk) cña R lµ trêng d÷ liÖu ®ãng vai trß khãa chÝnh trong quanhÖ S kh¸c.
ThÝ dô 8.9:
XÐt CSDL trong thÝ dô 2.17
kh( Makh , Tenkh, DS...)
nv( Manv , Tnenv...)
sp( Masp, Tensp, DVT, NSX, GIA)
hd( SOHD, NHD, Makh, Manv, Trigia)
cthd( SOHD, Masp, SL)
Makh lµ khãa chÝnh trong quan hÖ kh vµ lµ khãa ngo¹i trong quan hÖ hd.
Manv lµ khãa chÝnh trong quan hÖ nv vµ lµ khãa ngo¹i trong quan hÖ hd.
SOHD lµ khãa chÝnh trong quan hÖ hd vµ lµ khãa ngo¹i trong quan hÖ cthd.
Masp lµ khãa chÝnh trong quan hÖ sp vµ lµ khãa ngo¹i trong quan hÖ cthd.
8.5 Ph¶n kho¸ cña s¬ ®å quan hÖ W = < A, F>
Cho W = < A, F> lµ s¬ ®å quan hÖ. Gi¶ sö K = {k1, k2, ..., kl} lµ hä khãa cña W.
§Þnh nghÜa 8.8 Ph¶n khãa cña s¬ ®å quan hÖ
TËp thuéc tÝnh X ⊆ A ®îc gäi lµ mét ph¶n khãa cña W nÕu X kh«ng chøa mét
khãa ki nµo nhng nÕu thªm vµo X mét thuéc tÝnh b th× Xb chøa mét khãa ki nµo ®ã.
Ký hiÖu K-1 lµ hä c¸c ph¶n khãa cña W.
ThÝ dô
W = < HBCD, {HB → C, C → H}> . Khi ®ã hä khãa cña W lµ K = {HBD, CBD} vµ K-1
= {BD}; W chØ cã mét ph¶n khãa.
Bài 9. CÁC DẠNG CHUẨN
Trong c«ng t¸c qu¶n lý vµ xö lý CSDL. Ta sÏ xÐt mét sè d¹ng ®Æc biÖt mµ trong CSDLgäi lµ c¸c d¹ng chuÈn NF (Normal Forms).
Sù ph©n lo¹i c¸c s¬ ®å quan hÖ W = < A, F > theo c¸c NF thùc chÊt lµ ph©n lo¹i c¸c s¬®å quan hÖ dùa vµo dÆc trng cña tËp phô thuéc hµm F.
9.1 D¹ng chuÈn 1 : 1NF
D¹ng chuÈn 1 (1st Norm Form) ký hiÖu lµ 1NF.
Cho lîc ®å quan hÖ A, F lµ tËp phô thuéc hµm trªn A.
Khi ®ã ta cã s¬ ®å quan hÖ W = < A, F >.
§Þnh nghÜa 9.1 D¹ng chuÈn 1
W = <A, F> ®îc gäi lµ d¹ng chuÈn 1 (1NF) nÕu vµ chØ nÕu toµn bé c¸c miÒn gi¸ trÞ cãmÆt trong A ®Òu chØ chøa c¸c gi¸ trÞ nguyªn tè (gi¸ trÞ nguyªn tè lµ gi¸ trÞ kh«ng thÓ t¸chthµnh c¸c gi¸ trÞ kh¸c - gi¸ trÞ ®¬n).
Khi W = <A, F> lµ 1NF th× mäi quan hÖ R trªn A còng ®îc gäi t¬ng øng lµ quan hÖ1NF.
ThÝ dô 9.1:
§Æt A = {Masv, Hoten, Que, GT}, Masv (m· sinh viªn) lµ kho¸ chÝnh khi ®ã tËp phôthuéc hµm ( kh«ng tÝnh c¸c phô thuéc hµm tÇm thêng):
F = {Masv → A} vµ W = < A, F > vµ v× mçi sinh viªn chØ cã mét m· duy nhÊt, mét hätªn, mét quª vµ mét giíi tÝnh nªn W lµ 1NF. TÊt nhiªn mäi quan hÖ r trªn A lµ 1NF.
LÊy A = {Magv, Tenmon, HT} víi Magv lµ m· gi¸o viªn, Tenmon lµ tªn m«n häc mµgi¸o viªn tham gia d¹y, HT lµ héi trêng lªn líp. Khi ®ã mçi gi¸o viªn cã thÓ d¹y nhiÒum«n vµ ë nhiÒu héi trêng kh¸c nhau vÝ dô ta xÐt b¶ng th«ng b¸o R trªn A sau:
R
Magv Tenmon HT
Gv1, Gv2 CSDL, Java E1, E2
Gv3, Gv4 C, C++, Web E3, E4
B¶ng R cã thÓ coi lµ mét quan hÖ R trªn A (theo nghÜa më réng -kh«ng ®¬n trÞ v× gi¸ trÞcña mçi thuéc tÝnh trªn mçi bé ®Òu kh«ng ®¬n trÞ).
§©y lµ mét quan hÖ kh«ng lµ 1NF v× c¸c thuéc tÝnh cã miÒn gi¸ trÞ kh«ng ®¬n trÞ mµ ®atrÞ. VËy quan hÖ trªn kh«ng lµ d¹ng chuÈn 1NF vµ tÊt nhiªn
W = < A, F > còng kh«ng lµ 1NF.
Lu ý:
1. Tuy nhiªn mäi quan hÖ R nh trªn ta lu«n ®a vÒ ®îc d¹ng ®¬n trÞ
R
Magv Tenmon HT
Gv1 CSDL E1
Gv2 Java E2
Gv3 C E3
Gv4 C++ E4
Gv3 Web E3
2. Mäi quan hÖ ®Òu cã thÓ ®a vÒ d¹ng ®¬n trÞ nªn mäi S§QH W = < A, F> ®Òu cã thÓcoi lµ chuÈn 1NF.
3. Mäi s¬ ®å quan hÖ W = < A, F> lµ 1NF. Líp 1NF chøa tÊt c¶ c¸c s¬ ®å quan hÖ.
9.2 D¹ng chuÈn 2NF
§Þnh nghÜa 9.2 §Þnh nghÜa phô thuéc hoµn toµn
Ta nãi Y phô thuéc hoµn toµn vµo X, nÕu trong X kh«ng cã tËp con thùc sù X1 mµ X1 →Y. Nãi c¸ch kh¸c Y phô thuéc hoµn toµn vµo X nÕu:
X → Y vµ bít khái X dï mét thuéc tÝnh B th× tËp cßn l¹i X - B kh«ng kÐo theo Y.
Cho s¬ ®å quan hÖ W = < A, F >; k lµ mét khãa cña W.
§Þnh nghÜa 9.3 D¹ng chuÈn 2NF
Ta nãi W lµ 2NF, nÕu mäi thuéc tÝnh thø cÊp cña W phô thuéc hoµn toµn vµo khãa.
Nãi c¸ch kh¸c W lµ 2NF nÕu: trong W kh«ng cã phô thuéc hµm d¹ng:
X → b mµ b∈ Fn vµ X lµ tËp con thùc sù cña khãa.
Tõ ®Þnh nghÜa ta thÊy ngay lµ líp c¸c s¬ ®å quan hÖ 2NF lµ líp con thùc sù cña líp 1NF,v× cã nhiÒu s¬ ®å quan hÖ kh«ng lµ 2NF.
ThÝ dô 9.3:
Ta xÐt quan hÖ R sau:
R
TT HOTEN NS T§O QUE GT
01 TuÊn Anh 1960 §¹i häc HuÕ Nam
02 Lan Anh 1977 §¹i häc Hµ Néi N÷
03 §×nh §«ng 1945 TS VÜnh Phó Nam
05 §×nh §«ng 1943 TS Hµ Néi Nam
06 C«ng Nô 1960 TS VÜnh Phó Nam
07 Hoa HuÖ 1972 Tr. häc NghÖ An N÷
Ta thÊy ngay r»ng tËp cã mét thuéc tÝnh TT lµ khãa cña quan hÖ R v× theo ®Þnh nghÜa cña
PTH ta cã TT →{HOTEN, NS, T§¤, GT, QU£}. V× R lµ 1NF vµ tËp khãa chØ cã métphÇn tö nªn kh«ng thÓ cã phÇn tö kh«ng khãa phô thuéc hµm vµo tËp con thùc sù cñakhãa (tËp con thùc sù cña khãa b»ng rçng), vËy R lµ 2NF.
Bæ ®Ò 9.1
W lµ 2NF nÕu mçi khãa cña W chØ cã mét thuéc tÝnh.
ThÝ dô 9.3:
Quay l¹i thÝ dô 2. 23 , ta ®· thÊy khãa cña W lµ:
K1 = {H, B}, K2 = {B, E}, K3 = {C, G}, K4 = {C, E}, K5 = {C, D}, K6 = {B, C}.
Trong thÝ dô nµy tÊt c¶ c¸c phÇn tö cña tËp thuéc tÝnh A ®Òu lµ phÇn tö khãa, tøc lµ tËp c¸c
phÇn tö kh«ng khãa b»ng rçng nªn kh«ng cã PTH d¹ng B → b mµ b lµ phÇn tö thø cÊp.VËy W lµ 2NF.
Bæ ®Ò 9.2
W lµ 2NF nÕu tËp c¸c thuéc tÝnh kh«ng khãa Fn = .
ThÝ dô 9.4:
Sau ®©y ta xÐt mét thÝ dô W kh«ng lµ 2NF.
Cho W = < A, F >, víi A = {G, B, C, D, E, H};
F = {G → E, C → D, E → DH}.
DÔ dµng thÊy r»ng tËp k = {G, B, C} lµ khãa duy nhÊt cña W, D lµ thuéc tÝnh kh«ng
khãa vµ C → D, v× C lµ tËp con thùc sù cña khãa nªn W kh«ng lµ 2NF.
Hay xÐt tËp thuéc tÝnh A = { Mav, Tenv, Pho, Sonha} gåm c¸c thuéc tÝnh m· vïng, tªnvïng, phè, sè nhµ. DÔ dµng thÊy r»ng tõ m· vïng suy ra tªn vïng vµ tõ tªn vïng suy ra m· vïng
vµ khi ®ã tËp F = { Mav → Tenv, Tenv → Mav}, s¬ ®å quan hÖ W = < A, F > lµ 2NF v×
W cã hai kho¸ k1 = { Mav, Pho, Sonha}, k2 = { Tenv, Pho, Sonha} vµ tËp thø cÊp Fn = ∅.
Lu ý
VËy vi ph¹m cña 2NF lµ tËp con thùc sù cña kho¸ kÐo theo thuéc tÝnh thø cÊp.
9.3 D¹ng chuÈn 3NF
Cho s¬ ®å quan hÖ W = < A, F >.
§Þnh nghÜa 9.4 D¹ng chuÈn 3NF
W lµ 3NF nÕu trong W kh«ng tån t¹i phô thuéc hµm d¹ng X → b mµ
b∈Fn vµ X+ ≠ A.
ThÝ dô 9.4:
a. W kh«ng lµ 3NF: W= < {a, b, c, d}, {a →b, b →c}> kh«ng lµ 3NF.
b. W lµ 3NF: W’ = < {a, b, c, d}, {a →bcd}> lµ 3NF.
ThÝ dô 9.5:
Cho s¬ ®å quan hÖ W = < A, F >, víi U = {E, B, C, D}
F = {EB → C, D → B, C → EBD}
Ta thÊy r»ng, c¸c tËp k1 = {E, B}, k2 = {E, D}, k3 = {C} lµ c¸c khãa. VËy A kh«ng cãthuéc tÝnh thø cÊp, nªn W lµ 3NF.
Bæ ®Ò 9.3
Mäi s¬ ®å quan hÖ W = < A, F > kh«ng chøa thuéc tÝnh thø cÊp th× W lµ 3NF.
9.4 D¹ng chuÈn BCNF: Boyce - Codd Normal Form
D¹ng chuÈn Boyce - Codd Normal Form, ký hiÖu lµ BCNF.
Cho s¬ ®å quan hÖ W = < A, F >
§Þnh nghÜa 9.5 D¹ng chuÈn BCNF
W lµ BCNF nÕu trong W kh«ng tån t¹i phô thuéc hµm d¹ng X → b víi b ∉ X
vµ X+ ≠ A.
Bæ ®Ò 9.3
NÕu W lµ BCNF th× W lµ 3NF.
NÕu W lµ 3NF th× W lµ 2NF
ThÝ dô 9.6:
Cho W = < A, F >, víi U = {G, B, C, D}
F = {GB → C, C → GBD}
DÔ dµng thÊy r»ng:
C¸c tËp cã bao ®ãng kh¸c A lµ X = {G} hoÆc X = {B} hoÆc X = {D} hoÆc X = {G, D}hoÆc X = {B, D} vµ trong c¸c tËp trªn kh«ng cã phô thuéc hµm d¹ng
X → b víi b ∉ X.
VËy W lµ BCNF.
ThÝ dô 9.7:
XÐt mét s¬ ®å quan hÖ W mµ W lµ 3NF nhng W kh«ng lµ BCNF.
Cho W = < {G,B,C,D}, {G → BCD, BC → DG, B → C}> . Râ rµng r»ng W lµ 3NF v× Wcã hai kho¸ lµ {G} vµ {B,C} nªn tËp kh«ng kho¸ lµ D vµ kh«ng cã tËp nµo cã bao ®ãngkh¸c A kÐo theo thuéc tÝnh thø cÊp D. Ngîc l¹i W kh«ng lµ BCNF v× cã phô thuéc hµm
B → C mµ B+ kh¸c A.
Lu ý:
NÕu W= < A, F> lµ 1NF, 2NF, 3NF, BCNF,... th× mäi quan hÖ R trªn A còng lµ 1NF,2NF, 3NF, BCNF, . . . t¬ng øng.
§Þnh lý 9.1
C¸c líp d¹ng chuÈn cña c¸c s¬ ®å quan hÖ cã quan hÖ lång nhau, líp sau n»m trong líp
tríc. NghÜa lµ ta cã: 1NF ⊃ 2NF ⊃ 3NF ⊃ BCNF . Lång nhau ë ®©y lµ thùc sù,nghÜa lµ líp sau n»m gän trong líp tríc.
Bµi 10 Phô thuéc ®a trÞ vµ D¹ng chuÈn 4- 4NF
Líp c¸c quan hÖ chóng ta ®· vµ ®ang xÐt rÊt lín, mét sè c¸c quan hÖ cã ng÷ nghÜa(semantic) phøc t¹p, trong tËp c¸c thuéc tÝnh kh«ng cã phô thuéc hµm hoÆc cã c¸c phô
thuéc ®Æc biÖt. VËy ®Ó ®i s©u nghiªn cøu c¸c ®Æc thï, tÝnh chÊt cña líp c¸c quan hÖ,chóng ta sÏ tr×nh bµy tiÕp kh¸i niÖm phô thuéc ®a trÞ.
ThÝ dô 10.1:
Ta xÐt b¶ng r th«ng b¸o chñ vµ xe nh sau :
r
Chñ Xe BiÓn
A BMW 29F1
A BMW 29F2
A BMW 29F3
B Toyota 29H1
B Toyota 29H2
Trong quan hÖ nµy kh«ng cã phô thuéc hµm gi÷a Chñ vµ BiÓn, nhng gi÷a c¸c thuéc tÝnhChñ, BiÓn, cã mèi quan hÖ ®Æc biÖt. VÝ dô ta thÊy nÕu cïng mét Chñ th× tr¸o hai biÓn bÊtkú cho nhau ta vÉn ®îc mét xe hîp lÖ cña chñ ®ã . KiÓu phô thuéc ®Æc biÖt nµy S. Jajdagäi lµ phô thuéc ®a trÞ.
VËy ta cã kh¸i niÖm phô thuéc ®a trÞ trong c¸c lîc ®å quan hÖ nh sau.
10.1 §Þnh nghÜa phô thuéc ®a trÞ
Cho lîc ®å quan hÖ A = {A1, A2,... An}, n ≥ 3. X vµ Y lµ c¸c tËp con cña A vµ
Z = A - (X ∪ Y). Mçi t ∈ r ta cã thÓ coi t ®îc ghÐp tõ 3 phÇn chiÕu cña t tøc lµ
t = t.Xt.Yt.Z.
§Þnh nghÜa 10.2 Phô thuéc ®a trÞ
Ta nãi trong lîc ®å quan hÖ A x¸c ®Þnh phô thuéc ®a trÞ tõ X lªn Y (X x¸c ®Þnh ®a trÞ Y),
ký hiÖu lµ X Y, nÕu mäi cÆp phÇn tö t1, t2 cña r ( r lµ quan hÖ bÊt kú trªn A) b»ng
nhau trªn tËp X, tøc:
t1 = t1.Xt1.Yt1.Z ∈ r
t2 = t1.Xt2.Yt2.Z ∈ r (1)
vµ t1.X = t2.X th× khi ®æi ®u«i t1vµ t2 cho nhau (®æi t1.Z vµ t2.Z) chóng ta vÉn nhËn ®îcc¸c phÇn tö thuéc r, tøc lµ:
t1’ = t1. Xt1.Yt2.Z vµ
t2’ = t1.Xt2.Yt1.Z (2)
còng thuéc r
Nãi c¸ch kh¸c X Y nÕu víi mäi t1,t2 nh trong (1) thuéc r vµ t1.X = t2.X th× ta còng
cã t1’ , t2’ trong (2) thuéc r.
ThÝ dô 10.2 a
XÐt quan hÖ Chñ - Xe r nh trªn ta cã ngay:
Chñ →→ Xe vµ Chñ →→ BiÓn
ThÝ dô 10.2.b:
Mét c¸ch tæng qu¸t cho lîc ®å quan hÖ A vµ hai tËp thuéc tÝnh X, Y ⊆ A .
NÕu X → Y th× X →→ Y. ThËt vËy gi¶ sö t1 vµ t2 thuéc r vµ
t1.X = t2.X v× X → Y, nªn t1.Y = t2.Y. Khi ®ã t1’= t1.Xt1.Yt2.Z =
t2.Xt2.Yt2.Z = t2 thuéc r. T¬ng tù ta cã t2’ = t1 thuéc r . Nªn X Y
10.2 TÝnh chÊt cña phô thuéc ®a trÞ
TÝnh chÊt d1: TÝnh bï cña phô thuéc ®a trÞ:
NÕu X, Y, Z lµ ba tËp con rêi nhau cña lîc ®å quan hÖ A vµ A = X ∪ Y ∪ Z víi
A = {A1, A2,... , An} th× X →→ Y khi vµ chØ khi X →→ Z.
TÝnh chÊt d2: TÝnh t¨ng trëng:
NÕu X →→ Y vµ V ⊂ W th× XW →→ YV.
TÝnh chÊt d3: TÝnh b¾c cÇu:
NÕu X →→ Y vµ Y →→ V th× X →→ V\ Y.
TÝnh chÊt d4: TÝnh pha trén:
NÕu X → Y th× X →→ Y.
Phô thuéc hµm lµ trêng hîp riªng cña phô thuéc ®a trÞ.
TÝnh chÊt d5: NÕu X →→ Y vµ W → V víi V⊂ Y vµ W ∩ Y = ∅ th×
X → V.
Vµ mét sè tÝnh chÊt cã thÓ suy dÉn ®îc:
TÝnh chÊt 6: (Hîp) X →→ Y vµ X →→ Z ⇒ X →→ YZ.
TÝnh chÊt 7: (Tùa b¾c cÇu)
X →→ Y vµ YW →→ V ⇒ XW → V - YW.
TÝnh chÊt 8: (Tùa hîp)
X →→ Y vµ XY → W, th× X → W - Y.
TÝnh chÊt 9: TÝnh ph©n r·
NÕu X →→ Y vµ X →→ V th×
X →→ Y ∩ V ;
X →→ Y - V;
X →→ V - Y.
VÒ sau ta thêng ký hiÖu phô thuéc ®a trÞ lµ MD (Multivalued Dependencies), thÝ dô cho
phô thuéc ®a trÞ ta viÕt cho MD X →→ Y.
§Þnh nghÜa 10.3 Phô thuéc c¬ së
Mét MD X→→ Y trªn lîc ®å A ®îc gäi lµ phô thuéc c¬ së nÕu
Y ≠ ∅ vµ X ∩ Y = ∅ vµ X ∪ Y ≠ A.
Sau ®©y ta sÏ chøng minh mét vµi tÝnh chÊt cña phô thuéc ®a trÞ:
TÝnh chÊt d1: Ta cã X →→ Y vµ Z = A - X - Y.
Gi¶ sö t1 vµ t2 lµ hai phÇn tö cña r mµ t1.X = t2.X vµ t1 = t1.Xt1.Yt1.Z,
t2 = t2.Xt2.Yt2.Z theo gi¶ thiÕt X →→ Y nªn t1’= t1.Xt1.Yt2.Z, vµ t2’= t2.Xt2.Yt1.Z còng
thuéc r, v× t1.X= t2.X nªn ®æi t1.X vµ t2.X cho nhau trong c¸c t1’vµ t2’ ta vÉn ®îc c¸c phÇntö thuéc r, hay t1’ = t2.Xt1.Yt2.Z
t2’= t1.Xt2.Yt1.Z còng thuéc r. Theo ®Þnh nghÜa ta cã X →→ Z.
VËy ta cã ®Þnh nghÜa t¬ng ®¬ng:
§Þnh nghÜa 10.6 Phô thuéc ®a trÞ
X →→ Y
nÕu t1 vµ t2 mµ t1.X = t2.X vµ t1= t1.Xt1.Yt1.Z vµ t2 = t2.Xt2.Yt2.Z thuéc R th× t1’ =t1.Xt2.Yt1.Z vµ t2’= t2.Xt1.Yt2.Z còng thuéc R.
10.3 HÖ tiªn ®Ò cña c¸c phô thuéc FD (PTH) vµ MD
Gäi FD lµ líp tÊt c¶ c¸c phô thuéc hµm khi ®ã ta ®· cã hÖ tiªn ®Ò Armstrong cho líp FD:
Ar1 TÝnh ph¶n x¹: X→ X vµ nÕu Y ⊂ X th× X → Y.
Ar2 TÝnh b¾c cÇu: X → Y vµ Y → V th× X → V.
Ar3 TÝnh më réng hai vÕ: X → Y th× XZ → YZ.
Trong líp MD, hÖ n¨m tÝnh chÊt d1, d2, d3, d4, d5 gäi lµ hÖ tiªn ®Ò cña líp MD.
Tæng qu¸t: HÖ t¸m tiªn ®Ò {Ar1, Ar2, Ar3, d1, d2, d3, d4, d5} gäi lµ hÖ tiªn ®Ò cña c¸c
rµng buéc d¹ng phô thuéc hµm vµ phô thuéc ®a trÞ FD MD.
§Þnh lý 10.1
HÖ tiªn ®Ò {Ar1, Ar2, Ar3, d1, d2, d3, d4, d5} ®óng ®¾n vµ ®Çy ®ñ trong líp c¸c rµng
buéc FD MD.
10.4 D¹ng chuÈn 4 : 4NF
Cho s¬ ®å quan hÖ W= < A, § >.
§Þnh nghÜa 10.6 D¹ng chuÈn 4NF
Ta nãi W lµ 4NF nÕu mäi MD X →→ Y ∈ §+ lµ phô thuéc c¬ së th× X+ = A.
Nãi mét c¸ch kh¸c W lµ 4NF nÕu mäi phô thuéc ®a trÞ:
X Y§+ mµ Y ≠ ∅ vµ X ∩ Y = ∅ vµ X ∪ Y ≠ A th× X+ = A.
ThÝ dô 10.6:
W = < A, § >, víi A = {H, B, C, E, G}, § = {H → BCEG} th× W lµ 4NF v× mäi phô thuéc
®a trÞ X →→ Y ∈ §+®Òu tháa m·n ®Þnh nghÜa cña d¹ng chuÈn 4.
Tõ ®Þnh nghÜa ta cã ngay kÕt luËn sau ®©y:
Bæ ®Ò 10.1
NÕu W lµ 4NF th× W lµ BCNF.
ThËt vËy gi¶ sö W = < A, § > kh«ng lµ BCNF, cã nghÜa lµ trong W cã PTH d¹ng X → B
∉ X vµ X+ ≠ A, vËy trong § cã X →→ B ∈ §+ lµ phô thuéc c¬ së nhng X+ ≠ A, suy ra v«lý.
VËy W lµ BCNF.
Muèn xÐt xem s¬ ®å quan hÖ W = < A, § > cã lµ 4NF hay kh«ng ta chØ cÇn xÐt xem
trong §+ cã phô thuéc c¬ së X→→ B ∈ §+ vµ X+ ≠ A ?
NÕu §+ = ∅ th× W lµ 4NF.
§Þnh lý 10.1
Trong c¸c líp cña c¸c d¹ng chuÈn ta cã mèi quan hÖ lång nhau thùc sù nh sau:
1NF ⊃ 2NF ⊃ 3NF ⊃ BCNF ⊃ 4NF ⊃ … (lång nhau thùc sù, nghÜa lµ líp tríc chøalíp sau thùc sù).
H×nh 2-12. S¬ ®å biÓu thÞ mèi liªn hÖ cña c¸c líp chuÈn
Bµi 11. Rµng Buéc toµn vÑn
11.1 §Þnh nghÜa Rµng Buéc Toµn VÑn ( RBTV)
§Þnh nghÜa 11.1 §Þnh nghÜa RBTV
RBTV cña mét CSDL lµ rµng buéc vÒ gi¸ trÞ cña c¸c thuéc tÝnh trong CSDL.
1NF
2NF
3NF
BCNF
4NF
ThÝ dô miÒn gi¸ trÞ cña thuéc tÝnh ngµy (Day) chØ cã thÓ tõ 1 ®Õn 31, hay thuéc tÝnh GT(giíi tÝnh) chØ cã gi¸ trÞ lµ ‘nam’ hoÆc ‘n÷’ .v.v
Khi thiÕt kÕ vµ thao t¸c trªn CSDL chóng ta ph¶i ®¶m b¶o vµ tu©n thñ c¸c rµng buéc ®ã.Trong c¸c ng«n ng÷ lËp tr×nh cã mét sè rµng buéc ph¶i m« t¶. VÝ dô HOTEN NOT Nullhay khi t¹o b¶ng GIAOVIEN trong SQL cã m· sè gi¸o viªn (MaGV) lµ kho¸ chÝnh, m·häc hµm (MaHH) lµ kho¸ ngo¹i, ta m« t¶ RBTV kho¸ chÝnh, kho¸ ngo¹i nh sau :
Create table GIAOVIEN
(
MaGV smallint Not null,
MaHH smallint Not null,
Constraint pk_GIAOVIEN primary key (MaGV),
Constraint fk_HOCHAM_GIAOVIEN foreign key (MAHH) referencesHOCHAM(MaHH)
)
11.2 C¸c lo¹i RBTV
Cã nhiÒu lo¹i RBTV vÒ gi¸ trÞ, tuy nhiªn ta chia chóng thµnh ba nhãm chÝnh:
(a) RBTV lo¹i 1: RBTV kiÓu kho¸ chÝnh, kho¸ ngo¹i :
§Þnh nghÜa RBTV lo¹i 1
RBTV lo¹i 1 lµ kiÓu rµng buéc kho¸ chÝnh, kho¸ ngo¹i: mçi gi¸ trÞ kho¸ ngo¹i ph¶i lµ métgi¸ trÞ kho¸ chÝnh.
Nãi c¸ch kh¸c tËp gi¸ trÞ trong kho¸ chÝnh chøa tËp gi¸ trÞ trong kho¸ ngo¹i. VÝ dô gi¸ trÞMasv trong b¶ng ®iÓm ph¶i lµ mét gi¸ trÞ cña Masv trong b¶ng sinh viªn. Hay nãi c¸ch
kh¸c SV[Masv] ⊇ Bang_Diem[Masv].
(b) RBTV lo¹i 2: RBTV kiÓu phô thuéc hµm :
§Þnh nghÜa RBTV läai 2
RBTV lo¹i 2 lµ kiÓu rµng buéc d¹ng phô thuéc hµm: rµng buéc vÒ gi¸ trÞ cña hai tËp thuéc
tÝnh X vµ Y, mµ X →Y.
ThÝ dô xÐt quan hÖ R cã hai thuéc tÝnh m· vïng vµ tªn vïng R (m· vïng, tªn vïng) khi ®ã
ta cã RBTV kiÓu phô thuéc hµm : m· vïng tªn vïng hay biÕt tªn vïng suy ra m·
vïng, tªn vïng m· vïng.
( c) RBTV lo¹i 3: RBTV lo¹i 3 lµ kiÓu rµng buéc kh«ng ph¶i khãa chÝnh, khãango¹i vµ kh«ng ph¶i kiÓu phô thuéc hµm:
§Þnh nghÜa RBTV lo¹i 3
RBTV lo¹i 3 lµ kiÓu rµng buéc kh«ng ph¶i lo¹i 1, kh«ng ph¶i lo¹i 2.
ThÝ dô gi¸ trÞ cña n¨m sinh NS ph¶i nhá thua gi¸ trÞ n¨m ®i lµm NDL cña nh©n viªn.
Sè tiÒn c¸c kh¸ch hµng ®· mua kh«ng ®îc vît qóa sè tiÒn (doanh sè) mµ kh¸ch hµngcã...lµ nh÷ng RBTV lo¹i 3.
ThÝ dô 11.1
ThÝ dô 11.2
ThÝ dô 11.3
Bµi 12. PH¦¥NG PHÁ P TRÌNH BÀY MỘT RBTV
Khi thiÕt kÕ øng dông mét c¬ së d÷ liÖu, ngêi thiÕt kÕ ph¶i n¾m ch¾c c¸c RBTV cãtrong CSDL. §Ó tr×nh bµy mét RBTV trong ng«n ng÷ lËp tr×nh ph¶i m« t¶ theo c¸ch viÕtcña ng«n ng÷ ®ã, trong ng«n ng÷ quan hÖ chóng ta ph¶i tr×nh bµy c¸c c«ng thøc, rµngbuéc gi¸ trÞ b»ng c¸c bé cña c¸c quan hÖ. Muèn tr×nh bµy ®îc b»ng ng«n ng÷ quan hÖchóng ta ph¶i n¾m ch¾c cÊu tróc cña CSDL vµ c¸c b¶ng trong CSDL.
12.1 Ph¬ng ph¸p tr×nh bµy mét RBTV b»ng ng«n ng÷ lËp tr×nh
Trong phÇn nµy ta sÏ minh häa mét ng«n ng÷ khai b¸o ®Ó ®Æc t¶ mét RBTV. Ng«n ng÷nµy gièng víi SAL ( ANSI, 1986) nhng tæng qu¸t h¬n. Ng«n ng÷ nµy cho phÐp chóng tam« t¶, ghi nhËn hoÆc th¸o bá mét RBTV. Nh÷ng RBTV nµy ®îc ®Þnh nghÜa, m« t¶ vµolóc t¹o quan hÖ hoÆc vµo mét thêi ®iÓm nµo ®ã, ngay c¶ khi quan hÖ ®· chøa d÷ liÖu.
XÐt CSDL qu¶n lý b¸n hµng trong thÝ dô 2.17.
kh( Makh , Tenkh, DS...)
nv( Manv , Tenv, HS, Luong...)
sp( Masp, Tensp, DVT, NSX, GIA)
hd( SOHD, NHD, Makh, Manv, Trigia)
cthd( SOHD, Masp, SL)
C¸c thÝ dô sau minh häa mét sè m« t¶ RBTV
- RBTV lo¹i 1: Khãa duy nhÊt
CÆp ( SOHD, Masp) lµ khãa duy nhÊt cña cthd
( SOHD, Masp) UNIQUE IN cthd
Khãa ngo¹i
Masp trong cthd lµ khãa ngo¹i cña Masp trong sp
Masp in cthd REFERENCES Masp IN sp
- RBTV lo¹i 2: Phô thuéc hµm
Manv x¸c ®Þnh phô thuéc hµm Tenv
Manv IN nv DETERMINES Tenv
Phô thuéc hµm
HÖ sè l¬ng cña nh©n viªn (HS) x¸c ®Þnh phô thuéc hµm Luong
HS IN nv DETERMINES Luong
- RBTV lo¹i 3: Thuéc tÝnh kh«ng nhËn gi¸ trÞ null
M· nh©n viªn trong quan hÖ nv kh«ng nhËn gi¸ trÞ null
Manv not null in nv
Thuéc tÝnh nhËn gi¸ trÞ trong kho¶ng
Doanh sè cña mçi kh¸ch hµng n»m trong kho¶ng 5000 ®Õn
10000
Check on kh ( DS >= 5000 and DS <= 10000)
Rµng buéc miÒn khi xãa
ChØ víi c¸c bé cña kh cã DS = 0 míi ®îc xãa
Check on kh when delete (DS = 0)
Rµng buéc gi¸ trÞ c¸c thuéc tÝnh trong c¸c quan hÖ
Tæng tiÒn ( tæng Trigia ) cña c¸c hãa ®¬n < 100000
Check on hd ( sum(Trigia) < 100000)
12.2 Ph¬ng ph¸p tr×nh bµy mét RBTV b»ng ng«n ng÷ quan hÖ
Chóng ta thêng tr×nh bµy RBTV trong ng«n ng÷ quan hÖ b»ng ba bíc:
Bíc1: Néi dung cña RBTV.
Tõ mét c©u b»ng ng«n ng÷ tù nhiªn ta ph¶i chuyÓn sang ng«n ng÷ quan
hÖ.
Bíc 2: LiÖt kª c¸c quan hÖ tham gia vµo RBTV ®ang xÐt.
Bíc nµy chØ liÖt kª c¸c quan hÖ liªn ®íi ®Õn RBTV ®ang xÐt.
Bíc 3: LËp b¶ng c¶nh b¸o tÇm ¶nh hëng. §©y lµ b¶ng cã 4 cét. B¶ng nµy c¶nh b¸o,thèng kª c¸c ¶nh hëng cña c¸c thao t¸c: thªm, söa, xãa d÷ liÖu trong c¸c quan hÖ thamgia rµng buéc cã ¶nh hëng ®Õn RBTV:
B¶ng tÇm ¶nh hëng
C¸c quan hÖ Thªm söa Xãa
R -
S + +(C)
Trong ®ã
R, S lµ c¸c quan hÖ tham gia RBTV.
DÊu - biÓu thÞ thao t¸c kh«ng ¶nh hëng ®Õn RBTV.
DÊu + biÓu thÞ thao t¸c cã ¶nh hëng ®Õn RBTV.
DÊu +(C) biÓu thÞ thao t¸c ¶nh hëng ®Õn RBTV trªn thuéc tÝnh C
Lu ý:
B¶ng tÇm ¶nh hëng chØ xÐt víi rµng buéc cã trong néi dung ë bíc 1. Mét CSDL cãnhiÒu RBTV.
ThÝ dô 12.1:
XÐt CSDL qu¶n lý b¸n hµng trong thÝ dô 2.17.
kh( Makh , Tenkh, DS, NS, NGN) víi NS lµ n¨m sinh, NGN lµ ngµy gia nhËp
nv( Manv , Tenv, HS, LUONG) víi HS lµ hÖ sè l¬ng, LUONG lµ l¬ng
sp( Masp, Tensp, DVT, NSX, GIA)
hd( SOHD, NHD, Makh, Manv, Trigia)
cthd( SOHD, Masp, SL)
Thùc hiÖn (ba bíc) c¸c RBTV sau:
RBTV lo¹i 1 :
Nªu c¸c RBTV kho¸ chÝnh kho¸ ngo¹i cña CSDL.
RBTV lo¹i 2:
C¸c nh©n viªn cã cïng hÖ sè l¬ng HS th× cã cïng LUONG.
RBTV lo¹i 3 :
1. ‘DVT cña s¶n phÈm chØ cã thÓ lµ chai, lon, kÐt, thïng’.
2. ‘Ngµy gia nhËp (NGN) cña kh¸ch hµng ph¶i lín h¬n n¨m sinh (NS) cña kh¸ch hµng®ã’.
3. ‘Ngµy mua hµng cña kh¸ch hµng ph¶i lín h¬n NGN cña kh¸ch hµng ®ã’
4. ‘Mçi ho¸ ®¬n ph¶i cã Ýt nhÊt mét chi tiÕt ho¸ ®¬n’.
5. ‘Trigia cña mét ho¸ ®¬n ph¶i b»ng tæng tiÒn ( tæng c¸c SL * GIA) cña ho¸ ®¬n ®ã’.
6. ‘DS cña mét kh¸ch hµng ph¶i lín h¬n hoÆc b»ng tæng c¸c Trigia ho¸ ®¬n kh¸ch hµng®· mua’.
Lu ý:
Trong c¬ së d÷ liÖu nµy c¸c kho¸ chÝnh ®îc g¹ch díi
RBTV lo¹i 1
Bíc 1: Néi dung RBTV
∀ t ∈ hd ∃ t’∈ kh sao cho : t[Makh] = t’[Makh]
( hoÆc lµm c¸ch kh¸c hd[Makh] ⊆ kh[Makh])
Bíc 2: C¸c quan hÖ tham gia RBTV: hd, kh
Bíc 3: B¶ng tÇm ¶nh hëng cña RBTV
C¸c quan hÖ Thªm söa Xãa
kh +(Makh) +(Makh) +(Makh)
hd +(Makh) +(Makh) -
RBTV lo¹i 2
Bíc1: Néi dung RBTV
∀ t, t’ ∈nv nÕu (t[HS] = t’[HS]) th× (t[LUONG] = t’[LUONG]).
Bíc 2: C¸c quan hÖ tham gia RBTV: nv
Bíc 3: B¶ng tÇm ¶nh hëng
C¸c quan hÖ Thªm söa Xãa
nv +(HS, LUONG) +(HS, LUONG) -
RBTV lo¹i 3
1. Bíc1: Néi dung RBTV
∀ t ∈sp th× (t[DVT] = ‘chai’) or (t[DVT] = ‘lon’) or (t[DVT] = ‘kÐt’) or
(t[DVT] = ‘thïng’).
Bíc 2: C¸c quan hÖ tham gia RBTV: sp
Bíc 3: B¶ng tÇm ¶nh hëng cña RBTV
C¸c quan hÖ Thªm söa Xãa
sp +(DVT) +(DVT) -
2. Bíc1: Néi dung RBTV
∀ t ∈kh th× (t[NS] ≤ t[NGN])
Bíc 2: C¸c quan hÖ tham gia RBTV: kh
Bíc 3: B¶ng tÇm ¶nh hëng cña RBTV
C¸c quan hÖ Thªm söa Xãa
kh +(NS,NGN) +(NS, NGN) -
3. Bíc 1: Néi dung RBTV
∀ t ∈ kh & t’ ∈ hd nÕu t’[Makh] = t[Makh] th× t[NGN] < t’[NHD]
Bíc 2: C¸c quan hÖ tham gia RBTV: Kh, hd
Bíc 3: B¶ng tÇm ¶nh hëng cña RBTV
C¸c quan hÖ Thªm söa Xãa
kh - +(Makh, NGN) -
hd +(Makh, NHD) +(Makh, NHD) -
4. Bíc 1: Néi dung RBTV
∀ t ∈ hd ∃ t’ ∈ cthd sao cho t’[SOHD] = t[SOHD]
Bíc 2: C¸c quan hÖ tham gia RBTV: hd, cthd
Bíc 3: B¶ng tÇm ¶nh hëng RBTV
C¸c quan hÖ Thªm söa Xãa
hd - +(SOHD) +(SOHD)
cthd +(SOHD) +(SOHD) +(SOHD)
5. Bíc 1: Néi dung RBTV
∀ t ∈ hd ∃ t1, t2, ...,tm ∈ cthd vµ t1’, t2’, ...,tm’ ∈sp sao cho :
(t[SOHD] = ti[SOHD]) and (ti[[Masp] = ti’[Masp]) ; i= 1, 2, ...,m
vµ ]['][1
GIAtiSLtim
i
×∑=
≤ t[TRIGIA]
Bíc 2 : C¸c quan hÖ tham gia RBTV : hd, cthd
Bíc 3: B¶ng tÇm ¶nh hëng cña RBTV
C¸c quan hÖ Thªm söa Xãa
hd - +(Trigia) -
cthd +(SL) +(SL) -
6. Bíc 1: Néi dung RBTV
∀ t ∈ kh ∃ t1, t2, ...,tm ∈ hd sao cho :
(t[Makh] = ti[Makh]) ; i= 1, 2, ...,m
vµ ∑=
m
i
TRIGIAti1
][ ≤ t[DS]
Bíc 2: C¸c quan hÖ tham gia RBTV : kh, hd
Bíc 3: B¶ng tÇm ¶nh hëng
C¸c quan hÖ Thªm söa Xãa
kh - +(DS, Makh) +(DS, Makh)
hd +(Makh, Trigia) +(Makh, Trigia) -
Lu ý:
B¶ng tÇm ¶nh hëng chØ xÐt xem c¸c thao t¸c thªm, söa, xo¸ cã ¶nh hëng ®Õn RBTVtrong néi dung ë bíc 1 kh«ng?( vµ chØ RBTV ®ã).
Bµi 13 ng«n ng÷ VÊn tin sql
13. Ng«n ng÷ lµ g×?
Trong ho¹t ®«ng cña con ngêi ta thêng gÆp hai lo¹i ng«n ng÷:
Ng«n ng÷ tù nhiªn: s¶n sinh tõ lao ®éng vµ tån t¹i vÝ dô tiÕng viÖt
Ng«n ng÷ h×nh thøc: do con ngêi t¹o ra vÝ dô ng«n ng÷ lËp tr×nh
Ng«n ng÷ cã c¸c thµnh phÇn:
Bé ký tù, bé tõ, ng÷ ph¸p.
13.2 SQL lµ g×?
SQL = Structured Query Language = Ng«n ng÷ truy vÊn cã c©u tróc.
VËy SQL lµ:
- Mét ng«n ng÷ nªn cã bé ký tù, bé tõ, có ph¸p
- Cã cÊu tróc nªn cã c¸c c©u lÖnh ®¬n gi¶n ®Õn phøc t¹p, lång nhau
- Ng«n ng÷ truy vÊn nªn dïng SQL ®Ó lÊy th«ng tin tõ CSDL quan hÖ
13.3 Truy vÊn ( query) lµ g×?
Mét truy vÊn( mét query) lµ mét c©u lÖnh SQL thùc hiÖn trªn CSDL quan hÖ ®Ócho ra mét quan hÖ míi.
ThÝ dô 13.1:
Cho c¬ së d÷ liÖu qu¶n lý b¸n hµng:
1. kh( Makh , Tenkh, DS)
2. nv( Manv , Ten)
3. sp( Masp, Tensp, DVT, NSX, GIA)
4. hd( SOHD, NHD, Makh, Manv, Trigia)
5. cthd( SOHD, Masp, SL)
H·y lËp b¶ng Makh, Tenkh, DS cã doanh sè DS > 100.
C©u lÖnh
Select *
From kh
Where DS > 100;
KÕt qu¶ c©u lÖnh cã trong h×nh sau:.
13.3 Mét sè c©u lÖnh c¬ b¶n SQL
Trong phÇn tríc, chóng ta ®· lµm quen víi c¸c phÐp to¸n ®¹i sè trªn c¸c quan hÖ. TrongphÇn nµy chóng ta sÏ tr×nh bµy tiÕp mét trong c¸c ng«n ng÷ thao t¸c (Data ManipulationLanguage - DML) trªn c¸c CSDL quan hÖ- SQL.
1. T¹o b¶ng (quan hÖ)
Gi¶ sö ta cÇn t¹o quan hÖ R(A1, A2, ..., An) víi c¸c thuéc tÝnh Ai cã kiÓu d÷ liÖu lµ Ki.Khi ®ã ta viÕt:
Create Table R( A1 k1, A2 k2, ..., An kn) ;
ThÝ dô 2.42 :
Ta cÇn t¹o quan hÖ S trªn A, víi A = {Masv, Hoten, NS, Que} ta viÕt
Create Table S( Masv Char, Hoten char, NS Date, Que char);
2. Insert (nhËp) d÷ liÖu vµo quan hÖ R
NhËp bé d÷ liÖu t = ( v1, v2, ..., vn) vµo R
Insert into R
Values ( v1, v2, ..., vn);
ThÝ dô13. 2 :
NhËp sinh viªn cã m· sè 1000, hä tªn lµ NguyÔn ThÞ Hoa sinh n¨m 1986, quª Hµ néivµo b¶ng S trªn ta viÕt
Insert into S
Values ( 1000, ‘NguyÔn ThÞ Hoa’, 1986, ‘Hµ Néi’);
3. C©u lÖnh söa mét sè bé cña R
Gi¶ sö ta cÇn söa l¹i gi¸ trÞ c¸c thuéc tÝnh A1, A2, ..., Al cña c¸c bé tháa ®iÒu kiÖn Etrong quan hÖ r ta viÕt
Update R
Set A1 = v1, A2 = v2, ..., Al = vl
Where E;
ThÝ dô 13.4 :
Céng hai diÓm cho nh÷ng sinh viªn thuéc khu vùc 4
Update Bangdiem
Set DIEM = DIEM + 2
Where KV = 4;
4. C©u lÖnh xãa mét sè bé cña R tháa ®iÒu kiÖn E
Gi¶ sö chóng ta cÇn xãa c¸c bé trong r tháa m·n ®iÒu kiÖn E ta viÕt
Delete from r
Where E;
ThÝ dô 13.5 :
Xãa khái danh s¸ch líp c¸c sinh viªn cã ®iÓm b»ng kh«ng
Delete from DSLOP
Where DIEM = 0;
5. C©u lÖnh xãa mét quan hÖ r
Gi¶ sö chóng ta cÇn xãa quan hÖ r vµ xãa c¶ lîc ®å quan hÖ ta viÕt
Drop table r;
ThÝ dô 13.6:
Ta cÇn xãa b¶ng ®iÓm kh«ng lu l¹i dÊu vÕt
Drop table BANGDIEM;
6. C©u lÖnh select
D¹ng th«ng dông nhÊt cña c©u vÊn tin trong ng«n ng÷ SQL lµ c©u lÖnh SELECT.
C¸c d¹ng thêng gÆp cña Select
a. SELECT ng¾n ( hay SELECT d¬n gi¶n):
SELECT R.a,... , S.b
FROM R,... ,S
WHERE E ;
Trong ®ã: R,... , S lµ c¸c quan hÖ; E lµ ®iÒu kiÖn.
ý nghÜa c©u lÖnh lµ tõ c¸c quan hÖ R, ..., S läc ra quan hÖ gåm c¸c cét R.a, ..., S.b tháa
m·n ®iÒu kiÖn E
Khi gÆp c©u lÖnh nµy m¸y sÏ thôc hiÖn theo tuÇn tù nh biÓu thøc §SQH sau:
( E( R |><|… |><| S ))[a, ..., b]
ThÝ dô 13.7 :
XÐt c©u vÊn tin “liÖt kª Makh, tenkh nh÷ng kh¸ch hµng cã sè d ©m“ .
SELECT Makh, Tenkh
FROM kh
WHERE DS < 0 ;
ThÝ dô 13.8 :
Cho c¬ së d÷ liÖu qu¶n lý b¸n hµng:
1. kh( Makh , Tenkh, DS)
2. nv( Manv , Ten)
3. sp( Masp, Tensp, DVT, NSX, GIA)
4. hd( SOHD, NHD, Makh, Manv, Trigia)
5. cthd( SOHD, Masp, SL)
Läc Makh, tenkh ®· mua hµng quÝ 1 n¨m 2012
C©u lÖnh:
SELECT Makh, Tenkh
FROM kh, hd
WHERE kh.Makh = hd.Makh and NHD between 1/1/2012 and 31/3/2012 ;
Läc Makh, tenkh ®· mua nh÷ng hãa ®¬n do nh©n viªn NguyÔn ThÞ Hoa lËp trong n¨m2011.
C©u lÖnh:
SELECT Makh, Tenkh
FROM kh, hd, nv
WHERE kh.Makh = hd.Makh and hd.Manv = nv.Manv and NHD between 1/1/2011 and31/12/2011 and Ten = ‘NguyÔn ThÞ Hoa’ ;
Läc Masp, Tensp do kh¸ch hµng NguyÔn Huy Hoµng mua n¨ 2011
C©u lÖnh:
SELECT Masp, Tensp
FROM kh, hd, cthd
WHERE kh.Makh = hd.Makh and hd.SOHD = cthd.SOHD and NHD between 1/1/2011and 31/12/2011 and Tenkh = ‘NguyÔn Huy Hoµng’ ;
Lu ý
1. NÕu sau from chØ cã mét quan hÖ r vµ cÇn läc hÕt tÊt c¶ c¸c thuéc tÝnh
ta viÕt dÊu *.
ThÝ dô 13.9 :
SELECT *
FROM kh
WHERE DS < 100 ;
H·y lËp b¶ng s¶n phÈm cã ®¬n vÞ tÝnh lµ chai.
Select *
From sp
Where DVT = ‘chai’;
b. SELECT dµi
C¸c hµm gép: AVG(), SUM(), MIN(), MAX(), COUNT() thêng ®i víi select
dµi. Ta dïng HAMGOP() ®Ó chØ mét hµm gép nµo ®ã.
SELECT R.a,... , S.b, HAMGOP()
FROM R,... ,S
WHERE E
GROUP BY NTT HAVING E’
ORDER BY TT DESC (ACED) ;
Trong ®ã E lµ ®iÒu kiÖn toµn côc, E’ lµ ®iÒu kiÖn theo nhãm, NTT lµ nhãm thuéctÝnh, TT lµ thuéc tÝnh. Khi sÊp theo TT cã thÓ gi¶m dÇn §EC hoÆc t¨ng dÇn ACED.
Thø tù thùc hiªn cña c©u lÖnh:
1. R1 = ( E( R |><|… |><| S ))
2. Gép HAMGOP() trong R1 theo nhèm thuéc tÝnh NTT
3. ChiÕu kÕt qu¶ lªn c¸c cét a, ..., b
Läc Makh, Tenkh ®· mua tæng tiÒn n¨m 2011 s¾p tæng tiÒn theo thø tù gi¶m dÇn:
SELECT kh.Makh, Tenkh, SUM(Trigia) as TongTien
FROM kh, hd. cthd
WHERE kh.Makh = hd.Makh and hd.SOHD = cthd.SOHD and
NHD between 1/1/2011 and 31/12/2011
GROUP BY kh.Makh, Tenkh
ORDER BY TongTien DESC ;
HoÆc Läc Makh, Tenkh ®· mua tæng tiÒn n¨m 2011 trªn 300 vµ s¾p tæng
tiÒn theo thø tù gi¶m dÇn:
SELECT kh.Makh, Tenkh, SUM(Trigia) as TongTien
FROM kh, hd. cthd
WHERE kh.Makh = hd.Makh and hd.SOHD = cthd.SOHD and
NHD between 1/1/2011 and 31/12/2011
GROUP BY kh.Makh, Tenkh Having SUM(Trigia) >300
ORDER BY TongTien DESC ;
c. SELECT l«ng nhau
Select ngoµi select trong
SELECT ... FROM ... WHERE ... B ( SELECT ....)
Trong ®ã:
B lµ mét thuéc tÝnh; ∈ {=, <, >, ≤ , ≥ , ≠ } { IN, NOT IN, ANY, ALL}
- Khi Select trong läc ra 1 gi¸ trÞ th× ∈ {=, <, >, ≤ , ≥ , ≠ }
- Khi Select trong läc ra nhiÒu h¬n 1 gi¸ trÞ th× ∈ {IN, NOT IN, ANY, ALL}
Läc Makh, tenkh cã DS lín h¬n DS cña «ng Vâ V¨n KiÖt
SELECT Makh, Tenkh FROM kh WHERE DS > ( SELECT DS FROM kh WHERETenkh = ‘Vâ V¨n KiÖt’);
HoÆc läc Makh, tenkh cã DS b»ng DS cña «ng Vâ V¨n KiÖt hoÆc «n Mai H¾c §Õ
SELECT Makh, Tenkh FROM kh WHERE DS IN ( SELECT DS FROM kh WHERETenkh = ‘Vâ V¨n KiÖt’ OR Tenk = Mai H¾c §Õ );
d. BiÕn bé
§«i khi chóng ta cÇn liªn hÖ ®Õn hai bé hoÆc nhiÒu h¬n hai bé trong cïng mét quan hÖ.§Ó thùc hiÖn viÖc nµy ta cã thÓ dïng biÕn bé.
ThÝ dô 13.10:
XÐt c©u “in ra c¸c kh¸ch hµng cã DS lín h¬n DS cña Vâ Van KiÖt
SELECT c1 *
FROM kh c1, kh c2
WHERE c1. DS > c2.DS
AND c2. Tenkh = ‘Vâ V¨n KiÖt’ ;
e. Më réng kh¶ n¨ng dïng where b»ng tõ kho¸ like ( lµ )
Nh»m më réng thªm kh¶ n¨ng dïng where E ta dïng tõ khãa like vµ hai ký hiÖu phô:%, _
- Tõ like ë ®©y dïng theo nghÜa “ lµ “ .
- DÊu % ®îc dïng ®Ó ®¹i diÖn cho c¸c ký tù .
- DÊu _ dïng ®Ó ®¹i diÖn cho mét ký tù .
ThÝ dô 13.11:
XÐt c©u vÊn tin “in ra c¸c Masp do c¸c kh¸ch hµng cã hä tªn b¾t ®Çu b»ng ký tù
B ®· mua“ , khi ®ã ta cã c©u lÖnh:
SELECT cthd.Masp
FROM cthd, hd, kh
WHERE ( kh. Tenkh like ‘B%’) and (kh.Makh = hd.Makh) and
(hd.SOHD = cthd.SOHD) ;
ThÝ dô 13.2:
XÐt c©u vÊn tin “in ra nh÷ng sè hãa ®¬n n»m trong kho¶ng 1000 - 1999“ , khi ®ã ta cã c©ulÖnh:
SELECT *
FROM hd
WHERE SOHD like ‘1_ _ _ ‘ ;
TÊt nhiªn ba dÊu _ _ _ ®¹i diÖn cho ba dÊu bÊt kú tõ 0 ®Õn 9.
Bµi 14. TÍNH ĐẦY ĐỦ CỦA
14.1 Tính đầy đủ của SQL
SQL thùc hiÖn ®îc c¸c phÐp to¸n §SQH.
SQL thùc hiÖn 5 phÐp to¸n c¬ b¶n lµ {hîp, hiÖu, tÝch Decac, chän, chiÕu}.
• PhÐp hîp: Gi¶ sö ta cã hai quan hÖ r vµ s cã cïng lîc ®å A = {A1,... , An}. Khi ®ã ®ÓtÝnh T = r + s ta viÕt:
INSERT INTO T
SELECT *
FROM r ;
TiÕp theo lµ
INSERT INTO T
SELECT *
FROM s ;
• PhÐp trõ: §Ó tÝnh T = r - s tríc tiªn chóng ta chÌn r vµo T nh trªn. Sau ®ã dïng c©ulÖnh xãa nh sau:
DELETE FROM T
WHERE (A1,... , An) IN
(SELECT * FROM s) ;
• TÝch Decac: Cho r lµ quan hÖ trªn A, s lµ quan hÖ trªn A’. §iÒu kiÖn A ∩ A’ = vµ T = r × s,
ta cã c©u lÖnh:
INSERT INTO T
SELECT r. A1,... , r. An, s. B1,... , s. Bm
FROM r, s ;
Víi A = {A1, A2, ..., An} vµ A’ = {B1, B2, ..., Bm}.
• PhÐp chän: T = r(E).
INSERT INTO T
SELECT *
FROM r
WHERE E ;
• PhÐp chiÕu: Gi¶ sö X lµ tËp con cña R vµ X = {A1,... Ak}
T = r. X, ta cã c©u lÖnh :
INSERT INTO T
SELECT A1,... , Ak
FROM r ;
• C¸c phÐp to¸n cßn l¹i cña ®¹i sè quan hÖ ®Òu cã thÓ nhËn ®îc tõ c¸c phÐp to¸n trªn.
• PhÐp giao: Ta chó ý r»ng T = r ∩ s = r - (r - s). C¸c c©u lÖnh cña phÐp trõ ta dïng nhtrªn.
• PhÐp nèi tù nhiªn T = r |><| s cña r trªn A vµ s trªn A’. Ta lu ý r»ng nÕu Avµ A’ rêi
nhau th× nèi tù nhiªn cña r vµ s lµ tÝch Decac cña r vµ s. NÕu A vµ A’ chung nhau tËpthuéc tÝnh X th× ta chØ nèi nh÷ng bé cña r vµ s cã gi¸ trÞ b»ng nhau trªn X. VËy c©u lÖnh®Ó tÝnh T sÏ lµ:
INSERT INTO T
SELECT r.A1, . . . . ,r.An , s.B1 , . . . s.Bm
FROM r, s
WHERE r.X = s.X
• PhÐp chia T = r ÷ s víi r trªn A vµ s trªn A’, A’ lµ tËp con cña A. Thùc chÊt kÕt qu¶ cña
phÐp chia r ÷ s lµ nh÷ng bé t.(A-A’) mµ t ∈ r vµ t.A’ ∈ s . VËy ta cã c©u lÖnh tÝnh T:
INSERT INTO T
SELECT r.(A-A’)
FROM r, s
WHERE E; ë ®©y E lµ ®iÒu kiÖn t.A’ ∈ s
• PhÐp nèi theo θ chän trong tÝch Decac r×s nh÷ng bé tho¶ θ
• PhÐp nèi nöa T = r |>< s. Thùc chÊt lµ chiÕu cña r |><| s lªn R. Tøc lµ:
r |>< s = (r |><| s). R
14.2 T¹o khung nh×n
Trong SQL cã mét nhãm lÖnh ®ãng vai trß nh ng«n ng÷ ®Þnh nghÜa d÷ liÖu DDL (DataDefinition Language), nghÜa lµ tõ mét quan hÖ, nhãm lÖnh nµy ®Þnh nghÜa cho ta métquan hÖ con, t¹o cho ta mét khung nh×n (view) cã tªn mµ kh«ng tèn thªm bé nhí. Cóph¸p cña c©u lÖnh t¹o khung nh×n:
CREATE VIEW V(A1,... , Ak) AS Q ;
Trong ®ã V lµ tªn cña khung nh×n, A1,... , Ak lµ c¸c thuéc tÝnh cña nã. Q lµ c©u vÊn tin®Þnh nghÜa khung nh×n.
ThÝ dô14.3:
Tõ quan hÖ c¸c nhµ cung cÊp ta cã thÓ t¹o ra mét khung nh×n: quan hÖ gåm c¸c mÆt hµngvµ gi¸ cña chóng do A cung cÊp:
CREATE VIEW V (ITEM, PRICE) AS
SELECT ITEM, PRICE
FROM supplies
WHERE NAME = ‘A’ ;
T¬ng tù nh hñy b¶ng, muèn hñy khung nh×n ta dïng c©u lÖnh DROP. VÝ dô, DROP V.
Trªn ®©y lµ nh÷ng kh¸i niÖm c¬ b¶n cña ng«n ng÷ vÊn tin SQL ®ñ dïng cho c¸c minh ho¹trong cuèn s¸ch nµy. §Ó sö dông ®îc SQL chóng ta cÇn tham kh¶o nh÷ng qui ®Þnh côthÓ vµ sù g¾n kÕt cña SQL víi c¸c ng«n ng÷ chñ kh¸c trong c¸c m«i trêng cô thÓ. C¸cb¹n cã thÓ t×m thÊy c¸c phiªn b¶n kh¸c cña SQL trong nhiÒu tµi liÖu kh¸c hiÖn ®ang ®îcb¸n trªn thÞ trêng.
Bµi 15. Minh häa øng dông vµ thao t¸c trªn CSDL quan hÖ
C¸c bíc thiÕt kÕ vµ t¹o CSDL
Bíc 1. ThiÕt kÕ c¸c b¶ng ( c¸c quan hÖ ) cã t¹o khãa chÝnh
Bíc 2. M« t¶ RBTV ( Relationship) khãa chÝnh-khãa ngo¹i
Bíc 3. NhËp d÷ liÖu. Chó ý khi nhËp d÷ liÖu ph¶i theo qui t¾c khãa chÝnh nhËp tríc,khãa ngo¹i nhËp sau.
Bíc 4. T¹o c¸c truy vÊn ®Ó phôc vô yªu cÇu bµi to¸n
Bíc 5. T¹o c¸c giao diÖn tiÖn Ých phï hîp yªu cÇu bµi to¸n v.v.
Sau ®©y chóng ta minh häa mét sè vÝ dô thùc hiÖn bèn bíc1, 2, 3, 4 ®Ó thÕt kÕ métCSDL.
VÝ dô 1. ThiÕt kÕ CSDL qu¶n lý phßng thi gåm 4 b¶ng:
PT(Sopt, DC, Suchua) ®©y lµ b¶ng phßng thi cã 3 thuéc tÝnh lµ sè phßng thi, ®Þa chØ phßngthi vµ søc chøa cña phßng thi. Sopt lµ khãa chÝnh
TS(Sobd, Hoten, Sopt) ®©y lµ b¶ng thÝ sinh cã 3 thuéc tÝnh lµ sè b¸o danh, hä tªn, sèphßng thi. Sobd lµ khãa chÝnh
MT(Mamt, tenmt, B, N) ®©y lµ b¶ng m«n thi cã 4 thuéc tÝnh lµ m· m«n thi, tªn m«n thi,buæi thi, ngµy thi. Mamt lµ khãa chÝnh
KQ(Sobd, Mamt, Diem, Vangthi) ®©y lµ b¶ng kÕt qu¶ cã 4 thuéc tÝnh lµ sè b¸o danh, m·m«n thi, diÓm thi, v¾ng thi.
Chóng ta sÏ thiÕt kÕ trong Access - ng«n ng÷ quan hÖ ®¬n gi¶n
Bíc 1. ThiÕt kÕ c¸c quan hÖ: PT, TS, MT, KQ
ThiÕt kÕ b¶ng PT(Sopt, DC, sSuchua) cã:
Sopt khãa chÝnh, kiÓu text.
DC kiÓu text.
Suchua kiÓu number.
ThiÕt kÕ b¶ng TS(Sobd, Hoten, Sopt) cã:
Sobd lµ khãa chÝnh, kiÓu text
Hoten kiÓu text. Sopt khãa ngo¹i.
ThiÕt kÕ b¶ng MT(Mamt, tenmt, B, N) cã:
Mamt khãa chÝnh, kiÓu text
Tenmt vµ B kiÓu text; N kiÕu ngµy th¸ng.
ThiÕt kÕ b¶ng KQ(Sobd, Mamt, Diem, Vangthi) cã:
Diem kiÓu sè
Vangthi kiÓu text hoÆc logic
H×nh 15.1 B¶ng PT
ThiÕt kÕ b¶ng TS cã
Sobd khãa chÝnh, kiÓu text
Hoten kiÓu text
Sopt kiÓu text.
B¶ng TS cã trong h×nh 15.2
H×nh 15.2. B¶ng TS
ThiÕt kÕ b¶ng MT cã
Mamt khãa chÝnh, kiÓu text
Tenmt kiÓu text
B kiÓu text
N kiÓu ngµy th¸ng
H×nh 15.3. B¶ng m«n thi MT
ThiÕt kÕ b¶ng KQ cã c¸c thuéc tÝnh:
Sobd kiÓu text
Mamt kiÓu text
Diem kiÓu number . Lu ý b¶ng nµy cã thÓ t¹o khãa chÝnh hoÆc kh«ng. Trong vÝ dô nµyta kh«ng t¹o khãa chÝnh cho b¶ng nµy. Ta dïng hai thuéc tÝnh Sobd vµ Mamt lµ nh÷ngkhãa ngo¹i.
H×nh 15.4. B¶ng kÕt qu¶ KQ
Bíc 2: T¹o liªn kÕt (Relationship) khãa chÝnh khãa ngo¹i.
Sù liªn kÕt khãa chÝnh khãa ngo¹i ®îc m« t¶ khi thiÕt kÕ c¬ së d÷ lÖu.
Sù liªn kÕt khãa chÝnh khãa ngo¹i lµ sù liªn kÕt 1-n ( mét nhiÒu). Mét gi¸ trÞ khãa chÝnhcã thÓ xuÊt hiÖn nhiÒu lÇn trong b¶ng mµ nã ®ãng vai trß khãa ngo¹i.
ThÝ dô sopt cã thÓ xuÊt hiÖn nhiÒu lÇn trong b¶ng TS v× cïng mét phßng thi cã thÓ cãnhiÒu thÝ sinh thi trong ®ã.
H×nh 15.5. Relationship - Liªn kÕt c¸c b¶ng
Bíc 3: NhËp d÷ liÖu
NhËp d÷ liÖu theo thø tù PT, MT, TS vµ cuèi cïng lµ b¶ng KQ
H×nh 15.6. B¶ng PT cã 10 phßng thi
H×nh 15.7. B¶ng MT cã 8 m«n thi
H×nh 15.8. B¶ng TS cã 100 thÝ sinh
H×nh 15.9. B¶ng KQ cã 800 kÕt qu¶
Bíc 4: C¸c truy vÊn
läc ra hä tªn, sè b¸o danh cã ®iÓm m«n M2 lín h¬n hoÆc b»ng 5.
H×nh 15.10. Minh häa truy vÊn trùc quan
H×nh 15.11. Minh häa truy vÊn b»ng SQL
Vµ kÕt qu¶ cã trong b¶ng Diem_m2_tren_5
H×nh 15.12. B¶ng m«n m2 trªn 5
Läc ra sè b¸o danh vµ ®iÓm trung b×nh c¸c m«n thi
Mµn h×nh truy vÊn trùc quan
H×nh 15.13. Truy vÊn trùc quan
Mµn h×nh truy vÊn SQL
H×nh 15.14. C©u lÖnh SQL
KÕt qu¶ cã trong mµn h×nh sau
3. Läc sè b¸o danh, hä tªn vµ ®iÓm trung b×nh c¸c m«n thi cña thÝ sinh
§Ó thùc hiÖn c©u nµy ta nèi TB_Diem víi TS råi chiÕu lªn Sobd, Hoten vµ DiemTB
H×nh 15.15. Mµn h×nh truy vÊn
Truy vÊn theo SQl
H×nh 15.16. Truy vÊn SQL
B©y giê chóng ta quan s¸t RBTV:
“Víi mçi phßng thi sè thÝ sinh thi trong ®ã kh«ng ®îc vît qu¸ søc chøa cña phßng thi®ã”
Ta cã 10 phßng thi vµ 100 thÝ sinh
H×nh 15.17. KÕt qu¶ truy vÊn
øng víi mçi phßng thi cã m sinh viªn thi trong ®ã vµ m ≤ søc chøa cña phßng thi ®ã
VÝ dô cã 13 thÝ sinh thi ë phong sè 1 vµ phßng nµy cã søc chøa lµ 50.
Néi dung cña RBTV lµ :
∀ t ∈PT ∃ t1, t2, ..., tm ∈TS sao cho: t.Sopt = ti.Sopt vµ m ≤ t.Suchua; i = 1, 2, ..., m
Sau ®©y lµ b¶ng sè phßng thi vµ sè lîng thÝ sinh thi t¬ng øng.
Sau khi thùc hiªn c©u lÖnh:
Select Sopt, Count(Sobd) as SL_ TS
From TS
Group By Sobd;
Ta cã kÕt qu¶ trong b¶ng SL_TS_PT.
Bªn c¹nh lµ b¶ng c¸c ph«ng thi nh×n vµo vµ so s¸nh ta thÊy kh«ng phßng thi nµo cã thÝsinh thi vît qu¸ søc chøa cña nã
H×nh 15.18. Minh häa kÕt qu¶ truy vÊn