NHANVIEN NGUOIQL MATH

Một phần của tài liệu giáo án môn cơ sở dữ liệu (Trang 30 - 38)

DMS NMG NGUOICC KHACHH NMG DONDH õ õ

MDS

ChươnG 3 LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU

BàisoạnCơsởdữliệu Trang21

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

Đặt vấn đề

CholượcđồquanhệR(A1,A2,...,An),ứngvớimộttậpthựcthể hoặcmộtmối quanhệtrongsơđồmốiquanhệthựcthể.Mỗihiệnhành củaR chứacácdữliệu phản ánhthôngtinvềmộtđốitượng hoặcmốiquanhệgiữacácđốitượngtrongthếgiớithực. Tuynhiên,khôngphảitậpcácbộtùyý cácgiátrịcủathuộctính đềulàhiệnhànhcủa 1 lượcđồquanhệnàođó.

Vídụ:xétlượcđồquanhệ SINH_VIÊN(TÊN,TUỔI) thìquanhệsau

TÊN TUỔI

TrầnthịB 100

LêvănC 24

đâykhôngphảilàmộthiệnhànhcủaquanhệSINH_VIÊN,vìrằngkhôngcósinhviên nàocótuổi100.

HoặclượcđồquanhệNGƯỜICC(TÊNCC,TÊNMH,GIÁ),xétquanhệsau

TÊNCC TÊNMH GIÁ

NguyễnvănA Càchua 2000đ

TrầnthịB Cải 1500đ

NguyễnvănA Càchua 2500đ

ĐâycũngkhôngphảilàmộthiệnhànhcủađồquanhệNGƯỜICCvìrằngkhông thểcómộtngườicungcấpcùngmộtmặthàngvới2giákhácnhau.

Nhưvậytrongcáchiệnhànhcủacáclượcđồquanhệ cómộtsốràngbuộcvềdữ liệu

1.Ràngbuộcvềngữnghĩamiền

Ràngbuộcnàyphụthuộcvàokhảnănghiểubiếtvềgiátrịcủacácthuộctính(các thànhphầncủaquanhệ).Chẳnhạn nếuthuộctínhAilàtuổithìtacóthểhạnchế miền giátrịDicủanótrongkhoản[0,200]

2.Ràngbuộcliênquan đếngiátrịcủamộtvàithuộctínhtronglượcđồquanhệ

Chẳnhạnsựbằngnhau giátrị củacácthuộctínhnày dẫnđếnsựbằngnhau vềgiátrị củacácthuộctínhkhác tagọilàphụthuộchàm.

2.3.4.1 Định nGhĩa:

CholượcđồquanhệR(A1,A2,...,An),X,Y⊆{A1,A2,...,An}.TanóirằngXxác địnhYhayYphụthuộchàmvàoXnếu trongmọihiệnhànhrcủaRcó2bộbằngnhau trêntậpthuộctínhXthìphảibằngnhau trêntậpthuộctínhY.kýhiệuX→Y

haynóicáchkhác với2bộ η,ϕ∈r; η(X)=ϕ(X) ⇒ η(Y)=ϕ(Y)

vídụtronglượcđồquanhệNGƯỜICC(TÊNCC,TÊNMH,GIÁ)tacóphụthuộchàmsau {TÊNCC,TÊNMH→GIÁ}

BàisoạnCơsởdữliệu Trang22

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

Nhưvậymọihiệnhành củalượcđồquanhệNGƯỜICCphảithỏamãnphụthuộc hàm {TÊNCC,TÊNMH→GIÁ}

Để thuậntiệnchoviệcmôtả mộtsốvấnđềvềphụthuộchàmtasửdụngcác ký hiệusau: (adsbygoogle = window.adsbygoogle || []).push({});

1.cácchữcáilớnđầudãyalphakýhiệucácthuộctínhA,B,C,...

3.Mộttậphữuhạncácthuộctính cóthểthay cholượcđồquanhệ.chẳnhạnta viết (A1,A2,...,An)thaychoR(A1,A2,...,An)

4.Tậpcácthuộctínhcóthểthaybằng dãythuộctínhđóvídụABCDthaycho {A,B,C,D}

5.phépghép2xâukýtự thaychophéphợp2tậpthuộctínhvídụABC∪DE=ABCDE 2.3.4.2 Cơsởlýluậncủaphụthuộchàm

1. Bao đónG của tậP Phụ thuộc hàm

CholượcđồquanhệR,X,Y ⊆R,rlàmộtquanhệcủaR.Tanóirằngrthỏamãn phụthuộchàmX→Ynếuvới2bộbấtkỳ η,ϕ,∈rsaocho η(X)=ϕ(X)thì η(Y)=ϕ(Y).

-Nếu X→Y là một phụ thuộc hàm của R thì mọi hiện hành r của R phải thỏa

mãn phụ

thuộc hàm X→Y

-GiảsửF làmộttậpcácphụthuộchàmcủaR.NếumọiquanhệrcủaR làmthỏamãn tấtcảcácphụthuộchàmcủaF đềuphảithỏamãnphụthuộchàmX→YtanóirằngF kéotheologicX→Y(hayFsuyralogicX→Y)

KýhiệuF⇒X→Y Vídụ: ChoR=ABC F={A→B,B→C} rõràngF⇒A→Cvìrằng với2bộbấtkỳ η,ϕ tacó A→B: η(A)=ϕ(A)⇒ η(B)=ϕ(B) B→C: η(B)=ϕ(B)⇒η(C)=ϕ(C) Suyra η(A)=ϕ(A)⇒ η(C)=ϕ(C) TứcA→C.

CholượcđồquanhệRvàtậpphụthuộchàmF.BaođóngcủaF làmộttậpphụ thuộchàm gồmcácphụthuộchàmđượcsuyralogictừFkýhiệuF+ đượcxácđịnhnhư sau:

F+={X→Y,X,Y⊆R|F⇒X→Y} VídụchoR=ABC;F={A→B,B→C} F+={A→A,A→B,A→C,...}

Khinóivềcáclượcđồquanhệchúngtađãthừanhậnsựtồntạimộttậpthuộctính đặtbiệtgọilàkhóa cholượcđồquanhệ. Tậpcácgiátrịcủacácthuộctínhkhóa của lượcđồquanhệ xácđịnhduynhấtmộtbộcủaquanhê.

BàisoạnCơsởdữliệu Trang23

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

đượcxácđịnhnhưsau:

1.XđượcgọilàkhóacủaR={A1,A2,...,An}nếuX→A1A2...AnđượcsuyralogictừF tứclàX→A1A2...An∈ F+

2.khôngcómộttậpconthựcsựYnàocủaXmàY→A1A2...An∈ F+

Trongmộtlượcđồquanhệcóthểcónhiềukhóa,ngườitathườngchọnmộtkhóalàm khóachính(Primarykey) cáckhóacònlạigọilàkhóaphụ(cadidatekey).

NếuXlàkhóa,YlàtậpchứaX(X⊆Y) thìYdượcgọilàsiêukhóa(Supperkey). 2. Các tiên đề về Phụ thuộc hàm

Đểxácđịnhkhóachoquanhệ ngườitacànntìmF+ củatậpphụthuộchàmF.Ta khôngthểsửdụngđịnhnghĩavềF+đểlàmđiềunày(Vìquánhiềulàmkhônghiệuquả)

GọiUlàtậptấtcảcácthuộctínhcủalượcđồquanhệ,Flàtậpcácphụthuộchàm trênU.Armstrong đãđưara3quytăcsuydẫn gọilàtiênđềArmstrong.

T1.Tiên đề Phản xạ

NếuY⊆X⊆UthìFsuydẫnraX→Y. T2. Tiên đề TănG trưởnG

Nếux→Y đượcsuyratừF vàZ⊆UthìXZ→YZ T3. Tiên đề bắt cầu

NếuX→Y,Y→ZđượcsuyratừFthìX→ZcũngđượcsuyratừF Vídụ:

CholượcđồquanhệU=ABCD

vàtậpphụthuộchàmF={A→C,B→D}

vàgiảsửtiênđềArmstrongđúngvớisuydẫnlogicthìtacóthểxácđịnhkhóa củalược đồquanhệUnhưsau: (adsbygoogle = window.adsbygoogle || []).push({});

1.A→CChotrước

2.AB→ABC:Luậttăngtrưởnghợp2vếvớiAB 3.B→D:chotrước

4.ABC→ABCD:tăngtrưởng,hợp2vếvớiABC 5.AB→ABCD:Bătcầu

ABlàkhóavìA

→ABCDvàB→ABCD. 3. Tính đúnG của các tiên đề ArmstronG Bổđề1:

cáctiênđềArmstronglàđúng.CónghĩalànếuX→YđượcsuyratừFbằngcáctiênđề

ArmstrongthìX→YcũngđượcsuyratừFbằnglogic

Chứngminh:

CholượcđồquanhệUvàtậpphụthuộchàmFtrênU tacầncmcáctiên đề Armstronglàđúng.

T1.Y⊆X⊆UtacầncmX→Yđúng(đượcsuyratừF)

BàisoạnCơsởdữliệu Trang24

õ

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

VớimoinquanhệrthỏamãnF,lấy2bộbấtkỳ η,ϕ∈r nếu η(X)=ϕ(X)⇔η(A)=ϕ(A)mọia∈X

Suyra η(Y)=ϕ(Y)(VìY⊆X) dođóF ⇒X→Y.

T2.MọiquanhệrthỏamãnF,lấy2bộ η,ϕ∈r.VìX→Yđúngnên η(X)=ϕ(X)⇒η(Y)=ϕ (Y)

giảthiết η(XZ)=ϕ(XZ)cầncm η(YZ)=ϕ(YZ)

Tacó η(XZ)=ϕ(XZ) ⇒ η(X)=ϕ(X)⇒ η(Y)=ϕ(Y)⇒ η(YZ)=ϕ(YZ) η(Z)=ϕ(Z) η(Z)=ϕ(Z)

VậyXZ→YZđúng

T3.MọiquanhệrthỏamãnF,lấy2bộ η,ϕ∈r. VìX→Y ⇔η(X)=ϕ(X)⇒η(Y)=ϕ(Y)

vàY→Z ⇔ η(Y)=ϕ(Y)⇒η(Z)=ϕ(Z)

từđótacó η(X)=ϕ(X)⇒η(Z)=ϕ(Z)tứcX→Zđúng 4. Các quy tắc dẫn suất

TừcáctiênđềArmstrong ngườitađưaramộtloạtcácquytătsuydẫntiệnlợichoviệcsử dụng bằngbổđềsau:

Bổđề2:

1.{X→Y,X→Z}thìX→Z(luậthợp)

2.{X→Y,WY→Z}thìWX→Z(luậttựabătcầu) 3.NếuX→YvàZ⊆YthìX→Z(luậttách) Chứngminh 1.X→Y⇒X→XY(T2) X→Z⇒XY→YZ(T2) X→YZ(T3) 2.X→Y⇒XW→YW(T2) YW→Z XW→Z 3.vìZ⊆YnênY→Z(T1) X→Y(gt)nênX→Z(T3)

từcácquytăttrên suyrahệquảquantrọng Hệquả:NếuY=A1,A2,...,Anthì

X→Y ⇔X→Ai(∀i=1,n)

khiđóX→Y=A1A2...An⇒X→Ai∀i=1,n(Luậttách) X→Ai∀i=1,n ⇒X→A1A2...An(luậthợp)

