NỘI DUNG• PHỤ THUỘC HÀM • BÀI TOÁN TÌM PHỦ TỐI THIỂU • BÀI TOÁN TÌM KHÓA Pth là một công cụ biểu diễn một cách hình thức một dạng ràng buộc tòan vẹn... PHỤ THUỘC HÀM • Khái niệm phụ t
Trang 1CHƯƠNG 5
PHỤ THUỘC HÀM
Functional dependency
Trang 2NỘI DUNG
• PHỤ THUỘC HÀM
• BÀI TOÁN TÌM PHỦ TỐI THIỂU
• BÀI TOÁN TÌM KHÓA
Pth là một công cụ biểu diễn một cách hình thức
một dạng ràng buộc tòan vẹn
Trang 3PHỤ THUỘC HÀM
• Khái niệm phụ thuộc hàm
• Bao đóng của một tập phụ thuộc hàm F
• Bộ luật dẫn AMSTRONG
• Bao đóng của tập thuộc tính X
• Thuật toán tìm F+
Trang 4Xét ví dụ (sgk) : Cho quan hệ Phân công
Trang 5Trong thế giới thực luôn có những qui tắc hoạt động :
- Mỗi máy bay có một giờ khởi hành duy nhất
- Nếu biết phi công, Ngày và giờ khởi hành thì biết được máy bay do phi công này lái
- Nếu biết máy bay, ngày khởi hành thì biết phi công lái
chuyến bay đó
Những qui tắc hoạt động trên là một loại ràng buộc , được gọi
là phụ thuộc hàm , và có thể phát biểu lại như sau :
MAYBAY xác định GIOKHHay GIOKH phụ thuộc hàm vào MAYBAY
Được ký hiệu
f1: {MAYBAY}→ GIOKH
f2: {PHICONG,NGAYKH,GIOKH}→ MAYBAY
f3: {MAYBAY,NGAYKH}→ PHICONG
Trang 6 Định nghĩa phụ thuộc hàm
Cho lược đồ quan hệ Q(A1,A2,…,An)
X, Y là hai tập con của Q + = {A1,A2,…,An}
r là quan hệ trên Q
t1, t2 là hai bộ bất kỳ trên r
X → Y ⇔ ( t1.X = t2.X ⇒ t1.Y= t2.Y )
- Nếu ∃ t1,t2 ∈ r , sao cho t1.X = t2.X và t1.Y ≠ t2.Y
ta nói : pth X → Y không thỏa trên r
→
Trang 7a1 b1 c1 d1 e1 a1 b2 c2 d1 d1 a2 b1 c3 d3 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1
Phụ thuộc hàm nào sau đây thỏa r (A , B , C , D , E)
Trang 8Ví duï: phanCong(PC, MB, N, G) , F ={(1),(2),(3)}
Ñònh nghóa: : Phụ thuộc hàm X → Y được suy diễn logic từ
F nếu một lược đồ quan hệ Q thỏa mãn tất cả các phụ thuộc hàm của F thì cũng thỏa phụ thuộc hàm X → Y
2 Phụ thuộc hàm được suy diễn logic từ F
Bao đóng của một tập phụ thuộc hàm F
Trang 9 Bao đóng F + của F : là tập tất cả các phụ thuộc hàm được suy diễn logic từ F
Luật dẫn để suy ra phụ thuộc hàm hệ quả từ F :
f’ là phụ thuộc hàm suy từ F qua luật dẫn (ký hiệu F f’ ) nếu
Trang 10Cho quan hệ Q(Q + ) X,Y,Z,W là các tập thuộc tính của Q +
Hệ tiên đề Amstrong gồm các luật sau
(F1) Luật phản xạ (reflexive rule):
Nếu Y ⊆ X thì X → Y (F2) Luật thêm vào (augmentation rule):
Nếu X → Y thì XZ → Y trong đó ký hiệu XZ thay cho X∪ Z
(F3) Luật bắc cầu (transitive rule):
Nếu X → Y và Y → Z thì X → Z
Các luật dẫn khác suy từ (F1), (F2), (F3)
(F4) Bắc cầu giả : nếu X → Y và YW → Z thì XW →
Z.
(F5) Luật hội : nếu X → Y và X → Z thì X → YZ
3 Bộ Luật Dẫn AMSTRONG (Hệ tiên đề Amstrong)
Trang 11Luật phản xạ B ⊆ AB AB → B
Luật thêm vào A → DE AB → DE
AB → DEB ABC → DEB
Trang 12Luật phân rã: gỉa sử có t1.X = t2.X (1)
⇒ t1.YZ = t2.YZ (do X → YZ)
⇒ t1.X = t2.X và t1.Z = t2.Z (2)
Trang 15Cho Q là lược đồ quan hệ Q( Q + ), F là tập các phụ
thuộc hàm định nghĩa trên Q , gọi X, A i ⊆ Q +
Bao đóng của tập thuộc tính X dựa trên F ký hiệu
là X + (hoặc X +
F )
X +
F = ∪ A i với X → A i là phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề Armstrong
Trang 16Thuật toán tìm bao đóng X+: Tính liên tiếp tập các
tập thuộc tính X 0 ,X 1 ,X 2 , theo phương pháp sau:
Bước 1: X 0 = X
Bước 2: lần lượt xét các phụ thuộc hàm của F
Nếu Y→ Z có Y ⊆ X i thì X i+1 = X i ∪ Z Loại phụ thuộc hàm Y → Z khỏi F
Bước 3: Nếu ở bước 2 không tính được X i+1
thì X i chính là bao đóng của X Ngược lại lặp lại bước 2
Trang 18Xét f1, f4 :không thỏa vì có vế trái không nằm trong X3
Trang 205 Thuật toán tìm F+
Thuật toán cơ bản
Để tính bao đóng F+ của tập các phụ thuộc hàm F ta thực hiện các bước sau:
• Bước 1: Tìm tất cả tập con của Q+
• Bước 2: Tìm tất cả các phụ thuộc hàm có thể có của Q
• Bước 3: Tìm bao đóng của tất cả tập con của Q
• Bước 4: Dựa vào bao đóng của tất cả các tập con đã tìm
để xác định phụ thuộc hàm nào thuộc F+
Thuật toán cải tiến
Dựa vào thuật toán cơ bản trên, ta nhận thấy có thể tính F+ theo các bước sau:
Bước 1: Tìm tất cả tập con của Q+
Trang 221 Hai tập phụ thuộc hàm tương đương
Bổ đề : F ≡ G nếu và chỉ nếu F |= G và G |= F
Nếu F ≡ G ⇒ F F = G và G G G = F
∀g∈ G +, g: X → Y Y ⇒ g∈ F + ⇒ F F = g
Do đó ∀g∈ G thì F= g hay F = G Tương tự ∀f∈ F thì G = f hay G = F
Nếu F = G và G G G = F ⇒ F F ≡ G G
Tập phụ thuộc hàm F và G tương đương nếu F+ = G+
ký hiệu F ≡ G
Trang 23Thuật tóan xác định F và G có tương đương không ?
B1 :với mỗi X → Y của F xác định xem X Y của F xác định xem → Y có được suy dẫn từ G không
B2 :với mỗi X → Y của G xác định xem X Y của G xác định xem → Y có được suy dẫn từ F không
Nếu cả 2 bước trên đều đúng thì F ≡ G G
Trang 24Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE) và 2 tập pth
F ={A→BC, A BC, →D, CD→E } và G ={A E →BCE, A BCE, →ABD, CD→E } E
1 F có tương đương với G không ?
2 F có tương đương với G’ = { A→BCDE } BCDE
1 Nhận xét : F được suy diễn từ G (1)
Ta Kiểm tra G có được suy diễn từ F không ?
Tính A F + = {ABCDE} => trong F+ có A→BCE và A BCE và →ABD (2)
Từ (1) (2) : kết luận F ≡ G G
2 Ta kiểm tra F có được suy diễn từ G’ không ?
Trang 25Ví dụ 1: Cho lược đồ quan hệ Q (ABCDE)
và 2 tập pth
F ={A → BC, A BC, → D, CD → E } và E
G ={A → BCE, A BCE, → ABD, CD → E } E
1 F có tương đương với G không ?
2 F có tương đương với
G’ = { A → BCDE } BCDE
Trang 26Bài tập : xem xét các cặp pth sau có tương đương không?
Cho lược đồ quan hệ Q (ABCDE) và 2 tập pth
F ={A→BC, A BC, →D, CD→E } và G ={A E →DE , A DE , →BCE, CD→E }
F ={A→B, B→C, C→D } và G ={A D →BCD , B→CD, C→D }
F ={A→B, B→C, C→D } và G ={A D →CD , C→D }
F ={AB→C, B→C, CD→E ,D→E } và G ={B E →C , D→E }
F ={AB→C, B→C, CD→E ,D→E } và G ={AB E →C, B C →C, C→B, BD→E }
Trang 27Trong các phủ của F ta quan tâm tới một nhóm phủ gọi là phủ tối thiểu
G là phủ tối thiểu của F nếu G là phủ của F đồng thời thỏa 3 điều kiện sau :
- G là tập phụ thuộc hàm có vế trái không dư thừa
(G chỉ chứa những pth đầy đủ)
- G là tập phụ thuộc hàm có vế phải một thuộc tính
(G chỉ chứa những pth có vế phải một thuộc tính)
- G là tập phụ thuộc hàm không dư thừa
Trang 283.a Phụ thuộc hàm có vế trái không dư thừa :
Cho F , f: X→Y∈F Nói rằng phụ thuộc hàm f: X→Y
có vế trái dư thừa (phụ thuộc hàm không đầy đủ) nếu tồn tại một Z∈ X sao cho :
F ≡ F - {X → Y} ∪ {Z → Y}
Ví dụ 1: cho Q(A,B,C) và F= {AB→C; B→C}
AB → C là phụ thuộc hàm có vế trái dư thừa vì
F ≡ F- {AB→C}∪ {B→C}= {B→C}
Trang 29Thuật tóan để lọai khỏi F các pth có vế trái dư thừa :
Bước 1: Lần lượt thực hiện bước 2 cho các pth X→Y của F
Bước 2: Với mọi tập con X’≠ ∅ của X
Nếu X'→Y∈ F+ thì thay X→Y trong F bằng X'→Y
Nhận xét :
Pth có vế trái một thuộc tính là pth có vế trái không dư
thừa
F là Tập pth có vế trái không dư thừa nếu F không chứa
những pth có vế trái dư thừa
Trang 30Ví dụ 2: lọai khỏi F các pth có vế trái dư thừa
Trang 313.b Tập phụ thuộc hàm có vế phải một thuộc tính
Mỗi tập phụ thuộc hàm F đều tương đương với một tập phụ thuộc hàm G mà vế phải của các pth trong G chỉ gồm một thuộc tính
Ví dụ 3: cho F = {A → BC , B → C , A → D} ta suy ra
F ≡ {A → B, A → C , B → C , A → D} = G
G được gọi là tập phụ thuộc hàm có vế phải một thuộc
tính.
Trang 323.c Tập phụ thuộc hàm không dư thừa
Nói rằng F là tập phụ thuộc hàm không dư thừa nếu không tồn tại X→ Y ∈ F sao cho F ≡ F – {X→ Y}
Ngược lại F là tập phụ thuộc hàm dư thừa.
Ví dụ 4: cho F = {A→BC, B→D, AB→D} thì
F dư thừa vì tồn tại AB→D ∈ F mà
F ≡ F – {AB→D} = {A→BC, B→D}
Thuật tóan lọai khỏi F các pth dư thừa:
Bước 1: lần lượt lọai từng pth X → Y trong F , ta có G
Bước 2: kiểm tra X → Y có được suy dẫn từ G không ?
Trang 33- Thử loại AB → D, có G = {A → BC, B → D }
=> AB → D được suy dẫn từ G ,
=> F dư thừa AB → D
Trang 34Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm *
Từ tập phụ thuộc hàm F cho trước , câu hỏi là tìm phủ tối thiểu của F ?
Bước 1: loại khỏi F các phụ thuộc hàm có vế trái dư thừa.
Bước 2: Tách các phụ thuộc hàm có vế phải trên một thuộc tính
thành các phụ thuộc hàm có vế phải một thuộc tính.
Bước 3: loại khỏi F các phụ thuộc hàm dư thừa
Nhận xét :
Từ một tập pth F luôn tìm được ít nhất một phủ tối thiểu F’
Nếu tập pth F có nhiều phủ tối thiểu thì các phủ tối thiểu
tương đương với nhau F’ ≡ F’’ ≡ F
* Bài tóan trọng tâm
Trang 35Ví dụ 1: Cho lược đồ quan hệ Q(A,B,C,D) và tập pth F như sau:
F = {AB → CD,B → C,C → D} Hãy tìm phủ tối thiểu của F.
Bước 1: loại khỏi F các phụ thuộc hàm có vế trái dư thừa
AB → CD là phụ thuộc hàm có vế trái dư thừa?
Xét B → CD ∈ F + ? trả lời: BF+ = BCD ⇒ B → CD ∈ F +
Xét A → CD ∈ F + ? trả lời: AF+ = A ⇒ A → CD ∉ F +
Vậy AB → CD là phụ thuộc hàm có vế trái dư thừa A
⇒ kết quả của bước 1 là: F ≡ {B → CD ; B → C ; C → D} = F 1
Bước 2: tách các pth thành các phụ thuộc hàm có vế phải một thuộc tính
F ≡ {B → D; B → C;C → D} = F 1
Bước 3: loại khỏi F các phụ thuộc hàm dư thừa
trong F1 , B → C là phụ thuộc hàm dư thừa?
xét B → C ∈ G + ? với G = F1 - {B → C} = {B → D;C → D}
Trả lời : BG+ = BD ⇒ B → C ∉ G + ⇒ B → C không dư thừa trong F 1
Trang 36trong F1 , B → D là phụ thuộc hàm dư thừa?
xét B → D ∈ G + ? với G = F1 - {B → D} = {B → C;C → D}
trả lời : BG+ = BCD ⇒ B → D ∈ G + ⇒ B → D dư thừa trong F 1
trong F1 , C → D là phụ thuộc hàm dư thừa?
xét C → D ∈ G + ? với G = F1 - {C → D} = {B → D;B → C}
trả lời :CG+ = C ⇒ C → D ∉ G + ⇒ C → D không dư thừa trong F 1
Kết quả của bước 3 : cho phủ tối thiểu
F ≡ F1 - {B → D}
F ≡ {B → C;C → D} = F tt
Trang 37Ví dụ 2: Cho lược đồ quan hệ Q(A,B,C,D) và tập phụ thuộc F như sau:
F= {AB → C , B → A , A → B} Hãy tính phủ tối thiểu của F?
Bước 1 : AB → C có là pth có vế trái dư thừa ?
Trang 38Ví dụ 3: Cho lược đồ quan hệ Q(MSCD,MSSV,CD,HG) và tập phụ thuộc F như sau:
Hãy tìm phủ tối thiểu của F ?
Ví dụ 4: Cho lược đồ quan hệ Q(ABC) ,tìm các phủ tối thiểu của tâp phụ thuộc hàm F
F = { A → B ; A → C; B → A; C → A;B → C }
Trang 39KHÓA CỦA LƯỢC ĐỒ QUAN HỆ
• Khái niệm
• Thuật toán tìm một khóa
• Thuật toán tìm tất cả các khóa
Trang 40Cho Q(Q + ) và F là tập pth định nghĩa trên Q Cho K⊆ Q +
K là một khóa của Q nếu thỏa 2 điều kiện:
(1) K → Q + ∈ F + (hay K F + = Q + )
(2) ∃ K’ ⊂ K , K’ → Q + ∈ F +
-Tập thuộc tính S là siêu khóa nếu S ⊇ K
-Thuộc tính A là thuộc tính khóa nếu A ∈ K
-Thuộc tính B là thuộc tính không khóa nếu B ∉ K
Trang 44 Thuật tóan tìm tất cả các khóa của lược đồ quan hệ Q
Thuật tóan căn bản:
B1: Xây dựng các tập con X i có thể có của Q +
Trang 45 Thuật tóan tìm tất cả các khóa của lược đồ quan hệ Q
Thuật tóan cải tiến :
-Các thuộc tính chỉ xuất hiện ở vế phải của các pth
-Tập thuộc tính trung gian (TG) : gồm tất cả
•Các thuộc tính xuất hiện ở cả vế trái và vế phải của các pth
Hệ quả : Nếu K là khóa của A thì K ⊇ TN và K ∩ TD = ∅
Trang 46Thuật tóan cải tiến :
Dữ liệu vào : lược đồ quan hệ Q , tập phụ thuộc hàm F
Dữ liệu ra: tất cả các khóa của quan hệ Q
B1: Xác định tập thụôc tính nguồn TN, tập thuộc tính trung gian TG
B2: Nếu TG = ∅ thì Q chỉ có một khóa K = TN
kết thúc Ngược lại : Qua bước 3
B3: tìm tất cả các tập con Xi của tập trung gian TG
B4: tìm các siêu khóa Si :
∀ Xi , nếu (TN ∪ Xi)+ = Q+ thì Si = TN ∪ Xi
Trang 48Ví dụ 2: cho Q(A,B,C,D) và tập F={ AB → C,
D → B, C → ABD } Tìm tất cả các khóa ? Giải:
B1: TN={ ∅ } , TG={A,B,C,D }
B2: