1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 9 Phụ thuộc hàm (Functional Dependency)

38 3,7K 7

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 1,01 MB

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 Ví dụ SSN 111111111 111111111 555666777 555666777 987654321    Name John Doe John Doe Mary Doe Mary Doe Bart Simpson Address 123 Main St 123 Main St Lake Dr Lake Dr Fox TV Hobby Stamps Coins Hiking Skating Acting Khóa bảng PERSON?  SSN + Hobby Thông tin cá nhân bị trùng lặp Các bất thường: ◦ Nếu John thay đổi chỗ  update anomaly ◦ Nếu bổ sung thêm người tên Homer Simpson chưa biết sở thích  tạo ghi  insertion anomaly ◦ Nếu Bart Simpson khơng có sở thích  xóa sở thích Acting  Delete anomaly 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ó mức lương nhiều nhân viên có mức lương Emp_ID  Salary Salary -/-> Emp_ID Phụ thuộc hàm xác định dựa vào quy tắc nghiệp vụ xác định lược đồ quan hệ Phụ thuộc hàm (Functional Dependency -FD)    Từ quy tắc bảo toàn thực thể  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 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 24 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  25 Ví dụ  Hãy khảo sát tập FD sau: ◦ F={ ACB, AC, DA} ◦ G={AB, AC, DA, DB} F G có tương đương khơng??? Từ AC + Tiên đề F2  AAC (1) Từ (1)+ ACB + tiên đề F3  AB Từ DA + AB + tiên đề F3  D B F suy diễn G Tương tự xét G suy diễn F 26 Bao đóng tập phụ thuộc hàm  Ví dụ cho F={AB F+={AA, ABA, C, CB} r(ABC) ACA, ABCA, BB, ABB, BCB, ABCB, CC, ACC, BCC, ABCC, ABAB, ABCAB, ACAC, ABCAC, BCBC, ABCBC, ABCABC, ABC, ABAC, ABBC, ABABC, CB,CBC, ACB, ACAB } 27 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: ◦ ∃XY∈ F+ ◦ ∀XZ∈ F+: Z ⊆Y Hoặc X + F = {A|XA ∈ F+} 28 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 WZ F if W ⊆ Closure_X then Closure_X :=Closure_X ∪ Z; until Closure_X = Old_X; End;   29 Ví dụ tìm bao đóng X   Cho R(A,B,C,D,E,F) tập F={f1:DB, f2: AC, f3: ADE, f4:CF} Tìm A+F: ◦ A+F ={A} ◦ Duyệt F lần 1: Từ f2  A+F = {AC}; Từ f4  A+F = {ACF} ◦ Duyệt F lần 2: A+F không thay đổi A+F  = {ACF} Tìm {AD}+F ??? 30 Kiểm tra thành viên F+   Để xác định F ⊨ XY, cần kiểm tra X Y ∈ F+ Giải thuật: ◦ Nhập: phụ thuộc hàm XY tập F ◦ Xuất: true F⊨ XY, ngược lại false Function Member(X,Y,F) Begin if Y ⊆ Closure(X,F) then Member = true else Member = false; End 31 Ví dụ kiểm tra phụ thuộc hàm  Cho F={DB, AC, ADE, CB} Kiểm tra F có bao hàm AB?? - Tìm A+F?  A+F = {ACB} - Do B ∈ A+F nên F bao hàm AB 32 Giải thuật tìm khóa lược đồ quan hệ    Nhập: R(U) tập phụ thuộc hàm F Xuất: tập hợp K bao gồm tất khóa R Tập thuộc tính nguồn (TN) chứa tất thuộc tính xuất vế trái không xuất vế phải phụ thuộc hàm thuộc tính khơng xuất vế trái lẫn vế phải phụ thuộc hàm TN=U- ∪∀f∈F right(f) 33 Giải thuật tìm khóa lược đồ quan hệ  Tập thuộc tính đích (TD) chứa tất thuộc tính có xuất vế phải không xuất vế trái phụ thuộc hàm TD= ∪∀f∈F right(f) - ∪∀f∈F left(f)  Tập thuộc tính trung gian (TG) chứa tất thuộc tính xuất vế trái lẫn vế phải phụ thuộc hàm 34 Thuật tốn tìm tất khóa Bước 1: tạo tập thuộc tính nguồn TN Tập thuộc tính trung gian TG  Bước 2: if TG = ∅ then lược đồ quan hệ có khóa K K=TN Kết thúc Ngược lại qua bước  Bước 3: tìm tất tập Xi tập trung gian TG …  35 Thuật tốn tìm tất khóa (tt) Bước 4: tìm siêu khóa Si cách ∀ Xi if (TN ∪ Xi)+ = Q+ then Si = TN ∪ Xi  Bước 5: tìm khóa cách loại bỏ siêu khóa khơng tối tiểu  ∀ Si, Sj ∈ S if Si⊂ Sj then Loại Sj khỏi tập siêu khóa S S cịn lại tập khóa cần tìm 36 Ví dụ Cho R(A,B,C,D,E,F) F={DB, AC, ADE, CF} Tìm tất khóa R  B1: TN={AD}, TG={C}  Xi tập TG  Xi Xi ∪ TN (Xi ∪ TN)+ Siêu khóa ∅ AD ADBCEF=R+ AD C ADC ADBCEF=R+ ADC Khóa AD 37 Ví dụ Cho R(A,B,C,D,E,F) F={AD, CAF, AB EC} Tìm khóa R?  TN={B} , TG={AC}  Khóa R {AB} {BC}  Xi Xi ∪ TN (Xi ∪ TN)+ ∅ B CB AB ABC ABCDEF=R+ ABCDEF=R+ ABCDEF=R+ Khóa B C A AC Siêu khóa BC AB ABC BC AB 38 ... Các phụ thuộc hàm quan hệ R là: ◦A→ B ◦A→ D ◦ B,C → E,F  Các quan hệ r(R) có vi phạm FD không? 12 Tập phụ thuộc hàm  Gọi F tập phụ thuộc hàm R phụ thuộc hàm F phụ thuộc hàm R  Phụ thuộc hàm. .. anomaly 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). ..  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

Ngày đăng: 12/05/2014, 12:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w