5. Bao đónG của tậP thuộc tính (adsbygoogle = window.adsbygoogle || []).push({});

GiảsửFlàtậpphụthuộchàmtrênlượcđồquanhệU,Y⊆U.Baođóngcủatập thuộctínhX kýhiệulàX+đượcxácđịnhnhưsau:

X+={A∈U: ∃X,Y⊆UA⊆Y,X→YđượcsuyratừFbằngArmstrong}

õ

õ

BàisoạnCơsởdữliệu Trang25

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

Bổđề3

X→YđượcsuyratừFbằngArmstrong khivàchỉkhiY⊆ X+(đốivớitậpphụthuộchàm F)

C/mgiảsửY=A1A2...An(Ai∈U)

NếuX→YđượcsuyratừFbằngArmstrong thìtheoArmstrongX→Ai∀i=1,n(luật tách) ⇒Ai ∈ X+ ∀i=1,n(địnhnghĩaX+)

⇒A1A2...An∈ X+hayY∈ X+

Ngượclại nếuY∈ X+ ⇒Ai ∈ X+ ∀i=1,n⇒X→Ai ∀i=1,nhayX→Y(luậthợp) 6. tính đủ của tiên đề ArmstronG

TasẻC/mrằngnếu1phụthuộchàmđượcsuydẫnlogictừArmstrongtừmộttập phụthuộchàmnàođóthìnócũngphảiđượcsuydẫn bằngcáctiênđềArmstrong. NếuF(L)⇒X→YthìF(A) ⇒X→Y. Địnhlý Hệ tiên đề Armstrong là đúng và đủ. C/m 1tínhđúnglàbổđề1đãC/m 2/Tínhđủ

GiảsửFlàtậpphụthuộchàmtrênUvàX→Y khôngđượcsuyratừFbằng Armstrong tasẽC/mX→Y cũngkhôngđượcsuyratừFbằnglogic.

ĐểC/mX→YkhôngđượcsuyralogictừF tatìmmộtquanhệrthỏamãnFmàkhông thỏamãnX→Y

Lấyquanhệrnhưsau 1 1 . . .1 1 1 . . . 1 η 1 1 . . .1 0 0 . . . 0 ϕ

tasẽcmrthỏamãnFnhưngkhôngthỏamãnX→Y a.rthỏamãnF

GiảsửrkhôngthỏamãnFthìtồntạimộtphụthuộchàmWsaochoW→V ∈Fsaochor khôngthỏamãnW→V

suyraW⊆ X+vàV ⊄ X+

VìW⊆ X+ nênX→WđượcsuyrabằngArmstrong theoluậtbătcầutacóX→Vđược suyratừFbằngArmstrong .ĐiềunàymâuthuẩnvớiV ⊄ X+.

vậyrthỏamãnF

b.rkhôngthỏamãnX→Y GiảthiếtrthỏamãnX→Y VìX⊆ X+ nênY⊆ X+

theobổđề3X→YđượcsuyratừArmstrong điềunàymâuthuẩnvớigiảthiếtX→Y khôngđượcsuyratừArmstrongdođórkhôngthỏamãnX→Y.

BàisoạnCơsởdữliệu Trang26

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

Vậy:X→YkhôngđượcsuyralogictừF

Kếtluận:SuydẫnbằngArmstrongvàsuydẫnlogiclàtươngđươngnhau. 7. Tính bao đónG của tậP Phụ thuộc hàm

ChotậpphụthuộchàmF,ĐểtìmcácphụthuộchàmđượcsuyratừF taphảitìm F+. Côngviệcnàykháphứctạpvàmấtnhiềuthờigian.Chẳnhạn NếuF={A→B1,A→ B2,...,A→Bn}Armstrong,Bi ⊆UthìsốphụthuộchàmdạngA→Y,Y⊆B1B2,...Bnđãlà 2n vìvậyviệctínhF+làkhônghiệnthực vfađôikhikhôngcầnthiết.Bàitoánthưưòng đặtralà chophụthuộchàmX→Y xácđịnhxemF⇒X→Yhaykhông.

