Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 20 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
20
Dung lượng
1,11 MB
Nội dung
CHƯƠNG V: PHỤ THUỘC HÀM Nội dung chi tiết Phụ thuộc hàm Hệ tiên đề Amstrong Bao đóng phụ thuộc hàm, tập thuộc tính Bài tốn thành viên Tập PTH tương đương Tập PTH tối thiểu – Phủ tối thiểu Khóa quan hệ 07/11/2012 11:02 AM I Phụ thuộc hàm Định nghĩa: Cho R(U), với R quan hệ U tập thuộc tính Cho X,Y ⊆U, phụ thuộc hàm X → Y (đọc X xác định Y) định nghĩa là: ∀ t, t’ ∈ R t.X = t’.X t.Y = t’.Y (Có nghĩa là: Nếu hai có trị X có trị Y Cách đọc: X xác định Y hay Y phụ thuộc hàm vào X -X gọi vế trái PTH, Y vế phải PTH Phụ thuộc hàm thường ký hiệu FD hay F (Functional Dependencies) 07/11/2012 11:02 AM Ví dụ 1: Trong quan hệ SV(MaSV,Ten,Diachi,Ngaysinh), thuộc tính Ten, Diachi, Ngaysinh phụ thuộc hàm (pth) vào thuộc tính MaSV Mỗi giá trị MaSV xác định giá trị tương ứng thuộc tính Khi đó, viết : MaSV DIACHI MaSV TEN MaSV NGAYSINH 07/11/2012 11:02 AM Ví dụ 2: Cho quan hệ R(A,B,C,D) sau: R (A B C D) a x a y b x b y Cho biết phụ thuộc hàm liệt kê thoả quan hệ R trên? - f1: A A - f2: A B - f3: A C - f4: AC C - f5: A D - f6: D A 07/11/2012 11:02 AM Nhận xét: - Phụ thuộc hàm công cụ để biểu diễn cách hình thức ràng buộc - PTH ứng dụng giải tốn tìm khố, tìm phủ tối thiểu chuẩn hố quan hệ sở liệu - Nếu X Y khơng thể nói Y X - Ví dụ: Có MSV Tên khơng thể khắng định Tên MSV có nhiều sinh viên tên Có MSV Ngaysinh khơng thể khắng định Ngaysinh MSV có nhiều sinh viên sinh ngày 07/11/2012 11:02 AM Biểu diễn phụ thuộc hàm: - Dùng đường nối mũi tên từ thuộc tính vế trái đến thuộc tính vế phải tất phụ thuộc hàm Ví dụ: MƯỢN(Sốthẻ, Mãsốsách, Tênngườimượn, Tênsách, Ngàymượn) - Với phụ thuộc hàm: FD1: Sốthẻ Tênngườimượn FD2: Mãsốsách Tênsách FD3: Sốthẻ, Mãsốsách Ngàymượn Có sơ đồ phụ thuộc hàm sau: MƯỢN Sốthẻ Mã số sách Tên người mượn Tên sách Ngàymượn FD2 FD1 FD3 07/11/2012 11:02 AM II Hệ tiên đề Amstrong Năm 1974, Amstrong đưa hệ luật dẫn hay tính chất phụ thuộc hàm, gọi hệ tiên đề Amstrong nguyên tắc biến đổi pth Định nghĩa: - F tập pth quan hệ R(U) A B pth với A, B U Nói rằng, pth A B suy diễn logic từ F với quan hệ r xác định R thỏa phụ thuộc hàm F thỏa phụ thuộc hàm A B Ví dụ: - Tập phụ thuộc hàm F = { A B, B C} - Ta có phụ thuộc hàm A C phụ thuộc hàm suy dẫn từ tập F 07/11/2012 11:02 AM * Hệ tiên đề Amstrong: Cho X, Y, Z, W U Ký hiệu: XY = X Y Ta có luật sau : Luật phản xạ: Nếu Y X X Y VD: ABC BC Luật bổ sung - tăng trưởng: Nếu X Y XZ VD: Nếu C D ABC ABD Luật bắc cầu: Nếu X Y Y Z X Z VD: Nếu có AB C, C EG AB EG Luật hợp: Nếu X Y X Z X YZ VD: Nếu AB CD AB EF AB CDEF Luật tách: Nếu X Y Z Y X Z VD: Nếu AB CDEF AB CD AB EF Luật tựa bắc cầu: Nếu X Y WY Z XW Z VD: Nếu AB EF DEF G ABD G 07/11/2012 11:02 AM YZ Ví dụ 1: Cho R = ABC tập F = { AB C,C A } Áp dụng hệ tiên đề Amstrong CMR: BC 07/11/2012 11:02 AM ABC 10 Ví dụ 2: Cho lược đồ quan hệ R (A, B, C, D, E, G, H) tập phụ thuộc hàm F = {BD, ABC, CDE, ECGH, GA} Áp dụng hệ tiên đề Amstrong để tìm chuỗi suy diễn cho: AB E AB G Thực hiện: AB C (gt) AB BC (tăng cường thêm B) B D (gt) BC DC (t/c thêm C) CD E (gt) BC E ( bắc cầu 5) AB E (bắc cầu 6) AB EC (hợp 7) EC GH (gt) 10 AB GH ( bắc cầu 9) 11 AB G (tách) 07/11/2012 11:02 AM 11 Ví dụ 3: Cho R= {A, B, C, E, F } Và F= { AB C, C B , ABC E, F A} Áp dụng hệ tiên đề Amstrong CMR: FB E Thực hiện: F A ( gt) FB AB ( tăng cường) AB C (gt) ABC C (tc) ABC E (gt) ABC EC ( hợp 5) AB E ( tách 6) FB E ( bắc cầu 7) 07/11/2012 11:02 AM 12 Ví dụ 4: - Hãy dùng hệ tiên đề Armstrong để chứng minh: - Nếu X Y U V XU YV Chứng Minh: Từ X Có XU Từ U Y ( gt) YU, (tăng trưởng U vào (1) ) V (gt) Có YU YV (tăng trưởng Y vào (3) Có XU YV ( bắc cầu (2) (4) ) 07/11/2012 11:02 AM 13 III Bao đóng Các khái niệm Gọi F tập pth tập thuộc tính U, X U Bao đóng phụ thuộc hàm: tập tất PTH suy diễn logic từ tập pth F, kí hiệu F+ Nhận xét: Nếu F+ = F F họ đầy đủ pth 07/11/2012 11:02 AM 14 Bao đóng tập thuộc tính X: tất thuộc tính A mà phụ thuộc hàm X A suy diễn logic từ F nhờ hệ tiên đề Amstrong Kí hiệu: X+ X+ = { A U | X A F+ } Nhận xét: - X X+ X Y F+ Y X+ => Có nghĩa là: X Y suy diễn từ hệ tiên đề Amstrong Y X+ 07/11/2012 11:02 AM 15 Thuật tốn tìm bao đóng tập thuộc tính Cho X U tập thuộc tính => Tìm X+ Thuật tốn CLOSURE(X,F) -Input: Tập thuộc tính X tập phụ thuộc hàm F -Output: Tìm bao đóng X+ F -Thực hiện: Lần lượt tính X0, X1, X2, …, theo bước sau: Bước 1: Đặt X0 = X Bước 2: Lần lượt xét phụ thuộc hàm F tồn pth Y Z F mà Y Xi Xi+1 = Xi {Z}, ngược lại, đặt Xi+1 = Xi Bước 3: Nếu bước mà khơng tính Xi+1 Xi bao đóng tập thuộc tính X, ngược lại lặp lại bước 07/11/2012 11:02 AM 16 Ví dụ 1: Cho R = (A, B, C, D, E, G) pth F = {AB C, C A, BC D, ACD CG BD, CE AG} Tính: (BD)+ 07/11/2012 11:02 AM B, D EG, BE C, 17 Ví dụ 2: Cho R = (A,B,C,D,E,H) F = { AB → C, BC → AD, D → E, CE → B} Tính (AB)+? 07/11/2012 11:02 AM 18 Ví dụ 3: U = (ABCDEGH) tập pth F ={A D, AB DE, CE G, EH} - Tính bao đóng X+ với X= (AB ) Ví dụ 4: Cho R = { A, B, C, D, E} Và F = {A C, B C, CD, DE C, CE A} - Tính bao đóng X+ với X = ( AE) 07/11/2012 11:02 AM 19 Bài tập áp dụng: Cho LĐQH p = (U,F) với U = ABCDE, F={A C, BC D, D E, E A } Tính: - (AB)+ - (BD)+ - (D)+ - Kiểm tra xem CE->A; DE->A có thành viên F 07/11/2012 11:02 AM 20