Trang 1 1CHƯƠNG 5LÝ THUYẾT THIẾT KẾ CƠ SỞDỮLIỆU QUAN HỆ2NỘI DUNGPhụthuộc hàm và lượcđồquan hệKhái niệm phụthuộc hàmLượcđồquan hệSuy dẫn logicBaođóng của tập phụthuộc hàmHệtiênđềArmstrong
Trang 1CH ƯƠ NG 5
LÝ THUY Ế T THI Ế T K Ế
C Ơ S Ở D Ữ LI Ệ U QUAN H Ệ
2
N Ộ I DUNG
Phụthuộc hàm và lượcđồquan hệ Khái niệm phụthuộc hàm
Lượcđồquan hệ Suy dẫn logic Baođóng của tập phụthuộc hàm
HệtiênđềArmstrong Baođóng của tập thuộc tính Khóa của lượcđồquan hệ Phép tách lượcđồquan hệ Các dạng chuẩn
Chuẩn hóa lượcđồquan hệ
Đặ t v ấ n đề
Các v ấ n đề n ả y sinh v ớ i CSDL đượ c thi ế t k ế t ồ i:
D ư th ừ a d ữ li ệ u
D ị th ườ ng khi s ử a ch ữ a
D ị th ườ ng khi thêm b ộ
D ị th ườ ng khi xoá b ộ
Ví d ụ : CSDL g ồ m 1 quan h ệ :
4 3 1 Giải tích m2
2-9-85 Trần Mạnh Dũng
20091001
8 4 1 Đại số m1
2-9-85 Trần Mạnh Dũng
20091001
5 4 2 Giải tích m3
1-5-85 Nguyễn Mai Hoa
20091000
7 3 1 Giải tích m2
1-5-85 Nguyễn Mai Hoa
20091000
6 4 1 Đại số m1
1-5-85 Nguyễn Mai Hoa
20091000
DIEM TC
HK TENHP MAHP
NS HOTEN
MASV
Ph ụ thu ộ c hàm và l ượ c đồ quan h ệ
Khái ni ệ m ph ụ thu ộ c hàm
Đị nh ngh ĩ a Cho tập thuộc tính U hữu hạn khác ∅ Một
phụthuộc hàm trên U có dạng X →Y, X, Y ⊆ U (Y phụthuộc hàm vào X hay X quyết định Y, X là vế trái
và Y là vếphải của phụthuộc hàm) Cho R(U) Nói R thoảX →Y nếu∀u, v ∈ R mà u.X = v.X thì u.Y = v.Y
Kí hiệu R(f) - quan hệR thỏa phụthuộc hàm f
R thỏa tập phụthuộc hàm F nếu R(f), với∀f ∈F
kí hiệu R(F)
Trang 2L ượ c đồ quan h ệ
Đị nh ngh ĩ a Lượcđồquan hệαlà cặp hai thành phần:
αααα= (U, F),
trongđó U là tập thuộc tính, F là tập phụthuộc hàm
Quan hệR(U) gọi là thuộc lượcđồ αnếu R(F)
Ví dụ: Cho lượcđồ α= (U, F) với
U = { MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM}
F = {MASV →{HOTEN, NS};
MAHP →{TENHP, HK, TC};
6
Suy d ẫ n logic
Đị nh ngh ĩ a Cho lượcđồquan hệα= (U, F);
f : phụthuộc hàm trên U
Nói f suy dẫn logic được từF nếu với mọi quan hệ R thuộc
α, R(F) thì R(f) Kí hiệu F ⊨f
Ví d ụ U = ABC; F = {A →B, B →C}
Chứng minh rằng F⊨A →C
R là một quan hệbất kì thuộc lượcđồα = (U, F), ta có R(F)
Ta sẽchứng minh R(A →C):
Giảsửu, v ∈ R mà u.A = v.A (1) và u.C≠v.C (2)
Vì R(A → B), (1) u.B = v.B u.C = v.C (vì R(B →C)) Mâu thuẫn với (2) Vậy u.C = v.C R(A →C)
7
Bao đ óng c ủ a t ậ p ph ụ thu ộ c hàm
Đị nh ngh ĩ a Baođóng của tập phụthuộc hàm F là:
F+ = { X →Y | F⊨X →Y}
Khi F = F+, nói F là họ đầyđủcác phụthuộc hàm
Tính ch ấ t:
F và G là 2 tập phụthuộc hàm trên tập thuộc tính U
1 F ⊆ F+
2 Tínhđơnđiệu
Nếu F ⊆G thì F+ ⊆G+
3 Tính lũyđẳng
F+ += F+
4 (FG)+ ⊇ F+G+
H ệ tiên đề cho các ph ụ thu ộ c hàm
H ệ tiên đề Armstrong (A 0 )
Cho lượcđồquan hệα = (U, F), X, Y, Z ⊆U
A1) Luật phản xạ(reflexity)
Nếu Y ⊆ X thì X →Y A2) Luật tăng trưởng (augmentation)
Nếu X →Y thì XZ →YZ A3) Luật bắc cầu (transitivity)
Nếu X →Y và Y →Z thì X →Z
Kí hiệu F⊢f : phụthuộc hàm fsuy dẫnđược từ F nhờ hệ tiênđềArmstrong (Bằng cách áp dụng các luật của A0)
F* = {f | F ⊢f}
Trang 3Ví dụ Chứng minh {A →B, B →CD} ⊢AC →CD
(3) A →CD (1, 2, A3)
(4) AC →CD (3, A2) (||)
* Các quy t ắ c khác:
A4) Luật hợp (union rule)
Nếu X→Y, X→Z thì X→YZ
A5) Luật tựa bắc cầu (pseudo-transitivity rule)
Nếu X→Y, WY→Z thì WX→Z
A6) Luật tách (decomposition rule)
Nếu X→Y, Z⊆ Y thì X→Z
10
H ệ qu ả : (Hệquảquan trọng của luật hợp - tách)
GiảsửY = A1A2…Anthì:
X →Y ⇔X →Ai, ∀i = 1,2, n
*Định lý H ệ tiên đề A 0 là đúng và đầy đủ.
(i) A 0 đúng: F* ⊆F + (ii) A 0 đầy đủ: F* = F +
Chứng minh (i): Điều (i) có nghĩa:
Với F là một tập phụthuộc hàm, R là một quan hệbất kì
và R(F), nếu F ⊢X→Y thì F ⊨X→Y hay R(X→Y)
Chứng minh (ii): Do (i) đã có F* ⊆ F+ nên chỉ cần chứng minh F+ ⊆F* hay ∀X →Y ∈F+thì X→Y ∈F*
Ví dụ U = CTHRSG
F = { C→T, HT→R, HS→R, CS→G, HR→C}
Chứng minh CH → R và HS → U được suy dẫn từ F
nhờhệtiênđềArmstrong
Bài toán thành viên
Cho tập thuộc tính U, F là tập phụthuộc hàm trên U, f là
một phụthuộc hàm trên U Hỏi X→Y ∈F+hay không
Đị nh ngh ĩ a 3.5 Cho F là tập phụ thuộc hàm trên tập thuộc tính U, X⊆ U Baođóng của X đối với F là
X+ = {A ∈U | F ⊢X →A}
Trong ngữcảnh cụthểcó thểviết X+ thay cho X+
Ghi nh ớ :
- Cácđiều sau là tươngđương: F⊨ X →Y ⇔ X →Y ∈ F+
⇔F⊢X →Y ⇔Y⊆X+
F
X+= {A | F X →A} = {A| X →A ∈ F+}
Trang 4Tính ch ấ t
U - tập thuộc tính; F - tập phụthuộc hàm trên U; X, Y ⊆U
1 Phản xạ: X ⊆X+
2 Tínhđơnđiệu: X ⊆Y thì X+ ⊆Y+
3 Tính luỹ đẳng: X+= ( X+)+= X+ +
4 (XY)+⊇X +Y+
5 (XY)+= (X+Y)+= (XY+)+
6 F ⊢X →Y ⇔Y ⊆ X+
7 X →Y ⇔Y+⊆X+
8 X →X+và X+→X
9 X+=Y+⇔X →Y và Y →X
14
Tính bao đ óng c ủ a t ậ p thu ộ c tính
U - tập hữu hạn các thuộc tính, X ⊆ U, F - tập phụthuộc hàm trên U
Phương pháp tính X+: Tính liên tiếp các tập thuộc tính X0, X1, Xi,
2 Xi+1= Xi∪Zi,với Zi= ∪Yjnếu Xj→Yj∈F và Xj⊆Xi
Vì X0 ⊆ X1 ⊆ X2 ⊆ ⊆ Xi⊆ ⊆ U, dãy đơnđiệu tăng và
bịchặn trên bởi U do đó∃i: Xi=Xi +1(*) Khiđó X+=Xi, với
i là sốnguyên nhỏnhất thỏa mãn (*)
Lưu ý: Một cải thiện của thuật toán: loại bỏmột phụ thuộc hàm sau khiđã dùng nó
Ví dụ Cho tập phụthuộc hàm
F ={AC →BE, ACE →DG, B →CE, ACD →EGH}
a Tính X+với X =A
b Chứng tỏ rằng ABC → EDH suy dẫn được từ F nhờ hệ
tiênđềA0
Khoá c ủ a l ượ c đồ quan h ệ
Đị nh nghiã Cho lượcđồquan hệα =(U, F), K ⊆U
K được gọi là khoá (key) của lượcđồαnếu:
ii) ∄K' ⊊K mà K' thoảmãn (i)
Nếu K chỉthoảmãn (i), K là siêu khoá (super key)
Ví dụ Xét lượcđồquan hệvới
U = {S#, SNAME, P#, PNAME, QTY}
F = {S# →SNAME, P# →PNAME, {S#, P#} →QTY}}
Lượcđồcó một khoá là {S#, P#}
Trang 5Ví d ụ 1 Cho lượcđồα= (U, F) với
U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM}
F = {MASV→{HOTEN,NS}; MAHP→{TENHP, HK, TC};
TENHP →MAHP; {MASV, MAHP} →DIEM}
Lượcđồαcó 2 khoá là {MASV, MAHP} và {MASV, TENHP}
Ví d ụ 2 U = CSZ; F = {CS→Z, Z→C}
Khoá là: CS và SZ
* Nh ậ n xét:
- Mọi lượcđồquan hệαđều có ít nhất một khoá
- Khoá của một lượcđồnói chung không duy nhất
- Các khoá không bao nhau
- Hợp của hai khóa là một siêu khoá, không là một khoá Giao
Thu ậ t toán tìm khoá c ủ a l ượ c đồ quan h ệ
Thu ậ t toán Tìm một khoá của lượcđồquan hệ
Output Một khoá K của lượcđồα= (U, F) Method
If (K \ {A})+= U then K := K \ {A}; endif;
Endfor;
End
Thu ậ t toán Tìm một khoá của lượcđồ quan hệ
Input U, F = {Li →Ri| i = 1,2, m}
Output Một khoá K của lượcđồα= <U,F>
Method
1 K := (U \ L1R1) ∪ L1;
/*GiảsửK= {A1, A2, ,An} */
2 For i := 1 to n do
If (K \ {Ai })+= U then K := K \ {Ai }; endif;
Endfor;
End
Algorithm KEY 3
Input U, F = {Li→ Ri| i = 1,2, m}
Output M ộ t khoá K c ủ a l ượ c đồ α = (U, F)
1 Tính giao c ủ a m ọ i khoá
If Iα+ = U then Return (Iα);
2 Tìm t ậ p P ⊆ Nαlà t ậ p các thu ộ c tính không thu ộ c khoá nào
3 M := (IαP) + \ Iα /* P ⊆ M ⊆ Nα*/
4 H := U \ M \ Iα
5 Xu ấ t phát t ừ Iαb ổ sung d ầ n các thu ộ c tính trong H cho đế n khi tìm đượ c m ộ t khoá K.
6 Return (K);
1
m
i
=
i
α
⊆
Trang 6- Nếu H đủ nhỏ có thể tìm được tất cả các khoá của
lượcđồbằng thuật toán trên
- Nếu Iα+= U thì lượcđồcó khoá duy nhất là Iα
- Bước 3 trong thuật toán dựa vào tính chất sau:
Nếu X ⊆Iα, Y ⊆ Nα,P = (XY)+ \ X thì Y ⊆ P ⊆Nα
Ví d ụ Tìm khoá của lượcđồα= (U, F), với:
a) U = CSZ, F = {CS →Z, Z →C}
b) U = CTHRSG;
F = {C→T, HT→R, HS→R, CS→G, HR→C}
c) U = ABCDEGHIK
F = {ACH →BH, BH →ACD, ABCI →DIK,
ADEI →BGC, CGI →AEK, H →BC}
22
T ậ p t ố i thi ể u
Đị nh ngh ĩ a Tập phụ thuộc hàm F là tập tối thiểu (minimal) nếu:
1) Mỗi vế phải của mỗi phụ thuộc hàm trong F chỉ có 1
thuộc tính
2) ∄X →A ∈F sao cho F+= (F \ {X →A})+
. 3) ∄X →A ∈F mà F+= (F \ {X →A} ∪{Z →A})+,
với Z ⊂X
PH Ủ C Ủ A T Ậ P PH Ụ THU Ộ C HÀM
23
Ki ể m tra đ i ề u ki ệ n 2)
Với mỗi X →A ∈F, X →A là dưthừa, tức là F+= F1+,
trongđó
F1 = F \ {X →A} ⇔A ∈ X+
F1
Chứng minh:
(i) Nếu A ∈ X+
F1⇔X →A ∈F1+
Do (FG)+= (F +G)+= (FG+)+ nên
(F1 ∪{X →A})+= (F1+∪{X →A})+=(F1+)+,
hay F+ = (F1+)+= F1+
X →A là dưthừa
(ii) Nếu X →A là dưthừa, tức là F+= F1+
F1
Từ(i) và (ii) X→A là dưthừa A∈X+
Cách ki ể m tra đ i ề u ki ệ n 3)
Với mỗi X →A ∈F, B ∈X là dưthừa, tức là
F+= (F \ {X →A} ∪{Z →A})+, với Z = X \ {B}
⇔A ∈(X \ {B})+
F
Chứng minh:
(i) Nếu B là dưthừa, từF+= (F \ {X →A} ∪{Z →A})+
⇒ Z→A ∈F+ ⇒ A ∈Z+
F (ii) Nếu A ∈ Z+ ⇒Z →A ∈F+ Lại có: X ⊃ Z ⇒X →Z
⇒X →A ∈F+(luật bắc cầu)
Mọi phụthuộc hàm thuộc F+ mà suy dẫn được từX →A thì
cũng suy dẫn được từ Z → A nên có thể thay X→A bởi
Z→A hay B là dưthừa
Từ(i) và (ii) ta cóđiều phải chứng minh (||)
Trang 7S ự t ươ ng đươ ng gi ữ a 2 t ậ p ph ụ thu ộ c hàm
Đị nh ngh ĩ a Cho F, G là 2 tập phụ thuộc hàm trên tập
thuộc tính U F và G là tươngđương nếu F+= G+
B ổ đề M ọi tập phụ thuộc hàm F đều tương đương với
một tập phụ thuộc hàm G mà vế phải của các phụ thuộc
hàm trong G bao gồm không quá 1 thuộc tính.
PH Ủ C Ủ A T Ậ P PH Ụ THU Ộ C HÀM
26
Chứng minh:
Xây dựng G là tập:
G = {X →Ai}, với mỗi X →Y ∈Fvà Y = {A1,…An}
Ta chứng minh F+= G+ (i) Chứng minh G+⊆F+
Do X →Y ⊢X →Ai(luật tách) nên G ⊆F+ suy ra G+⊆F+
(ii) Chứng minh F+⊆G+
Ta có {X →A1,… ,X →An} ⊢X →Y ∈F (luật hợp)
F ⊆ G+ F+⊆G+
.
Từ(i) và (ii) suy ra F+= G+ (||)
Ph ủ t ố i thi ể u (minimal cover)
Đị nh ngh ĩ a Cho F là một tập phụthuộc hàm Tập phụ
thuộc hàm G gọi là phủtối thiểu của F nếu:
1) G tươngđương F,
2) G là tập tối thiểu
Nhận xét:
- Luôn tìmđược ít nhất 1 phủtối thiểu cho F
- Một tập phụthuộc hàm F có thểcó nhiều phủtối thiểu
Thu ậ t toán Tìm một phủtối thiểu Algorithm Minimal Cover
Input F Output Tập G là phủtối thiểu của F Method
1 G := F;
2 Thay mỗi phụthuộc hàm X →{A1…An} ∈G bằng n
phụthuộc hàm X →A1, X →A2,…, X →An
3 For each X→A in G do
If X→A là dưthừa then G := G \ {X →A};
4 For each X →A in G do
For each B in X do
If B là dưthừa then
G := G \ {X→A} ∪{X \ {B} →A};
5 Return (G);
Trang 8Ví d ụ 1:
F = {A →B, B →A, B →C, A →C , C →A }
Loại 2 phụthuộc hàm (theo thứtự):B→A, A →C
được phủtối thiểu {A →B, B →C, C →A}
Nếu loại B →C được phủtối thiểu:
{A →B, B →A, A →C, C →A}
Ví d ụ 2:
F = {AB →C, A →B, B →A}
Có thể loại A hoặc B từ AB → C nhưng không thể loại
đồng thời cảhai
30
Ví d ụ 3:
F = { AB →C, C →A, BC →D, ACD →B, D →E,
D →G, BE →C, CG→B,CG →D, CE →A, CE →G}
Loại các phụthuộc hàm theo thứtự
ACD →B, CG →D, CE →A được phủtối thiểu là:
G = { AB →C, C →A, BC →D, D →E, D →G,
BE →C, CG →B, CE →G}
Nếu thứtựloại các phụthuộc hàm là: CE →A, CG → B và
loại A khỏi ACD →B (thay ACD → B bằng CD → B) được
kết quảlà:
G = { AB →C, C →A, BC→D, D →E, D →G,
BE →C, CD →B, CG →D, CE →G}
Hình chi ế u c ủ a t ậ p ph ụ thu ộ c hàm trên m ộ t t ậ p
thu ộ c tính
Cho tập phụthuộc hàm F trên tập thuộc tính U ,
Z ⊆U
ΠZ(F) = {X →Y ∈ F+| XY ⊆ Z}
Phép tách l ượ c đồ quan h ệ
Cho lượcđồquan hệα= (U, F) Phép tách lượcđồα
là thay αbằng tập các lượcđồ quan hệα1, α2,…, αk
sao cho: αi= <Ui, Fi>, i = 1,2, ,k,
trongđó Ui⊆U, và U1∪ U2 ∪ … ∪Uk= U
Fi= ∏Ui(F)
Ký hiệu phép tách làδ= [U1, U2,…,Uk]
U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM}
F = {MSV →{HOTEN, NS};
MAHP →{TENHP, HK, TC};
Xét phép tách δ= [U1, U2, U3]:
U1= {MASV, HOTEN, NS}
U2= {MAHP, TENHP, HK, TC}
U3= {MASV, MAHP, DIEM}
F1 = {MASV →{HOTEN, NS}
F2 = {MAHP →{TENHP, HK, TC}}
F3 = {{MASV, MAHP} →DIEM
Trang 9Cho lượcđồα= (U, F) với
U = CSZ; F = {CS →Z, Z →C}
Xét phép tách ρ= [CS, ZC]
U1= CS; F1= ∅
U2= ZC; F2= {Z→C}
Nhận xét:
- Với phép táchρ, F1∪F2⊬ F
- Với phép táchδ, F1∪F2∪F3⊢F
Phép tách b ả o toàn t ậ p ph ụ thu ộ c hàm
(Dependency Preservation)
Cho lượcđồ quan hệα= (U, F) và một phép táchδ=
[U1,…,Uk] củaα Khiđóδlà phép tách bảo toàn tập
phụthuộc hàm F nếu: ∪Fi ⊢F
34
Phép tách không m ấ t thông tin (Lossles - Join Decomposition)
Ví dụ: Quan hệT trên lượcđồ αsau khi tách và kết nối lại
có thểnảy sinh những bộmới:
T 1⋈T 2⊃{(a 1 , b 2 , c 2 ), (a 2 , b 2 , c 1 )}, trong đó (a 2 , b 2 , c 1 ) ∉T
b 2 c 2
a 2 b 2
a 2 b 2 c 2
b 2 c 1
a 1 b 2
a 1 b 2 c 1
b 1 c 1
a 1 b 1
A 1 b 1 c 1
T 2 (B C)
T 1 (A B)
T (A B C)
Phép tách không m ấ t thông tin đả m b ả o 1 quan h ệ có th ể khôi ph ụ c
l ạ i t ừ các ph ầ n chi ế u c ủ a nó ( b ằ ng phép k ế t n ố i)
35
Đị nh ngh ĩ a
Phép tách δ = [U1, U2,…,Uk] của lược đồ quan hệ α =
(U, F) là không mất thông tin nếu với∀R thuộcα:
R = R1⋈ R2 ⋈ …⋈Rk, trongđó
Ký hiệu R1 ⋈R2⋈…⋈ Rk = mδ(R)
B ổ đề Cho lượcđồ quan hệα= (U, F) và phép tách δ
= [U1, U2,…,Uk] của lược đồ α Khi đó, với mọi quan hệ R
của lượcđồαta có:
1 R ⊆mδ(R)
2 Nếu S = mδ(R) thì với i = 1,2, ,k, ta có:
3 mδ(mδ(R)) = mδ(R)
k i
R R
i U
i = ∏ ( ) , = 1 , 2 , ,
i
U (S) U i(R)
36
Thu ậ t toán kiểm tra phép tách không mất thông tin Algorithm Lossles - Join Decomposition
Input Lượcđồquan hệα= (U, F) ,
U ={A1,…,An}, phép táchδ= [U1, U2,…Uk] Output Kết luận α có là phép tách có kết nối không
mất thông tin hay không Method
1 Xây dựng bảng n cột, k hàng, cột j ứng với thuộc tính Aj∈ U, hàng i ứng với lượcđồquan hệαi Ởhàng i,
cột j ghi kí hiệu:
+ aj nếu Aj∈ Ui + bij nếu Aj ∉ Ui
Trang 102 Biếnđổi bảng trên theo qui tắc:
•Với mỗi phụthuộc hàm X →Y ∈F
Xét các hàng, nếu có 2 hàng i, t giống nhau trên X thì làm
chúng giống nhau trên Y theo cách:
+ Nếu 1 trong 2 kí hiệu là ajthì thay kí hiệu kia là aj
+ Nếu 2 ký hiệu là bij và btj thì thay cả 2 ký hiệu là bij
hoặc btjđềuđược
•Quá trình dừng khi không làm thayđổi bảng được nữa
3 Xem bảng kết quả
Nếu xuất hiện 1 hàng gồm toàn kí hiệu a1, a2,…an thì
phép táchδlà có kết nối không mất mát thông tin (ngược
lại, δkhông là phép tách không mất thông tin)
38
Ví dụ1 α= (U, F) , U = SAIP, F = {S →A, SI →P}
δ= [U1, U2] , U1 = SA , U2 = SIP
Ví dụ 2 U = ABCDE, F = {C →D, A →C, B →C, DE →C,
CE →A}
δ= [AC, BC , CD, DEC, CEA)
Ví dụ 3 U = ABCDE, F = {C →D, A →C, B →C, , DE →C,
CE →A}
δ= [ AC, BC , CD, DEC, CEA, BE]
Đị nh lý.δ= [U1, U2] là phép tách củaα= (U, F)
δlà phép tách có kết nối không mất thông tin nếu
U1 ∩U2 →U1 \ U2 ∈ F+
(hoặc U1 ∩U2 →U2 \ U1 ∈F+)
Ví dụ1 α= (U, F) , U = SAIP, F = {S →A, SI →P}
δ= [U1, U2] , U1 = SA , U2 = SIP U1 ∩U2 = {S}; U1 \ U2 = {A}
D Ạ NG CHU Ẩ N
Dạng chuẩn 1 (1NF)
Dạng chuẩn 2 (2NF)
Dạng chuẩn 3 (3NF)
Dạng chuẩn Boyce−Codd (BCNF)
Dạng chuẩn 4
Dạng chuẩn 5
Trang 11D ạ ng chu ẩ n 1 (1NF-The first normal form)
Lược đồ quan hệ α =(U, F) ở dạng chuẩn 1NF nếu mỗi
thuộc tính A∈U có miền trị chỉ chứa các giá trị nguyên
tố
Thuộc tính ‘không nguyên tố’ có thể là thuộc tính đa trị
(multivalued attribute) hoặc thuộc tính phức/ghép
(composite attribute) hoặc kết hợp 2 loại thuộc tính trên
42
Ví d ụ v ề l ượ c đồ không ở 1NF
Ví dụ1
Ví dụ2
S1 A Hà Nội (H1, 250)
S1 A Hà Nội (H2, 300)
S2 A Hà Nội (H1, 100) S3 B Hải Phòng (H3, 200)
Thu ộ c tính đ a tr ị
Thu ộ c tính ghép
Đư a quan h ệ ch ư a chu ẩ n hoá v ề d ạ ng chu ẩ n 1
Ví dụ1
1 Tách làm 2 quan hệ:
2 Quan hệS trởthành:
Khoá: {S#, CITY}
Nh ượ c đ i ể m: d ư th ừ a d ữ li ệ u
Đư a quan h ệ ch ư a chu ẩ n hoá v ề d ạ ng chu ẩ n 1
3 Biếnđổi quan hệS thành:
Trang 12Đư a quan h ệ ch ư a chu ẩ n hoá v ề d ạ ng chu ẩ n 1
Cách 1: Biếnđổi thành một quan hệphẳng (flat
realation)
HSX(SHHSX, CQD, DCHI, SHMH, SL)
Nhượcđiểm: Dưthừa dữliệu
Cách 2: Đưa các thuộc tính lồng thành một quan hệmới
vàđược kết quảCSDL gồm 2 quan hệsau:
HSX(SHHSX, CQD, DCHI)
SX(SHHSX, SHMH, SL)
46
D ạ ng chu ẩ n 1
Lượcđồα= (U, F),
U = {SHHSX, CQD, DCHI, SHMH, SL}
F = {SHHSX →DCHI, DCHI →CQD, {SHHSX,
Nhận xét: -αở1NF
- Khoá duy nhất là {SHHSX, SHMH}
Các thuộc tính không khoá
Nα= {CQD, DCHI, SL}
Dưthừa dữliệu dẫnđến dịthường cập nhật, loại bỏ,
bổsung
D ư th ừ a d ữ li ệ u d ẫ n đế n d ị th ườ ng c ậ p nh ậ t, lo ạ i b ỏ , b ổ sung.
Đị nh ngh ĩ a Phụ thuộc đầy đủ (full functional dependency)
Cho phụ thuộc hàm X →Y, Y được gọi là phụ thuộc
đầy đủ vào X (hay X →Y là phụ thuộc hàm đầy đủ)
nếu !∃Z ⊂X mà Z →Y
Đị nh ngh ĩ a Lượcđồα= (U, F) ở2NF nếu:
+ αở1NF + Mọi thuộc tính không khoá phải phụ thuộc đầy
đủvào khoá
D ạ ng chu ẩ n 2 (2NF)