Thuật toán:
Tìm một khóa tối thiểu của quan hệ
Nhập: tập PTH F xác định trên lược đồ R(U)
U = {A
1
, …, A
n
};
Xuất: khóa K của R.
Phương pháp :
– Bước 0 : Đặt K
0
= U
– Bước i : Tính
K
i –1
\ {A
i
} nếu K
i-1
\ {A
i
} → U
K
i
=
K
i-1
nếu ngược lại
– Đặt K = K
n
Thuật toán:
Tìm nhiều khóa của quan hệ
Bước 1: Xác định
- Tập thuộc tính nguồn N (là thuộc tính chỉ xuất hiện ở vế trái của tất cả các
phụ thuộc hàm thuộc F)
- Tập thuộc tính đích Đ (là thuộc tính chỉ xuất hiện ở vế phải của tất cả các
phụ thuộc hàm thuộc F)
- Tập thuộc tính trung gian TG (là thuộc tính xuất hiện ở cả 2 vế của tất cả
các phụ thuộc hàm thuộc F)
- Đặc biệt: nếu có thuộc tính không xuất hiện ở cả 2 vế của tất cả các phụ
thuộc hàm thuộc F thì thuộc tính đó được đưa vào tập N
Bước 2: Lập bảng
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
Các tổ hợp
có thể xây
dựng từ tập
trung gian X
i
Xác định xem X
i
∪ N
có phải là siêu khóa
hay không
Xác định khóa
(siêu khóa nhỏ
nhất)
Trong đó: X
i
là tập con của tập trung gian (có 2
n
phần tử)
LÝ THUYẾT (4 THUẬT TOÁN)
Thuật toán:
Tìm phủ tối thiểu
Nhập: tập PTH E.
Xuất: phủ tối thiểu F của E.
Phương pháp :
– B1: F := Ø.
– B2: (Tách các PTH để có vế phải là 1 thuộc tính)
Với mọi X → Y ∈ E, Y = {A
1
, ,A
k
}, A
i
∈ U
F := F ∪ {X → {A
i
}}
– B3: (Loại bỏ các thuộc tính dư thừa vế trái)
Với mỗi X → {A} ∈ F, X = {B
1
, ,B
l
}, B
l
∈ U
Với mỗi B
i
, nếu A ∈ (X - {B
i
})
F
+
thì
F := (F - {X → {A}}) ∪ {(X - {B}) → {A}}.
– B4: (Loại bỏ các PTH dư thừa)
Với mỗi X → {A} ∈ F
G := F - {X → {A}}
Nếu A ∈ X
G
+
thì F := F - {X → {A}}.
Thuật toán:
Phân rã lược đồ để đạt chuẩn 3NF và bảo toàn PTH
Nhập: R(U), U = {A
1
, …, A
n
} và tập PTH F.
Xuất: D = {R
1
, …, R
m
}, R
i
ở dạng chuẩn 3.
– B1: Tìm phủ tối thiểu G của F.
– B2: Với mỗi X → A
j
∈ G, xây dựng lược đồ R
i
(U
i
),
U
i
= X ∪ {A
j
}. Khóa chính của R
i
là X.
– B3: Giả sử xong B2 ta có các lược đồ R
1
, …, R
m
.
Nếu U
1
∪ … ∪ U
m
≠ U thì xây dựng thêm lược đồ
R
m+1
(U
m+1
), U
m+1
= U - (U
1
∪ … ∪ U
m
).
Khóa của R
m+1
là U
m+1
.
– B4: Xuất các lược đồ R
i
.
2
Bài 1: Cho lược đồ quan hệ R(ABCDE) và tập phụ thuộc hàm:
F = {A -> B; CD -> E; B -> C}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E} = ABCDE
Câu 1a:
Bước 0: Đặt K = ABCDE
Bước 1: Lặp 1: (K\A)
F
+
= (BCDE)
F
+
= BCDE ≠ U ⇒ K = ABCDE (ko bỏ A được)
Lặp 2: (K\B)
F
+
= (ACDE)
F
+
= ACDEB = U ⇒ K = ACDE
Lặp 3: (K\C)
F
+
= (ADE)
F
+
= ADEBC = U ⇒ K = ADE
Lặp 4: (K\D)
F
+
= (AE)
F
+
= AEBC ≠ U ⇒ K = ADE (ko bỏ D được)
Lặp 5: (K\E)
F
+
= (AD)
F
+
= ADBCE = U ⇒ K = AD
Bước 2: Trong 5 thuộc tính của U đã lược bỏ được 03 thuộc tính, còn thuộc tính A và
D không bỏ được. Kết luận: Một khoá của lược đồ quan hệ R là K = AD
Câu 1b:
Tập thuộc tính nguồn: N = {A,D}
Tập thuộc tính đích: Đ = {E}
Tập thuộc tính trung gian: TG = {B,C} ⇒ Tập X
i
có 2
n
= 2
2
= 4 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
AD ADBCE = U SK Khóa
B BAD BADCE = U SK
C CAD CADBE = U SK
BC BCAD BCADE = U SK
Vậy: AD là khóa của quan hệ R
Câu 1c:
1c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc hàm (PTH) A → B
trong đó thuộc tính B không phụ thuộc đầy đủ vào khoá AD.
1c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
BÀI TẬP TỔNG HỢP
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
F = {A → B; CD → E; B → C}
f1 f2 f3
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét CD → E:
Bỏ C: (D)
F
+
= D không xác định được E
Bỏ D: (C)
F
+
= C không xác định được E
⇒ Không loại bỏ PTH CD → E
⇒ F = {A → B; CD → E; B → C}
f1 f2 f3
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = A → B; F1 = F \ {f1}
(A)
F1
+
= A không xác định được B ⇒ Không loại bỏ được f1
- Với f2 = CD → E; F2 = F \ {f2}
(CD)
F2
+
= CD không xác định được E ⇒ Không loại bỏ được f2
- Với f3 = B → C; F3 = F \ {f3}
(B)
F3
+
= B không xác định được C ⇒ Không loại bỏ được f3
⇒ PTT = {A → B; CD → E; B → C}
f1 f2 f3
* Phân rã lược đồ:
R1(AB) khoá A (A → B)
R2(CDE) khoá CD (CD → E)
R3(BC) khoá B (B → C)
⇒ D = {R
1
; R
2
; R
3
}
4
BÀI TẬP TỔNG HỢP
Bài 2: Cho lược đồ quan hệ R(A,B,C,D,E,G,H,I,J,K) và tập các PTH:
F = {A -> B ; C -> DHI ; IJ -> K ; BC -> A ; HC -> E}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G,H,I,J,K} = ABCDEGHIJK
Câu 2a:
Bước 0: Đặt K = ABCDEGHIJK
Bước 1:
Lặp 1: (K\A)
F
+
= (BCDEGHIJK)
F
+
= BCDEGHIJKA = U ⇒ K = BCDEGHIJK
Lặp 2: (K\B)
F
+
= (CDEGHIJK)
F
+
= CDEGHIJK ≠ U ⇒ K = BCDEGHIJK
(ko bỏ B được)
Lặp 3: (K\C)
F
+
= (BDEGHIJK)
F
+
= BDEGHIJK ≠ U ⇒ K = BCDEGHIJK
(ko bỏ C được)
Lặp 4: (K\D)
F
+
= (BCEGHIJK)
F
+
= BCEGHIJKAD = U ⇒ K = BCEGHIJK
Lặp 5: (K\E)
F
+
= (BCGHIJK)
F
+
= BCGHIJKADE = U ⇒ K = BCGHIJK
Lặp 6: (K\G)
F
+
= (BCHIJK)
F
+
= BCHIJKADE ≠ U ⇒ K = BCGHIJK
(ko bỏ G được)
Lặp 7: (K\H)
F
+
= (BCGIJK)
F
+
= BCGIJKADHE = U ⇒ K = BCGIJK
Lặp 8: (K\I)
F
+
= (BCGJK)
F
+
= BCGJKADHIE = U ⇒ K = BCGJK
Lặp 9: (K\J)
F
+
= (BCGK)
F
+
= BCGKADHIE ≠ U ⇒ K = BCGJK
(ko bỏ J được)
Lặp 10:(K\K)
F
+
= (BCGJ)
F
+
= BCGJADHIEK = U ⇒ K = BCGJ
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = BCGJ
Câu 2b:
Tập thuộc tính nguồn: N = {C,G,J}
Tập thuộc tính đích: Đ = {D,E,K}
Tập thuộc tính trung gian: TG = {A,B,H,I} ⇒ Tập X
i
có 2
n
= 2
4
= 16 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu khóa Khóa
∅
CGJ
CGJDHIEK ≠ U
- -
5
BÀI TẬP TỔNG HỢP
A ACGJ ACGJBDHIEK = U SK Khóa
B BCGJ BCGJADHIEK = U SK Khóa
H HCGJ
HCGJEDIK ≠ U
- -
I ICGJ
ICGJKDHE ≠ U
- -
AB ABCGJ ABCGJDHIEK = U SK
AH AHCGJ AHCGJBDIEK = U SK
AI AICGJ AICGJBDHEK = U SK
BH BHCGJ BHCGJAEDIK = U SK
BI BICGJ BICGJAKDHE = U SK
HI HICGJ
HICGJEKD ≠ U
- -
ABH ABHCGJ ABHCGJEDIK = U SK
ABI ABICGJ ABICGJKDHE = U SK
AHI AHICGJ AHICGJBEKD = U SK
BHI BHICGJ BHICGJAKDE = U SK
ABHI ABHICGJ ABHICGJEKD = U SK
Vậy: ACGJ và BCGJ là 2 khóa của quan hệ R
Câu 2c:
2c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Xét theo khóa AGCJ: Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ
thuộc hàm (PTH) A → B trong đó thuộc tính B không phụ thuộc đầy đủ vào khoá
AGCJ.
2c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
F = {A → B; C → D; C → H; C → I; IJ → K; BC → A; HC → E}
f1 f2 f3 f4 f5 f6 f7
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét IJ → K:
Bỏ I: (J)
F
+
= J không xác định được K
Bỏ J: (I)
F
+
= I không xác định được K
⇒ Không loại bỏ PTH IJ → K
- Xét BC → A:
Bỏ B: (C)
F
+
= CDHIE không xác định được A
6
BÀI TẬP TỔNG HỢP
Bỏ C: (B)
F
+
= B không xác định được A
⇒ Không loại bỏ PTH BC → A
- Xét HC → E:
Bỏ H: (C)
F
+
= CDHIE xác định được E
Bỏ C: (H)
F
+
= H không xác định được E
⇒ Loại bỏ thuộc tính H: C → E
⇒ F = {A → B; C → D; C → H; C → I; IJ → K; BC → A; C → E}
f1 f2 f3 f4 f5 f6 f7
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = A → B; F1 = F \ {f1}
(A)
F1
+
= A không xác định được B ⇒ Không loại bỏ được f1
- Với f2 = C → D; F2 = F \ {f2}
(C)
F2
+
= CHIE không xác định được D ⇒ Không loại bỏ được f2
- Với f3 = C → H; F3 = F \ {f3}
(C)
F3
+
= CDIE không xác định được H ⇒ Không loại bỏ được f3
- Với f4 = C → I; F4 = F \ {f4}
(C)
F4
+
= CDHE không xác định được I ⇒ Không loại bỏ được f4
- Với f5 = IJ → K; F5 = F \ {f5}
(IJ)
F5
+
= IJ không xác định được K ⇒ Không loại bỏ được f5
- Với f6 = BC → A; F6 = F \ {f6}
(BC)
F6
+
= BCDHIE không xác định được A ⇒ Không loại bỏ được f6
- Với f7 = C → E; F7 = F \ {f7}
(C)
F7
+
= CDHI không xác định được E ⇒ Không loại bỏ được f7
⇒ PTT = F = {A → B; C → D; C → H; C → I; IJ → K; BC → A; C → E}
f1 f2 f3 f4 f5 f6 f7
* Phân rã lược đồ:
R1(AB) khoá A (A → B)
R2(CDIE) khoá C (C → D; C → H; C → I; C → E)
R3(IJK) khóa IJ (IJ → K)
R4(BCA) khoá B (BC → A)
R5(G) khóa G
7
BÀI TẬP TỔNG HỢP
Do R1 ⊂ R4 nên ghép R1 và R4 thành ⇒ R14(ABC) {A → B; BC → A}.
Tìm khóa cho R14: Ta có U14 = ABC và F14 = {A → B; BC → A}
Đặt K14 = ABC
Lặp 1: (K14 \ A)
F14
+
= (BC)
F14
+
= BCA = U14 ⇒ K14 = BC
Lặp 2: (K14 \ B)
F14
+
= (C)
F14
+
= C ≠ U14 ⇒ K14 = BC
Lặp 3: (K14 \ C)
F14
+
= (B)
F14
+
= B ≠ U14 ⇒ K14 = BC
⇒ Lược đồ được phân rã lại như sau:
R14(ABC) khóa BC (A → B; BC → A)
R2(CDIE) khoá C (C → D; C → H; C → I; C → E)
R3(IJK) khóa IJ (IJ → K)
R5(G) khóa G
⇒ D = {R
14
; R
2
; R
3
; R
5
}
Bài 3: Cho lược đồ quan hệ R(A,B,C,D,E) và tập các PTH:
F = { AB -> C; AB -> D; D -> A; BC -> D ; BC -> E}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E} = ABCDE
Câu 3a:
Bước 0: Đặt K = ABCDE
Bước 1: Lặp 1: (K\A)
F
+
= (BCDE)
F
+
= BCDEA = U ⇒ K = BCDE
Lặp 2: (K\B)
F
+
= (CDE)
F
+
= CDEA ≠ U ⇒ K = BCDE (ko bỏ B được)
Lặp 3: (K\C)
F
+
= (BDE)
F
+
= BDEAC = U⇒ K = BDE
Lặp 4: (K\D)
F
+
= (BE)
F
+
= BE ≠ U ⇒ K = BDE (ko bỏ D được)
Lặp 5: (K\E)
F
+
= (BD)
F
+
= BDACE = U ⇒ K = BD
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = BD
Câu 3b:
Tập thuộc tính nguồn: N = {B}
Tập thuộc tính đích: Đ = {E}
8
BÀI TẬP TỔNG HỢP
Tập thuộc tính trung gian: TG = {A,C,D} ⇒ Tập X
i
có 2
n
= 2
3
= 8 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
B
B ≠ U
- -
A AB ABCDE = U SK Khóa
C CB CBDEA = U SK Khóa
D DB DBACE = U SK Khóa
AC ACB ACBDE = U SK
AD ADB ADBCE = U SK
CD CDB CDBAE = U SK
ACD ACDB ACDBE = U SK
Vậy: AB, CB, DB là 3 khóa của quan hệ R
Câu 3c:
3c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Xét theo khóa BD: Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc
hàm (PTH) D → A trong đó thuộc tính A không phụ thuộc đầy đủ vào khoá BD.
3c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
F = { AB → C; AB → D; D → A; BC → D ; BC → E}
f1 f2 f3 f4 f5
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét AB → C:
Bỏ A: (B)
F
+
= B không xác định được C
Bỏ B: (A)
F
+
= A không xác định được C
⇒ Không loại bỏ PTH AB → C
- Xét AB → D:
Bỏ A: (B)
F
+
= B không xác định được D
Bỏ B: (A)
F
+
= A không xác định được D
⇒ Không loại bỏ PTH AB → D
- Xét BC → D :
Bỏ B: (C)
F
+
= C không xác định được D
9
BÀI TẬP TỔNG HỢP
Bỏ C: (B)
F
+
= B không xác định được D
⇒ Không loại bỏ PTH BC → D
- Xét BC → E:
Bỏ B: (C)
F
+
= C không xác định được E
Bỏ C: (B)
F
+
= B không xác định được E
⇒ Không loại bỏ PTH BC → E
⇒ F = { AB → C; AB → D; D → A; BC → D ; BC → E}
f1 f2 f3 f4 f5
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = AB → C; F1 = F \ {f1}
(AB)
F1
+
= ABD không xác định được C ⇒ Không loại bỏ được f1
- Với f2 = AB → D; F2 = F \ {f2}
(AB)
F2
+
= ABCDE xác định được D ⇒ Loại bỏ được f2
- Với f3 = D → A; F3 = F \ {f3}
(D)
F3
+
= D không xác định được A ⇒ Không loại bỏ được f3
- Với f4 = BC → D ; F4 = F \ {f4}
(BC)
F4
+
= BCE không xác định được D ⇒ Không loại bỏ được f4
- Với f5 = BC → E; F5 = F \ {f5}
(BC)
F5
+
= BCDA không xác định được E ⇒ Không loại bỏ được f5
⇒ PTT = { AB → C; D → A; BC → D ; BC → E}
f1 f3 f4 f5
* Phân rã lược đồ:
R1(ABC) khoá AB (AB → C)
R2(DA) khoá D (D → A)
R3(BCD) khóa BC (BC → D )
R4(BCE) khoá BC (BC → E)
⇒ D = {R
1
; R
2
; R
3
; R
4
}
10
BÀI TẬP TỔNG HỢP
Bài 4: Cho lược đồ quan hệ R(A,B,C,D,E,F,G) và tập các PTH:
F = { B -> A; D -> C; D -> BE; DF -> G}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Câu 4a:
Ta có U = {A,B,C,D,E,F,G} = ABCDEFG
Bước 0: Đặt K = ABCDEFG
Bước 1: Lặp 1: (K\A)
F
+
= (BCDEFG)
F
+
= BCDEFGA = U ⇒ K = BCDEFG
Lặp 2: (K\B)
F
+
= (CDEFG)
F
+
= CDEFGBA = U ⇒ K = CDEFG
Lặp 3: (K\C)
F
+
= (DEFG)
F
+
= DEFGBCA = U ⇒ K = DEFG
Lặp 4: (K\D)
F
+
= (EFG)
F
+
= EFG ≠ U ⇒ K = DEFG (ko bỏ D)
Lặp 5: (K\E)
F
+
= (DFG)
F
+
= DFGCBEA = U ⇒ K = DFG
Lặp 6: (K\F)
F
+
= (DG)
F
+
= DGCBEA ≠ U ⇒ K = DFG (ko bỏ F)
Lặp 7: (K\G)
F
+
= (DF)
F
+
= DFCBEGA = U ⇒ K = DF
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = DF
Câu 4b:
Tập thuộc tính nguồn: N = {D,F}
Tập thuộc tính đích: Đ = {A,C,E,G}
Tập thuộc tính trung gian: TG = {B} ⇒ Tập X
i
có 2
n
= 2
1
= 2 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
DF DFCBEGA = U SK Khóa
B BDF BDFACEG = U SK
Vậy: DF là 1 khóa của quan hệ R
Câu 4c:
4c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc hàm (PTH) D → C
trong đó thuộc tính C không phụ thuộc đầy đủ vào khoá DF.
4c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
11
BÀI TẬP TỔNG HỢP
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
F = { B → A; D → C; D → B; D → E; DF → G}
f1 f2 f3 f4 f5
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét DF → G:
Bỏ D: (F)
F
+
= F không xác định được G
Bỏ F: (D)
F
+
= DCBEA không xác định được G
⇒ Không loại bỏ PTH DF → G
⇒ F = { B → A; D → C; D → B; D → E; DF → G}
f1 f2 f3 f4 f5
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = B → A; F1 = F \ {f1}
(B)
F1
+
= B không xác định được A ⇒ Không loại bỏ được f1
- Với f2 = D → C; F2 = F \ {f2}
(D)
F2
+
= DBEA xác định được C ⇒ Không loại bỏ được f2
- Với f3 = D → B; F3 = F \ {f3}
(D)
F3
+
= DCE không xác định được B ⇒ Không loại bỏ được f3
- Với f4 = D → E; F4 = F \ {f4}
(D)
F4
+
= DCBA không xác định được E ⇒ Không loại bỏ được f4
- Với f5 = DF → G; F5 = F \ {f5}
(DF)
F5
+
= DFCBEA không xác định được G ⇒ Không loại bỏ được f5
⇒ PTT = { B → A; D → C; D → B; D → E; DF → G}
f1 f2 f3 f4 f5
* Phân rã lược đồ:
R1(BA) khoá B (B → A)
R2(DCBE) khoá D (D → C; D → B; D → E)
R3(DFG) khóa DF (DF → G )
⇒ D = {R
1
; R
2
; R
3
}
12
BÀI TẬP TỔNG HỢP
Bài 5: Cho lược đồ quan hệ R(A,B,C,D,E,G,H,T,V,X,Y,Z) và tập PTH:
F = { AB -> HXGC; BH -> V; GC -> Y; D -> CGZ ; E -> ABT}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G,H,T,V,X,Y,Z} = ABCDEGHTVXYZ
Câu 5a:
Bước 0: Đặt K = ABCDEGHTVXYZ
Bước 1: Lặp 1: (K\A)
F
+
= (BCDEGHTVXYZ)
F
+
= BCDEGHTVXYZA = U
⇒ K = BCDEGHTVXYZ
Lặp 2: (K\B)
F
+
= (CDEGHTVXYZ)
F
+
= U ⇒ K = CDEGHTVXYZ
Lặp 3: (K\C)
F
+
= (DEGHTVXYZ)
F
+
= U ⇒ K = DEGHTVXYZ
Lặp 4:(K\D)
F
+
= (EGHTVXYZ)
F
+
= U\{D} ≠ U
⇒ K = DEGHTVXYZ (ko bỏ D)
Lặp 5:(K\E)
F
+
= (DGHTVXYZ)
F
+
= U\{E} ≠ U
⇒ K = DEGHTVXYZ (ko bỏ E)
Lặp 6: (K\G)
F
+
= (DEHTVXYZ)
F
+
= U ⇒ K = DEHTVXYZ
Lặp 7: (K\H)
F
+
= (DETVXYZ)
F
+
= U ⇒ K = DETVXYZ
Lặp 8: (K\T)
F
+
= (DEVXYZ)
F
+
= U ⇒ K = DEVXYZ
Lặp 9: (K\V)
F
+
= (DEXYZ)
F
+
= U ⇒ K = DEXYZ
Lặp 10; (K\X)
F
+
= (DEYZ)
F
+
= U ⇒ K = DEYZ
Lặp 11: (K\Y)
F
+
= (DEZ)
F
+
= U ⇒ K = DEZ
Lặp 12: (K\Z)
F
+
= (DE)
F
+
= U ⇒ K = DE
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = DE
Câu 5b:
Tập thuộc tính nguồn: N = {D,E}
Tập thuộc tính đích: Đ = {T,V,X,Y,Z}
Tập thuộc tính trung gian: TG = {A,B,C,G,H,} ⇒ Tập X
i
có 2
n
= 2
5
= 32 ptử
13
BÀI TẬP TỔNG HỢP
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
DE DECGZABTHXVY = U SK Khóa
A ADE U SK
B BDE U SK
C CDE U SK
G GDE U SK
H HDE U SK
AB ABDE U SK
AC ACDE U SK
AG AGDE U SK
AH AHDE U SK
BC BCDE U SK
BG BGDE U SK
BH BHDE U SK
CG CGDE U SK
CH CHDE U SK
GH GHDE U SK
ABC ABCDE U SK
ABG ABGDE U SK
ABH ABHDE U SK
ACG ACGDE U SK
ACH ACHDE U SK
AGH AGHDE U SK
BCG BCGDE U SK
BCH BCHDE U SK
BGH BGHDE U SK
CGH CGHDE U SK
ABCG ABCGDE U SK
ABCH ABCHDE U SK
ABGH ABGHDE U SK
ACGH ACGHDE U SK
BCGH BCGHDE U SK
ABCGH ABCGHDE U SK
Vậy: DE là khóa của quan hệ R
14
BÀI TẬP TỔNG HỢP
Câu 5c:
5c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc hàm (PTH) D → C
(trong D → CGZ) trong đó thuộc tính C không phụ thuộc đầy đủ vào khoá DE.
5c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
f1 f2 f3 f4 f5 f6 f7
F = { AB → H ; AB → X ; AB → G ; AB → C ; BH → V ; GC → Y ; D → C ;
D → G ; D → Z ; E → A ; E → B ; E → T}
f8 f9 f10 f11 f12
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét AB → H:
Bỏ A: (B)
F
+
= B không xác định được H
Bỏ B: (A)
F
+
= A không xác định được H
⇒ Không loại bỏ PTH AB → H
- Xét AB → X:
Bỏ A: (B)
F
+
= B không xác định được X
Bỏ B: (A)
F
+
= A không xác định được X
⇒ Không loại bỏ PTH AB → X
- Xét AB → G:
Bỏ A: (B)
F
+
= B không xác định được G
Bỏ B: (A)
F
+
= A không xác định được G
⇒ Không loại bỏ PTH AB → G
- Xét AB → C:
Bỏ A: (B)
F
+
= B không xác định được C
Bỏ B: (A)
F
+
= A không xác định được C
⇒ Không loại bỏ PTH AB → C
- Xét BH → V:
Bỏ B: (H)
F
+
= H không xác định được V
Bỏ H: (B)
F
+
= B không xác định được V
⇒ Không loại bỏ PTH BH → V
15
BÀI TẬP TỔNG HỢP
- Xét GC → Y:
Bỏ G: (C)
F
+
= C không xác định được Y
Bỏ C: (G)
F
+
= G không xác định được Y
⇒ Không loại bỏ PTH GC → Y
⇒
f1 f2 f3 f4 f5 f6 f7
F = { AB → H ; AB → X ; AB → G ; AB → C ; BH → V ; GC → Y ; D → C ;
D → G ; D → Z ; E → A ; E → B ; E → T}
f8 f9 f10 f11 f12
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = AB → H; F1 = F \ {f1}
(AB)
F1
+
= ABXGCY không xác định được H ⇒ Không loại bỏ được f1
- Với f2 = AB → X ; F2 = F \ {f2}
(AB)
F2
+
= ABHGCYV không xác định được X ⇒ Không loại bỏ được f2
- Với f3 = AB → G ; F3 = F \ {f3}
(AB)
F3
+
= ABHXCV không xác định được G ⇒ Không loại bỏ được f3
- Với f4 = AB → C; F4 = F \ {f4}
(AB)
F4
+
= ABHXGV không xác định được C ⇒ Không loại bỏ được f4
- Với f5 = BH → V; F5 = F \ {f5}
(BH)
F5
+
= BH không xác định được V ⇒ Không loại bỏ được f5
- Với f6 = GC → Y; F6 = F \ {f6}
(GC)
F6
+
= GC không xác định được Y ⇒ Không loại bỏ được f6
- Với f7 = D → C; F7 = F \ {f7}
(D)
F7
+
= DGZ không xác định được C ⇒ Không loại bỏ được f7
- Với f8 = D → G; F8 = F \ {f8}
(D)
F8
+
= DCZ không xác định được G ⇒ Không loại bỏ được f8
- Với f9 = D → Z; F9 = F \ {f9}
(D)
F9
+
= DCGY không xác định được Z ⇒ Không loại bỏ được f9
- Với f10 = E → A; F10 = F \ {f10}
(E)
F10
+
= EBT không xác định được A ⇒ Không loại bỏ được f10
- Với f11 = E → B; F11 = F \ {f11}
16
BÀI TẬP TỔNG HỢP
(E)
F11
+
= EAT không xác định được B ⇒ Không loại bỏ được f11
- Với f12 = E → T; F12 = F \ {f12}
(E)
F12
+
= EABHXGCVY không xác định được T ⇒ Không loại bỏ được f12
⇒
f1 f2 f3 f4 f5 f6 f7
PTT = F = { AB → H ; AB → X ; AB → G ; AB → C ; BH → V ; GC → Y ; D → C ;
D → G ; D → Z ; E → A ; E → B ; E → T}
f8 f9 f10 f11 f12
* Phân rã lược đồ:
R1(ABHXGC) khoá AB (AB → H ; AB → X ; AB → G ; AB → C)
R2(BHV) khoá BH (BH → V)
R3(GCY) khóa GC (GC → Y)
R4(DCGZ) khóa D (D → C ; D → G ; D → Z)
R5(EABT) khóa E (E → A ; E → B ; E → T)
⇒ D = {R
1
; R
2
; R
3
; R
4
; R
5
}
Bài 6: Cho lược đồ quan hệ R(A,B,C,D,E,G) và tập các PTH:
F = { AC -> B; B -> ACD; ABC -> D; ACE -> BC ; CD -> AE}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G} = ABCDEG
Câu 6a:
Bước 0: Đặt K = ABCDEG
Bước 1: Lặp 1: (K\A)
F
+
= (BCDEG)
F
+
= BCDEGA = U ⇒ K = BCDEG
Lặp 2: (K\B)
F
+
= (CDEG)
F
+
= CDEGAB = U ⇒ K = CDEG
Lặp 3: (K\C)
F
+
= (DEG)
F
+
= DEG ≠ U ⇒ K = CDEG (Ko bỏ C)
Lặp 4: (K\D)
F
+
= (CEG)
F
+
= CEG ≠ U ⇒ K = CDEG (Ko bỏ D)
Lặp 5: (K\E)
F
+
= (CDG)
F
+
= CDGAEB = U ⇒ K = CDG
Lặp 6: (K\G)
F
+
= (CD)
F
+
= CDAEB ≠ U ⇒ K = CDG (Ko bỏ G)
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = CDG
17
BÀI TẬP TỔNG HỢP
Câu 6b:
Tập thuộc tính nguồn: N = {G}
Tập thuộc tính đích: Đ = {}
Tập thuộc tính trung gian: TG = {A,B,C,D,E} ⇒ Tập X
i
có 2
n
= 2
5
= 32 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
G G ≠ U - -
A AG AG ≠ U - -
B BG BGACDE = U SK Khóa
C CG CG ≠ U - -
D DG DG ≠ U - -
E EG EG ≠ U - -
AB ABG ABGCDE = U SK
AC ACG ACGBDE = U SK
AD ADG ADG ≠ U - -
AE AEG AEG ≠ U - -
BC BCG BCGADE = U SK
BD BDG BDGACE = U SK
BE BEG BEGACD = U SK
CD CDG CDGAEB SK
CE CEG CEG ≠ U - -
DE DEG DEG ≠ U - -
ABC ABCG U SK
ABD ABDG U SK
ABE ABEG U SK
ACD ACDG U SK
ACE ACEG U SK
ADE ADEG ≠ U - -
BCD BCDG U SK
BCE BCEG U SK
BDE BDEG U SK
CDE CDEG U SK
ABCD ABCDG U SK
ABCE ABCEG U SK
ABDE ABDEG U SK
18
BÀI TẬP TỔNG HỢP
ACDE ACDEG U SK
BCDE BCDEG U SK
ABCDE ABCDEG U SK
Vậy: BG là khóa của quan hệ R
Câu 6b:
6c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Xét theo khóa BG: Quan hệ R không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc
hàm (PTH) B → A (trong B → ACD) trong đó thuộc tính A không phụ thuộc đầy đủ
vào khoá BG.
6c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
f1 f2 f3 f4 f5 f6 f7
F = { AC → B ; B → A ; B → C ; B → D ; ABC → D ; ACE → B ; ACE → C ;
CD → A ; CD → E}
f8 f9
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái
- Xét AC → B:
Bỏ A: (C)
F
+
= C không xác định được B
Bỏ C: (A)
F
+
= A không xác định được B
⇒ Không loại bỏ PTH AC → B
- Xét ABC → D:
Bỏ A: (BC)
F
+
= BC không xác định được D
Bỏ B: (AC)
F
+
= ACBDE xác định được D
Bỏ C: (AB)
F
+
= ABCDE xác định được D
⇒ Loại bỏ thuộc tính B và C: A → D
- Xét ACE → B:
Bỏ A: (CE)
F
+
= CE không xác định được B
Bỏ C: (AE)
F
+
= AE không xác định được B
Bỏ E: (AC)
F
+
= ACBDE xác định được B
⇒ Loại bỏ thuộc tính E: AC → B
- Xét ACE → C:
19
BÀI TẬP TỔNG HỢP
Bỏ A: (CE)
F
+
= CE xác định được C
Bỏ C: (AE)
F
+
= AE không xác định được C
Bỏ E: (AC)
F
+
= ACBDE xác định được C
⇒ Loại bỏ thuộc tính A và E: C → C ⇒ Loại bỏ PTH C → C
- Xét CD → A:
Bỏ C: (D)
F
+
= D không xác định được A
Bỏ D: (C)
F
+
= C không xác định được A
⇒ Không loại bỏ PTH CD → A
- Xét CD → E:
Bỏ C: (D)
F
+
= D không xác định được E
Bỏ D: (C)
F
+
= C không xác định được E
⇒ Không loại bỏ PTH CD → E
⇒
f1 f2 f3 f4 f5 f6
F = { AC → B ; B → A ; B → C ; B → D ; A → D ; AC → B ;
CD → A ; CD → E}
f8 f9
f1 f2 f3 f4 f5 f8 f9
F = { AC → B ; B → A ; B → C ; B → D ; A → D ; CD → A ; CD → E}
(f1 = f6 = AC
→
B )
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = AC → B ; F1 = F \ {f1}
(AC)
F1
+
= ACDE không xác định được B ⇒ Không loại bỏ được f1
- Với f2 = B → A ; F2 = F \ {f2}
(B)
F2
+
= BCDAE xác định được A ⇒ Loại bỏ được f2
- Với f3 = B → C ; F3 = F \ {f3}
(B)
F3
+
= BAD không xác định được C ⇒ Không loại bỏ được f3
- Với f4 = B → D; F4 = F \ {f4}
(B)
F4
+
= BACDE xác định được D ⇒ Loại bỏ được f4
- Với f5 = A → D; F5 = F \ {f5}
(A)
F5
+
= A không xác định được D ⇒ Không loại bỏ được f5
- Với f8 = CD → A; F8 = F \ {f8}
20
BÀI TẬP TỔNG HỢP
(CD)
F8
+
= CDE không xác định được A ⇒ Không loại bỏ được f8
- Với f9 = CD → E; F9 = F \ {f9}
(CD)
F9
+
= CDABD không xác định được E ⇒ Không loại bỏ được f9
⇒
f1 f3 f5 f8 f9
PTT = F = { AC → B ; B → C ; A → D ; CD → A ; CD → E}
* Phân rã lược đồ:
R1(ACB) khoá AC (AC → B)
R2(BC) khoá B (B → C)
R3(AD) khóa A (A → D)
R4(CDAE) khóa CD (CD → A ; CD → E)
R5(G) khóa G
* Do R2
⊂
R1 nên ghép R2 và R1 thành
⇒
R12(ABC) {AC
→
B; B
→
C}.
Tìm khóa cho R12:
Ta có U12 = ABC và F12 = {AC → B; B → C}
Đặt K12 = ABC
Lặp 1: (K12 \ A)
F12
+
= (BC)
F12
+
= BC ≠ U12 ⇒ K12 = ABC
Lặp 2: (K12 \ B)
F12
+
= (AC)
F12
+
= ACB = U12 ⇒ K12 = AC
Lặp 3: (K12 \ C)
F12
+
= (A)
F12
+
= A ≠ U12 ⇒ K14 = AC
* Do R3
⊂
R4 nên ghép R3 và R4 thành R34
⇒ R34(ACDE) {A → D ; CD → A ; CD → E}.
Tìm khóa cho R34:
Ta có U34 = ACDE và F34 = {A → D ; CD → A ; CD → E}
Đặt K34 = ACDE
Lặp 1: (K34 \ A)
F34
+
= (CDE)
F34
+
= CDEA = U34 ⇒ K34 = CDE
Lặp 2: (K34 \ C)
F34
+
= (DE)
F34
+
= DE ≠ U34 ⇒ K34 = CDE
Lặp 3: (K34 \ D)
F34
+
= (CE)
F34
+
= CE ≠ U34 ⇒ K34 = CDE
Lặp 4: (K34 \ E)
F34
+
= (CD)
F34
+
= CDAE = U34 ⇒ K34 = CD
⇒ Lược đồ được phân rã lại như sau:
R12(ACB) khóa AC (AC → B; B → C)
R34(ACDE) khóa CD (A → D ; CD → A ; CD → E)
21
BÀI TẬP TỔNG HỢP
R5(G) khóa G
⇒ D = {R
12
; R
34
; R
5
}
Bài 7: Cho lược đồ quan hệ Q(A,B,C,D,E,G) và tập các PTH:
F = { A -> BC; C -> DE; E -> G}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G} = ABCDEG
Câu 7a:
Bước 0: Đặt K = ABCDEG
Bước 1: Lặp 1: (K\A)
F
+
= (BCDEG)
F
+
= BCDEG ≠ U ⇒ K = ABCDEG (Ko bỏ A)
Lặp 2: (K\B)
F
+
= (ACDEG)
F
+
= ACDEGB = U ⇒ K = ACDEG
Lặp 3: (K\C)
F
+
= (ADEG)
F
+
= ADEGBC = U ⇒ K = ADEG
Lặp 4: (K\D)
F
+
= (AEG)
F
+
= AEGBCD = U ⇒ K = AEG
Lặp 5: (K\E)
F
+
= (AG)
F
+
= AGBCDE = U ⇒ K = AG
Lặp 6: (K\G)
F
+
= (A)
F
+
= ABCDEG = U ⇒ K = A
Bước 2: Kết luận: Một khoá của lược đồ quan hệ R là K = A
Câu 7b:
Tập thuộc tính nguồn: N = {A}
Tập thuộc tính đích: Đ = {B,D,G}
Tập thuộc tính trung gian: TG = {C,E} ⇒ Tập X
i
có 2
n
= 2
2
= 4 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
A ABCDEG = U SK Khóa
C CA CABDEG = U SK -
E EA EABCDG = U SK
CE CEA CEABDG = U SK
Vậy: A là khóa của quan hệ R
22
BÀI TẬP TỔNG HỢP
Câu 7c:
7c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Quan hệ R đạt dạng chuẩn 2 (2NF)
7c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
f1 f2 f3 f4 f5
F = { A → B ; A → C ; C → D ; C → E ; E → G}
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái: không có
f1 f2 f3 f4 f5
F = { A → B ; A → C ; C → D ; C → E ; E → G}
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = A → B ; F1 = F \ {f1}
(A)
F1
+
= ACDEG không xác định được B ⇒ Không loại bỏ được f1
- Với f2 = A → C ; F2 = F \ {f2}
(A)
F2
+
= AB không xác định được C ⇒ Không loại bỏ được f2
- Với f3 = C → D ; F3 = F \ {f3}
(C)
F3
+
= CEG không xác định được D ⇒ Không loại bỏ được f3
- Với f4 = C → E; F4 = F \ {f4}
(C)
F4
+
= CD không xác định được E ⇒ Không loại bỏ được f4
- Với f5 = E → G; F5 = F \ {f5}
(E)
F5
+
= E không xác định được G ⇒ Không loại bỏ được f5
⇒ f1 f2 f3 f4 f5
PTT = F = {A → B ; A → C ; C → D ; C → E ; E → G}
* Phân rã lược đồ:
R1(ABC) khoá A (A → B ; A → C)
R2(CDE) khoá C (C → D ; C → E)
R3(EG) khóa E (E → G)
⇒ D = {R
1
; R
2
; R
3
}
23
BÀI TẬP TỔNG HỢP
Bài 8: Cho lược đồ quan hệ Q(A,B,C,D,E,G,H) và tập các PTH:
F = { C -> AB; D -> E; B -> G}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G,H} = ABCDEGH
Câu 8a:
Bước 0: Đặt K = ABCDEGH
Bước 1: Lặp 1: (K\A)
F
+
= (BCDEGH)
F
+
= BCDEGHA = U ⇒ K = BCDEGH
Lặp 2: (K\B)
F
+
= (CDEGH)
F
+
= CDEGHAB = U ⇒ K = CDEGH
Lặp 3: (K\C)
F
+
= (DEGH)
F
+
= DEGH ≠ U ⇒ K = CDEGH (Ko bỏ C)
Lặp 4: (K\D)
F
+
= (CEGH)
F
+
= CEGHAB ≠ U ⇒ K = CDEGH (Ko bỏ D)
Lặp 5: (K\E)
F
+
= (CDGH)
F
+
= CDGHABE = U ⇒ K = CDGH
Lặp 6: (K\G)
F
+
= (CDH)
F
+
= CDHABEG = U ⇒ K = CDH
Lặp 7: (K\H)
F
+
= (CD)
F
+
= CDABEG ≠ U ⇒ K = CDH (Ko bỏ H)
Bước 2: Kết luận: Một khoá của lược đồ quan hệ Q là K = CDH
Câu 8b:
Tập thuộc tính nguồn: N = {C,D,H}
Tập thuộc tính đích: Đ = {A,E,G}
Tập thuộc tính trung gian: TG = {B} ⇒ Tập X
i
có 2
1
= 2
1
= 2 ptử
X
i
X
i
∪ N (X
i
∪ N)
+
Siêu
khóa
Khóa
∅
CDH CDHABEG = U SK Khóa
B BCDH BCDHGAE = U SK -
Vậy: CDH là khóa của quan hệ Q
Câu 8c:
8c.1- Xác định dạng chuẩn cao nhất của lược đồ trên:
Quan hệ Q không đạt dạng chuẩn 2 (2NF) vì tồn tại phụ thuộc hàm (PTH) D → E
trong đó thuộc tính E không phụ thuộc đầy đủ vào khoá CDH.
24
BÀI TẬP TỔNG HỢP
8c.2- Phân rã lược đồ để đạt dạng chuẩn 3 (3NF) và bảo mật thông tin:
* Tìm phủ tối thiểu (PTT)
Bước 2: Tách các PTH trong tập các PTH F để vế phải là 1 thuộc tính
f1 f2 f3 f4
F = { C → A ; C → B ; D → E ; B → G}
Bước 3: Loại bỏ các thuộc tính dư thừa vế trái: không có
f1 f2 f3 f4
F = { C → A ; C → B ; D → E ; B → G}
Bước 4: Loại bỏ các PTH dư thừa
- Với f1 = C → A ; F1 = F \ {f1}
(C)
F1
+
= CBG không xác định được A ⇒ Không loại bỏ được f1
- Với f2 = C → B ; F2 = F \ {f2}
(C)
F2
+
= CA không xác định được B ⇒ Không loại bỏ được f2
- Với f3 = D → E ; F3 = F \ {f3}
(D)
F3
+
= D không xác định được E ⇒ Không loại bỏ được f3
- Với f4 = B → G; F4 = F \ {f4}
(B)
F4
+
= B không xác định được G ⇒ Không loại bỏ được f4
⇒ f1 f2 f3 f4
PTT = F = { C → A ; C → B ; D → E ; B → G}
* Phân rã lược đồ:
R1(CAB) khoá C (C → A ; C → B)
R2(DE) khoá D (D → E)
R3(BG) khóa B (B → G)
⇒ D = {R
1
; R
2
; R
3
}
Bài 9: Cho lược đồ quan hệ Q(A,B,C,D,E,G,H) và tập các PTH:
F = { A -> BC; D -> E; H -> G}
a- Tìm một khóa của lược đồ.
b- Tìm nhiều khóa của quan hệ R
c- Xác định dạng chuẩn và phân rã lược đồ để đạt 3NF
Ta có U = {A,B,C,D,E,G,H} = ABCDEGH
25