QUAN HỆ Relational Database DesigningPhần V – PHỦ Cover CỦA TẬP PHỤ THUỘC HÀM... F được gọi tắt là có vế trái không dư thừa, nếu F không chứa PTH có vế trái dư thừa... Tập phụ thuộc hà
Trang 1QUAN HỆ (Relational Database Designing)
Phần V – PHỦ (Cover) CỦA TẬP PHỤ
THUỘC HÀM
Trang 2Một số định nghĩa
Cho F, G là 2 tập phụ thuộc hàm,
F và G gọi là tương đương nếu và chỉ nếu
F+=G+
Ký hiệu : F ≡ G
F gọi là phủ G nếu và chỉ nếu
F+ ⊇ G+
Trang 3Thuật toán kiểm tra F ≡ G
Bước 1 : Tính F+, G+
Bước 2 : Nếu F+ = G+, => F ≡ G
Trang 4Phủ tối thiểu –Tập Phụ
thuộc hàm không đầy đủ
Cho lược đồ Q, tập PTH F, ZY ∈ F
ZY gọi là có vế trái dư thừa hay Y phụ thuộc không
đầy đủ vào Z hay ZY là phụ thuộc hàm không đầy
đủ nếu và chỉ nếu :
∃A ⊂ Z: F ≡ (F \ {ZY}) ∪ {(Z-A)Y}
Ngược lại, ZY gọi là phụ thuộc hàm đầy đủ hay
không có vế trái dư thừa.
F được gọi (tắt) là có vế trái không dư thừa, nếu F
không chứa PTH có vế trái dư thừa
Trang 5Phụ thuộc hàm không đầy đủ - Ví dụ
Cho Q(ABC), F={ABC, BC}
Xét ABC :
F’ = F – {ABC} = {BC}
(AB-A)C = {BC}
=> F’ = (F – {ABC}) ∪ {(AB-A)C} =
{BC}
Tính (F’)+ , ta có (F’)+ = {ABC,BC}
Tính F+ = F = {ABC, BC}
=> F+ = (F’)+
=> ABC là phụ thuộc hàm có vế trái dư thừa
Trang 6PTH không đầy đủ
Bước 1 : Tính F+
Bước 2 : Duyệt tập F, với mọi d = XY ∈ F : Bước 2.1 : Duyệt các tập con X’ ≠∅ của X :
Nếu X’Y ∈ F+ : thay X = X’, lặp lại 2.1
Trang 7Tập phụ thuộc hàm có vế phải
1 thuộc tính
• Định nghĩa : F được gọi là tập phụ thuộc hàm
có vế phải 1 thuộc tính nếu và chỉ nếu mọi phụ
thuộc hàm trong F đều có vế phải chỉ 1 thuộc
tính.
• Ví dụ : F = {ABC,BC,ABD}, ta tách các phụ thuộc hàm trong F để F thỏa tiêu chuẩn là tập phụ thuộc hàm có vế phải 1 thuộc tính :
F = {AB, AC, BC, ABD}
Trang 8Tập phụ thuộc hàm không dư thừa
• Định nghĩa : F được gọi là tập phụ thuộc
hàm không dư thừa
Không ∃ F’ ⊂ F, F’ ≡ F Ngược lại, F được gọi là tập phụ thuộc hàm
dư thừa.
• Ví dụ : F = {ABC, BD, ABD}
F dư thừa vì F ≡ F’ = {ABC, BD}
Trang 9PTH dư thừa
Duyệt từng PTH XY thuộc F :
Nếu (F-{XY}) |= XY thì F = F-{XY}
Ví dụ : F = {ABC, BD, ABD}
Xét ABC : {BD, ABD} không thể |= ABC
Xét BD : {ABC, ABD} không thể |= BD
Xét ABD : {ABC,BD} |= ABD vì :
ABC => AB, do BD => AD => ABD
Vậy ABD là dư thừa trong F, => F = {ABC,BD}
Trang 10Tập PTH tối thiểu
Định nghĩa : F được gọi là một tập PTH tối thiểu
(hay F là 1 phủ tối thiểu) nếu và chỉ nếu F
thỏa 3 điều kiện sau :
1 F là tập PTH có vế trái không dư thừa.
2 F là tập PTH có vế phải 1 thuộc tính.
3 F là tập PTH không dư thừa.
Trang 11Thuật toán tìm Phủ tối thiểu
Bước 1 :
Loại khỏi F các PTH có vế trái dư thừa
Bước 2 :
Tách các PTH có vế phải nhiều hơn 1 thuộc tính thành các PTH có vế phải 1 thuộc tính
Bước 3 :
Loại khỏi F các PTH dư thừa
⇒Luôn tìm được ít nhất 1 PTH tối thiểu của 1 tập PTH bất kỳ
⇒Có thể tìm được nhiều PTH tối thiểu của 1 tập PTH bất kỳ
Trang 12Thuật toán tìm PTT – Ví dụ
Input : Q(ABCD), F = {ABCD, BC, CD}
Output : Fm = PTT của F
Bước 1 :
ABCD là PTH không đầy đủ, vì A là dư thừa trong vế trái: BC, CD => BCD
=> F = {BCD, BC, CD}
Bước 2 :
F = {BC, BD, BC, CD}
Bước 3 :
F = {BC, CD}
Trang 13Khóa(Key) của lược đồ quan hệ
Cho Q(A1,A2,…,An), tập PTH F, K là 1 tập con của
Q+
Định nghĩa : K là 1 siêu khóa của Q nếu
KF+ = Q+
Định nghĩa : K là 1 khóa của Q nếu
• KF+ = Q+
• Không tồn tại K’ ⊂ K , K’F+ = Q+
Trang 14Thuật toán tìm khóa của LDQH
Input : Lược đồ quan hệ Q, tập PTH F
Output : K là 1 khóa của Q
Bước 1 : gán K = Q+
Bước 2 : Duyệt các thuộc tính A trong K,
_ Tính K’+ với K’ = K-A
_ Nếu K’+ = Q+, gán K = K’
Khóa K tìm được có thể không là khóa duy nhất của Q
Trang 15Tính chất của khóa
Ký hiệu :
• Tập nguồn (TN) : chứa tất cả các thuộc tính chỉ
xuất hiện ở vế trái của các PTH trong F.
• Tập đích (TD) : chứa tất cả các thuộc tính chỉ
xuất hiện ở vế phải của các PTH trong F.
• Tập trung gian (TG) = Q+ - TN – TD
Tính chất : Nếu K là 1 khóa của Q, thì
TN ⊆ K và TD ∩ K = ∅
Trang 16Tính chất của khóa – Chứng minh
Chứng minh TN ⊆ K :
Giả sử TN không ⊆ K, => tồn tại 1 PTH XY ∈ F
và X không ⊆ K và không tồn tại 1 PTH ZV
∈ F sao cho X ⊆ V
Dựa trên thuật toán tìm bao đóng của tập thuộc
tính K => X không xuất hiện trong Ki nào =>
X ⊄ K+F => trái với giả thiết (K là khóa, nên
X ⊂ K+F)
Trang 17Tính chất của khóa – Chứng minh (t.t)
Chứng minh TD ∩ K = ∅ :
Giả sử TD ∩ K ≠ ∅ => ∃ A: A ∈ TD ∧ A ∈ K
A ∈ TD => tồn tại 1 PTH XA ∈ F (1)
A ∈ K => K+=(K-A)+∪ A ;
X ⊆ K+X ⊆ (K-A)+∪ A ;
A ∉ X vì XA không là PTH hiển nhiên (xem slide 4 chương 4) => X ⊆ (K-A)+ => K-AX (2)
(1) và (2) => K-AA => (K-A)+ = [(K-A) ∪ A]+=K+
=> vô lý vì K là khóa.
Trang 18Thuật toán tìm tất cả các khóa
Bước 1 : Tạo tập TN, TG
Bước 2 : Nếu TG=∅ => Q chỉ có 1 khóa K = TN, kết thúc thuật toán
Bước 3 : Tìm tất cả tập con Xi của TG, đặt Si=TN∪Xi , tính
Si+ Gọi L là tập tất cả các Si
Bước 4 : Duyệt tập Si, nếu Si+<>Q+ thì bỏ Si khỏi L
Bước 5 : Với mọi Sk,Sl ∈ L, nếu Sk ⊆Sl thì bỏ Sk khỏi L
Tập L còn lại chính là tập tất cả các khóa của Q