1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chapter 7 - Functional Dependency (1).Pdf

19 13 0

Đ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

Nội dung

Chuong 7(CSDL) pptx Biên soạn ThS Phạm Văn Đăng Email pvdang@ntt edu vn  Phụ thuộc hàm  Hệ tiên đề Armstrong  Suy diễn logic tập phụ thuộc hàm  Bao đóng của tập phụ thuộc hàm  Bao đóng của tập th[.]

Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University NỘI DUNG  Phụ thuộc hàm     Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm Biên soạn : ThS Phạm Văn Đăng Email : pvdang@ntt.edu.vn  Phủ tối tiểu phụ thuộc hàm ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Nguyễn Tất Thành University  Phụ thuộc hàm khái niệm xây dựng để mô tả ràng buộc sở liệu  Phụ thuộc hàm suy từ ràng buộc giới thực thuộc tính quan hệ  Phụ thuộc hàm dùng để đo mức độ hoàn thiện thiết kế quan hệ  Phụ thuộc hàm khóa dùng để xác định dạng chuẩn quan hệ  Phụ thuộc hàm ràng buộc suy từ ý nghĩa liên hệ thuộc tính liệu  Cơ sở lý thuyết chuẩn hoá sở liệu dựa khái niệm phụ thuộc hàm khoá quan hệ  Phụ thuộc hàm Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm  Phủ tối tiểu phụ thuộc hàm ThS.Phạm Văn Đăng Khoa CNTT Giới thiệu NỘI DUNG     ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Định nghĩa Nguyễn Tất Thành University Ví dụ phụ thuộc hàm  Cho lược đồ quan hệ R gồm n thuộc tính: R = (A1, A2, …, An) Ví dụ 1: Cho thể lược đồ quan hệ R(A, B, C)  X, Y tập {A1, A2, …, An}  r quan hệ R  t1, t2 hai r  Phụ thuộc hàm hai thuộc tính X Y ký hiệu X -> Y (ta nói hàm X xác định hàm Y hàm Y phụ thuộc hàm X) định nghĩa sau:  t1, t2  r: t1[X] = t2[X]  t1[Y] = t2[Y] A B C 4 7  t1, t2  r: t1[X] = t2[X]  t1[Y] = t2[Y]  Các phụ thuộc hàm tìm là: A -> B, A -> C, B -> C, AB -> C, ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Định nghĩa Nguyễn Tất Thành University Ví dụ phụ thuộc hàm Trong đó:  X -> Y hai (tuple) t1 t2 có giá trị X phải có giá trị Y  Với hai t1 t2 thể quan hệ r(R): Nếu t1[X] = t2[X] t1[Y] = t2[Y]  X -> Y R xác định ràng buộc tất thể r(R)  Ký hiệu X -> Y đọc “X xác định Y” Ví dụ 2: Cho thể lược đồ quan hệ R(A, B, C, D, E) A B C D E 4 4  Các phụ thuộc hàm tìm là: AC -> D, AD -> E, B -> D, DE -> A, CD -> E, ThS.Phạm Văn Đăng ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Ví dụ phụ thuộc hàm HỆ TIÊN ĐỀ ARMSTRONG  Mã nhân viên xác định tên nhân viên: MaNV -> Ten  Mã đề án xác định tên đề án địa điểm: MaDA-> {TenDA, Diadiem}  Mã nhân viên mã đề án xác định làm việc tuần nhân viên cho đề án: {MaNV, MaDa} -> Sogio  Lược đồ quan hệ DMVT(MaVT, TenVT, DonGia) có phụ thuộc hàm: MaVT  TenVT, DonGia  Lược đồ quan hệ CTVT(SoCT, MaKH, MaMH, SL) có phụ thuộc hàm: SoCT  MaKH SoCT, MaKH, MaMH  SL Giới thiệu Hệ tiên đề Armstrong bao gồm luật suy diễn cho PTH Giả sử ta cho tập PTH F, áp dụng HTDA, ta suy thêm PTH khác thỏa Hệ tiên đề Armstrong 2.1 Một số qui ước cách đọc  Y  X -> Đọc là: Nếu Y tập X  X -> Y -> Đọc là: X xác định Y  XZ -> Đọc là: X hợp Z (X  Z)  YZ -> Đọc là: Y hợp Z (Y  Z) ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University ThS.Phạm Văn Đăng Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University HỆ TIÊN ĐỀ ARMSTRONG NỘI DUNG 2.2 Hệ tiên đề Armstrong  (Luật phản xạ) Nếu Y X, X -> Y Ví dụ: ABC -> BC  (Luật tăng trưởng) X -> Y XZ -> YZ Ví dụ: C -> D ABC -> ABD  (Luật bắc cầu) Nếu X -> Y Y -> Z X -> Z Ví dụ: AB -> CD CD -> EF AB -> EF  Hệ tiên đề Armstrong đủ  Phụ thuộc hàm     11 Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm  Phủ tối tiểu phụ thuộc hàm ThS.Phạm Văn Đăng 10 ThS.Phạm Văn Đăng 12 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University HỆ TIÊN ĐỀ ARMSTRONG Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University ÁP DỤNG HỆ TIÊN ĐỀ ARMSTRONG 2.2 Hệ tiên đề Armstrong Có thể suy thêm luật hữu ích khác từ hệ tiên đề Armstrong sau:  (Luật hợp) Nếu X -> Y X -> Z X -> YZ Ví dụ: Nếu AB -> CD AB -> EF AB -> CDEF  (Luật tách) Nếu X -> YZ X -> Y X -> Z Ví dụ: Nếu AB -> CDEF AB -> CD AB -> EF AB -> C AB -> D AB -> E AB -> F  (Luật bắc cầu giả) Nếu X -> Y WY -> Z XW->Z Ví dụ: Nếu AB -> EF DEF-> G ABD -> G Ví dụ 2: Hãy dùng hệ tiên đề Armstrong để chứng minh: Nếu X -> Y U -> V XU -> YV Chứng minh: X -> Y (giả thiết) XU-> YU (tăng trưởng U vào (1) ) U -> V (giả thiết) YU -> YV (tăng trưởng Y vào (3)) XU -> YV (bắc cầu (2) (4) ) Bắc cầu giả ThS.Phạm Văn Đăng Môn Cơ sở liệu 13 Khoa CNTT Nguyễn Tất Thành University ThS.Phạm Văn Đăng Môn Cơ sở liệu 15 Khoa CNTT Nguyễn Tất Thành University ÁP DỤNG HỆ TIÊN ĐỀ ARMSTRONG ÁP DỤNG HỆ TIÊN ĐỀ ARMSTRONG Ví dụ 1: Cho lược đồ R=(A, B, C) F={ABC, CA} Hãy chứng minh BCABC? Chứng minh: CA (giả thiết) BCAB (tăng trưởng B vào (1)) ABC (giả thiết) ABABC (tăng trưởng AB vào (3)) BCABC (bắc cầu (2) (4)) Ví dụ 3: Cho lược đồ quan hệ R=(A, B, C, E, G, H, I) tập PTH F R: F = {AB  E, AG  I, E  G, GI  H} Hãy chứng minh AB  GH ? Chứng minh: AB  E (giả thiết) E  G (giả thiết) AB  G (bắc cầu (1) (2)) AB  AG (tăng trưởng A vào (3)) AG  I (giả thiết) AB  I (bắc cầu (4) (5)) AB  GI (hợp (3) (6)) GI  H (giả thiết) AB  H (bắc cầu (7) (8)) 10 AB  GH (hợp (3) (9)) ThS.Phạm Văn Đăng 14 ThS.Phạm Văn Đăng 16 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University  Định nghĩa: • Giả sử F tập phụ thuộc hàm lược đồ quan hệ R, X Y tập thuộc tính R Ta nói F suy diễn logic phụ thuộc hàm XY hay phụ thuộc hàm XY suy diễn logic từ F, Ký hiệu F |= XY • Nếu quan hệ r thoả phụ thuộc hàm F thoả phụ thuộc hàm XY  Ví dụ: F |= XY {AB, BC} |= AC Môn Cơ sở liệu 17 Khoa CNTT Nguyễn Tất Thành University Giới thiệu  Bao đóng (closure) tập PTH F tập tất PTH suy diễn logic từ F Ta ký hiệu bao đóng F F+  Tính F+, bao đóng tập PTH F F+ có kích thước lớn, tìm F+ nhiều cơng sức  Ta tính F+ cách áp dùng hệ tiên đề Armstrong ThS.Phạm Văn Đăng Môn Cơ sở liệu 19 Khoa CNTT Nguyễn Tất Thành University Định nghĩa  Bao đóng tập phụ thuộc hàm F, ký hiệu F+, tập hợp tất phụ thuộc hàm suy diễn logic từ F: F+ = {XY  F |= XY} Ví dụ 2: Cho F = {A → B, B → C, A → D, B → D } Tìm F+?  Phụ thuộc hàm Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm - Vì A → B B → C, (bắc cầu) suy A → C - Vì B → C B →D, (hợp) suy B→ DC - Vì A → B A → C F+, (hợp) suy A→ BC - Vì A → B A → D, (hợp) suy A →BD - Vì A → B B → D, (bắc cầu) suy A → D  Phủ tối tiểu phụ thuộc hàm ThS.Phạm Văn Đăng Nguyễn Tất Thành University BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM NỘI DUNG     Khoa CNTT BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM SUY DIỄN LOGIC TẬP PHỤ THUỘC HÀM ThS.Phạm Văn Đăng Môn Cơ sở liệu 18 ThS.Phạm Văn Đăng F+ F+ F+ F+ F+ 20 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM Ví dụ 2: Cho F = {A → B, C → X, BX → Z} Khi AC → Z F+ ? - Vì A → B, (tăng trưởng) suy AX → BX - Từ AX → BX kết hợp BX →Z (gt), (bắc cầu) suy AX → Z - Từ C → X (gt) (tăng trưởng) suy AC → AX - Từ AC → AX AX → Z (bắc cầu) suy AC → Z F+ Môn Cơ sở liệu 21 Khoa CNTT Khoa CNTT Nguyễn Tất Thành University BAO ĐÓNG CỦA TẬP THUỘC TÍNH Định nghĩa  Bao đóng tập phụ thuộc hàm F, ký hiệu F+, tập hợp tất phụ thuộc hàm suy diễn logic từ F: F+ = {XY  F |= XY} ThS.Phạm Văn Đăng Môn Cơ sở liệu Nguyễn Tất Thành University Giới thiệu  Tính F+, bao đóng tập PTH F Do F+ có kích thước lớn, tìm F+ nhiều cơng sức  Nếu xác định tất thuộc tính R tập thuộc tính X X siêu khóa R  Bao đóng X F (được ký hiệu X+) tập tập thuộc tính xác định X qua PTH F ThS.Phạm Văn Đăng Môn Cơ sở liệu 23 Khoa CNTT Nguyễn Tất Thành University BAO ĐÓNG CỦA TẬP PHỤ THUỘC HÀM BAO ĐĨNG CỦA TẬP THUỘC TÍNH Định nghĩa  Bao đóng tập phụ thuộc hàm F, ký hiệu F+, tập hợp tất phụ thuộc hàm suy diễn logic từ F: F+ = {XY  F |= XY} Định nghĩa  Bao đóng tập thuộc tính X  R (đối với tập phụ thuộc hàm F), ký hiệu X+, tập hợp tất thuộc tính phụ thuộc hàm vào X: X+ = {A  XA  F+} Ví dụ 2: Cho F = {A → B, C → D}, C B Chứng minh A → D - Vì C B , (phản xạ) suy B → C - Từ A → B B → C , (bắc cầu) suy A → C - Từ A → C C → D , (bắc cầu) suy A → D F+ ThS.Phạm Văn Đăng F+ ? Ví dụ 1: • Cho lược đồ quan hệ R = (A, B, C) hai phụ thuộc hàm: F = {AB, BC} • Với tập thuộc tính X = {A, B} • Vậy X+ = {A, B, C} 22 ThS.Phạm Văn Đăng 24 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University BAO ĐÓNG CỦA TẬP THUỘC TÍNH Ví dụ tính bao đóng tập thuộc tính Định nghĩa  Bao đóng tập thuộc tính X  R (đối với tập phụ thuộc hàm F), ký hiệu X+, tập hợp tất thuộc tính phụ thuộc hàm vào X: X+ = {A  XA  F+} Ví dụ 1: Cho quan hệ R=(A, B, C, D, E) tập PTH: F = { AB →C, BC →AD, D →E, CE →B} How to compute closure of {A, B}, i.e., {A, B}+? Ví dụ 2: • Cho bảng CTVT có trường sau CTVT(A, B, C, D, E, F) phụ thuộc hàm: F = { A  BC, C  D, ACE  F} • Với tập thuộc tính X = {A, C, E} • Vậy thì: X+ = {A, B, C, D, E, F} = CTVT Start with X={A, B} Add C to X due to AB →C ; X={A, B, C} Add A, D to X due to BC →AD; X={A, B, C, D} Add E to X due to D →E ; X={A, B, C, D, E} No more attributes can be added to X Closure of {A,B}+ = {A, B, C, D, E} ThS.Phạm Văn Đăng 25 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Thuật tốn tính bao đóng X F (X+) ThS.Phạm Văn Đăng Môn Cơ sở liệu 27 Khoa CNTT Nguyễn Tất Thành University Ví dụ tính bao đóng tập thuộc tính Ví dụ 1: Cho quan hệ R=(A, B, C, D, E) tập PTH: F = { AB →C, BC →AD, D →E, CE →B} Tính báo đóng tập thuộc tính{A, B}+? X+ = X // khởi tạo 1.Bắt đầu X = {A, B} repeat 2.Thêm C vào X, ta có PTH: AB →C; X = {A, B, C} oldX+ = X+ for each FD Y -> Z in F 3.Thêm A,D vào X, ta có PTH: BC →AD; X = {A,B,C,D} // kiểm tra PTH 4.Thêm E vào X, ta có PTH: D →E; X = {A, B, C, D, E} if Y is a subset of X+ then // vế trái X+ X+ = X+ U Z until X+ == oldX+ ThS.Phạm Văn Đăng 5.Không cịn thuộc tính thêm vào X Bao đóng tập thuộc tính {A,B}+={A, B, C, D, E} // thêm vế phải vào X+ //lặp X+ thay đổi 26 ThS.Phạm Văn Đăng 28 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Ví dụ tính bao đóng tập thuộc tính Ví dụ tính bao đóng tập thuộc tính Ví dụ 2: Cho quan hệ R = (A, B, C, G, H, I) tập PTH F = {A -> B, A -> C, CG -> H, CG -> I, B ->H}, Tính (AG)+ ? Start with X={A, G} Add B to X due to A -> B ; X = {A, B, G} Add C to X due to A -> C ; X = {A, B, C, G} Add H to X due to CG -> H ; X = {A, B, C, G, H} Add I to X due to CG -> I ; X = {A, B, C, G, H, I} No more attributes can be added to X Closure of (AG)+ = {A, B, C, G, H, I} Ví dụ 4: Cho lược đồ quan hệ NV_DA(MaBHXH, MaDA, TenNV, TenDA, DDiem, SoGio) tập PTH F = { MaBHXH -> TenNV, MaDA -> {TenDA, DDiem}, {MaBHXH, MaDA} -> SoGio} Tính (MaBHXH, MaDA)+ ? ThS.Phạm Văn Đăng Mơn Cơ sở liệu 29 Khoa CNTT Nguyễn Tất Thành University Start with X={MaBHXH, MaDA} Add TenNV to X due to MaBHXH -> TenNV; X = {MaBHXH, MaDA, TenNV} Add TenDA, DDiem to X due to MaDA -> {TenDA, DDiem}; X = {MaBHXH, MaDA, TenNV, TenDA, DDiem} Add SoGio to X due to {MaBHXH, MaDA} -> SoGio; X = {MaBHXH, MaDA, TenNV, TenDA, DDiem, SoGio} No more attributes can be added to X Closure of (MaBHXH, MaDA)+ = {MaBHXH, MaDA, TenNV, TenDA, DDiem, SoGio} Therefore, attributes {MaBHXH, MaDA} are keys of relation NV_DA ThS.Phạm Văn Đăng Mơn Cơ sở liệu Ví dụ tính bao đóng tập thuộc tính Khoa CNTT Nguyễn Tất Thành University BÀI TẬP Ví dụ 3: Cho quan hệ R = (A, B, C, D, E, F) tập PTH F = {A -> BC, C -> D, AC -> F}, X = ACE Tính (X)+ ? Start with X={ACE} Add B, C to X due to A -> BC ; X = ACEB Add D to X due to C -> D ; X = ACEBD Add F to X due to AC -> F ; X = ACEBDF No more attributes can be added to X Closure of (X)+ = ACEBDF ThS.Phạm Văn Đăng 31 Bài tập 1: Cho quan hệ R = (A, B, C, D, E, I) tập PTH F = { AB -> E, BE -> I, E -> C, CI -> D } Anh/Chị chứng minh AB -> CD suy từ F Hướng dẫn: Cách 1: Simple Proof -> Dùng thuật tốn tính bao đóng tập thuộc tính (AB)+, (AB)+ có chứa ABEICD có chứa CD (which includes CD) -> ĐPCM Cách 2: Proof using Armstrong’s Axioms (chứng minh cách sử dụng Hệ tiên đề Armstrong ): 30 ThS.Phạm Văn Đăng 32 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University BÀI TẬP BÀI TẬP Cách 1: Simple Proof Start with X = {A, B} Add E to X due to AB -> E; X = {A, B, E} Add I to X due to BE -> I; X = {A, B, E, I} Add C to X due to E -> C; X = {A, B, C, E, I} Add D to X due to CI -> D; X = {A, B, C, D, E, I} No more attributes can be added to X Closure of (AB)+ = {A, B, C, D, E, I} Therefore, Proof of AB -> CD, because closure of (AB)+ including CD inferred from F Bài tập 2: Cho tập PTH F={XY->W, Y->Z, WZ->P, WP->QR, Q->X} Anh/Chị chứng minh XY->P suy từ F Hướng dẫn: Cách 1: Proof using Armstrong’s Axioms (chứng minh cách sử dụng Hệ tiên đề Armstrong ) ThS.Phạm Văn Đăng Môn Cơ sở liệu 33 Khoa CNTT Nguyễn Tất Thành University Cách 2: Simple Proof -> Dùng thuật tốn tính bao đóng tập thuộc tính (XY)+, (XY)+ có chứa XYWZPQR có chứa P (which includes P) -> ĐPCM ThS.Phạm Văn Đăng Môn Cơ sở liệu BÀI TẬP Khoa CNTT Nguyễn Tất Thành University NỘI DUNG  Phụ thuộc hàm Cách 2: Proof using Armstrong’s Axioms     AB -> E, Given E -> C, Given AB -> C, Transitivity on (1) and (2) AB -> BE, Augment (1) by B BE -> I, Given AB -> I, Transitivity on (4) and (5) ABC -> CI, Augment (6) by C AB -> ABC, Augment (3) by AB AB -> CI, Transitivity on (7) and (8) 10 CI -> D, Given 11 AB -> D, Transitivity on (9) and (10) 12 ABC -> CD, Augment (11) by C 13 AB -> CD, Transitivity on (8) and (12) ThS.Phạm Văn Đăng 35 Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm  Phủ tối tiểu phụ thuộc hàm 34 ThS.Phạm Văn Đăng 36 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Định nghĩa khóa thuộc tính tham gia vào khóa  Nếu lược đồ quan hệ có nhiều khóa, khóa gọi khóa dự tuyển (candidate key) Một khóa dự tuyển lựa chọn làm khóa (primary key), khóa cịn lại làm khóa phụ (secondary keys)  Thuộc tính khóa thuộc tính nằm khóa dự tuyển  Thuộc tính khơng khóa khơng phải thuộc tính khóa TÌM KHĨA (FIND KEYS) ThS.Phạm Văn Đăng Môn Cơ sở liệu 37 Khoa CNTT Nguyễn Tất Thành University ThS.Phạm Văn Đăng Môn Cơ sở liệu 39 Khoa CNTT Nguyễn Tất Thành University Định nghĩa khóa thuộc tính tham gia vào khóa THUẬT TỐN TÌM KHĨA (DẠNG 1) Cho lược đồ quan hệ R= {A1, A2, , An} tập PTH F R Định nghĩa: Cho quan hệ r(R), tập K R gọi khóa quan hệ r nếu: K+= R bớt phần tử khỏi K bao đóng khác R Như tập K R K+=R (K\A)+ ≠ R, A R - r quan hệ R; - t1, t2 hai r; - S tập thuộc tính R  Siêu khóa(superkey) lược đồ quan hệ R tập thuộc tính S R thỏa tính chất khơng có hai t1 t2 trạng thái hợp lệ r R mà t1[S] = t2[S]  Khóa(key) K siêu khóa với tính chất bổ sung xóa thuộc tính khỏi K khiến K khơng cịn siêu khóa ThS.Phạm Văn Đăng 38 ThS.Phạm Văn Đăng 40 Mơn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University THUẬT TỐN TÌM KHĨA (DẠNG 1) THUẬT TỐN TÌM KHÓA (DẠNG 1) Ý tưởng: Bắt đầu từ tập R Closure(K+, F) = R Sau ta bớt dần phần tử R để nhận tập bé mà bao đóng R Thuật toán: Input : Lược đồ quan hệ r(R), tập phụ thuộc hàm F Output: Khố K (in có khóa) Bước 1: Gán K = R Bước 2: Lặp lại bước sau: Loại phần tử A khỏi K mà Closure( K -A, F ) = R Ví dụ: Cho lược đồ quan hệ R = {A, B, C, D, E, G, H, I} tập PTH F= {AC →B, BI →ACD, ABC →D, H →I , ACE →BCG, CG →AE} Anh/Chị tìm khóa? Lưu ý: Một quan hệ có nhiều khóa ThS.Phạm Văn Đăng Mơn Cơ sở liệu 41 Khoa CNTT Nguyễn Tất Thành University Bước 1: Gán K = R = {A, B, C, D, E, G, H, I} Bước 2: Lần lượt loại thuộc tính K  Loại phần tử A, ta có: {B, C, D, E, G, H, I}+ = R PTH CG →AE khiến A thuộc {B, C, D, E, G, H, I}+ nên K = {B, C, D, E, G, H, I}  Loại phần tử B, ta có: {C, D, E, G, H, I}+ = R PTH CG →AE khiến A thuộc {C, D, E, G, H, I}+ PTH AC →B nên K = {C, D, E, G, H, I} ThS.Phạm Văn Đăng Môn Cơ sở liệu 43 Khoa CNTT Nguyễn Tất Thành University THUẬT TỐN TÌM KHĨA (DẠNG 1) THUẬT TỐN TÌM KHĨA (DẠNG 1) Nhận xét:  Thuật tốn slide trước tìm khóa Nếu cần tìm nhiều khóa, ta thay đổi trật tự loại bỏ phần tử K  Chúng ta cải thiện tốc độ thực thuật toán cách: Trong bước ta gán K=LHS (là tập phần tử có bên vế trái phụ thuộc hàm)  Loại phần tử C, ta có: {D, E, G, H, I}+ ≠ R nên K {C, D, E, G, H, I}  Loại phần tử D, ta có: {C, E, G, H, I}+ = R PTH CG →AE khiến A thuộc {C, E, G, H, I}+ PTH AC →B nên K ={C, E, G, H, I}  Loại phần tử E, ta có: {C, G, H, I}+ = R PTH CG →AE, AC →B, ABC→D nên K = {C, G, H, I}  Loại phần tử G, ta có: {C, H, I}+ ≠ R nên K {C, G, H, I}  Loại phần tử H, ta có: {C, G, I}+ ≠ R nên K {C, G, H, I}  Loại phần tử I, ta có: {C, G, H}+ = R CG →AE, AC →B, ABC→D nên K={C, G, H}  Vậy K={C, G, H} khóa r ( R ) ThS.Phạm Văn Đăng 42 ThS.Phạm Văn Đăng 44 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu THUẬT TỐN TÌM KHĨA (DẠNG 2) Khoa CNTT Nguyễn Tất Thành University THUẬT TỐN TÌM KHĨA (DẠNG 2)  Vào : tập ứng viên siêu khóa lấy từ VT tập PTH F  Ra : khóa tìm Bước 1: Gọi LHS tập thuộc tính nằm vế trái PTH Ở tạm gọi tập ứng viên siêu khóa, để sau ta tìm tập Bước 2: Dùng bao đóng tập thuộc tính tính chất siêu khóa để kiểm tra ứng viên có có phải siêu khóa hay khơng? Nếu khơng phải bỏ qua ứng viên Bước 3:  Nếu ứng viên siêu khóa tiếp tục kiểm tra tập ứng viên  Lặp lại Bước gặp siêu khóa nhỏ Bước 4: Cho đến ta gặp siêu khóa nhỏ khóa dự tuyển (candidate keys) Chọn khóa dự tuyển để làm khóa (primary key) ThS.Phạm Văn Đăng Mơn Cơ sở liệu 45 Khoa CNTT Nguyễn Tất Thành University ThS.Phạm Văn Đăng Môn Cơ sở liệu 47 Khoa CNTT Nguyễn Tất Thành University THUẬT TỐN TÌM KHĨA (DẠNG 2) THUẬT TỐN TÌM KHĨA (DẠNG 2) Ví dụ: Cho lược đồ quan hệ r(R) với R = {A, B, C, D, E, F, G, H, I} tập PTH F ={ f1: AB -> CDEFGH, f2: C -> BEI, f3: G -> H } Anh/Chị tìm tất khóa dự tuyển LĐQH định khóa chính? Xác định tập có 3, hay phần tử ABCG -> có tập phần tử: ABC, ABG, ACG, BCG ABC -> có tập phần tử: AB, AC, BC AB -> có tập phần tử: A, B Bước 1: Sử dụng tập ứng viên siêu khóa lấy từ VT tập PTH  Tập LHS : ABCG Bước 2: Kiểm tra tập để tìm siêu khóa; tập nhỏ để tìm khóa dự tuyển  Kiểm tra ABC ABC+ = ABCDEGHI = R  Kiểm tra ACG ACG+= ABCDEGHI =R  Kiểm tra BCG BCG+= BCGEHI ≠R ? KHÔNG  Kiểm tra ABG ABG+ = ABCDEGHI =R Vậy ABC, ACG, ABG siêu khóa ThS.Phạm Văn Đăng 46 ThS.Phạm Văn Đăng 48 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Mơn Cơ sở liệu THUẬT TỐN TÌM KHÓA (DẠNG 2)  Lặp lại Bước cho ABC:  Xét AB AB+ = ABCDEGHI = R  Xét AC AC+ = ABCDEGHI = R  Xét BC determine A? No BC+ = BCEI ≠R ? KHÔNG Vậy AB AC siêu khóa 49 Mơn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Bài tập 1: Cho LĐQH r(R) với R=ABCD tập PTH F ={AB->C, C ->D, D->A} Anh/Chị tìm tất khóa dự tuyển? Sau chọn khóa dự tuyển làm khóa (primary key) Bài tập 2: Cho LĐQH r( R) với R=ABCD tập PTH F ={AB->C, B->D, D->B} Anh/Chị tìm tất khóa dự tuyển? Sau chọn khóa dự tuyển làm khóa (primary key) ThS.Phạm Văn Đăng Mơn Cơ sở liệu ThS.Phạm Văn Đăng 51 Khoa CNTT Nguyễn Tất Thành University NỘI DUNG THUẬT TỐN TÌM KHĨA (DẠNG 2)  Lặp lại bước cho ABG:  Xét AB AB+=ABCDEGHI = R  Xét AG AG+ = AGH≠R ? KHÔNG  Xét BG BG+= BGH ≠R ? KHÔNG Vậy AB siêu khóa  Tiếp tục lặp bước cho AB:  Xét A A+= A ≠R  Xét B B+= B ≠R Nguyễn Tất Thành University BÀI TẬP  Lặp lại Bước cho ACG:  Xét AC AC+ = ABCDEGHI = R  Xét AG AG+ = AGH≠R ? KHÔNG  Xét CG CG+ = CGBEHI≠R ? KHƠNG Vậy AC siêu khóa ThS.Phạm Văn Đăng Khoa CNTT  Phụ thuộc hàm Vậy AB siêu khóa nhỏ (minimal superkey)  Tiếp tục lặp bước cho AC:  Xét A A+= A ≠R  Xét C C+=CBEI ≠R Vậy AC siêu khóa nhỏ     Hệ tiên đề Armstrong Suy diễn logic tập phụ thuộc hàm Bao đóng tập phụ thuộc hàm Bao đóng tập thuộc tính  Khóa thuật tốn tìm khóa  Bài tốn thành viên  Tương đương tập phụ thuộc hàm  Tóm lại ta có AB AC khóa dự tuyển, chọn hai làm khóa  Phủ tối tiểu phụ thuộc hàm 50 ThS.Phạm Văn Đăng 52 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University BÀI TOÁN THÀNH VIÊN BÀI TỐN THÀNH VIÊN Thành viên có nghĩa tơi thành viên anh Ta có thuật tốn cho tốn thành viên Ta có tập PTH F ta có tập PTH khác X → Y Vấn đề đặt X → Y suy từ F không? Ta ký hiệu F |= XY -> Nghĩa PTH X xác định Y (X  Y) có suy diễn từ F khơng? -> Để suy diễn ta Áp dụng luật Hệ tiên đề Armstrong Ý nghĩa thuật toán:  Vào : tập PTH F PTH XY  Ra : Đúng F |= XY Sai ngược lại  Hàm Member: Cho tập PTH F PTH XY cụ thể, ta xây dựng hàm chạy hoàn toàn tự động Trả ĐÚNG trả SAI Trả ĐÚNG lúc nào, XY suy từ tập PTH F trả SAI khơng làm Chúng ta dùng tính chất bao đóng (Closure) để làm điều Chúng ta tính Closure VẾ TRÁI (Closure(X, F)) kiểm tra VẾ PHẢI (Y) có nằm Closure khơng? Như ĐÚNG ta suy PTH XY từ tập PTH F cách áp dụng luật suy diễn hệ tiên đề Armstrong Có Closure có Member Vậy ta có tốn thành viên sau: Cho tập PTH F PTH X Y cụ thể, làm thuật toán để kiểm tra PTH X Y suy từ F khơng? Chúng ta dựa vào bao đóng tập thuộc tính để làm ThS.Phạm Văn Đăng Mơn Cơ sở liệu 53 Khoa CNTT Nguyễn Tất Thành University BÀI TỐN THÀNH VIÊN Mơn Cơ sở liệu 55 Khoa CNTT Nguyễn Tất Thành University Tương đương tập phụ thuộc hàm Thuật toán Bài toán thành viên Procedure Member Vào: F PTH X →Y Ra: Đúng F |= X →Y Sai nguợc lại Cách thức: Member(F, X →Y) Begin If Y Closure(X, F) Then return true Else 10 return false 11 End ThS.Phạm Văn Đăng ThS.Phạm Văn Đăng  Hai tập PTH F G tương đương với nếu: • Mọi PTH F suy từ G • Mọi PTH G suy từ F • Do F G tương đương F+ = G+  Định nghĩa: F phủ G PTH G suy từ F (G+ F+)  F G tương đương F cover G G cover F 54 ThS.Phạm Văn Đăng 56 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Thuật toán DERIVES kiểm tra F |= G Bài tập kiểm tra tương đương Vào : hai tập PTH F G Ra : Đúng F |= G sai ngược lại Cách thức: DERIVES (F, G) Begin V:= true; For each X →Y G V := V AND member(F, X →Y) Return (V); 10 End  Dựa hàm DERIVES để xây dựng hàm tương đương hai tập PTH Cho tập PTH F G sau: F = { AB -> C, B -> C, A -> D } G = { A -> B, B -> C, C -> D }  Kiểm tra tập PTH tương đương?  Giải thích lý do? Giải: Hai tập PTH F G khơng tương đương  PTH A -> B G suy từ F (Bao đóng A+ F AD khơng chứa B)  PTH C -> D G không suy từ F (Bao đóng C+ F C không chứa D) ThS.Phạm Văn Đăng Môn Cơ sở liệu 57 Khoa CNTT Nguyễn Tất Thành University Thuật toán EQUIVALENCE kiểm tra F tương đương G Vào : hai tập PTH F G Ra : Đúng F tương đương G, sai ngược lại Cách thức: EQUIVALENCE(F, G) Begin V := Derives (F, G) AND Derives(G, F) Return (V) End ThS.Phạm Văn Đăng ThS.Phạm Văn Đăng Môn Cơ sở liệu 59 Khoa CNTT Nguyễn Tất Thành University Phủ tập PTH, tập PTH tương đương  Cho F G tập PTH, ta nói F tương đương với G ký hiệu F ≡ G F+ = G+  Nếu F G tương đương ta nói F phủ G hay G phủ F 58 ThS.Phạm Văn Đăng 60 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Tương đương tập PTH PTH đầy đủ (Fully functional dependence) Cho quan hệ R(ABCDE) với tập PTH: F = {A  C, A  D, CD  E} G = {A  E, A  ABD, CD  E} Hãy chứng minh: F ╞ G G╞F  Xét PTH A  E G suy từ F nhờ vào luật dẫn Armstrong Trong F, ta có:{A  C; A  D} (hợp){A  CD; CD  E} (bắc cầu)  A E  Kết luận: F ╞ G Ví dụ 1: Cho quan hệ KQHT(MaSV, MaMH, Diem) PTH f = { MaSV, MaMH→Diem} Ta nói PTH f phụ thuộc hàm đầy đủ vì: Diem khơng phụ thuộc hàm vào MaSV Diem khơng phụ thuộc hàm vào MaMH mà có Diem phụ thuộc hàm vào MaSV MaMH  Ta nhận thấy F G, hiển nhiên G ╞ F  Kết luận: F ≡ G ThS.Phạm Văn Đăng 61 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Ví dụ 2: Cho quan hệ GiaPha(CHA, ME, CON) PTH f = {CHA, ME -> CON} Ta nói PTH f phụ thuộc hàm đầy đủ vì: CON không phụ thuộc hàm vào CHA CON không phụ thuộc hàm vào ME mà có CON phụ thuộc hàm vào CHA MẸ ThS.Phạm Văn Đăng Môn Cơ sở liệu 63 Khoa CNTT Nguyễn Tất Thành University PTH đầy đủ (Fully functional dependence) Phủ tối tiểu PTH - Minimal Covers of FDs Cho quan hệ r(U), F X,Y U, PTH f: X →Y F đầy đủ với X không tồn X’ X cho F |= X’→Y Tập PTH tối tiểu thỏa điều kiện sau: 1) Mọi PTH F (tức Phủ tối tiểu) có thuộc tính vế phải (RHS) 2) Không thể loại PTH khỏi F mà tập PTH lại tương đương với F 3) Không thể thay PTH X -> A F với PTH Y -> A Y X (Y X) mà có tập PTH tương đương với F (để đảm bảo tất PTH F PTH đầy đủ) Trong đó: r U f F : quan hệ : tập thuộc tính : phụ thuộc hàm : tập phụ thuộc hàm Lưu ý kiểm tra PTH đầy đủ: Một PTH gọi đầy đủ không tồn tập mà lại có PTH từ tập sang vế phải Và kiểm tra tính đầy đủ với PTH mà vế trái có từ hai thuộc tính trở lên -> Bài toán liệt kê tất tập -> Tính bao đóng, bao đóng tập mà lại có chứa vế phải PTH khơng đầy đủ ThS.Phạm Văn Đăng 62 ThS.Phạm Văn Đăng 64 Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Môn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Phủ tối tiểu PTH - Minimal Covers of FDs Ví dụ Nhận xét:  Mọi tập PTH tương đương với phủ tối tiểu đương nhiên có nhiều phủ tối tiểu (rõ ràng việc tính phủ tối tiểu giúp giảm bớt số lượng PTH chí cịn giảm bớt số lượng thuộc tính hai vế trái vế phải) Vậy việc dùng phủ tối tiểu hiệu quả, cần phải nghiên cứu thuật tốn để tính phủ tối tiểu này)  Có thể tương đương với nhiều phủ tiểu  Có thuật tốn để tính phủ tối tiểu Cho tập thuộc tính R = {P, C, H, A, R, T} tập phụ thuộc hàm F sau: F={ P→CHART, CH→PART, C→T, A→R } ThS.Phạm Văn Đăng Môn Cơ sở liệu 65 Khoa CNTT Nguyễn Tất Thành University Anh/Chị hãy: a Tìm phủ tối tiểu R b Tìm tất khố R ThS.Phạm Văn Đăng Mơn Cơ sở liệu Thuật tốn tìm phủ tối tiểu F Khoa CNTT Nguyễn Tất Thành University Ví dụ MINIMALCOVER(F, G)  Vào: tập phụ thuộc hàm F  Ra: G phủ tối thiểu F G:= F Thay PTH X→{ A1, A2, , An} G PTH X → A1, X → A 2, , X → A n FOR EACH PTH X → A G FOR EACH B X IF ( G \ { X → A} ) ( X \ {B}) → A ) tương đương với G Then Thay X → A ( X \ {B}) → A G FOR EACH X → A G IF ( G \ { X → A} ) tương đương với G Then loại X → A khỏi G RETURN (G) END ThS.Phạm Văn Đăng 67 66 Lưu ý: Với bước thuật tốn tìm Phủ tối tiểu  Kiểm tra PTH đầy đủ: Một PTH gọi đầy đủ không tồn tập mà lại có PTH từ tập sang vế phải Và kiểm tra tính đầy đủ với PTH mà vế trái có từ hai thuộc tính trở lên -> Bài tốn liệt kê tất tập -> Tính bao đóng, bao đóng tập mà lại có chứa vế phải thí PTH khơng đầy đủ  Kết luận là: (sai) -> có nghĩa là: PTH đẩy đủ  Kết luận là: (đúng) -> có nghĩa là: PTH đầy đủ ThS.Phạm Văn Đăng 68 Mơn Cơ sở liệu Khoa CNTT Ví dụ Nguyễn Tất Thành University ThS.Phạm Văn Đăng 69 Khoa CNTT Nguyễn Tất Thành University Ví dụ  Bước 3.d: (Xóa thuộc tính H từ CH →A) chứng tỏ C→A từ G (sai)  Bước 3.e: (Xóa thuộc tính C từ CH →R) chứng tỏ H→R từ G (sai)  Bước 3.f: (Xóa thuộc tính H từ CH→R) chứng tỏ C→R từ G (sai)  Bước 3.g: (Xóa thuộc tính C từ CH→T) chứng tỏ H→T từ G (sai)  Bước 3.h: (Xóa thuộc tính H từ CH→T) chứng tỏ C→T từ G (đúng) ThS.Phạm Văn Đăng Khoa CNTT Nguyễn Tất Thành University Ví dụ F = {P→CHART, CH→PART, C→T, A→R } Bước 1: G = F Bước 2: G = { P →C; P →H; P→A; P→R; P→T; CH →P; CH →A; CH →R; CH →T; C →T; A →R } (sau tách vế phải có 11 PTH) Bước 3: Kiểm tra PTH đầy đủ Xóa thuộc tính vế trái PTH mà vế trái có nhiều thuộc tính, ví dụ: CH →P; CH →A; CH →R; CH →T (các PTH mà vế trái có thuộc tính)  Bước 3.a: (Xóa thuộc tính C từ CH →P), chứng tỏ suy H →P từ G (sai)  Bước 3.b: (Xóa thuộc tính H từ CH →P) chứng tỏ suy C→P suy từ G (sai)  Bước 3.c: (Xóa thuộc tính C từ CH →A) chứng tỏ suy H→A từ G (sai) Môn Cơ sở liệu Mơn Cơ sở liệu suy suy suy suy suy 70 Do vậy, vào cuối Bước 3, ta có : G= { P→C; P→H; P→A; P→R; P→T; CH →P; CH →A; CH →R; C→T; A→R } (còn 10 PTH) Loại CH →T Bước 4: Kiểm tra loại bỏ PTH G(áp dụng HTĐ Amstrong) Mỗi lần loại bỏ phát sinh tập PTH G' Bước 4.a: Có thể loại P→C? (khơng) Bước 4.b: Có thể loại P→H? (khơng) Bước 4.c: Có thể loại P→A? (khơng) Bước 4.d: Có thể loại P→R? (được P→A A→R) → bỏ Bước 4.e: Có thể loại P→T? (được P→C C→T) → bỏ Bước 4.f: Có thể loại CH→P? (khơng) Bước 4.g: Có thể loại CH→A? (được, CH→P P→A) → bỏ ThS.Phạm Văn Đăng Môn Cơ sở liệu 71 Khoa CNTT Nguyễn Tất Thành University Bước 4.h: Có thể loại CH→R? (được CH→P P→R) → bỏ Bước 4.i: Có thể loại C→T? (khơng) Bước 4.j: Có thể loại A→R? (khơng)  Do vào cuối Bước 4, ta có: G = { P→C; P→H; P→A; CH -> P; C -> T; A →R }  Kết quả: Phủ tối tiểu F là: G = { P→C; P→H; P→A; CH→P; C→T; A→R} b.Tìm tất khóa G suy tính G+=ACHP+ = ?? ThS.Phạm Văn Đăng 72 Mơn Cơ sở liệu Khoa CNTT Nguyễn Tất Thành University Bài tập Cho lược đồ quan hệ R = {A, B, C, D, E} tập PTH F = {A -> C, BD -> E, B -> D, B -> E, C -> AD} 1) Tìm phủ tối tiểu tập PTH F? 2) Tìm tất khóa dự tuyển R? ThS.Phạm Văn Đăng Môn Cơ sở liệu 73 Khoa CNTT Nguyễn Tất Thành University Chúc Bạn Thành Công ThS.Phạm Văn Đăng 74

Ngày đăng: 20/06/2023, 14:04

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN