Phủ tối thiểu và tìm phủ tối thiểu

4 4.8K 96
Phủ tối thiểu và tìm phủ tối thiểu

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

Thông tin tài liệu

H-íng dÉn «n tËp CSDL quan hÖ Tµi liÖu tham kh¶o Trang 23 DẠNG 6: PHỦ TỐI THIỂU CỦA MỘT TẬP PHỤ THUỘC HÀM Bài toán: Cho quan hệ R(U, F). Hỏi rằng tập F đã tối thiểu chưa? Vì sao? Nếu chưa hãy tìm một Phủ tối thiểu của F. Kiến thức liên quan: Ta chú ý tới một số khái niệm sau: [1]. Phụ thuộc hàm dư thừa: Phụ thuộc hàm X → Y thuộc F được gọi là dư thừa trong F nếu ta loại bỏ nó ra khỏi F ta vẫn thu được nó từ các phụ thuộc hàm còn lại trong F. VD: F = {AB → C, B → C, C → D, B → D} Có AB → C dư thừa vì nếu có B → C thì cũng có AB → C. Có B → D dư thừa vì nếu có B → C C → D thì cũng có B → D. Để phát hiện phụ thuộc hàm dư thừa ta chú ý: Nếu trong tập F có 2 phụ thuộc hàm cùng có vế phải giống nhau thì trong 2 phụ thuộc hàm đó có thể tồn tại 1 phụ thuộc hàm dư thừa. Ngược lại, nếu X → Y mà trong F không còn phụ thuộc hàm nào cũng có vế phải là Y (cũng suy ra Y) thì nó không thể dư thừa. Cách xác định phụ thuộc hàm dư thừa : Phương pháp này được minh họa bằng ví dụ sau : Cho F = {AB → C, AB → D, B → C, D → EG, AB → G}. Hãy xác định phụ thuộc hàm dư thừa trong F. B1. Ta chia các phụ thuộc hàm thành các cột theo nguyên tắc: Các phụ thuộc hàm có vế phải giống nhau sẽ được xếp chung vào một cột: AB → C B → C AB → D D → E D → G AB → G B2. Loại bỏ các cột có 1 phụ thuộc hàm, ta còn: Cột 1 Cột 2 AB → C B → C D → G AB → G B3. Xét từng cột để xác định phụ thuộc hàm dư thừa: giả sử một cột nào đó có các phụ thuộc hàm dạng: X → Z Y → Z Để chứng minh Y → Z là thừa ta chỉ việc chứng minh Y → X (vì nếu Y → X X → Z thì hiển nhiên ta có Y → Z, do vậy cho Y → Z là thừa). Do đó ta chỉ cần tính Y + nếu có chứa X tức là Y → Z thừa. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. H-íng dÉn «n tËp CSDL quan hÖ Tµi liÖu tham kh¶o Trang 24 Tuy nhiên, cần chú ý khi tính Y + , ta không được sử dụng phụ thuộc hàm Y → Z (tức phải loại bỏ nó ra khỏi F rồi mới tính Y + ). Lý do thật đơn giản vì không thể sử dụng một vật dư thừa để chứng minh chính vật đó là dư thừa. Xét cột 1: Dễ dàng AB → B ta kết luận AB → C là thừa. Xét cột 2: Dễ thấy AB → D, do vậy AB → G là thừa. Phương pháp trên tỏ ra khá phức tạp, tuy nhiên, nó giúp hình thành kỹ năng nhận biết phụ thuộc hàm dư thừa, khi có kỹ năng đó, ta có khả năng nhận ra ngay phụ thuộc hàm dư thừa mà không cần dùng tới phướng pháp. Cần chú ý là phương pháp trên không cần trình bày vào bài làm. [2]. Thuộc tính vế trái dư thừa: Phụ thuộc hàm AB → C có thuộc tính vế trái A dư thừa nếu ta chứng minh được B → C. Ví dụ: F={A→B, AB→C, B→ E, AE → G} Xét AB → C có B dư thừa. Thật vậy, ta có thể chứng minh A → C (A → B; A → AB; AB → C; AB → C) Xét AE → G có E dư thừa. Thật vậy, ta có thể chứng minh A → G (A→B; B → E; A → E; A → AE; AE → G; A → G) Nếu phụ thuộc hàm nào có vế trái có chỉ 1 thuộc tính thì nó không có thuộc tính vế trái dư thừa. Ngược lại nếu phụ thuộc hàm nào có vế trái từ hai thuộc tính trở lên thì có thể có thuộc tính vế trái dư thừa. Cách xác định thuộc tính vế trái dư thừa: Phương pháp này cũng được minh họa bằng ví dụ sau : Cho F = {A → C, AC → D, B → C, C → G, BG → E}. Hãy xác định thuộc tính vế trái dư thừa trong F. B1 : Chia các phụ thuộc hàm làm 2 cột theo nguyên tắc : các phụ thuộc hàm có vế trái là 1 thuộc tính được xếp vào một cột, cột còn lại là các phụ thuộc hàm có vế trái nhiều thuộc tính : Cột 1 Cột 2 A → C B → C, C → G AC → D BG → E B2. Chỉ xét các phụ thuộc hàm có vế trái nhiều thuộc tính (cột 2). Giả sử ta xét phụ thuộc hàm có dạng XY → Z. Ta cần kiểm tra lần lượt xem X hay Y có dư thừa hay không. Giả sử ta kiểm tra tính dư thừa của Y, ta tính X + . Nếu X + chứa Y thì Y thừa. Xét AC → D, dễ thấy A + chứa C, do đó C thừa. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. H-íng dÉn «n tËp CSDL quan hÖ Tµi liÖu tham kh¶o Trang 25 Xét BG → E, dễ thấy B + chứa G, do đó G thừa. Tuy nhiên phương pháp trên chỉ giúp ta phát hiện ra thuộc tính vế trái dư thừa thường không được trình bày vào bài làm. Khi trình bày, xét XY → Z, nếu muốn chứng minh Y là thừa, ta cần chứng minh X → Z. Nhưng do ta đã biết chắc chắn Y thừa bằng cách sử dụng phương pháp trên nên việc chứng minh X → Z là rất đơn giản (chỉ việc tính X + ). Khi trình bày, cần viết những gì? Xin xem ví dụ trong phần sau. [3]. Tập phụ thuộc hàm tối thiểu: Tập F được gọi là tối thiểu nếu nó thoả mãn đồng thời 3 điều kiện sau: - Không tồn tại phụ thuộc hàm trong F mà vế phải có nhiều thuộc tính. - Không tồn tại phụ thuộc hàm dư thừa trong F. - Không tồn tại phụ thuộc hàm trong F có thuộc tính vế trái dư thừa. Một vấn đề đặt ra là nếu F chưa tối thiểu thì hãy biến đổi F để thu được một tập phụ thuộc hàm tối thiểu từ F. Giải thuật tìm tập phụ thuộc hàm tối thiểu từ F gồm 3 bước: B1: Nếu trong F có tồn tại một phụ thuộc hàm mà vế phải nhiều thuộc tính thì ta tách phụ thuộc hàm đó thành nhiều phụ thuộc hàm sao cho mỗi phụ thuộc hàm đều có vế phải 1 thuộc tính. Kết quả ta thu được tập F1. B2: Loại bỏ các phụ thuộc hàm dư thừa trong F1 ta thu được F2. B3: Loại bỏ các thuộc tính vế trái dư thừa trong F2 ta thu được F3. F3 là tập phụ thuộc hàm tối thiểu thu được từ F. F3 gọi là một phủ tối thiểu của F. Ví dụ: Cho tập phụ thuộc hàm sau: F={A→C, AB→C, B→ EG, BE → D, C → H, A → H} Hỏi F đã tối thiểu chưa? vì sao? nếu chưa hãy tìm một phủ tối thiểu của F. Trả lời: F chưa tối thiểu vì còn tồn tại B → EG có vế phải 2 thuộc tính. Tìm Phủ tối thiểu của F: B1: Tách các phụ thuộc hàm có vế phải nhiều thuộc tính thành các phụ thuộc hàm có vế phải 1 thuộc tính ta thu được: F1 ={A→C, AB→C, B→ E, B → G, BE → D, C → H, A → H} B2: Loại bỏ phụ thuộc hàm dư thừa trong F2: AB → C là thừa vì nếu có A → C thì cũng có AB → C. A → H là thừa vì nếu có A → C C → H thì cũng có A → H. Vậy ta thu được: F2 ={A→C, B→ E, B → G, BE → D, C → H} Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. H-íng dÉn «n tËp CSDL quan hÖ Tµi liÖu tham kh¶o Trang 26 B3: Loại bỏ thuộc tính vế trái dư thừa: Xét BE → D có E thừa. Thật vậy, ta sẽ chứng minh B → D. B → E (gt) B → BE (TT) BE → D (gt) B → D (BC) (hoặc có thể tính B + = {BEGD} do vậy B → D) Vậy ta thu được: F3 = ={A→C, B→ E, B → G, B → D, C → H} F3 là một phủ tối thiểu của F. Chú ý: Với một tập phụ thuộc hàm F đã cho có thể có nhiều phủ tối thiểu khác nhau của F tuỳ thuộc vào thứ tự loại bỏ các phụ thuộc hàm dư thừa hoặc thuộc tính vế trái dư thừa. Generated by Foxit PDF Creator © Foxit Software http://www.foxitsoftware.com For evaluation only. . sao? nếu chưa hãy tìm một phủ tối thiểu của F. Trả lời: F chưa tối thiểu vì còn tồn tại B → EG có vế phải 2 thuộc tính. Tìm Phủ tối thiểu của F: B1: Tách. DẠNG 6: PHỦ TỐI THIỂU CỦA MỘT TẬP PHỤ THUỘC HÀM Bài toán: Cho quan hệ R(U, F). Hỏi rằng tập F đã tối thiểu chưa? Vì sao? Nếu chưa hãy tìm một Phủ tối thiểu

Ngày đăng: 29/09/2013, 04:20

Hình ảnh liên quan

Phương pháp trên tỏ ra khá phức tạp, tuy nhiên, nó giúp hình thành kỹ năng nhận biết  phụ  thuộc  hàm dư  thừa,  và  khi  có  kỹ  năng  đó,  ta  có  khả năng  nhận  ra  ngay  phụ  thuộc hàm dư thừa mà không cần dùng tới phướng pháp - Phủ tối thiểu và tìm phủ tối thiểu

h.

ương pháp trên tỏ ra khá phức tạp, tuy nhiên, nó giúp hình thành kỹ năng nhận biết phụ thuộc hàm dư thừa, và khi có kỹ năng đó, ta có khả năng nhận ra ngay phụ thuộc hàm dư thừa mà không cần dùng tới phướng pháp Xem tại trang 2 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan