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ệ
CHƯƠNG 5
LÝ THUYẾT THIẾT KẾ
CƠ SỞ DỮ LIỆU QUAN HỆ
1
Phụ thuộc hàm và 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 xố bộ
Ví dụ: CSDL gồm 1 quan hệ:
MASV
HOTEN
20091000
2
NS
MAHP
TENHP
Nguyễn Mai Hoa
1-5-85
m1
Đại số
20091000
Nguyễn Mai Hoa
1-5-85
m2
20091000
Nguyễn Mai Hoa
1-5-85
20091001
Trần Mạnh Dũng
20091001
Trần Mạnh Dũng
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
HK
(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)
TC
DIEM
1
4
6
Giải tích
1
3
7
Cho R(U). Nói R thoả X →Y nếu ∀u, v ∈ R mà u.X = v.X
thì u.Y = v.Y
m3
Giải tích
2
4
5
Kí hiệu R(f) - quan hệ R thỏa phụ thuộc hàm f
2-9-85
m1
Đại số
1
4
8
R thỏa tập phụ thuộc hàm F nếu R(f), với ∀f ∈ F
2-9-85
m2
Giải tích
1
3
4
kí hiệu R(F).
3
4
Lược đồ quan hệ
Suy dẫn logic
Định nghĩa . Cho lược đồ quan hệ α = (U, F);
Định nghĩa. Lược đồ quan hệ α là cặp hai thành phần:
f : phụ thuộc hàm trên U.
α = (U, F),
trong đó U là tập thuộc tính, F là tập phụ thuộc hàm.
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.
Quan hệ R(U) gọi là thuộc lược đồ α nếu R(F).
Ví dụ.
Ví dụ: Cho lược đồ α = (U, F) với
U = ABC; F = {A → B, B → C}
Chứng minh rằng F⊨ A → C
U={
MASV, HOTEN, NS, MAHP, TENHP, HK, TC,
DIEM}
F =
{MASV → {HOTEN, NS};
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):
MAHP → {TENHP, HK, TC};
Giả sử u, v ∈ R mà u.A = v.A (1) và u.C ≠ v.C (2).
{MASV, MAHP} → DIEM}
u.B = v.B
u.C = v.C (vì R(B →C)) Mâu
Vì R(A → B), (1)
thuẫn với (2). Vậy u.C = v.C R(A → C)
5
Bao đóng của tập phụ thuộc hàm
Hệ tiên đề cho các phụ thuộc hàm
Định nghĩa. Bao đóng của tập phụ thuộc hàm F là:
Hệ tiên đề Armstrong (A0)
F+ = { X →Y | F⊨ X →Y}
Cho lược đồ quan hệ α = (U, F), X, Y, Z ⊆ U.
Khi F = F+, nói F là họ đầy đủ các phụ thuộc hàm.
A1) Luật phản xạ (reflexity)
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 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 F ⊆ G thì F+ ⊆ G+
Nếu X →Y và Y →Z thì X →Z
3. Tính lũy đẳng
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+
4. (FG)+ ⊇ F+ G+
5. (FG)+ = (F+G)+ = (FG+)+
6
7
F* = {f | F ⊢ f}
8
Ví dụ. Chứng minh {A → B, B → CD} ⊢ AC → CD
(1)
A→B
(2)
B → CD
(3)
A → CD (1, 2, A3)
(4)
AC → CD (3, A2) (||)
Hệ quả: (Hệ quả quan trọng của luật hợp - tách)
Giả sử Y = A1A2…An thì:
X → Y ⇔ X → Ai , ∀i = 1,2,..n.
* Định lý. Hệ tiên đề A0 là đúng và đầy đủ.
(i) A0 đúng: F* ⊆ F+
* Các quy tắc khác:
(ii) A0 đầy đủ: F* = F+
A4) Luật hợp (union rule)
Chứng minh (i): Điều (i) có nghĩa:
Nếu X→Y, X→Z thì X→YZ
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)
A5) Luật tựa bắc cầu (pseudo-transitivity rule)
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*.
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
9
10
Ví dụ. U = CTHRSG
F = { C→T, HT→R, HS→R, CS→G, HR→C}
Bài toán thành viên
Chứng minh CH → R và HS → U được suy dẫn từ F
nhờ hệ tiên đề Armstrong.
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+F = {A ∈U | F ⊢ X → A}
Trong ngữ cảnh cụ thể có thể viết X+ thay cho X+F
Ghi nhớ:
- Các điều sau là tương đương: F⊨ X →Y ⇔ X →Y ∈ F+
⇔ F⊢ X → Y ⇔ Y⊆ X+F
11
X+ = {A | F⊢ X → A} = {A| X → A ∈ F+}
12
Tính chất
Tính bao đóng của tập thuộc tính
U - tập thuộc tính; F - tập phụ thuộc hàm trên U; X, Y ⊆ U
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.
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+ +
Phương pháp tính X+ :
Tính liên tiếp các tập thuộc tính X0, X1,....Xi,...
4. (XY)+ ⊇ X +Y+
1.
X0 = X
5. (XY)+ = (X+Y)+ = (XY+)+
2.
Xi+1= Xi ∪ Zi,với Zi = ∪Yj nế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 (*).
6. F ⊢ X →Y ⇔ Y ⊆ X+
7. X →Y ⇔ Y+ ⊆ X+
8. X → X+ và X+ → X
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ó.
9. X+ =Y+ ⇔ X →Y và Y → X
13
14
Khố của lược đồ quan hệ
Định nghiã. Cho lược đồ quan hệ α = (U, F), K ⊆ U.
K được gọi là khố (key) của lược đồ α nếu:
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
i)
K+ = U
b. Chứng tỏ rằng ABC → EDH suy dẫn được từ F nhờ hệ
tiên đề A0
ii)
∄ K' ⊊ K mà K' thoả mãn (i)
Nếu K chỉ thoả mãn (i), K là siêu khố (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 khố là {S#, P#}
15
16
Ví dụ 1. Cho lược đồ α = (U, F) với
Thuật tốn tìm khố của lược đồ quan hệ
U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM}
F =
{MASV→{HOTEN,NS}; MAHP→ {TENHP, HK, TC};
Thuật tốn. Tìm một khố của lược đồ quan hệ
TENHP → MAHP; {MASV, MAHP} → DIEM}
Lược đồ α có 2 khố là {MASV, MAHP} và {MASV, TENHP}
Ví dụ 2. U = CSZ; F = {CS→Z, Z→C}
Algorithm
KEY1
Input
U, F
Output
Một khoá K của lược đồ α = (U, F)
Method
Khoá là: CS và SZ
* Nhận xét:
- Mọi lược đồ quan hệ α đều có ít nhất một khố.
1.
K := U;
2.
For each A in U do
If (K \ {A})+ = U then K := K \ {A}; endif;
- Khoá của một lược đồ nói chung khơng duy nhất
Endfor;
- Các khố khơng bao nhau
- Hợp của hai khóa là một siêu khố, khơng là một khố. Giao
của hai khố khơng là siêu khóa.
17
Thuật tốn. Tìm một khố của lược đồ quan hệ
Algorithm
KEY2
Input
U, F = {Li → Ri | i = 1,2,...m}
Output
Một khoá K của lược đồ α = <U,F>
Algorithm
KEY 3
Input
U, F = {Li→Ri | i = 1,2,...m}
Output
Một khoá K của lược đồ α = (U, F)
m
U
(Ri \ Li )
i=1
2. Tìm tập P ⊆ Nα là tập các thuộc tính khơng thuộc khố nào
K := (U \ L1R1) ∪ L1;
P =
*/
3. M := (IαP)+ \ Iα
For i := 1 to n do
/* P ⊆ M ⊆ Nα */
U
(R
i
\ Li)
Li ⊆ Iα
4. H := U \ M \ Iα
Endfor;
End.
18
Iα = U \
If (K \ {Ai })+ = U then K := K \ {Ai }; endif;
3.
End.
If Iα+ = U then Return (Iα);
/*Giả sử K= {A1, A2,....,An }
2.
Return (K);
1. Tính giao của mọi khố
Method
1.
3.
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 khố K.
Return (K);
19
6. Return (K);
20
- 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ó khố duy nhất là Iα.
- Bước 3 trong thuật tốn dựa vào tính chất sau:
Nếu X ⊆ Iα, Y ⊆ Nα, P = (XY)+ \ X thì Y ⊆ P ⊆ Nα
PHỦ CỦA TẬP PHỤ THUỘC HÀM
Tập tối thiểu
Ví dụ. Tìm khố của lược đồ α = (U, F), với:
Định nghĩa. Tập phụ thuộc hàm F là tập tối thiểu
a) U = CSZ, F = {CS → Z, Z → C}
(minimal) nếu:
1) Mỗi vế phải của mỗi phụ thuộc hàm trong F chỉ có 1
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}
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})+,
21
với Z ⊂ X.
Kiểm tra điều kiện 2)
Cách kiểm tra điều kiện 3)
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.
Với mỗi X → A ∈ F, B ∈ X là dư thừa, tức là
Chứng minh:
(i) Nếu A ∈ X+F1 ⇔ X → A ∈ F1+.
Chứng minh:
F+ = (F \ {X →A} ∪{Z → A})+, với Z = X \ {B}
⇔ A ∈ (X \ {B})+F
Do (FG)+ = (F +G)+ = (FG+)+ nên
(i) Nếu B là dư thừa, từ F+ = (F \ {X →A} ∪ {Z → A})+
⇒ Z→ A ∈ F+ ⇒ A ∈ Z+F
(F1 ∪ {X →A})+ = (F1+ ∪ {X → A})+ =(F1+)+,
(ii) Nếu A ∈ Z+F ⇒Z → A ∈ F+. Lại có: X ⊃ Z ⇒ X → Z
⇒ X → A ∈ F+ (luật bắc cầu).
hay F+ = (F1+)+ = F1+
X →A là dư thừa.
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.
(ii) Nếu X →A là dư thừa, tức là F+= F1+
Do X→A ∈ F
Từ (i) và (ii)
X→A∈ F1+
X→A là dư thừa
22
A ∈ X+F1
A∈ X+F1
23
Từ (i) và (ii) ta có điều phải chứng minh. (||)
24
PHỦ CỦA TẬP PHỤ THUỘC HÀM
Chứng minh:
Xây dựng G là tập:
Sự tương đương giữa 2 tập phụ thuộc hàm
G = {X → Ai}, với mỗi X → Y ∈ Fvà Y = {A1,…An}.
Đị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+.
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+
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 q 1 thuộc tính.
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+. (||)
25
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:
- Ln 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.
27
26
Thuật tố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);
28
Ví dụ 3:
Ví dụ 1:
F = { AB → C, C → A, BC → D, ACD → B, D →E,
F = {A →B, B → A, B → C, A → C , C → A }
D →G, BE →C, CG→B,CG →D, CE →A, CE →G}
Loại 2 phụ thuộc hàm (theo thứ tự):B → A, A → C
Loại các phụ thuộc hàm theo thứ tự
được phủ tối thiểu {A → B, B → C, C → A}.
ACD →B, CG →D, CE → A được phủ tối thiểu là:
Nếu loại B → C được phủ tối thiểu:
G = { AB →C, C →A, BC →D, D →E, D →G,
{A → B, B → A, A →C, C → A}.
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à
Ví dụ 2:
loại A khỏi ACD →B (thay ACD → B bằng CD → B) được
F = {AB → C, A → B, B → A}
kết quả là:
Có thể loại A hoặc B từ AB → C nhưng không thể loại
G = { AB →C, C →A, BC→D, D →E, D →G,
đồng thời cả hai.
BE →C, CD →B, CG →D, CE → G}.
29
30
Cho lược đồ α = (U, F) với
U = {MASV, HOTEN, NS, MAHP, TENHP, HK, TC, DIEM}
PHÉP TÁCH LƯỢC ĐỒ QUAN HỆ
Hình chiếu của tập phụ thuộc hàm trên một tập
thuộc tính
F =
Cho tập phụ thuộc hàm F trên tập thuộc tính U ,
{MSV → {HOTEN, NS};
MAHP → {TENHP, HK, TC};
{MASV, MAHP} → DIEM}
Z⊆U
ΠZ(F) = {X →Y ∈ F+| XY ⊆ Z}
Xét phép tách δ = [U1, U2, U3]:
U1 = {MASV, HOTEN, NS}
U2 = {MAHP, TENHP, HK, TC}
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
U3 = {MASV, MAHP, DIEM}
F1 = {MASV → {HOTEN, NS}
F2 = {MAHP → {TENHP, HK, TC}}
F3 = {{MASV, MAHP} → DIEM
Fi = ∏Ui (F).
Ký hiệu phép tách là δ = [U1, U2,…,Uk]
31
32
Cho lược đồ α = (U, F) với
Phép tách không mất thông tin
U = CSZ; F = {CS → Z, Z → C}
(Lossles - Join Decomposition)
Xét phép tách ρ = [CS, ZC]
U1 = CS;
F1 = ∅
U2 = ZC;
F2 = {Z→C}
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:
Nhận xét:
- Với phép tách ρ, F1 ∪ F2 ⊬ F
T (A B C)
- 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
A1 b1 c1
a1 b1
b1 c1
a1 b2 c1
a1 b2
b2 c1
a2 b2 c2
a2 b2
b2 c2
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)
33
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,
Ri = ∏U ( R ),
T2 (B C)
T1 ⋈ T2 ⊃ {(a1, b2, c2), (a2, b2, c1)}, trong đó (a2, b2, c1) ∉T
Định nghĩa
trong đó
T1 (A B)
34
Thuật tố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) ,
i = 1,2,.., k
U ={A1,…,An},
i
Ký hiệu R1 ⋈ R2 ⋈ …⋈ Rk = mδ(R)
phép tách δ = [U1, U2,…Uk]
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ó: ∏Ui ( S ) = ∏Ui ( R )
3. mδ (mδ (R)) = mδ(R)
35
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
36
2.
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à aj thì 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.
• Q 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).
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]
37
38
DẠNG CHUẨN
Đị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+)
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
Ví dụ 1. α = (U, F) , U = SAIP, F = {S →A, SI →P}
δ = [U1, U2] ,
U1 = SA , U2 = SIP
U1 ∩ U2 = {S};
U1 \ U2 = {A}
39
40
Ví dụ về lược đồ khơng ở 1NF
Dạng chuẩn 1 (1NF-The first normal form)
Thuộc tính đa trị
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 ngun 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
Ví dụ 1
S (S#,
S1
S2
SNAME,
Smith
Jones
CITY)
{London, Paris}
{Rome}
Ví dụ 2
Thuộc tính ghép
SHHSX CQD
DCHI
SX(SHMH, SL)
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)
41
Đưa quan hệ chưa chuẩn hố về dạng chuẩn 1
Đưa quan hệ chưa chuẩn hoá về dạng chuẩn 1
3. Biến đổi quan hệ S thành:
S (S#,
CITY1,
CITY2,
S1
London
Paris
S2
Rome
Ví dụ 1
1. Tách làm 2 quan hệ:
S (S#, SNAME)
S_CITY (S#, CITY)
42
có khố là S#
có khố là {S#, CITY}
CITY3,
SNAME)
Smith
Jones
2. Quan hệ S trở thành:
S (S#, CITY,
SNAME)
S1 London
Smith
S1 Paris
Smith
S2 Rome
Jones
Khoá: {S#, CITY}
Nhược điểm: dư thừa dữ liệu
43
44
Đưa quan hệ chưa chuẩn hoá về dạng chuẩn 1
Dạng chuẩn 1
Lược đồ α = (U, F),
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
U = {SHHSX, CQD, DCHI, SHMH, SL}
F = {SHHSX → DCHI, DCHI →CQD, {SHHSX,
SHMH}→SL}
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)
Nhận xét: - α ở 1NF
- Khoá duy nhất là {SHHSX, SHMH}
Các thuộc tính khơng khố
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.
45
46
Dạng chuẩn 2 (2NF)
SHHSX
CQD
DCHI
SHMH
SL
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
Đị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:
F = {SHHSX → DCHI, DCHI →CQD, {SHHSX, SHMH}→SL}
Khoá duy nhất:
+ α ở 1NF
{SHHSX, SHMH}
Các thuộc tính khơng khố:
Nα = {CQD, DCHI, SL}
+ Mọi thuộc tính khơng khố phải phụ thuộc đầy
đủ vào khoá
Dư thừa dữ liệu dẫn đến dị thường cập nhật, loại bỏ, bổ sung.
47
48
Ví dụ.
Lược đồ α = (U, F),
Nhận xét: α1 cịn dư thừa dữ liệu: ở những địa chỉ giống
nhau thì CQD giống nhau, gây khó khăn khi cập nhật dữ
liệu.
U = {SHHSX, CQD, DCHI, SHMH, SL}
F = {SHHSX → DCHI, DCHI →CQD,
{SHHSX, SHMH}→SL}
Tách thành 2 lược đồ ở 2NF:
SHHSX
CQD
DCHI
+ α1 =<U1, F1>,
S1
A
Hà Nội
S1
A
Hà Nội
S2
A
Hà Nội
S3
B
Hải Phòng
U1 = {SHHSX, CQD, DCHI},
F1 = {SHHSX →DCHI, DCHI → CQD}
+ α2 = <U2, F2>,
U2 = {SHHSX, SHMH, SL}
F2 = {{SHHSX, SHMH} → SL}
49
50
α1 =<U1, F1>,
Dạng chuẩn 3 (3NF)
U1 = {SHHSX, CQD, DCHI},
F1 = {SHHSX →DCHI, DCHI → CQD}
Định nghĩa. (Phụ thuộc bắc cầu)
Cho α = (U, F), A ∈ U, X ⊆ U. Nói A phụ thuộc bắc cầu
vào X nếu ∃ Y ⊆ U:
α2 = <U2, F2>,
U2 = {SHHSX, SHMH, SL}
1. X →Y
F2 = {{SHHSX, SHMH} → SL}
2. Y → A
α2 ở 3NF.
3. Y ↛ X
α1 không ở 3NF (CQD phụ thuộc bắc cầu vào khoá)
4. A ∉ XY
Định nghĩa. Lược đồ α = (U, F) ở 3NF nếu:
Tách α1 thành: α11 và α12
+ α ở 1NF
U11 = {SHHSX, DCHI},
U12 = {CQD, DCHI}
+ Mọi thuộc tính khơng khố khơng phụ thuộc bắc cầu
vào khoá.
F11 = {SHHSX →DCHI},
F12 = {DCHI →CQD}
51
52
SHHSX
CQD
DCHI
SHMH
SL
Lược đồ
Xét lược đồ quan hệ α=(U, F), U =CSZ,
S1
A
Hà Nội
H1
250
α = (U, F)
F ={Z→C, CS →Z}
S1
A
Hà Nội
H2
300
S2
A
Hà Nội
H1
100
S3
B
Hải Phòng
H3
200
Lược đồ
Hà Nội
S2
Hà Nội
S3
Hải Phịng
Khố của lược đồ: CS, SZ
Nα = φ
Lược đồ
SHHSX DCHI α11 = <U11, F11>
S1
(trong đó C: City, S: Street, Z: Zipcode)
α ở 2NF và 3NF
α12 = <U12, F12>
Lược đồ
α2 = <U2, F2>
SHHSX
SHMH
SL
S1
H1
250
S1
H2
300
S2
H1
100
S3
H3
200
Còn dư thừa dữ liệu, chẳng hạn như:
DCHI
CQD
Hà Nội
A
Hải Phòng
B
53
C
S
Z
c1
s1
z1
c1
s2
z1
54
Dạng chuẩn Boyce - Codd (BCNF) [1974]
Lược đồ α = (U, F) ở BCNF nếu có X ⊆ U, A ∈ U và A
∉ X mà X→ A∈ F+ thì X phải là siêu khố.
(Có thể xem 3NF là dạng đơn giản của BCNF vì dạng
phát biểu tổng quát của 3NF là:∀ X →A ∈ F+ thì hoặc X
là siêu khố hoặc A là thuộc tính khố. Trong dạng
chuẩn BCNF khơng cho phép A là thuộc tính khoá).
55
Bài tập. Cho lược đồ α = (U, F),
U = SIDM, trong đó:
S: Store
I: Item
D: Department
M: Manager
F = {SI →D, SD →M}
Kiểm tra dạng chuẩn của lược đồ α
56
PHỤ THUỘC ĐA TRỊ VÀ DẠNG CHUẨN 4
Xét quan hệ R (CTX), trong đó:
C: Course ; T: Teacher ; T: Text
Giả thiết: - Mỗi mơn học có nhiều giáo viên dạy
- Mỗi môn học sử dụng nhiều loại SGK
- Giáo viên và SGK không phụ thuộc nhau
Phụ thuộc đa trị
Định nghĩa. Cho lược đồ quan hệ α = (U, F), X, Y ⊆ U
Z = U - XY
Quan hệ R trên α thoả phụ thuộc đa trị (MVD)
R
C
T
X →→Y nếu với bất kỳ t1, t2 ∈ R mà t1.X = t2.X
X
CSDL
GS. Hùng
Nhập mơn CSDL
thì ∃ t3 ∈ R: t1.Y = t3.Y , t1.X = t3.X, t2.Z = t3.Z.
CSDL
GS. Hùng
Nguyên lý các hệ CSDL
CSDL
GS. Dũng
Nhập mơn CSDL
Do tính đối xứng của t1, t2, còn ∃ t4 ∈ R: t4.X = t2.X,
t4.Y = t2.Y, t4.Z = t1.Z
CSDL
GS. Dũng
Nguyên lý các hệ CSDL
Kí hiệu X→→ Y|Z
57
58
Ví dụ.
R (C
T
H
R
S
R (C
G)
T
H
R
S
G)
t1
CS101
D
M9
22
K
B
t1
CS101
D
M9
22
K
B
t4
CS101
D
W9
33
K
B
t4
CS101
D
W9
33
K
B
CS101
D
F9
22
K
B
CS101
D
F9
22
K
B
t3
CS101
D
M9
22
L
C
D
M9
22
L
C
CS101
D
W9
33
L
C
t3
CS101
t2
CS101
D
F9
22
L
C
t2
CS101
D
W9
33
L
C
Quan hệ R trên thoả C→→HR
CS101
D
F9
22
L
Quan hệ R không thoả: C→→H, C→→R
t1 = (CS101, D, M9, 22, K, B)
t2 = (CS101, D, W9, 33, L, C)
t3 = (CS101, D, M9, 22, L, C)
t4 = (CS101, D, W9, 33, K, B)
chẳng hạn, nếu thoả C →→H thì với t1, t2 trên phải tìm được
t3 = (CS101, D, M9, 33, L, C) ∈ R,
nhưng trong CSDL có:
t = (CS101, D, M9, 22, L, C)
Một số phụ thuộc đa trị khác được thoả trên R: C→→SG, HR →→SG
59
C
Nếu có cả 2 bộ này trong R thì mâu thuẫn với HS→R
60
Dạng chuẩn 4 (4NF)
PHỤ THUỘC KẾT NỐI VÀ DẠNG CHUẨN 5
Lược đồ quan hệ α =<U, D> ở 4NF nếu với mỗi X→→Y,
Y ⊈X, XY≠ U thì X là siêu khoá của α.
Định nghĩa. Một phụ thuộc kết nối (JD-Join
Dependency) kí hiệu là JD(U1,…,Un) của lược đồ quan
hệ α trên U xác định một ràng buộc trên các quan hệ R
của α sao cho:
∀R : R = ∏U ( R )>< ∏U ( R )>< .... >< ∏U ( R )
1
2
n
Định nghĩa. Lược đồ α ở dạng chuẩn 5 đối với tập F
các FD, MVD, JD, nếu mỗi JD(U1,…,Un) trong F+, Ui
đều là siêu khố của α.
61
62
CHUẨN HỐ THÀNH BCNF
Bổ đề. Cho lược đồ quan hệ α = (U, F),
δ =[U1, U2,…,Uk] là phép tách không mất thông tin của α,
δi = [Ui1, Ui2…, Uit] là phép tách không mất thơng tin của
lược đồ αi = <Ui, Fi>.
Khi đó phép tách
Nhận xét: Nếu lược đồ α = (U, F) chưa ở BCNF
∃ X →A ∈ F+ mà X không là khố.
Đặt XA =U1 , U \ {A} =U2
Ta có: U1 ∩ U2 = X, U1 \ U2 = A và X →A ∈ F+
δ =[U1, U2, …Ui-1,Ui1, Ui2,…, Uit, Ui+1,…, Uk] của lược đồ
α là không mất thông tin.
Phép tách δ =[U1, U2] của α là không mất thông tin. Dễ
thấy α1 = <U1, F1> ở BCNF.
63
64
Thuật toán 3.6. Tách lược đồ quan hệ thành các lược
đồ con ở BCNF.
Input
U = CTHRSG
Khoá HS
Lược đồ quan hệ α = (U, F)
C→T, HT→ R, HS →R,
HR →C, CS →G
CS →G
Output
Một phép tách không mất thông tin của lược
đồ α sao cho các lược đồ con ở BCNF
U1 = CSG
Khố CS
Method
1. Nếu α khơng ở BCNF thì tách đơi α thành α1, α2 theo
cách:
C→T
C->T
Chọn X → A ∈ F mà X khơng là siêu khố.
U2 = CTHRS
Khố HS
C→T, HT→R
HS →R, HR →C
U22 = CHRS
Khoá HS
U21= CT
Khoá C
CH→R (từ HT→R,
C →T,), HS→R,
HR→C
Khi đó phép tách là δ =[U1, U2],
trong đó U1 = XA, U2 = U \ {A}
2. Tiếp tục quá trình trên đối với α1và α2 cho đến khi các
lược đồ con nhận được đều ở BCNF.
CH→R,
HR→C
U222 = HRS
Khoá HS
65
66
CHUẨN HỐ THÀNH 3NF
CHUẨN HỐ THÀNH 3NF
Input
U221 = CHR
Khố CH, HR
α = (U, F)
Output
Một phép tách α bảo toàn tập phụ thuộc hàm,
có các lược đồ con ở 3NF.
Method
1. Tính G là phủ tối thiểu của F.
2. Với mỗi X là vế trái của một phụ thuộc hàm trong G, tạo
lược đồ quan hệ trên tập thuộc tính XA1A2…Ak, trong đó
X →A1,…, X→Ak ∈ G
67
Định lý: Cho α = (U, F). K là một khóa của lược đồ α.
δ = [U1, U2,…,Un] là phép tách lược đồ quan hệ α thu
được theo thuật tốn chuẩn hóa thành 3NF.
Khi đó, phép tách ρ = [U1, U2,…,Un, K] thỏa mãn:
Các lược đồ con đều ở 3 NF
Là phép tách không mất thông tin
Là phép tách bảo toàn tập phụ thuộc hàm
68