ĐểlàmviệcnàytachỉcầntínhX+(ĐốivớitậpphụthuộchàmF)vàxemY⊆ X+hay không:

NếuY⊆ X+thìX→YđượcsuyratừF NếuY∉ X+thìX→YkhôngdượcsuyratừF ThuậttóanTínhX+kháđơngiản (adsbygoogle = window.adsbygoogle || []).push({});

Thuật tóan tính bao đóng cuat tập phụ thuộc hàm

InPut:

-LượcđồquanhệU

-TậpphụthuộchàmFtrênU -X⊆U

Output:

-X+BaođóngcủaXđốivớitậpphụthuộchàmF PhươngPháp:

TínhdãyX(0),X(1),...,X(n)theocácbướcsau: 1.X(0)=X

2.X(i+1)=X(i) ∪{A:Y→Z∈F,A⊆Z,Y⊆ X(i)} 3.Lặplạibước2chođếnkhiX(i)=X(i+1)

RõràngX(0)⊆X(1)⊆...⊆X(n)DãyX(i)(i=0,1,2,...)làdãyđơnđiệutăngvàbịchặnthìhộitụ dođóthuậttoándừng.

Vídụ:

ChoLượcđồquanhệU=ABCDGE

F={AB→C,C→A,BC→D,D→EG,BE→C,CG→BD,CE→AC} X=BD

1.X(0)=X=BD2.X(1)=X(0) ∪{EG}=BDEG 2.X(1)=X(0) ∪{EG}=BDEG X(2)=BDEG∪{C}=BCDEG X(3)=BDEGC∪{A}=ABCDEG X(4)=X(3)=ABCDEG vậyX+=ABCDEG

BàisoạnCơsởdữliệu Trang27

Chương 2 CÁC MÔ HÌNH DỮ LIỆU CHO CÁC HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆ U

ĐiềunàynóilênrằngXlàkhóacủalượcđồquanhệU(CànC/mthêmrằngB+ ≠ X+và D+≠ X+).

8. Sự tươnG đươnG Giữa các tậP Phụ thuộc hàm

chohaitậpphụthuộchàmFvàGtrêncùngmộtlượcđồquanhệU.TanóirằngFtương đươngvớiGnếuvàchỉnếuF+ =G+

Đểxácđịnhxem haitậpphụthuộchàmFvàGcótươngđươngvớinhauhaykhông chúngtalàmnhưsau:

i. xácđịnhxemmỗiphụthuộchàm X →Y ∉ FcóthuộcG+haykhông. Nếutấtcả cácphụthuộchàmtrongF đều ∈ G+thìF+ ⊆ G+

NgượclạiY ⊆ X+thìX→Y ∉ G+

ĐểxácđịnhxemphụthuộchàmX→Y cóthuộcG+haykhông tatínhX+ đốivớiGnếu Y⊆X+ thìX→YG+

ii.tươngtựtacầnxácđịnhxem mọiphụthuộchàm cótrongG cóthuộcF+haykhông. NếumọiphụthuộchàmtrongGđều ∈ F+ thìG+ ⊆ F+

iii.NếuF+ ⊆ G+vàG+ ⊆ F+thìF+ =G+tanóihaitậpphụthuộchàmFvàGtương đươngnhau.

9. Phủ cực tiểu

Đốivớimọitậpphụthuộchàmđãcho tacóthể tìmtậpphụthuộchàmtươngđươngvới nó cócácthuộctínhđặtbiêththuậntiệnchoviệcthiếtkếCSDL.mộttrongcáctínhchất đơngiản nhưngquantrọng đólàtậpphụthuộchàmchỉcómộtthuộctínhởvéphải.

Một phần của tài liệu giáo án môn cơ sở dữ liệu (Trang 30 - 38)