Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Tiêu đề
Phụ Thuộc Hàm (Functional Dependency)
Định dạng
Số trang
34
Dung lượng
223,5 KB
Nội dung
Chương 9: Phụ thuộc hàm (Functional Dependency) Nội dung Dư thừa liệu Phụ thuộc hàm Hệ tiên đề Amstrong Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính Tìm khóa Dư thừa liệu (Data redundancy) Mục đích thiết kế CSDL gom thuộc tính thành quan hệ cho giảm thiểu dư thừa liệu Hậu dư thừa liệu: • Lãng phí khơng gian đĩa • Các bất thường cập nhật Ba loại bất thường: • Bất thường thêm vào • Bất thường xóa bỏ • Bất thường sửa đổi Phụ thuộc hàm (Functional Dependency) Phụ thuộc hàm mô tả mối liên hệ thuộc tính Dựa vào phụ thuộc hàm để thiết kế lại CSDL, loại bỏ dư thừa liệu Phụ thuộc hàm (Functional Dependency) Cho lược đồ quan hệ R(U), r quan hệ R, X Y tập thuộc tính Định nghĩa: Phụ thuộc hàm (FD) f: X Y lược đồ quan hệ R giá trị X r có quan hệ xác với giá trị Y r Nghĩa r có giá trị X có giá trị Y ∀t1, t2 ∈ r(R): t1[X] = t2[X] ⇒ t1[Y]= t2[Y] Phụ thuộc hàm (Functional Dependency) X vế trái, ký hiệu left(f) hay gọi determinant Y vế phải, ký hiệu right(f) hay gọi dependent Phụ thuộc hàm (Functional Dependency -FD) Phụ thuộc hàm đặc điểm ngữ nghĩa thuộc tính, xem ràng buộc thuộc tính Ví dụ: Một nhân viên có tiền lương nhiều nhân viên có mức lương Emp_ID Salary Salary -/-> Emp_ID Phụ thuộc hàm (Functional Dependency -FD) Nếu X candidate key tất thuộc tính Y lược đồ R phải phụ thuộc hàm vào X Ví dụ: lược đồ PROFESSOR có ProfId primary key nên: ProfId Name, Qualification Có số FD lược đồ gây dư thừa liệu Ví dụ FD dư thừa liệu Xét lược đồ PERSON(SSN, Name, Address,Hobby) với quy tắc người có nhiều sở thích (hobby) • SSN,Hobby SSN, Name, Address,Hobby Bất thường xảy người có nhiều sở thích thay đổi địa Giải thuật kiểm tra phụ thuộc hàm Bài toán: cho quan hệ r phụ thuộc hàm f:X Y Kiểm tra xem r thỏa mãn f hay khơng? Function Satisfies(r,f:X Y) • Sắp thứ tự r theo thuộc tính X • If tập có giá trị X có giá trị Y then Satisfies = true • Else Satisfies = false 10 Phụ thuộc hàm tương đương Nếu F G tập FD F suy diễn G ( F entails G) F suy diễn tất FD có G F G tương đương F suy diễn G G suy diễn F 20 Kiểm tra tập FD tương đương Input: F,G – tập FD Output: true F tương đương G, false ngược lại For each f ∈F if G does not entail f then return false For each g ∈ G if G does not entail f then return false Return true 21 Ví dụ Hãy khảo sát tập FD sau: • F={ ACB, AC, DA} • G={AB, AC, DA, DB} F G có tương đương khơng??? Từ AC + Tiên đề F2 AAC (1) Từ (1)+ ACB + tiên đề F3 AB Từ DA + AB + tiên đề F3 D B F suy diễn G Tương tự xét G suy diễn F 22 Bao đóng tập phụ thuộc hàm Ví dụ cho F={AB C, CB} r(ABC) F+={AA, ABA, ACA, ABCA, BB, ABB, BCB, ABCB, CC, ACC, BCC, ABCC, ABAB, ABCAB, ACAC, ABCAC, BCBC, ABCBC, ABCABC, ABC, ABAC, ABBC, ABABC, CB,CBC, ACB, ACAB } 23 Bao đóng tập thuộc tính Bao đóng tập thuộc tính X dựa tập phụ thuộc hàm F (closure of X under F) tập thuộc tính Y cho: ∀ ∃ XY∈ F+ ∀ ∀XZ∈ F+: Z ⊆ Y = {A|XA ∈ F+} Hoặc X + F 24 Giải thuật tìm bao đóng tập thuộc tính tập phụ thuộc hàm Input: tập thuộc tính X tập phụ thuộc hàm F Output: bao đóng X dựa F Procedure Closure(X,F,Closure_X) Begin Closure_X:=X; repeat Old_X := Closure_X; for WZ F if W ⊆ Closure_X then Closure_X :=Closure_X ∪ Z; until Closure_X = Old_X; End; 25