6.2.1.Kháiniệmvềphụthuộchàm
ChoquanhệPhanCongnhưsau:
QuanhệPhanCongdiễntảphicôngnàoláimáybaynàovàmáybaykhởihà nhvàothờigian
nào. Không phảisự phối hợp bấtkỳ nàogiữa phi công, máybayvà ngàygiờ khở i hành cũngđều
đượcchấpnhậnmàchúngcócácđiềukiệnràngbuộcquiđịnhsau:
• Mỗimáybaycómộtgiờkhởihànhduynhất.
• Nếubiếtphicông,biếtngàygiờkhởihànhthìbiếtđượcmáybaydophi côngấylái.
3 8
• Nếubiếtmáybay,biếtngàykhởihànhthìbiếtphicôngláichuyếnbayấy. Cácràngbuộcnàylàcácvídụvềphụthuộchàmvàđượcphátbiểulạinhưsau:
• MAYBAYxácđịnhGIOKH
• {PHICONG,NGAYKH,GIOKH}xácđịnhMABAY
• {MAYBAY,NGAYKH}xácđịnhPHICONG hay
• GIOKHphụthuộchàmvàoMAYBAY
• MABAYphụthuộchàmvào{PHICONG,NGAYKH,GIOKH}
• PHICONGphụthuộchàmvào{MAYBAY,NGAYKH} vàđượckýhiệunhưsau:
• {MAYBAY}→GIOKH
• {PHICONG,NGAYKH,GIOKH}→MABAY
• {MAYBAY,NGAYKH}→PHICONG
TrongkýhiệutrêntađãkýhiệuMAYBAYthaycho{MAYBAY}.
Mộtcáchtổngquát:
R(Ω)làlượcđồquanhệ.X,YlàhaitậpconcủatậpthuộctínhΩ ={A1,A2,…,An}. rlàquanhệtrên R(Ω);t1,t2làhaibộbấtkỳcủar.
X→Y⇔(t1.X=t2.X⇒t1.Y=t2.Y)
(Ta nói X xác định Y hay Y phụ thuộc hàm vào X (X functional determines Y, Y functional
dependentonX) Tínhchất:
• phụthuộchàmX→ ∅đúngvớimọiquanhệr
• phụthuộchàm ∅→YchỉđúngtrênquanhệrcócùnggiátrịtrênY. Vídụ:Quanhệsauthỏamãnphụthuộchàm ∅→GIOKH
PhanCong(PHICONG,MAYBAY,NGAYKH,GIOKH)
PhụthuộchàmđƣợcsuydiễnlogictừF
3 9
NóirằngphụthuộchàmX→YđượcsuydiễnlogictừFnếumộtquanhệrth ỏamãntấtcả
cácphụthuộchàmcủaFthìcũngthỏaphụthuộchàmX→Y.KýhiệuF|=X→ Y.BaođóngcủaF
kýhiệuF+làtậptấtcảcácphụthuộchàmđượcsuydiễnlogictừF. CáctínhchấtcủatậpF+
1.Tínhphảnxạ:VớimọitậpphụthuộchàmF+taluônluôncóF⊆F+
2.Tínhđơnđiệu:NếuF⊆GthìF+⊆G+
3.Tínhlũyđẳng:VớimọitậpphụthuộchàmFtaluônluôncó(F+)+=F+.
GọiGlàtậptấtcảcácphụthuộchàmcóthểcócủar,phầnphụcủaFkýhiệuF-= G-F+
Chứngminh
1.X→Y∈F⇒rthỏX→Y⇒X→Y∈F+
2.NếuX→YlàphụthuộchàmthuộcF+taphảichứngminhX→YthuộcG+
GiảsửrthỏatấtcảcácphụthuộchàmcủaG(1) ⇒rthỏatấtcảphụthuộchàmcủaFvìF⊆G ⇒rthỏaphụthuộchàmX→Y(2)vìX→Y∈F+
(1)và(2)⇒X→Y∈G+⇒F+⊆G+
3.F⊆F+(tínhphảnxạ⇒F+ ⊆(F+)+(1)
NếuX→Y∈(F+)+(2)⇒X→Y∈F+thậvậ:(3) GiảsửrthỏatấtcảcácphụthuộhàmcủaF(4)
⇒rthỏatấtcảcácphụthuộchàmcủaF+(theođinhnghĩa) ⇒rthỏatấtcảcácphụthuộhàmcủa(F+)+(theođinhnghĩa)
⇒rthỏaX→Y(vì(2))⇒X→Y∈F+
(1)và(3)⇒(F+)+=F+
6.2.2.Baođóngcủatậpphụthuộchàm
Ngườitagọi tậpF+là baođóngcủa F, tứclàtậpcác phụthuộchàmđược suy diễnlogictừ F.
NếuF=F+thìFlàhọđầyđủcủacácphụthuộchàm.
6.2.3.HệtiênđềArmstrong
GọiR(U)làlượcđồquanhệvớiU ={A1,A2,…,AN}làtậpcácthuộctínhvà X,Y,Z,W ⊆U.
ChúngtakýhiệuXYtươngđươngvớiX∪Y
HệtiênđềArmstrong:
A1.Phảnxạ:NếuY⊆XthìX→Y
A2.Tăngtrưởng:NếuX→Y,Z⊆UthìXZ→YZ A3.Bắccầu:NếuX→Y,Y→ZthìX→Z
4 0
Bổđề.HệtiênđềArmstronglàđúng.ĐiềunàycónghĩalànếuX→Ylàmộtp hụthuộchàm
đượcsuydiễntừFnhờhệtiênđềArmstrongthìX→Ylàđúngtrênmộtquanhệ nàođóthoảmãn
cácphụthuộchàmtrongF. Chứngminh:
Lầnlượtkiểmtratínhđúngđắncủa3tiênđề:
-Tiênđềphảnxạ: Rõràngtiên đềnàylàđúngvì khôngthểcó haibộ bằngnh autrên Xmàlại
-Tiênđềtăngtrưởng:GiảsửquanhệrthoảmãnX→Y.Tồntạihaibột,u∈r saochot[XZ]=
u[XZ]màt[YZ]≠u[YZ]
Vìt[Z]=u[Z]nênđểcót[YZ]≠u[YZ]thìt[Y]≠u[Y](1) Màtacót[XZ]=u[XZ] nênt[X]=u[X](2)
Từ(1)và(2)tacót[X]=u[X] vàt[Y]≠u[Y] điềunàylàtráivới giảthiếtqu anhệrthoảmãn
X→Y.Vậy t[YZ]=u[YZ]hayXZ→YZlàđúngtrênquanhệr. -Tiênđềbắccầu:ChoX→YvàY→Zđúngtrênquanhệr. Giảsửtồntạihaibột,u∈rsaochot[X]=u[X]vàt[Z]≠u[Z](3) TừX→Ysuyrat[X]=u[X]nênt[Y]=u[Y](4)
Từ3và4tacót[Y]=u[Y]vàt[Z]≠u[Z] điềunàytráivớigiảthiếtY→Z.Do vậyt[Z]=u[Z]
SuyraX→Zlàđúngtrênquanhệr.
Bổđề.ChoX,Y,Z,W⊆U.Chúngtacócácluậtsau: -Luậthợp:NếuX→Y,X→ZthìX→YZ.
-Luậttựabắccầu:NếuX→Y,YW→ZthìXW→Z. -Luậttách:NếuX→Y,Z⊆YthìX→Z.
Chứngminh.
-Chứngminhluậthợp:
TừX→YtadùngluậttăngtrườngthêmXcóXX→XYtươngđươngvớiphụ thuộchàmX→
XY(1)
TừX→ZtadùngluậttăngtrưởngthêmYcó XY→YZ(2) Từ(1)và(2)tadùngluậtbắccầusẽcó:X→YZ.
4 1
-Chứngminhluậttựabắccầu:
TừX→Y,dùngluậttăngtrưởngthêmWcóXW→YW(3) MàtheogiảthiếtchúngtacóYW→Z(4)
Từ(3)và(4)tadùngluậtbắccầusẽcó:XW→Z. -Chứngminhluậttách:
VìZ⊆YnênY→Ztheoluậtphảnxạ(5) MàtheogiảthiếtcóX→Y(6)
Từ(5)và(6)tadùngluậtbắccầusẽcó:X→Z.
6.2.4.Baođóngcủatậpthuộctính
ĐểdễdàngchứngminhtínhđầyđủcủahệtiênđềArmstrong,ngườitađưathê mkháiniệmbao
đóngcủatậpcácthuộctính.
GọiFlàtậpcácphụthuộchàmtrêntậpthuộctínhU, X⊆U.GọiX+làbaođó ngcủaXđốivới
F,X+đượcđịnhnghĩanhưsau: X+={A∈U|X→A∈F+}
Nói cụ thể:X+ là tậptất cảcác thuộctính A mà phụthuộc hàm X →A có th ể được suy diễn
logictừFnhờhệtiênđềArmstrong.
Bổđề.X→YđượcsuydiễntừhệtiênđềArmstrongkhivàchỉkhiY⊆X+. Chứngminh:
GiảsửY=A1....ANvớiA1,...,ANlàcácthuộctínhvàY⊆X+
TừđịnhnghĩaX+tacóX→Aivới i=1,2,...,N. ÁpdụnghệtiênđềArmstro ngchomọiisuy
ratừX→Ynhờluậthợp.
Ngượclại, giảsửtacóX→Y, ápdụnghệtiênđềArmstrongchomỗiicóX
→Ai vớiAi∈Y
nhờluậttách.TừđósuyraY⊆X+.
Địnhlý.HệtiênđềArmstronglàđúngvàđầyđủ. Chứngminh:
Tínhđúngđắncủahệtiênđềđãđượcchứngminhquabổđề5.1.Ởđâychúng ta chỉcầnchứng
minhtínhđầyđủtứclàX→YkhôngthoảtrênquanhệrthìX→Ycũngkhôngt hểsuydiễnlogic
từF.
4 2
GọiFlàtập cácphụ thuộchàmtrên tậpthuộctính U.Giả sửX →Y làkhôn gthểsuydiễn
đượctừhệtiênđềArmstrong.Xétquanhệrgồmhaibộđượcchotrongbảngdưới đây:
Bảng5.1.MộtquanhệrchỉraFkhôngsuydiễnlogicraX→Y. 11...1 11...1 11...1 00...0
CácthuộctínhthuộcX+ Cácthuộctínhcònlại
Trướchết cầnchỉra rằngtất cảcác phụthuộc hàmthuộcF đềuthoả trênqua nhệ r. Thậtvậy,
giảsửV→W∈Fnhứngkhôngthoảtrênr. Dođó,tacóV⊆X+hoặchaibộcủa rsẽkhôngbằng
nhauítnhấttrênmộtthuộctínhcủaV.NhưvậyWkhôngthểlàtậpconcủaX+ho ặcV→Wthoả
trênr.
GọiA∈WnhưngAkhôngthuộcX+.VìXV⊆X+doV⊆X+nênX→Vsuy ratừbổđề5.3.
Ápdụngluậtbắc cầuvàluật táchvới X →Vvà V→W ∈F suyraX →A. Nh ưngdoAkhông
thuộcX+ nhưgiảthiết, dovậylàmâuthuẫn.Từđóđi đếnkếtluậtrằngmỗiV →
W∈Fđềuthoả trênr.
Bâygiờ cầnchứngminhX→Ykhôngthoảtrênr. GiảsửrăngX→Ylàthoả trênr. Nhưtrên
cóX⊆X+vàsuyraY⊆X+,nếukhônghaibộthuộcrlàbằngnhautrênXnhưngk hôngbằngnhau
trênY.Theobổđề5.3thìX→Ycóthểsuyrađượctừhệtiênđề,điềuđólàhoàn toànmâuthuẫn
với giả thiết rằng X → Y là không thể suy diễn được từ hệ tiên đề Armstrong. Do vậy X → Y
khôngthể đúng trên r. Đến đây có thể kết luận: Nếu X → Y không suy diễn đư ợc từ hệ tiên đề
ArmstrongthìX→YkhôngthểsuydiễnlogicđượctừF.Vậyhệtiênđềlàđầyđủ.
Tínhtoánbaođóngcủatậpthuộctính.
ViệctínhtoánbaođóngF+củatậpcácphụthuộchàmFtrongtrườnghợp tổng quátlàrấtkhoá
khănvàtốnkémthờigianbởivìtậpcácphụthuộchàmthuộcF+rấtlớnchodùFc óthểlàkhánhỏ.
ChẳnghạnchoF làtậpcác phụthuộchàmvới F={A→ B1,A→B2,..., A→BN
}.F+khiđócòn
đượctínhnhữngphụthuộchàmA→YvớiY⊆{B1,B2,...,BN}.Nhưvậysẽcó2N –1tậpconkhác
rỗngcủaY. Tuynhiênviệc tínhX+,bao đóngcủatậpthuộctính Xlạikhông khó. Theobổđề 5.3
việckiểmtraX→Y∈F+khôngkhóhơnviệctínhX+.
Thuậttoán.Tínhbaođóngcủatậpcácthuộctínhđốivớimộttậpphụthuộchà m.
Vào:TậphữuhạncácthuộctínhU,tậpcácphụthuộchàmFtrênUvàX⊆U Ra:BaođóngcủaXđốivớiF.
Phươngpháp:
4 3
0 1 2
Bước0:ĐặtX0=X
Bướci:TínhXitừXi-1,cụthểXi=Xi-1∪AnếutồntạimộtphụthuộchàmY
→Z∈FmàY⊆
Xi-1vớiA∈ZvàA∉Xi-1.NgượclạiđặtXi=Xi-1.
VìrằngX=X0⊆...⊆ Xi ⊆...⊆UvàUlàhữuhạnchonênsẽtồntạimột chỉsốinàođómà
Xi=Xi-1,khiđóđặtX+=Xi.
Địnhlý.ThuậttoántínhbaođóngX+làđúng. Chứngminh:chứngminhbằngquynạp. Bướccơsở:ĐúngvàiA∈XrõràngX→A. LầnlượttínhcáctậpX ,X ,X ...theocácbướcsau:
Bướcquynạp:Giảsửbướcj-1đúng.Cầnchứngminhchobướcthứj.Tứclà nếuAđượcthêm
vàoXjthìA∈X+,trongđóXj-1chỉchứacácthuộctínhthuộcX+.Thậtvậy,theo thuậttoánởbước
thứj,nếuAlà thuộctínhđượcđưavàoXj thìphảitồntạimộtphụthuộchàmY→
X∈F,Y⊆Xj-1
vàA∈Z.Theogiảthiếtquynạp,tacóY⊆X+.X→Ytheobổđề5.2;ápdụnglu ậtbắccầuchoX
→YvàY→ZcóX→Z.DoA∈ZnênZ→Atheoluậtphảnxạ.Ápdụngluậtb ắccầuchoX→
ZvàZ→A,tacóX→AvàdođóA∈X+
Ngượclại, cầnchứng minhrằng nếuA ∈ X+thì Aphải thuộc vàoXj nào đó. Có điềukhông
quantrọnglàthuậttoán5.1cóthểkếtthúcsớmhơntrướckhitínhtoánbướcthứjc hoXj.Nêuthuật
toándừngởbướcXi= Xi-1 vớii< jthìrõràngrằngXi =Xj.DovậyXi =X+, trongđócócảthuộc
tínhA.TrongquátrìnhchứngminhcầnsửdụngtớihệtiênđềArmstrong:X→Y suydiễntừFthì
mỗithuộctínhA∈YđượcthêmvàotạimỗiXjnàođó.Cácbướcquynạpsẽthựch iệnthêmmộtsố
dòng,trongđómỗi dònglàmộtphụthuộchàmthuộcFvàsửdụngluậtphảnxạh oặcgiảthiếtcủa
bướcquynạptrướchoặcsửdụngluậttăngtrưởngvàluậtbắccầu.Cuốicùngsẽlà X→Y.
4 4