Xem mẫu

  1. CHƯƠNG IV: PHỤ THUỘC HÀM
  2. I. Giới thiệu ¡ Functional Dependency ¡ Phụ thuộc hàm là khái niệm được xây dựng để mô tả các ràng buộc logic trong CSDL - là công cụ để biểu diễn các ràng buộc logic giữa các thuộc tính của quan hệ 8/9/21 8:06 AM 2
  3. *Định nghĩa PTH ¡Cho quan hệ R(U), trong đó U = {A1, A2,…An} là tập thuộc tính. Cho X,Y là tập thuộc tính con thuộc U ¡Nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X, ký hiệu X®Y, nếu với mọi quan hệ (bộ) r xác định trên R(U) và với hai bộ t1 và t2 bất kỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y] ¡Cách đọc khác: X xác định duy nhất Y (hay X kéo theo Y) -X gọi là vế trái của PTH, Y là vế phải acủa PTH ¡Ký hiệu: F:= { f : Lj → Rj | Lj, Rj ⊆ Ω } là tập các phụ thuộc hàm trên các thuộc tính Ω 8/9/21 8:06 AM 3
  4. ¡ Ví dụ: HOADON (soHD, NgayLap, TongGiaTri) CHITIET_HOADON (SoHD, MaHang, SoLuong, DonGia, ThanhTien) - SoHD ® NgayLap - SoHD ® TongGiaTri - SoHD, MaHang ® SoLuong - SoHD, MaHang ® DonGia - SoHD, MaHang ® ThanhTien 8/9/21 8:06 AM 4
  5. ¡ Biểu diễn phụ thuộc hàm: - Liệt kê các thuộc tính, dùng đường nối mũi tên từ các thuộc tính vế trái đến các thuộc tính vế phải của tất cả các 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 các 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 như sau: Mã số Tên người Tên sách Ngàymượn Sốthẻ sách mượn FD2 FD1 FD3 8/9/21 8:06 AM 9
  6. II. Hệ tiên đề Amstrong ¡ Năm 1974, Amstrong đưa ra hệ luật dẫn hay các tính chất của phụ thuộc hàm, gọi là hệ tiên đề Amstrong ¡ Hệ tiên đề Amstrong gồm các nguyên tắc biến đổi của PTH 8/9/21 8:06 AM 13
  7. * Hệ tiên đề Amstrong: ¡ Cho X, Y, Z, W Í U. Ký hiệu: XY = XÈY. Ta có các luật sau : 1. Luật phản xạ: Nếu Y Í X thì X® Y VD: MaNV, HoTen, NgaySinh ® HoTen, NgaySinh 2. Luật bổ sung - gia tăng: Nếu X®Y thì XZ®YZ VD: Nếu MaNV ® HoTen thì MaNV, NgaySinh ® HoTen, NgaySinh 3. Luật bắc cầu: Nếu X®Y và Y®Z thì X® Z VD: Nếu có MaNV, Hoten ® MaP và MaP ® TenPhong,DiaChi thì MaNV, Hoten ® TenPhong, DiaChi 4. Luật tựa bắc cầu: Nếu X®Y và WY®Z thì XW®Z VD: MaNV ® HoTen và HoTen, NgaySinh ® HSL thì MaNV, NgaySinh ® HSL 5. Luật hợp: Nếu X®Y và X®Z thì X®YZ VD: MaSV ® HoTen, MaSV ® NgaySinh thì MaSV ® HoTen, NgaySinh 6. Luật tách: Nếu X®Y và Z Í Y thì X®Z VD: MaSV ® HoTen, NgaySinh thì MaSV ® HoTen, MaSV ® NgaySinh 8/9/21 8:06 AM 14
  8. ¡ Ví dụ: Cho R = {ABC} và tập F = { AB®C, C®A }. Áp dụng hệ tiên đề Amstrong CMR: BC®ABC Thực hiện: 1. Từ C ® A 2. Có: BC ® AB (luật tăng cường thêm B) 3. Từ AB ® C 4. Có: AB ® ABC (luật tăng cường thêm AB) 5. Có BC ® ABC (bắc cầu từ (2) và (4)) Vậy tồn tại BC®ABC 8/9/21 8:06 AM 17
  9. ¡ Ví dụ: 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 8/9/21 8:06 AM 18
  10. III. Bao đóng - Closure 1. Các khái niệm cơ bản ¡ Gọi F là tập các pth trên tập thuộc tính U, X Í U ¡ Bao đóng của tập thuộc tính X: là tất cả các thuộc tính A mà phụ thuộc hàm X ® A có thể được suy diễn logic từ F nhờ hệ tiên đề Amstrong. Kí hiệu: X+ X+ = { AÎU | X ® A Î F+ } ó Là tập tất cả các thuộc tính A mà được suy ra từ X ¡ Bao đóng của phụ thuộc hàm: là tập tất cả các PTH được suy diễn logic từ tập pth F - F+ := {X→Y | X,Y ⊆U và X→Y được suy dẫn logic từ F} - Nếu F+ = F thì F là họ đầy đủ của các pth 8/9/21 8:06 AM 20
  11. 2. Thuật toán tìm bao đóng của tập thuộc tính ¡Closure of a set attributes ¡Các bước: - Bước 0: Đặt G = F và Gán X0 = X (i=0) - Bước i (i =1): Chọn phụ thuộc hàm A®B Î G Ÿ Nếu A Í Xi-1 * Nếu B Ë Xi-1 khi đó Xi = Xi-1 È B với i = 2, 3, … * G=G–{A®B} Ÿ Lặp lại bước i Ÿ Thuật toán dừng kiểm tra nếu G = ᴓ - Bước n: Tập Xi cuối cùng là kết quả Xi = Xi+1 = Xi+2 = X+ 8/9/21 8:06 AM 21
  12. ¡ Ví dụ: U = (ABCDEGH) và tập pth F = {A à D, AB à DE, CE àG, EàH } - Tính bao đóng X+ với X = (AB) 8/9/21 8:06 AM 22
  13. Ví dụ: ¡ Ví dụ: Cho R = { A, B, C, D, E} Và F = {AàC, BàC,CàD,DEàC,CEàA } - Tính bao đóng X+ với X = (AE) 8/9/21 8:06 AM 23
  14. Ví dụ: ¡ Cho Q+ = ABCDEG ¡ F = {AB->C; D->EG; C->A; BE->C; BC->D; CG->BD; ACD->B; CE->AG } Cho X = BD. Tính (BD)+ 8/9/21 8:06 AM 24
  15. Ví dụ: ¡ Cho Q+ = ABCDEG F = {AB->C; D->EG; C->A; BE->C; BC->D; CG->BD; ACD->B; CE->AG } Cho X = AD Tính bao đóng (AD)+ 8/9/21 8:06 AM 25
  16. 3. Bài toán thành viên ¡ Dùng để xác định một phụ thuộc hàm bất kỳ nào đó có là thành viên của tập phụ thuộc hàm F đã cho hay không ó phụ thuộc hàm được suy dẫn từ F ¡ Thuật toán kiểm tra X®Y là thành viên của F: - Cách 1: Áp dụng các quy tắc biến đổi của Hệ tiên đề Amstrong - Cách 2: Tính X+. So sánh X+ với Y nếu YÍX+ thì khẳng định X®Y là thành viên của tập phụ thuộc hàm F, ngược lại không phải là thành viên 8/9/21 8:06 AM 26
  17. ¡ Ví dụ: Cho U = (ABCDEI) và F = { AB ® E, BE ® I, E ® C, CI ® D } - Chứng minh: AB ® CD ¡ Ví dụ: Cho R = { A, B, C, D, E, G, H } và F= { AB à C, Bà D, CDàE, CE à GH, Gà A} - Chứng minh rằng: AB à G 8/9/21 8:06 AM 27
  18. IV. Tập phụ thuộc hàm tương đương ¡ Hai tập pth F và G được gọi là tương đương nếu: - mọi pth của F đều có thể suy được từ G - mọi pth của G đều có thể suy được từ F có nghĩa là F+ = G+ ¡ Khi đó ta nói F phủ G (và G phủ F). ¡ Kí hiệu: F º G 8/9/21 8:06 AM 30
  19. Thuật toán ¡ Kiểm tra mọi PTH của F suy từ G: "X ® YÎF, tính X+ từ G, sau đó kiểm tra xem YÎ X+ ó Tính bao đóng của tất cả vế trái của F dựa trên tập PTH của G và kết luận dựa vào vế phải ¡ Kiểm tra mọi PTH của G suy từ F: "X ® YÎG, tính X+ từ F, sau đó kiểm tra xem YÎ X+ ó Tính bao đóng của tất cả vế trái của G dựa trên tập PTH của F và kết luận dựa vào vế phải 8/9/21 8:06 AM 31
  20. ¡ Ví dụ: Xét hai tập phụ thuộc hàm F = { A ® C, AC ® D, E® AD, E ® H } và G = { A ® CD, E ® AH } CMR: F và G là tương đương với nhau 8/9/21 8:06 AM 32
nguon tai.lieu . vn