BaiTapPhuThuocHamv2

Download Report

Transcript BaiTapPhuThuocHamv2

Bài tập phụ thuộc hàm
Cá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
Cách làm
• Dạng 1:
– Giải thuật tìm tập bao đóng
Cá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+
Cá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?
Cách làm
• Dạng 3
– Kiểm tra 1 phụ thuộc hàm XY 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?
Cá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:
Cá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
Cá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}
Cách làm
• Dạng 6: tìm phụ thuộc hàm dư thừa
• Ví dụ: Áp dụng cho
• Xét ADB
• AD+ = {ADBC}  AD  B là dư thừa, G =
{BC, CD, A B}
Cách làm
• Dạng 7
– Tìm tập bao phủ tối thiểu
Cá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:
Cá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 XA 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
Ví 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, DF}
• 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, DF}
• 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, DF},
• 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, DF},
Cá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
Bà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
Bài tập kết hợp
• Đáp án:
• a. FDs = {AE, ED, BDE, FA, EB,
DH, BGF, CDA}