phỤthuỘc hÀm€¦ · 4 xétvídụ(sgk) : choquanhệphâncông copely 412 15/8 1:25p copely...
TRANSCRIPT
1
CHƯƠNG 5
PHỤ THUỘC HÀMFunctional dependency
2
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�cm�t d�ng ràng bu�c tòan v�n
���� Pth ñ��c �ng d�ng trong vi c gi!i quy$t bài tóantìm khóa, tìm ph* t+i thi�u và chu,n hóa c- s/ d0 li u
3
PHỤ 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+
4
Xét ví dụ (sgk) : Cho quan hệ Phân công
1:25p15/8412Copely
5:50a13/8281Copely
5:50a9/8281Copely
1:25p12/8116Chin
10:15a13/883Chin
10:15a11/883Clark
6:35p12/8301Clark
5:50a8/8281Clark
1:25p10/8116Cushing
10:15a9/883Cushing
GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong
1. KHÁI NIỆM
5
Trong 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áybay 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áichuyến bay ñó
Những qui tắc hoạt ñộng trên là một loại ràng buộc , ñược gọilà 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}→→→→ GIOKHf2: {PHICONG,NGAYKH,GIOKH}→→→→ MAYBAY f3: {MAYBAY,NGAYKH}→→→→ PHICONG
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
- N$u v?i m@i quan h r ñAu th=a mãn pth X →→→→ Y , tanói pth X →→→→ Y ñ��c ñCnh nghĩa trên l��c ñE quanh Q
7
e1d1c5b2a3
e1d3c4b1a2
e1d3c3b1a2
d1d1c2b2a1
e1d1c1b1a1
Phụ thuộc hàm nào sau ñây thỏa r (A , B , C , D , E)
A →→→→D , AB→→→→D
AB→→→→C
e1d3c1b1a5
e2d2c2b2a4
e1d1c1b1a3
e2d2c2b2a2
e1d1c1b1a1Phụ thuộc hàm nào sau ñây thỏa q
BC→→→→E , DE→→→→C , A →→→→ BCDE
8
VVíí duduïï: : phanCong(PCphanCong(PC, MB, N, G), MB, N, G) , F ={(1),(2),(3)}, F ={(1),(2),(3)}
ÑÑònhònh nghnghóóaa: : 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.
Ký hiệu F |= X →→→→ Y((GGọọii F |= X →→→→ Y là phphụụ thuthuộộcc hhààmm hhệệ ququảả))
NX : NX : NeNeááuu (1) (1) thothoûûaa maõnmaõn ththìì (4) (4) cuõngcuõng ñöñöôôïïcc thothoûûaa maõnmaõn ⇒⇒⇒⇒⇒⇒⇒⇒ chchææcacaàànn kiekieååmm tratra (1)(1)
1. MB 1. MB →→→→→→→→ G G 2. MB,N 2. MB,N →→→→→→→→ PCPC3. PC,N,G 3. PC,N,G →→→→→→→→ MBMB
4. MB,N 4. MB,N →→→→→→→→ G G 5. MB,N,G 5. MB,N,G →→→→→→→→ PCPC6. PC, N, G 6. PC, N, G →→→→→→→→ PCPC…
⇒⇒⇒⇒⇒⇒⇒⇒
FF FF++
2.2. Phụ thuộc hàm ñược suy diễn logic từ FBao ñóng của một tập phụ thuộc hàm F
9
�� BaoBao ññooùùngng FF++ cucuûûaa FF : : llàà ttậậpp ttấấtt ccảả ccáácc phphụụ thuthuộộcc hhààmm ñưñượợcc suysuydidiễễnn logic logic ttừừ FF
�� LuaLuaäätt daãndaãn ññeeåå suysuy rara phuphuïï thuothuoääcc hahaøømm heheää quaquaûû ttöøöø F :F :ff’’ lalaøø phuphuïï thuothuoääcc hahaøømm suysuy ttöøöø FF qua qua lualuaäätt daãndaãn ((kykyùù hiehieääuu F F ff’’ ) ) neneááuu∃∃ ff11, f, f22,,……, f, fnnsaosao chocho ffnn=f=f’’ vavaøø ((ffii ∈∈ FF) ) ∨∨ ((ffii ñöñöôôïïcc suysuy dieãndieãn ttöøöø ffjj vôvôùùii j=1,j=1,……,i,i--1)1)
KyKyùù hiehieääuu F F ’’={f={f’’ | | FF ff’’} } ⇒⇒ cacaàànn ttììmm lualuaäätt daãndaãn saosao chocho F F ’’= = FF++ ; ; nghnghóóaa lalaøø ∀∀f, f, FF== f f ⇒⇒ FF f f vavaøø FF f f ⇒⇒ FF == f f
10
Cho 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) LuIt ph!n x� (reflexive rule):
N$u Y ⊆⊆⊆⊆ X thì X →→→→ Y(F2) LuIt thêm vào (augmentation rule):
N$u X →→→→ Y thì XZ →→→→ Y trong ñó ký hi u XZ thay cho X∪∪∪∪ Z
(F3) LuIt bPc cQu (transitive rule):N$u X →→→→ Y và Y →→→→ Z thì X →→→→ Z
CCáácc luluậậtt ddẫẫnn khkháácc suysuy ttừừ (F1), (F2), (F3)(F1), (F2), (F3)(F4) BPc cQu gi! : n$u X →→→→ Y và YW →→→→ Z thì XW →→→→ Z.(F5) LuIt h�i : n$u X →→→→ Y và X →→→→ Z thì X →→→→ YZ (F6) LuIt phân rã : n$u X →→→→ Y và Z⊆⊆⊆⊆Y thì X →→→→ Z
3. Bộ Luật Dẫn AMSTRONG (Hệ tiên ñề Amstrong)
CCầầnn chchứứngng minhminh HHệệ tiêntiên ññềề Armstrong Armstrong llàà ññúúngng vvàà ññầầyy ññủủ ((xemxem sgksgk) ) TTíínhnh ññúúngng : F: F f f ⇒⇒⇒⇒⇒⇒⇒⇒ F F ======== f f TTíínhnh ññầầyy ññủủ : : ∀∀∀∀∀∀∀∀ F F ======== f f ⇒⇒⇒⇒⇒⇒⇒⇒ F F ff
11
A →→→→ D , A →→→→ EA →→→→ DELuật phân rã
A →→→→ DEBA →→→→ DE
A →→→→ B
Luật hội
AB →→→→ CA →→→→ DE
DEB →→→→ C
Luật bắc cầu giả
A →→→→ CA →→→→ DE
DE →→→→ C
Luật bắc cầu
AB →→→→ DE
AB →→→→ DEB
ABC →→→→ DEB
A →→→→ DELuật thêm vào
AB →→→→ BB ⊆⊆⊆⊆ ABLuật phản xạ
Ví dụ :
12
Chứng minhLuật thêm vào: giả sử có t1.XZ = t2.XZ (1)
⇒ t1.X = t2.X ⇒ t1.Y = t2.Y (do X → Y) (2)⇒ XZ → Y (do (1) ⇒ (2))
Luật hợp: giả sử có t1.X = t2.X (1)⇒ t1.Y = t2.Y và t1.Z = t2.Z⇒ t1.YZ = t2.YZ (2)⇒ X → YZ (do (1) ⇒ (2))
Luật phân rã: gỉa sử có t1.X = t2.X (1)⇒ t1.YZ = t2.YZ (do X → YZ)⇒ t1.Y = t2.Y (2)⇒ X → Y (do (1) ⇒ (2))
Luật bắc cầu: giả sử có t1.X= t2.X (1)⇒ t1.Y = t2.Y ⇒ t1.Z = t2.Z (2)⇒ X → Z (do (1) ⇒ (2))
Luật bắc cầu giả: giả sử có t1.XZ = t2.XZ (1)⇒ t1.X = t2.X và t1.Z = t2.Z (2)⇒ t1.Y = t2.Y (do X → Y) (3)⇒ t1.YZ = t2.YZ (Kết hợp (2) và (3))⇒ t1.W = t2.W (do YZ → W) (4)⇒ XZ → W
13
Bài tIp 1 : Ch�ng t= các pth sau ñ��c suy di�n tY F nhZ b� luIt d[n Amstrong ?
F = { B →→→→→→→→ A ,A ,
DADA →→→→→→→→ CE ,CE ,
D →→→→→→→→ H , H ,
AC →→→→→→→→ D D }
AC →→→→→→→→ DADA
AC →→→→→→→→ DHDH
AC →→→→→→→→ EHEH
?
F = { B →→→→→→→→ A ,A ,
BDBD →→→→→→→→ CE ,CE ,
A →→→→→→→→ CB , CB ,
C →→→→→→→→ G ,G ,
GE GE →→→→→→→→ H H }
?
BD →→→→→→→→ EH EH
B B →→→→→→→→ CGCG
14
TaTa ccóó f4 : f4 : AC →→→→→→→→ DD
vvàà AC →→→→→→→→ A (A (theotheo luluậậtt phphảảnn xxạạ))
=> => SuySuy rara AC →→→→→→→→ DA (DA (theotheo luluậậtt hhộộii))
F = { B →→→→→→→→ A ,A ,
DADA →→→→→→→→ CE ,CE ,
D →→→→→→→→ H , H ,
AC →→→→→→→→ D D }
Ví dụ
Chứng minh AC →→→→→→→→ DA ?DA ?
15
Cho 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, Ai ⊆⊆⊆⊆⊆⊆⊆⊆ Q+.
Bao ñóng c*a tIp thu�c tính X dba trên F ký hi ulà X+ (hodc X+
F ) X+
F = ∪∪∪∪ Ai v?i X →→→→ Ai là ph� thu�c hàmñ��c suy di�n tY F nhZ h tiên ñA Armstrong
�� NhNhậậnn xxéétt : X : X ⊆⊆⊆⊆⊆⊆⊆⊆ XX++ , X, X++ ⊆⊆⊆⊆⊆⊆⊆⊆ QQ++
⇒⇒⇒⇒⇒⇒⇒⇒ BBổổ ññềề : : X X →→→→→→→→ Y Y ∈∈∈∈∈∈∈∈ FF++ ⇔⇔⇔⇔⇔⇔⇔⇔ Y Y ⊆⊆⊆⊆⊆⊆⊆⊆ XX++
ChChứứngng minhminh ::(1) X (1) X →→→→→→→→ Y Y ⇒⇒⇒⇒⇒⇒⇒⇒ ttồồnn ttạạii k k saosao chocho Y = Y = AAkk ⊆⊆⊆⊆⊆⊆⊆⊆ ∪∪∪∪∪∪∪∪ Ai = X+ Ai = X+ theotheo ññịịnhnh nghnghĩĩaa ccủủaa XX++
(2) Y (2) Y ⊆⊆⊆⊆⊆⊆⊆⊆ XX++ ⇒⇒⇒⇒⇒⇒⇒⇒ XX++ = Y = Y ∪∪∪∪∪∪∪∪ (X(X++ -- Y) Y) ⇒⇒⇒⇒⇒⇒⇒⇒ X X →→→→→→→→ Y Y ∪∪∪∪∪∪∪∪ (X(X++ -- Y)Y)⇒⇒⇒⇒⇒⇒⇒⇒ X X →→→→→→→→ Y Y theotheo luluậậtt phânphânrãrã
4.Bao ñóng của tập thuộc tính X (closures of attribute sets)
16
Thuật toán tìm bao ñóng X+: Tính liên tiếp tập cáctập thuộc tính X0,X1,X2,... theo phương pháp sau:
B�?c 1: X0 = XB�?c 2: lQn l��t xét các ph� thu�c hàm c*a F
N$u Y→→→→ Z có Y ⊆⊆⊆⊆ Xi thì Xi+1 = Xi ∪∪∪∪ ZLo�i ph� thu�c hàm Y →→→→ Z kh=i F
B�?c 3: N$u / b�?c 2 không tính ñ��c Xi+1
thì Xi chính là bao ñóng c*a XNg��c l�i ldp l�i b�?c 2
17
Ví d� 1:Cho l��c ñE quan h Q(ABCDE) và tIp ph� thu�chàm FF = { f1: A →→→→ B
f2: B →→→→ Cf3: C →→→→ Df4: D →→→→ E }
Tìm bao ñóng c*a tIp X = {AB} dba trên F
Gi!i:B�?c 1:X0 = ABB�?c 2:xét f1 vì A ⊆⊆⊆⊆ X0 ���� X1 = AB ∪∪∪∪ B = AB , lo�i f1xét f2 vì B ⊆⊆⊆⊆ X1 ���� X2 = AB ∪∪∪∪ C = ABC , l@ai f2xét f3 vì C ⊆⊆⊆⊆ X2 ���� X3 = ABC ∪∪∪∪ D = ABCD , lo�i f3xét f4 vì D ⊆⊆⊆⊆ X3 ���� X4 = ABCD ∪∪∪∪ E = ABCDE , lo�i f4
B�?c 3 : X+ = X4 = {ABCDE} là bao ñóng c*a X
18
Ví d� 2: (sgk )Cho l��c ñE quan h Q(ABCDEGH) và tIp ph� thu�chàm FF = { f1: B →→→→ A
f2: DA →→→→ CEf3: D →→→→ Hf4: GH →→→→ Cf5: AC →→→→ D }
Ch�ng minh f= {AC →→→→ EH } ñ��c suy d[n tY F ?Gi!i:
B�?c 1: X0 = ACB�?c 2: xét f5 vì AC ⊆⊆⊆⊆ X0 ���� X1 = AC ∪∪∪∪ D = ACD
xét f2 vì AD ⊆⊆⊆⊆ X1 ���� X2 = ACD ∪∪∪∪ CE = ACDExét f3 vì D ⊆⊆⊆⊆ X2 ���� X3 = ACDE ∪∪∪∪ H = ACDEH
Xét f1, f4 :không th=a vì có v$ trái không nlm trong X3VIy X3 không thay ñmi ���� X+=X3={ACDEH} là bao ñóng c*a X���� AC →→→→ EH ∈∈∈∈ F+
19
Bài tIp 2: Cho Q(ABCDEGH) và tIp pth F th=a trên Q.
Tìm bao ñóng c*a AC ?
F = { B →→→→→→→→ A ,A ,
DADA →→→→→→→→ CE ,CE ,
D →→→→→→→→ H , H ,
AC →→→→→→→→ D D }
F = { B →→→→→→→→ A ,A ,
BDBD →→→→→→→→ CE ,CE ,
A →→→→→→→→ CB , CB ,
C →→→→→→→→ G ,G ,
GE GE →→→→→→→→ H H }
AC + = ?
B + = ?
20
5. 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ếnDự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+ Bước 2: 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 các tập con ñã tìm ñể suy ra các phụ thuộc hàm thuộc F+.
21
Phủ và Phủ tối thiểu
Các khái niệm :
• Tập phụ thuộc hàm tương ñương với F
• Phủ của F
• Phủ tối thiểu của F
22
1. Hai tập phụ thuộc hàm tương ñương
Bổ ñề : F ≡≡≡≡≡≡≡≡ G G nnếếuu vvàà chchỉỉ nnếếuu F |F |======== G G vvàà G |G |======== FF
�������� NNếếuu F F ≡≡≡≡≡≡≡≡ G G ⇒ FF ======== GG và GG ======== FF
∀∀∀∀∀∀∀∀gg∈∈∈∈∈∈∈∈ G +, g: X G +, g: X →→→→→→→→ YY⇒ gg∈∈∈∈∈∈∈∈ FF + + ⇒ FF ======== gg
Do Do ññóó ∀ ∀ ∀ ∀ ∀ ∀ ∀ ∀gg∈∈∈∈∈∈∈∈ GG ththìì FF======== g hay F g hay F ======== G G
TươngTương ttựự ∀∀∀∀∀∀∀∀ff∈∈∈∈∈∈∈∈ FF ththìì G G ======== f hay f hay GG ======== FF
�� NNếếuu F F ======== GG và GG ======== FF ⇒ FF ≡≡≡≡≡≡≡≡ GG
F F ======== GG ⇒ GG ⊆ FF + ⇒ GG +⊆ (FF +)+= FF +
GG ======== F F ⇒ FF ⊆ GG + ⇒ FF +⊆ (GG +)+= GG +
Tập phụ thuộc hàm F và G tương ñương nếu F+ = G+ ký hiệu F ≡≡≡≡≡≡≡≡ GG
23
Thuật tóan xác ñịnh F và G có tương ñương không ?
B1 :với mỗi X →→→→→→→→ Y Y ccủủaa F F xxáácc ññịịnhnh xemxem X →→→→→→→→ Y Y ccóó ñưñượợccsuysuy ddẫẫnn ttừừ G G khôngkhông
B2 :với mỗi X →→→→→→→→ Y Y ccủủaa G G xxáácc ññịịnhnh xemxem X →→→→→→→→ Y Y ccóó ñưñượợccsuysuy ddẫẫnn ttừừ F F khôngkhông
NNếếuu ccảả 2 2 bưbướớcc trêntrên ññềềuu ññúúngng ththìì F F ≡≡≡≡≡≡≡≡ GG
24
Ví dụ 1: Cho lược ñồ quan hệ Q (ABCDE) và 2 tập pth
F ={A→→→→→→→→BC, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và G ={A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, 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 AF+ = {ABCDE} => trong F+ có A→→→→→→→→BCE BCE vvàà A→→→→→→→→ABD (2) ABD (2)
TTừừ (1) (2) : (1) (2) : kkếếtt luluậậnn F F ≡≡≡≡≡≡≡≡ GG
2. Ta kiểm tra F có ñược suy diễn từ G’ không ?
Tính CDG+ = {CD} => G’+ không chứa pth CD →→→→→→→→ EE
KKếếtt luluậậnn : F : F khôngkhông tươngtương ñươngñương GG’’
25
Ví dụ 1: Cho lược ñồ quan hệ Q (ABCDE) và 2 tập pth
F ={A→→→→→→→→BC, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và
G ={A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, 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 }
26
Bà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, BC, A→→→→→→→→D, CDD, CD→→→→→→→→E E } và G ={A→→→→→→→→DE , DE , A→→→→→→→→BCE, CDBCE, CD→→→→→→→→E }E }
F ={A→→→→→→→→B, BB, B→→→→→→→→C, CC, C→→→→→→→→D D } và G ={A→→→→→→→→BCD , BBCD , B→→→→→→→→CD, CCD, C→→→→→→→→D }D }
F ={A→→→→→→→→B, BB, B→→→→→→→→C, CC, C→→→→→→→→D D } và G ={A→→→→→→→→CD , CCD , C→→→→→→→→D }D }
F ={AB→→→→→→→→C, BC, B→→→→→→→→C, CDC, CD→→→→→→→→E ,DE ,D→→→→→→→→E E } và G ={B→→→→→→→→C , DC , D→→→→→→→→E }E }
F ={AB→→→→→→→→C, BC, B→→→→→→→→C, CDC, CD→→→→→→→→E ,DE ,D→→→→→→→→E E } và G ={AB→→→→→→→→CC, B→→→→→→→→C, CC, C→→→→→→→→B, BDB, BD→→→→→→→→E }E }
27
2. Phủ của F
3. Phủ tối thiểu
G là phủ của F nếu G ≡≡≡≡≡≡≡≡ FFMột số phủ của F : G1 = { A→→→→→→→→BCE, BCE, A→→→→→→→→ABD, CDABD, CD→→→→→→→→EE }
G2 = { A→→→→→→→→E, E, A→→→→→→→→ABCD, CDABCD, CD→→→→→→→→E }E }G3 = { A→→→→→→→→BCD, CDBCD, CD→→→→→→→→E E }….
Trong 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ềukiệ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
28
3.a. Phụ thuộc hàm có vế trái không dư thừa :
Cho F , f: X→Y∈F. Nói rlng ph� thu�c hàm f: X→→→→Y cóv$ trái d� thYa (ph� thu�c hàm không ñQy ñ*) n$u tEnt�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� thYa vì
F ≡≡≡≡ F- {AB→→→→C}∪∪∪∪ {B→→→→C}= {B→→→→C}
29
Thuật tóan ñể lọai khỏi F các pth có vế trái dư thừa :
Bước 1: LQn l��t thbc hi n b�?c 2 cho các pth X→→→→Y c*a F
Bước 2: V?i m@i tIp con X’≠≠≠≠ ∅∅∅∅ c*a X.
N$u X'→→→→Y∈∈∈∈ F+ thì thay X→→→→Y trong F blng 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ứanhững pth có vế trái dư thừa.
30
Ví d� 2: lọai khỏi F các pth có vế trái dư thừa
cho tIp ph� thu�c hàm F = {A →→→→ BC, B →→→→ C, AB →→→→ D}
- xét pth AB →→→→ D :
A →→→→ D ∈∈∈∈ F+ ? tính AF+ = ABCD => A →→→→ D ∈∈∈∈ F+
B →→→→ D ∈∈∈∈ F+ ? tính BF+ = BC => B →→→→ D ∉∉∉∉ F+
Trong F ta thay AB →→→→ D blng A →→→→ D
VIy F ≡≡≡≡ F’ = {A →→→→ BC, B →→→→ C, A →→→→ D}
- Các pth còn l�i có v$ trái 1 thu�c tính _ là pth ñQy ñ*
K$t luIn : F ≡≡≡≡ F’ là tIp pth có v$ trái không d� thYa
31
3.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ộtthuộ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à tIp ph� thu�c hàm có v$ ph!i m�t thu�ctính.
32
3.c. Tập phụ thuộc hàm không dư thừa
Nói rlng F là tIp ph� thu�c hàm không d� thYa n$ukhông tEn t�i X→→→→ Y ∈∈∈∈ F sao cho F ≡≡≡≡ F – {X→→→→ Y}.Ng��c l�i F là tIp ph� thu�c hàm d� thYa.
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 ?
Bước 3: nếu có thì pth X →→→→ Y là dư thừa và lọai khỏi F quay lại bước 1
33
Giải theo thuật toán :
cho F = {A→BC, B→D, AB→D}
- Thử loại A→BC , có G = { B→D, AB→D}=> A→BC không ñược suy dẫn từ G
- Thử loai B→D , có G = {A→BC, AB→D}=> B→D không ñược suy dẫn từ G
- 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
34
Thuậ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� thYa.
B�?c 2: Tách các ph� thu�c hàm có v$ ph!i trên m�t thu�c tínhthà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� thYa
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ểutương ñương với nhau F’ ≡≡≡≡ F’’ ≡≡≡≡ F
* Bài tóan trọng tâm
35
Ví 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: 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} = F1
Bước 2: kết quả của bước 2 là:
F ≡≡≡≡ {B →→→→ D; B →→→→ C;C →→→→ D} = F1
Bước 3:
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 F1
36
trong 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 F1
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 F1
Kết quả của bước 3 : cho phủ tối thiểu
F ≡ F1 - {B → D}
F ≡≡≡≡ {B →→→→ C;C →→→→ D} = Ftt
37
Ví 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 ?
B → C ∈ F+ ? trả lời: B+ = ABC ⇒ B → C ∈ F+
A → C ∈ F+ ? trả lời: A+ = ABC ⇒ A → C ∈ F+
Kết quả có 2 tập F’ và F” có vế trái không dư thừa :
F ≡≡≡≡ F’ = {B →→→→ C;B →→→→ A;A →→→→ B}
F ≡≡≡≡ F” = {A →→→→ C;B →→→→ A;A →→→→ B}
Bước 2 : F’ và F” là các tập phụ thuộc hàm có vế phải một thuộc tính
Bước 3 :
Xét F’ = {B → C;B → A;A → B} thì thấy F’ không phải là tập pth dư thừa.
Xét F” = {A → C;B → A;A → B} thì thấy F” không phải là tập pth dư thừa
Kết luận : F có 2 tập phủ tối thiểu F’ và F”
38
Ví dụ 3: Cho lược ñồ quan hệ Q(MSCD,MSSV,CD,HG) và tập phụthuộc F như sau:
F = {MSCD→ CD;
CD → MSCD;
CD,MSSV → HG;
MSCD,HG → MSSV;
CD,HG → MSSV;
MSCD,MSSV → HG}
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ủatâp phụ thuộc hàm F
F = { A→ B ; A→ C; B → A; C → A;B → C }
39
KHÓ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
40
Cho 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 →→→→→→→→ QQ+ ∈∈∈∈∈∈∈∈ FF+ (hay K(hay KFF+ = Q= Q+))
(2) ∃∃∃∃ K’ ⊂⊂⊂⊂ K , K’ →→→→→→→→ QQ+ ∈∈∈∈∈∈∈∈ FF+
- 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 ∈∈∈∈∈∈∈∈ KK-- Thuộc tính B là thu�c tính không khóa nếu B ∉∉∉∉ K- Tập thuộc tính không khóa có thể bằng ∅∅∅∅- Một lươc ñồ quan hệ có thể có nhiAu khóa K
41
� Thuật tóan tìm một khóa của lược ñồ quan hệ Q :
B1 : Gán K = Q+
B2 : Lần lượt thử lọai từng thuộc tính A ∈∈∈∈ K,có K’ = K – A
nếu k’+ = Q+ thì gán K = K’
Thực hiện lại bước 2
42
Ví dụ_sgk : Cho Q(ABCDEGHI) vàF = {AC→→→→ B, BI →→→→ ACD, ABC →→→→ D, H →→→→ I, ACE →→→→ BCG,
CG →→→→ AE}
Gán K = Q+ = {A,B,C,D,E,G,H,I}
Xét K’= K - {A} = {BCDEGHI} , tính K’+ = BCDEGHIA = Q+
⇒gán K = K’
Xét K’= K - {B} = {CDEGHI} , tính K’+ = CDEGHIAB = Q+
⇒Gán K= K’
Xét K’= K – {C} = {DEGHI} , tính K’+ = DEGHI ≠ Q+
Xét K’= K – {D} = {CEGHI} , tính K’+ = CEGHIABD = Q+
⇒Gán K = k’
Tiếp tục tương tự … kết quả thu ñược khóa K = {C,G,H}
43
• Cho Q(ABCDEGHI) vàF =
{AC→→→→ B,
BI →→→→ ACD,
ABC →→→→ D,
H →→→→ I,
ACE →→→→ BCG,
CG →→→→ AE}
K’= {DEGHI}
K’+= ?
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 Xi có thể có của Q+
B2: Tìm bao ñóng của các Xi
B3: Xác ñịnh các siêu khóa Si chính là các Xi có Xi+ = Q+
B4: Xác ñịnh các khóa từ tập siêu khóa SSSS∀∀∀∀ Si, Sj ∈∈∈∈ SSSS, nếu ∃∃∃∃ Sj ⊂⊂⊂⊂ Si thì SSSS’’’’ = S S S S –––– Si
Cuối cùng tập SSSS’’’’ là tIp tvt c! các khóa cQn tìm
Ví dụ -sgk …
Nhận xét : Kết quả của B1 có thể là một tập rất lớncủa các tập con của Q+ (2n)
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 khái niệm
-Tập thuộc tính nguồn (TN) gồm tất cả• Các thuộc tính chỉ xuất hiện ở vế trái và không xuất hiện ở vếphải của các pth• Các thuộc tính không xuất hiện ở cả vế trái và vế phải của các pth
-Tập thuộc tính ñích (TD) gồm tất cả
-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 = ∅∅∅∅
46
Thuật tóan cải tiến :Dữ liệu vào : lược ñồ quan hệ Q , tập phụ thuộc hàm FDữ 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 trunggian TGB2: Nếu TG = ∅ thì Q chỉ có một khóa K = TN
kết thúcNgượ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
B5: tìm các khóa từ tập siêu khóa S:∀∀∀∀ Si, Sj ∈∈∈∈ S, nếu ∃∃∃∃ Sj ⊂⊂⊂⊂ Si thì S’ = S – Si
cuối cùng , tập S’ chính là tập khóa cần tìm
47
Ví dụ 1: cho Q(CSZ) , F= {CS →→→→ Z , Z →→→→ C}
B5B4B3
SZCSZCSCZCZ
SZSZSZCSZZ
SCSCSCZSCC
SS∅
KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG
B1: TN = {S} , TG = {C,Z}
B2 ñến B5 :
48
Ví 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:
49
F={ AB→C, D→B, C→ABD }
ADADADBCADAD
ACACACBDACAC
ABABABCDABAB
DBDD
CCCABDCC
BBB
AAA
∅∅
KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG
{ABCD}
50
F={ AB→C, D→B, C→ABD }
ABCDCDABABCDABCD
BCDCDABBCDBCD
ACDCDABACDACD
ABDCDABABDABD
ABCCDABABCABC
CDCDCDABCDCD
BDBDBD
BCBCBCADBCBC
KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG
{ABCD}
51
Ví dụ 3: cho Q(A,B,C,D,E,H) và tập
F= {A → E; C → D; E → DH}
CM: K={A,B,C} là khóa duy nhất của Q ?
B1: TN= {A,B,C} , TG = { E }
B2
52
F= {A → E; C → D; E → DH}
B5B4B3
A,B,C,EABCEDH = Q+
A,B,C,EE
ABCABCABCEDH = Q+
A,B,C∅
KhóaSiêukhóa( TN∪∪∪∪TG)+TN∪∪∪∪TGTG