You are on page 1of 15

Add your company slogan

Chuẩn hóa quan hệ

Chuẩn hóa về dạng BCNF:


Tách thành 2 quan hệ:
QH1(bảng 1): Gồm các thuộc tính X ,A (phụ thuộc
hàm X→A) với X là khóa
QH2( bảng 2): Gồm các thuộc tính còn lại và khóa
của quan hệ ban đầu, trong đó thay A bằng X

LOGO
1
Add your company slogan
Chuẩn hóa về dạng BCNF

Ví dụ: cho R (A1,A2,A3,A4,A5)


Với các phụ thuộc hàm:
{A1,A2 → A3,A4,A5; A4 → A2}
Quan hệ R đã thuộc chuẩn BCNF chưa? Tại sao?
Nhận xét
- Quan hệ R chưa thuộc chuẩn BCNF (vì tồn tại pth
A4→A2; mà A4 không phải TT khóa của quan hệ R →vi
phạm đặc điểm chuẩn BCNF)
- Chuẩn hóa BCNF: (chuẩn hóa bằng pp tách) tách R
thànhh R1, R2
- R1(A2, A4); K1={A4}; F1= {A4→A2} thuộc chuẩn BCNF.
- R2 (A1, A4, A3, A5); Khóa K2={A1,A4}; F2={A1A4→A3A4A5} thuộc
chuẩn BCNF LOGO
2
Add your company slogan
VD chuẩn hóa về dạng BCNF

Ví dụ: cho R (A1,A2,A3,A4,A5)


Với các phụ thuộc hàm:
{A1,A2 → A3,A4,A5
A4 → A2}
R vi phạm dạng chuẩn BCNF bởi vì có thuộc tính
khóa (A2) phụ thuộc hàm vào thuộc tính không
khóa (A4). Chuẩn hóa: tách R ra thành:
▪ R1( A4,A2)
▪ R2(A1, A4,A3,A5)

LOGO
3
Add your company slogan
Áp dụng
▪ Cho lược đồ quan hệ R = {A,B,C,D,E,F,G,H,I,J} có khóa chính là A,B
▪ Với tập các phụ thuộc hàm :
{A,B → C,D,E,F,G,H,I,J ; A→ E,F,G,H,I,J; F → I, J; D →B }
Quan hệ đang thuộc chuẩn mấy? Chuẩn hóa quan hệ về BCNF?
Hướng dẫn
B1: Xét R thuộc 2NF chưa?
TH1: Đã thuộc 2NF → B2
TH2: Chưa thuộc 2Nf →Chuẩn hóa R về dạng chuẩn 2NF → B2
B2: Xét quan hệ R có thuộc 3NF không?
TH1: Đã thuộc 3NF → B3
TH2: Chưa thuộc 3NF → Chuẩn hóa R về 3NF → B3
B3: Xét quan hệ R có thuộc BCNF không?
TH1: Đã thuộc BCNF → Dừng
TH2: Chưa thuộc BCNF → Chuẩn hóa BCNF bằng pp Tách.

LOGO
4
Image uploaded by Vũ Tiến Đạt

5
Add your company slogan
Bài tập áp dụng
▪ Cho lược đồ quan hệ R = {A,B,C,D,E,F,G,H,I,J} có khóa chính là A,B
▪ Với tập các phụ thuộc hàm :
{A,B → C,D,E,F,G,H,I,J ; A→ E,F,G,H,I,J; F → I, J; D →B }
Quan hệ đang thuộc chuẩn mấy? Chuẩn hóa quan hệ về BCNF?
▪ Do quan hệ chưa thuộc 2NF (vì….) → Chuẩn hóa quan hệ về dạng chuẩn 2NF
R1(AEFGHIJ); F1={A→ E,F,G,H,I,J } thuộc chuẩn 3NF
R2 (ABCD); F2= {A,B → C,D; D →B } thuộc chuẩn 3NF.
▪ Xét quan hệ R1,R2 thuộc BCNF?
R1 thuộc BCNF.
Xét R2 có pth D→B vi phạm BCNF. → Chuẩn hóa R2 về dạng chuẩn BCNF bằng PP
tách:
R21(DB); F21={D→B} thuộc BCNF
R22(ADC); F22={AD→CD} thuộc BCNF
Kết luận: Tách R thành 3 quan hệ thuộc chuẩn BCNF sau:
R1(AEFGHIJ); F1={A→ E,F,G,H,I,J }
R21(DB); F21={D→B}
R22(ADC); F22={AD→CD}
LOGO
6
Add your company slogan
Nhận định

▪ Phương pháp chuẩn hóa lược đồ quan hệ bằng


phương pháp tách, giúp đưa quan hệ về dạng
chuẩn mong muốn.
▪ Một số trường hợp, quan hệ sau khi chuẩn hóa
không còn bảo toàn phụ thuộc hàm!!!
=> Phương pháp chuẩn hóa quan hệ “Bảo toàn
thông tin và bảo toàn phụ thuộc hàm” ???

LOGO
7
Add your company slogan

3.3.2. Chuẩn hóa quan hệ


a) Một số khái niệm
▪ Phủ của tập phụ thuộc hàm
▪ Xét tập pth F,G. Nói rằng, F phủ G nếu G+ ⊆ F+
(nghĩa là, mọi pth của G phải thuộc F+)
▪ Hai tập pth tương đương:
▪ Giả sử, có 2 tập pth F,G. Nói rằng, hai tập pth F
và G tương đương với nhau nếu F phủ G và G
phủ F. Ký hiệu: F ≡ G.
▪ Ngược lại, nếu F ≡ G thì F+ = G+

LOGO
8
Add your company slogan

3.3.2. Chuẩn hóa quan hệ


a) Một số khái niệm
▪ Phủ tối thiểu của một tập phụ thuộc hàm:
Tập pth F được gọi là phủ tối thiểu nếu:
(1) Các thuộc tính vế phải của các pth trong F
không dư thừa
(2) Mọi thuộc tính thuộc VT của các pth trong F
không dư thừa.
(3) Mọi phụ thuộc hàm trong F không dư thừa.
Định lý: Mọi tập pth F đều có một tập phủ tối
thiểu F’ tương đương.
LOGO
9
Add your company slogan
Tìm phủ tối thiểu của một tập PTH

(1) Loại bỏ các TT dư thừa ở vế phải của các pth trong F


Bổ đề: Mọi tập pth F đều được phủ bởi một tập pth G, trong
đó, mọi pth thuộc G đều có dạng X→A (A là 1 thuộc tính)
Ví dụ:
F={A→BC, D→E}; G={A→B, A→C, D→E} → G phủ F (mọi
pth của F thuộc G+)
Phương pháp (Loại bỏ TT dư thừa VP)
Với mỗi pth có nhiều hơn 1 TT ở vế phải, tách pth này thành
các pth có 1 TT ở vế phải.

LOGO
10
Add your company slogan
Tìm phủ tối thiểu của một tập PTH
(2) Loại bỏ các TT dư thừa ở vế trái của các pth trong F
Phương pháp (Loại bỏ TT dư thừa VT)
Xét các pth X→A thuộc F; Z ⊂ X. Nếu F≡ F’= {F \ {X→A} ∪
{Z→A}}. Ta nói X→A tồn tại thuộc tính dư thừa ở vế trái.
Ví dụ:
R(ABCDEF); F={AB→C; A→F; F→C}
▪ Xét pth AB→C
▪ Thử loại A: Ta có, F’={F \ {AB→C} ∪ {B→C}} = {B→C A→F; F→C}.
Do (B)+F=B ⊉ C. Suy ra, A không dư thừa!
▪ Thử loại B: Ta có, F’’={F \ {AB→C} ∪ {A→C}} = {A→C; A→F;F→C}.
Do (A)+F=AFC ⊇ C. Suy ra, B dư thừa!
Vậy: F ≡ F’’= {A→C A→F; F→C}.
LOGO
11
Add your company slogan
Tìm phủ tối thiểu của một tập PTH
(3) Loại bỏ các PTH dư thừa trong F
Phương pháp (Loại bỏ PTH dư thừa)
Xét các pth X→A thuộc F. Nếu F≡ F’= {F \ {X→A} . Ta nói pth
X→A dư thừa.
Ví dụ:
R(ABCDEF); F={B→C; B→A; A→C}
▪ Xét pth B→C
▪ Thử loại bỏ pth B→C khỏi F:
▪ Ta có, F’={F \ {B→C} = {B→A; A→C}.
▪ Do (B)+F’=ACB ⊇ C. Suy ra, B→C thuộc (F’)+
Vậy: F ≡ F’= {B→A; A→C}. Hay pth B→C dư thừa!
.
LOGO
12
Add your company slogan
Áp dụng

▪ Xét tập pth F={AB→C, C→A, BC→D, ACD→B,


D→EG, BE→C, CG→BD, CE→AG}
▪ Tìm phủ tối thiểu của tập pth F?
Hướng dẫn
B1: Loại bỏ TT dư thừa ở vế phải
B2: Lấy tập pth (bước 1) kiểm tra các TT dư thừa
ở Vế trái?
B3:…

LOGO
13
Add your company slogan

▪ Loại bỏ TT dư thừa vế phải:


▪ F1= {AB→C, C→A, BC→D, ACD→B, D→E, D→G,
BE→C, CG→B, CG→D, CE→A, CE→G}
▪ Loại bỏ TT dư thừa vế trái.
▪ Xét ACD→B
• Xét A có dư thừa không?
F2=F1\{ACD→B} hợp {CD→B}
Xét F2 tương đương F1 => CD→B có thuộc
(CD)+F1= CDAEGB có chứa B.

LOGO
14
Image uploaded by Trần Đức Huy

15

You might also like