Phụ thuộc hàm

Một phần của tài liệu bài giảng hệ quản trị cơ sở dữ liệu (Trang 50 - 58)

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.

XY(t1.X=t2.Xt1.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ônFF+

2.Tínhđơnđiệu:NếuFGthìF+G+

3.Tínhlũyđẳng:VớimọitậpphụthuộchàmFtaluônluôn(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

Một phần của tài liệu bài giảng hệ quản trị cơ sở dữ liệu (Trang 50 - 58)

Tải bản đầy đủ (DOCX)

(71 trang)
w