Các bài tập ôn thi co so du lieu
Trang 1Để tìm một khóa của lược đồ chúng ta có thể làm như sau:
Bước 1 : tìm một siêu khóa, có thể chọn là tập U, hoặc sử
Bước 2: Lần lượt xét các thuộc tính của siêu khóa K, giả
sử xét thuộc tính A thuộc K, ta sẽ tính bao đóng của tập (K\A), nếu (K\A)+ = U thì ta sẽ gán K =K\A Và khi xét đếnthuộc tính cuối cùng trong K, giá trị K cuối cùng nhận đượcchính là một khóa của lược đồ
Minh họa cụ thể như sau:
Bước 1: VP = BC BE CG K = BCEGK,
VT = ADH GH D CH = ACDGH
Tính siêu khóa K = U \ (VP\VT) = U \ (BCEGK\ACDGH) =
U \ BEK = ACDGH
Bước 2: Lần lượt xét các thuộc tính trong K
+ Xét A, tính bao đóng của (K\A), (K\A)+ = (CDGH)+ =CDGH BE K = BCDEGHK ≠ U , do vậy không loại A.+ Xét C, tính bao đóng của (K\C), (K\C)+ = (ADGH)+ =ADGH BC BE K CG =A BCDEGHK = U , do vậyloại C ra khỏi K, tức là K = ADGH
+ Xét D, tính bao đóng của (K\D), (K\D)+ = (AGH)+ = AGH
BE =ABEGH ≠ U , do vậy không loại D ra khỏi K
Trang 2+ Xét G, tính bao đóng của (K\G), (K\G)+ = (ADH)+ = ADH
BC CG BE K =ABCDEGHK = U , do vậy loại G rakhỏi K K= ADH
+ Xét H, tính bao đóng của (K\H), (K\H)+ = (AD)+ = AD ≠
U , do vậy không loại H ra khỏi K
Kết luận: khóa của lược đồ là ADH.
b) Cho lược đồ quan hệ: =(U,F) với U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG
BDE }, hãy tìm một khóa của lược đồ
c) Cho lược đồ quan hệ =(U,F) với U=ABCDEGH
F={AG CBE, AC BCG, GDBA, ACHHE, CG BDE } hãy tìm một khóa của lược đồ
d) Cho lược đồ quan hệ =(U, F) với U=ABCDEH,
F={ BCE, DA, CA, AED, BECH} Hãy tìm một
khóa của lược đồ
Trang 3Bài 1.6:Bài tập về tìm tất cả các khóa của lược đồ
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy áp dụng thuật toán để tìm ra tất cả các khóa của lược đồ.
Cho lược đồ quan hệ = (U, F) để tìm tất cả các khoá củalược đồ quan hệ ta sẽ làm như sau:
B1) Xác định I
B2) Nếu I += U thì kết luận lược đồ có một khoá duy nhất
là I và kết thúc thuật toán Ngược lại I + U thì chuyểnsang bước tiếp theo
B5) Tìm tất cả các tập con khác rỗng của B, ký hiệu cáctập con đó là {B1, B2, Bn} Tính (BiI)+ (i=1 n), nếu(BiI)+ = U thì đặt Mi=BiI
B6) Khi đó M= {M1, M2, …, Mh} là họ tất cả các siêu khoácủa lược đồ
B7) Loại bỏ các siêu khoá không tối tiểu ra khỏi M, tức là nếu Mi Mj (*) ( ij, i, j= 1,n ) thì loại Mj ra khỏi M Tập M thu được sau khi loại bỏ tất các phần tử thoả mãn biểu
thức (*) chính là họ tất cả các khoá của lược đồ
Trang 4Nhận xét:
- Từ một tập B gồm n phần tử ta có thể lập lên 2n-1 tập conkhác rỗng của B Cho nên dù n là một số không lớn lắm thì
2n-1 cũng là một số tương đối lớn Do vậy bài toán tìm tất
cả các khoá của lược đồ quan hệ có thể coi là một bài toánkhó (vì có độ phức tạp thuật toán là hàm mũ)
- Nếu I +U và tập B chỉ gồm hai phần tử (giả sử B=B1B2)thì suy ra lược đồ chỉ có hai khoá là I B1 và I B2
Bài tập
a) Cho lược đồ quan hệ = (U, F) với U=ABCDEGH, U, F) với U=ABCDEGH, ) với U=ABCDEGH,
các khoá của lược đồ
N’=(I N)+ \ I =(ABCDH)+ \ ABC = DH N
B=U \ N \ I = ABCDEGH \ ABC \ DH =EG
B4) Do B có hai thuộc tính, mặt khác (I )+ U nên lược đồ
Trang 5F) với U=ABCDEGHQ, ={ ABCADH, ABGQEH, AEDG, CQEH} Hãy tìm tất cả các khoá của lược đồ
N’=(I N)+ \ I =(ABCDH)+ \ ABC = DH N
B=U \ N \ I = ABCDEGHQ \ ABC \ DH =EGQ
B4) Do |B| >2 do vậy chúng ta sẽ chuyển sang bước 5
B5) Tập các tập con khác rỗng của B là {E, G, Q, EG, EQ,
GQ, EGQ}
Ta nhận thấy (E I)+ = (ABCE)+ = U, do vậy ABCE sẽ
được thêm vào M
Tương tự (G I)+ = (ABCG)+ = U, do vậy ABCG sẽ được thêm vào M
Tương tự (Q I)+ = (ABCQ)+ = U, do vậy ABCQ sẽ được thêm vào M
Tương tự cho tập, ABCEG, ABCEQ, ABCGQ cũng được thêm vào M
B6) tập các siêu khóa của lược đồ là M = {ABCE, ABCG, ABCQ, ABCEG, ABCEQ, ABCGQ}
B7) Do ABCE là tập con của hai tập ABCEG và ABCEQ, ABCG là tập con của hai tập ABCEG và ABCGQ, và
ABCQ là tập con của ABCEQ và ABCGQ
Trang 6Do vậy các tập ABCEG, ABCEQ, ABCGQ sẽ bị loại khỏi M.
Kết luận: danh sách các khóa của lược đồ là: ABCE, ABCG, ABCQ.
c) Cho lược đồ quan hệ =(U, F) với U=ABCDEGHK
F={ ADHBC, GHBE, DCG, CHK}
Hãy tìm tất của các khoá của lược đồ
d) Hãy xác định tất cả các khoá cuả các lược đồ quan hệ
=(U, F) với
1) U=ABCEDH và F={ABC, CDE, AHB, BD, AD}2) U=ABCDMNPQ và F={AMNB, BNCM, AP, DM, PCA, DQA}
3) U=ABCDEGHIJ và F={AJ, AEH, HE, DEH, AI, ABC, CBD, JE}
Trang 7Bài 1.7:Bài tập về kiểm tra một lược đồ có thỏa mãn dạng chuẩn 2NF) với U=ABCDEGHQ, hay không.
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy áp dụng thuật toán để kiểm tra lược đồ có thỏa mãn dạng
chuẩn 2NF hay không.
Thuật toán:
B1) Tìm tất cả các khoá của của lược đồ , từ tập tất cảcác khoá này ta suy ra các thuộc tính không khoá của lược
đồ Ký hiệu tập thuộc tính không khoá này là NK
B2) Với mỗi khoá Ki ta tìm tất cả các tập con thực sự của
Ki, ký hiệu họ các tập con thực sự của Ki kà {S1, S2, ,Ski},
ký hiệu Q={Q1, Q2, , Qn} là họ tất cả các tập con thực sựcủa các khoá Ki
B3) Tìm bao đóng Q+={Q1+, Q2+, , Qn+}
B4) Nếu Qi+ NK = với i= 1 n thì lược đồ ở dạng chuẩn 2NF, ngược lại nếu Qi+ NK thì lược đồ không ở dạng chuẩn 2NF
Bài tập:
lược đồ có thỏa mãn dạng chuẩn 2NF) với U=ABCDEGH, hay không?
Hướng dẫn:
B1) theo câu a bài 1.6 chúng ta đã tính được hai khóa của lược đồ là ABCE, ABCG Do vậy tập các thuộc tính khóa làABCEG, tập các thuộc tính không khóa là NK = DH
Trang 8B2) liệt kê các tập con thực sự của hai khóa
Q = {A, B, C, E, G, AB, AC, AE, BC, BE, CE, ABC, ABE, ACE, BCE, AG, BG, CG, ,ABG, ACG, BCG}
B3) tính bao đóng của tập các tập trong Q
Q+ = {A, B, C, E, G, AB, AC, ADEG, BC, BE, CE, ABCDH, ABDEG, ACE, BCE, AG, CG, ABDEGH , ACG, BCG}
B4) ta nhận thấy ABDEGH DH = DH ≠ do vậy lược đồkhông ở dạng chuẩn 2NF
b) Cho lược đồ quan hệ =(U, F) với U=ABCDEGHK,
F ={ ADHBC, GHBE, DCG, CHK} Hãy kiểm tra
lược đồ có thỏa mãn dạng chuẩn 2NF hay không
c) Cho lược đồ quan hệ =(U, F) với U=ABCEDH và
F={ABC, CDE, AHB, BD, AD} Hãy kiểm tra lược
đồ có thỏa mãn dạng chuẩn 2NF hay không
Trang 9Bài 1.8:Bài tập về kiểm tra một lược đồ có thỏa mãn dạng chuẩn 3NF) với U=ABCDEGHQ, hay không.
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy áp dụng thuật toán để kiểm tra lược đồ có thỏa mãn dạng
chuẩn 3NF hay không.
Thuật toán :
B1) Tìm tất cả khóa của lược đồ
B2) Từ F tìm tập phụ thuộc hàm tương đương F’, mà vếphải của các phụ thuộc hàm trong F’ chỉ có một thuộc tính.B3) Nếu mọi phụ thuộc hàm X A F’ với A X đều có X
là siêu khóa hoặc A là thuộc tính khoá thì đạt chuẩn 3NF ngược lại không đạt chuẩn 3NF
a) Cho lược đồ quan hệ =(U, F) với U=ABCDEGHQ, U, F) với U=ABCDEGHQ, ) với U=ABCDEGHI và tập phụ thộc hàm
F) với U=ABCDEGHQ, ={AEB CD, AED GHIB, GHE ABI} Lược đồ có thỏa mãn dạng chuẩn 3NF) với U=ABCDEGHQ, hay không?
Hướng dẫn:
B1) áp dụng thuật toán tìm tất cả các khóa của lược đồ ta nhận được: ABE, AED, GHE
B2) Tìm tập phụ thuộc hàm F’ tương đương: F’ =
{AEBC, AEBD, AEDG, AEDH, AEDI, AEDB, GHE A, GHE B, GHE I }
B3) ta nhận thấy mọi phụ thuộc hàm đều có về trái là siêu khóa, do vậy lược đồ trên thỏa mãn dạng chuẩn 3NF
Trang 10b) Cho lược đồ quan hệ = (U, F) với U=ABCDEGHQ, U, F) với U=ABCDEGHQ, ) với U={A 1 A 2 A 3 A 4 A 5 } F) với U=ABCDEGHQ, ={ A 1 A 2 A 3 , A 2 A 4 A 5 , A 2 A 3 } Lược đồ có thỏa mãn dạng chuẩn 3NF) với U=ABCDEGHQ, hay không?
U do vậy lược đồ đã cho không ở dạng 3NF
c) Cho =(U, F) với U=ABCDEG và F={ABC, CB,
Trang 11Bài 1.9: Bài tập về kiểm tra một lược đồ có thỏa mãn dạng chuẩn BCNF) với U=ABCDEGHQ, hay không.
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy áp dụng thuật toán để kiểm tra lược đồ có thỏa mãn dạng
chuẩn BCNF hay không.
Thuật toán :
B1) Từ F tìm tập phụ thuộc hàm tương đương F’, mà vếphải của các phụ thuộc hàm trong F’ chỉ có một thuộc tính.B2) Nếu mọi phụ thuộc hàm X A F’ với A X đều có X
là siêu khóa thì đạt chuẩn BCNF ngược lại không đạt chuẩn BCNF
a) Cho lược đồ quan hệ =(U, F) với U=ABCDEGHI và
B2) ta nhận thấy tất cả các phụ thuộc hàm trong F’ đều thỏa mãn về trái là siêu khóa
Do vậy lược đồ thỏa mãn dạng chuẩn BCNF
Trang 12b) Cho lược đồ quan hệ =(U, F) với U=ABCDEF và
F={ABC, CB, ABDE, FA} Lược đồ có thỏa mãn dạng chuẩn BCNF hay không?
c) Cho lược đồ quan hệ =(U, F) với U=ABCD,
F={CDB, AC, BACD } Lược đồ có thỏa mãn dạng chuẩn BCNF hay không?
Trang 13Bài 1.10: Bài tập về tìm dạng chuẩn cao nhất của lược đồ.
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy
áp dụng thuật toán để tìm dạng chuẩn cao nhất mà
lược đồ thỏa mãn.
Thuật toán :
B1) Tìm tất cả khóa của lược đồ
B2) Sử dụng thuật toán kiểm tra lược đồ ở dạng BCNF,nếu lược đồ ở dạng BCNF thì dừng thuật toán và kết luậndạng chuẩn cao nhất của lược đồ là BCNF, ngược lại thìchuyển qua bước tiếp
B3) Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn3NF, nếu lược đồ ở dạng chuẩn 3NF thì dừng thuật toán
và kết luận dạng chuẩn cao nhất của lược đồ là 3NF,ngược lại thì chuyển qua bước tiếp
B4) Sử dụng thuật toán kiểm tra lược đồ ở dạng chuẩn 2NF, nếu lược đồ ở dạng chuẩn 2NF thì dừng thuật toán
và kết luận dạng chuẩn cao nhất của lược đồ là 2NF,
ngược lại thì lược đồ ở dạng 1NF
a) Cho lược đồ quan hệ =(U, F) với U=ABCD, F={DB,
CA, BACD } Hãy tìm dạng chuẩn cao nhất của lược đồ
Hướng dẫn:
Trang 14B1) Áp dụng thuật toán tìm tất cả các khóa của lược đồ ta nhận được: D, B là hai khóa của lược đồ.
B2) Áp dụng thuật toán kiểm tra lược đồ có thỏa mãn dạngchuẩn BCNF hay không, ta nhận thấy lược đồ không thỏa mãn dạng chuẩn BCNF vì C A, C không phải là siêu
khóa
B3) Lược đồ không thỏa mãn dạng chuẩn 3NF A, C đều
là thuộc tính không khóa
B4) Vì các khóa của lược đồ chỉ có một thuộc tính đơn do vậy lược đồ thỏa mãn dạng chuẩn 2NF
Vậy dạng chuẩn cao nhất mà lược đồ thỏa mãn là 2NF
b) Cho lược đồ quan hệ =(U, F) với U=ABCD, F={CDB,
AC, BACD }
.Hãy tìm dạng chuẩn cao nhất của lược đồ
c) Cho lược đồ quan hệ =(U, F) với U=XYZW và
F={YW, WY, XYZ}
.Hãy tìm dạng chuẩn cao nhất của lược đồ
d) Cho lược đồ quan hệ =(U, F) với U= ABCDE và
F={ ABCE, EAB, CD }.Hãy tìm dạng chuẩn cao nhất của lược đồ
Trang 15Yêu cầu chung: Với một lượt đồ quan hệ đã biết,và
một phép tách lược đồ thành những lược đồ con Hãy kiểm tra phép tách có mất mát thông tin hay không.
Thuật toán :
B1) Giả sử U={A1, A2, , An}, ta xây dựng một bảng gồmk+1 dòng n+1 cột ( n=| U | , k=| | ), cột thứ i (i=1 n) củabảng ứng với thuộc tính Ai, hàng thứ j (j=1 k) của bảngứng với lược đồ con j= (Uj, Fj), tại cột i (i=1 n) và hàng j(j=1 k) ta điền ký hiệu aj (ta gọi ký hiệu aj là tín hiệu chính)nếu thuộc tính Aj Ui , ngược lại ta điền bji (ta gọi bji là tínhiệu phụ)
B2) Biến đổi bảng như theo quy tắc như sau:
Với mỗi phụ thuộc hàm XY F, nếu trong bảng có haihàng giống nhau trên tập thuộc tính X thi ta cần làm chúnggiống nhau trên tập thuộc tính Y theo quy tắc sau:
- Nếu một trong hai giá trị là tín hiệu phụ thì ta sửa lạitính hiệu phụ thành tín hiệu chính tức là sửa bji thành
aj
- Nếu cả hai là tín hiệu phụ thì ta sửa lại một trong haitín hiệu đó bằng một trong các ký hiệu bji , tức là sửalại chỉ số cho giống nhau
Tiếp tục áp dụng các phụ thuộc hàm trong bảng (kể cả cácphụ thuộc hàm đã được sử dụng) cho tới khi không còn ápdụng được nữa
B3) Quan sát trong bảng cuối cùng: nếu xuất hiện ít nhấtmột hàng gồm toàn tín hiệu chính (hàng gồm toàn ký hiệua) thì phép tách có kết nối không mất thông tin, ngược lạithì phép tách là phép tách có kết nối mất thông tin
Trang 16a) Cho lược đồ quan hệ = (U, F) với U={A1, A2, A3, A4, A5}F={ A1 A2 A3 , A2 A4 A5 , A2 A3}
={ A1 A2 A4, A2 A3, A1 A4 A5} Hỏi rằng phép tách trên cókết nối không mất thông tin không?
Trang 17B2) Biến đổi bảng trên dựa vào tập phụ thuộc hàm F
+ Sử dụng phụ thuộc hàm A1 A2 A3 ta thấy bảng không
có gì thay đổi
+ Sử dụng phụ thuộc hàm A2 A4 A5 ta có bảng mới nhưsau:
+ Sửdụng
phụthuộchàm
A2 A3
B3) Trong bảng này có hàng
Trang 18cuối cùng gồm toàn các tín hiệu chính, do vậy phép tách
là phép tách kết nối không mất thông tin
b) Cho lược đồ quan hệ =(U, F) với U=ABCD, F={AB,
ACD}, ={AB, ACD} Hỏi rằng phép tách trên có kết nốikhông mất thông tin không?
c) Cho lược đồ quan hệ =(U, F) với U=ABCDE, F={AC,
BC, CD, DEC, CEA}, ={AD, AB, BE, CDE} Hỏirằng phép tách trên có kết nối không mất thông tinkhông?
Trang 19b) Cho lược đồ quan hệ =(U,F); U=ABCDEGH ,
F={ ABBCP, EBGH, ACD BG, DAEH}
Hãy tính X+ trong các trường hợp
Trang 20Bài 1.3: Bài tập về kiểm tra lược đồ có một hoặc nhiều khóa
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy
nhiều khóa.
a) Cho lược đồ quan hệ = (U,F) với U = ABCDEGH ,
F={AB C, B D, CD E, CE GH, GA} Lược đồ có một hay nhiều khóa?
Từ công thức trên ta có: I α = U\ {ACDEGH}= B
Bước 2: tính bao đóng của B, B+ = B D = BC ≠ U,
do vậy lược đồ có nhiều hơn một khóa
b) Cho lược đồ quan hệ (=(U, F) với U=ABCDEGH và
F={ ABCDE, BCDG, ABHEG, CEGH} Lược đồ có một hay nhiều khóa?
Hướng dẫn:
Trang 21Bước 2: tính bao đóng của ABC,(A BC)+ = ABC DE G
GH = ABCDEGH= U, do vậy lược đồ códuy nhất một khóa
c) Cho lược đồ quan hệ =(U, F) với U=ABCDEGH và
F={CDH, EB, DG, BHE, CHDG, CA } Lượt đồ
có một hay nhiều khóa?
d) Cho lược đồ quan hệ =(U, F) với U=ABCDEGH,
F={ DEG, HC, EA, CGH, DGAE, DB} Lược đồ
có một hay nhiều khoá?
e) Cho lược đồ quan hệ =(U, F) với U=ABCDMNPQ và
F={AMNB, BNCM, AP, DM, PCA, DQA} Lược
đồ có một hoặc nhiều khóa?
Trang 22Bài 1.4:Bài tập về kiểm tra một tập thuộc tính có phải là khóa không?
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, với một tập thuộc tính cho trước, hãy kiểm tra xem tập
thuộc tính đó có phải là khóa hay không.
a) Cho lược đồ quan hệ: =(U,F) với U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE }, và K = ACGH
Hỏi rằng K có là khoá của lược đồ hay không?
Bước 2: Nếu K là khóa thì mọi tập con thực sự của K
không phải là siêu khóa
Do vậy ta chỉ cần kiểm tra các tập con thực sự lớn nhất của K là { ACG, ACH, CGH, AGH}, dề dàng nhận thấy
rằng ACH là siêu khóa vì bao đóng của
Trang 23F={AG CBE, AC BCG, GDBA, ACHHE, CG BDE } Hãy cho biết những tập thuộc tính nào sau đây là khóa của lược đồ: AG, AC, GDC, CGH
Bài 1.5:Bài tập về tìm một khóa của lược đồ
Yêu cầu chung: Với một lượt đồ quan hệ đã biết, hãy
áp dụng thuật toán để tìm ra một khóa của lược đồ.
a) Cho lược đồ quan hệ =(U, F) với U=ABCDEGHK,
F ={ ADHBC, GHBE, DCG, CHK} Hãy tìm mộtkhóa của lược đồ