Bài tập phụ thuộc hàm... Tìm tập bao đóng của một tập thuộc tính 2.. Kiểm tra một tập thuộc tính có phải là khóa không 3.. Kiểm tra 2 tập phụ thuộc hàm có tương đương 4.. Kiểm tra 1 phụ
Trang 1Bài tập phụ thuộc hàm
Trang 2Các dạng bài tập
1 Tìm tập bao đóng của một tập thuộc tính
2 Kiểm tra một tập thuộc tính có phải là khóa không
3 Kiểm tra 2 tập phụ thuộc hàm có tương đương
4 Kiểm tra 1 phụ thuộc hàm có được suy diễn từ tập
phụ thuộc hàm cho trước
5 Tìm tất cả các khóa
6 Tìm phụ thuộc hàm dư thừa
7 Tìm tập bao phủ tối thiểu
8 Xác định chuẩn hóa và chuẩn hóa dữ liệu
Trang 3Cách làm
• Dạng 1:
– Giải thuật tìm tập bao đóng
Trang 4Cách làm
• Dạng 1
– Ví dụ
– Cho tập phụ thuộc hàm:
– Tìm tập bao đóng của tập thuộc tính:
• A+, B+, AB+, AE+
Trang 5Cách làm
• Dạng 2
– Kiểm tra một tập thuộc tính có phải là khóa không – Tính tập bao đóng của tập thuộc tính đó
– Nếu X+ = R thì:
• Tìm và loại bỏ thuộc tính dư thừa của X
– Ví dụ
• ABE có phải là khóa?
Trang 6Cách làm
• Dạng 3
– Kiểm tra 1 phụ thuộc hàm XY có được suy diễn
từ tập phụ thuộc hàm FDs cho trước
– Tính tập bao đóng X+ trên FDs
– Nếu Y ⊂ X+ thì X Y đc suy diễn từ FDs
– Ví dụ:
– B G có thể suy từ F không?
Trang 7Cách làm
• Dạng 4
– Kiểm tra 2 phụ thuộc hàm có tương đương
– F và G tương đương khi và chỉ khi:
• Mọi phụ thuộc hàm của F được suy ra từ G
• Mọi phụ thuộc hàm của G được suy ra từ F
– Kiểm tra từng phụ thuộc hàm của F và G như trên – 2 tập phụ thuộc hàm này có tương đương:
Trang 8Cách làm
• Dạng 5: Tìm tất cả các khóa
– We have: (U = R)
– UL and UR are the set of LHS and RHS attributes
– N = U – UR is the set of independent attributes and those which only appear on LHS N must be a part of keys
– If N+ = R, then N is a minimal key Stop here!
– Otherwise:
– D = UR – UL is the set of attributes which only appears in RHS D
cannot be a part of key
– L = U – (N ∪ D) is the set of attributes which may or may not be a part
of keys
– For each combination X in L, we calculate {N ∪ X}+ If {N ∪ X}+ = R so it
is a key
Trang 9Cách làm
• Dạng 5
– Ví dụ
– Tìm khóa của R = {A, B, C, D, E, F, G} với tập phụ thuộc hàm sau:
F = {ABC→DE, AB→D, DE→ABCF, E→C}
Ans: {GDE, GABC, GABE}
Trang 10Cách làm
• Dạng 6: tìm phụ thuộc hàm dư thừa
• Ví dụ: Áp dụng cho
• Xét ADB
• AD+ = {ADBC} AD B là dư thừa, G = {BC, CD, A B}
Trang 11Cách làm
• Dạng 7
– Tìm tập bao phủ tối thiểu
Trang 12Cách làm
• Lưu ý: ta có thể tìm phụ thuộc hàm dư thừa trước để giảm số lượng phụ thuộc hàm trong bước tìm thuộc tính dư thừa, như cách sau:
Trang 13Cách làm
• Dạng 7:
– Bước 1: Phân rã để vế phải còn 1 thuộc tính (dạng canonical form)
– Bước 2: Loại bỏ thuộc tính dư thừa
Với mỗi phụ thuộc hàm X A
Xét mỗi thuộc tính B trong X
Tính (X-B)+ đối với (X->A) thay bằng (X-B) A
Nếu (X-B)+ chứa B thì thay XA thành X-B A
– Bước 3: Loại bỏ phụ thuộc hàm dư thừa
• Như dạng 6
– Ghi chú: ta nên thực hiện bước 3 trước bước 2 để giảm công sức tính
toán
Trang 14Ví dụ: tìm phủ tối thiểu:F = {AB→D, B→C,
AE→B, A→D, D→EF}
• Bước 1: đưa về chuẩn canonical form
• F = {AB D, B C, AE B, A D, D E, DF}
• Bước 2: tìm phụ thuộc hàm dư thừa
– AB D: dư thừa
– F = {B C, AE B, A D, D E, DF}
• Bước 3: tìm thuộc tính dư thừa
– Xét AE B
• Thử bỏ A, tính E+ đối với F = {B C, E B, A D, D E, DF},
• E+ = EBC A ko dư thừa
• Thử bỏ E, A+ = ABDEFC E dư thừa Thay AE B thành A B
– Vậy ta có: F = {B C, A B, A D, D E, DF},
Trang 15Cách làm
• Dạng 8: Xác định chuẩn hóa và chuẩn hóa dữ liệu
• Ví dụ:
– Chuẩn hóa R trên sang 3NF
Trang 16Bài tập kết hợp
• Cho R = ABCDEFGH, với tập phụ thuộc hàm sau:
a Tìm phủ tối thiểu
b Tìm tất cả khóa
c Xác định chuẩn hóa cao nhất mà R đạt được, chuẩn hóa R đến BCNF
Trang 17Bài tập kết hợp
• Đáp án:
• a FDs = {AE, ED, BDE, FA, EB, DH, BGF, CDA}