Tải bản đầy đủ (.pdf) (17 trang)

CHƯƠNG 5 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (238.2 KB, 17 trang )

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



×