180 likes | 408 Vues
Bài tập phụ thuộc hàm. Các dạng bài tập. Tìm tập bao đóng của một tập thuộc tính Kiểm tra một tập thuộc tính có phải là khóa không Kiểm tra 2 tập phụ thuộc hàm có tương đương Kiểm tra 1 phụ thuộc hàm có được suy diễn từ tập phụ thuộc hàm cho trước Tìm tất cả các khóa
E N D
Cácdạngbàitập • Tìmtậpbaođóngcủamộttậpthuộctính • Kiểmtramộttậpthuộctínhcóphảilàkhóakhông • Kiểmtra 2 tậpphụthuộchàmcótươngđương • Kiểmtra 1 phụthuộchàmcóđượcsuydiễntừtậpphụthuộchàmchotrước • Tìmtấtcảcáckhóa • Tìmphụthuộchàmdưthừa • Tìmtậpbaophủtốithiểu • Xácđịnhchuẩnhóavàchuẩnhóadữliệu
Cáchlàm • Dạng 1: • Giảithuậttìmtậpbaođóng
Cáchlàm • Dạng 1 • Vídụ • Cho tậpphụthuộchàm: • Tìmtậpbaođóngcủatậpthuộctính: • A+, B+, AB+, AE+
Cáchlàm • Dạng 2 • Kiểmtramộttậpthuộctínhcóphảilàkhóakhông • Tínhtậpbaođóngcủatậpthuộctínhđó • Nếu X+ = R thì: • Tìmvàloạibỏthuộctínhdưthừacủa X • Vídụ • ABE cóphảilàkhóa?
Cáchlàm • Dạng 3 • Kiểmtra 1 phụthuộchàm XYcóđượcsuydiễntừtậpphụthuộchàm FDs chotrước • Tínhtậpbaođóng X+ trên FDs • Nếu Y X+ thì X Y đcsuydiễntừ FDs • Vídụ: • B G cóthểsuytừ F không?
Cáchlàm • Dạng 4 • Kiểmtra 2 phụthuộchàmcótươngđương • F và G tươngđươngkhivàchỉkhi: • Mọiphụthuộchàmcủa F đượcsuyratừ G • Mọiphụthuộchàmcủa G đượcsuyratừ F • Kiểmtratừngphụthuộchàmcủa F và G nhưtrên • 2 tậpphụthuộchàmnàycótươngđương:
Cáchlàm • Dạng 5: Tìmtấtcảcáckhóa • We have: (U = R) • UL and UR are the set of LHS and RHS attributes • N = U – UR is the set of independent attributes and those which only appear on LHS N must be a part of keys • If N+ = R, then N is a minimal key Stop here! • Otherwise: • D = UR – UL is the set of attributes which only appears in RHS D cannot be a part of key • L = U – (N D) is the set of attributes which may or may not be a part of keys • For each combination X in L, we calculate {N X}+. If {N X}+ = R so it is a key
Cáchlàm • Dạng 5 • Vídụ • Tìmkhóacủa R = {A, B, C, D, E, F, G} vớitậpphụthuộchàmsau: F = {ABC→DE, AB→D, DE→ABCF, E→C} Ans: {GDE, GABC, GABE}
Cáchlàm • Dạng 6: tìmphụthuộchàmdưthừa • Vídụ: Ápdụngcho • Xét ADB • AD+ = {ADBC} AD B làdưthừa, G = {BC, CD, A B}
Cáchlàm • Dạng 7 • Tìmtậpbaophủtốithiểu
Cáchlàm • Lưu ý: tacóthểtìmphụthuộchàmdưthừatrướcđểgiảmsốlượngphụthuộchàmtrongbướctìmthuộctínhdưthừa, nhưcáchsau:
Cáchlàm • Dạng 7: • Bước 1: Phânrãđểvếphảicòn 1 thuộctính (dạng canonical form) • Bước 2: Loạibỏthuộctínhdưthừa Vớimỗiphụthuộchàm X A Xétmỗithuộctính B trong X Tính (X-B)+ đốivới (X->A) thaybằng (X-B) A Nếu (X-B)+ chứa B thìthay XA thành X-B A • Bước3: Loạibỏphụthuộchàmdưthừa • Nhưdạng6 • Ghichú: tanênthựchiệnbước 3 trướcbước 2 đểgiảmcôngsứctínhtoán
Vídụ: tìmphủtốithiểu:F = {AB→D, B→C, AE→B, A→D, D→EF} • Bước 1: đưavềchuẩn canonical form • F = {AB D, B C, AE B, A D, D E, DF} • Bước 2: tìmphụthuộchàmdưthừa • AB D: dưthừa • F = {B C, AE B, A D, D E, DF} • Bước 3: tìmthuộctínhdưthừa • Xét AE B • Thửbỏ A, tính E+ đốivới F = {B C, E B, A D, D E, DF}, • E+ = EBC A kodưthừa • Thửbỏ E, A+ = ABDEFC E dưthừa. Thay AE B thành A B • Vậytacó: F = {B C, A B, A D, D E, DF},
Cáchlàm • Dạng 8: Xácđịnhchuẩnhóavàchuẩnhóadữliệu • Vídụ: • Chuẩnhóa R trên sang 3NF
Bàitậpkếthợp • Cho R = ABCDEFGH, vớitậpphụthuộchàmsau: a. Tìmphủtốithiểu b. Tìmtấtcảkhóa c. Xácđịnhchuẩnhóacaonhấtmà R đạtđược, chuẩnhóa R đến BCNF
Bàitậpkếthợp • Đápán: • a. FDs = {AE, ED, BDE, FA, EB, DH, BGF, CDA}