Cần phân biệt các loại khoá, xác định khoá của lược đồ quan hệ... Tìm các khoá của lược đồ.[r]
(1)3 BàI TậP Về khoá MC TIấU CỦA BÀI NÀY GIÚP NGƯỜI HỌC
Phân biệt loại khố
Các thuật tốn tìm khoá, nhiều khoá. Ứng dụng giải toán khoá. A/ NHẮC LẠI LÝ THUYẾT
I. CÁC ĐỊNH NGHĨA, TÍNH CHẤT, THUẬT TỐN
1 Họ Sperner
Nếu gọi K tập tất c khoá lược đồ =(U,F), phần tử K tập thuộc tính tập hợp khơng bao
Định nghĩa: Họ Sperner U họ M={ X | XU } cho hai phần tử M không bao
nhau
Nhận xét: Tập hợp K tất khoá lược đồ họ Sperner U
2 Siêu khoá khoá
Định nghĩa: Cho lược đồ quan hệ =(U,F) , KU n ếu K+= U, ta nói K siêu khố.
Chú ý: Điều kiện K+=U thay KU KU \ K
Định nghĩa: Cho lược đồ quan hệ =(U,F) , KU n ếu K+= U, ta nói K siêu khố.
Chú ý: Điều kiện K+
=U thay KU KU \ K
Định nghĩa: Cho lược đồ quan hệ =(U,F), tập K U gọi khố lược đồ (nếu như
nó thoả mãn:
- K siêu khoá
- K1 K K1 Khơng siêu khố tức K+1 U
Chú ý: định nghĩa tương đương với định nghĩa
Cho lược đồ quan hệ =(U,F), tập K U gọi khoá lược đồ ( thoả mãn:
- K U F+
- K1 K K1 U F+ (K+ U)
Tập hợp K tất khoá lược đồ họ Sperner U
Bài toán: Cho M họ Sperner U có tồn hay không lược đồ quan hệ
=(U,F) cho K =M ( lược đồ có khoá phần tử họ M)
Trả lời: Có tồn lược đồ =(U,F) xây dựng sau:
Xây dựng F, giả sử M={X1, X2, , Xn} ta xây dựng F sau: F={ Xi U\ Xi i=1, , n }
Khi lược đồ =(U,F) có K =M
2 Một số vấn đề khoá
Cho =(U,F) ta cần quan tâm số vấn đề sau:
Bài toán 1:
Cho K U hỏi K có phải khố hay khơng?
Cách làm: Tính K+, K+ U K khơng khoá lược đồ
(2)Bài toán 2:
Tìm khố lược đồ
Cho lược đồ = (U, F), tìm khoá K
Phương pháp:
b1) Trước hết chọn siêu khoá K
b2) Từ siêu khoá kiểm tra xem có phải khố khơng
b3) Nếu K khố dừng thuật tốn, ngựơc lại chuyển bước
b3) Nếu K chưa phải khố có K1 tập thực lớn K K1 siêu khoá, thay K K1 quay trở lại bước b2
Mơ tả thuật tốn (bằng ngơn ngữ tựa Pascal):
Begin
K:= R;
For each A in K do
if (K-A)+ = R then K:= K- A;
end; Nhận xét:
Thuật tốn cho ta tìm khóa lược đồ quan hệ Nếu muốn tìm khóa khác (nếu có) lược đồ quan hệ ta thay đổi thứ tự loại bỏ phần tử khóa
Bài tốn 3:
T ìm giao tất khố
Kí hiệu =(U, F) với F={Li Ri , i=1, n }
Là tập mà phần tử tham gia vào tất khoá lược đồ hay I giao tất khoá lược đồ
Kí hiệu N tập mà phần tử khơng tham gia vào khố lược đồ
Kí hiệu S ={ U \ ¿ n
i=1 (Ri – Li) | Li Ri F } Khi đ ó: I =S = { U \ ¿i=1n (Ri – Li) | Li Ri F}
Bài toán 4:
Cho lược đồ quan hệ = (U, F) Hỏi lược đồ có khố
Phương pháp kiểm tra lược đồ cho có hay nhiều khố:
- Tính I
- Nếu (I)+ =U lược đồ cho có khố - Nếu (I)+ U lược đồ có nhiều khố
Trong ví dụ ta có I =AH ( I )+ U lược đồ cho có nhiều khố.
Bài toán 5:
Cho lược đồ = (U, F) Hãy tìm khố lược đồ
Thuật toán:
- Xác định I
(3)- Đặt B=U \N’ \ I , B I siêu khoá, từ tập ta bỏ phần tử để thu đựơc khoá
II MỘT SỐ LƯU Ý
Cần phân biệt loại khoá, xác định khoá lược đồ quan hệ Kiểm tra lược đồ cho có hay nhiều khóa?
B/ BÀI TẬP MẪU
Bài số 1:
Cho lược đồ quan hệ: =(U,F) V ới U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE } K = ACGH
Hỏi K có khố lược đồ hay không?
K+= ACGH BCG HE BDE = U suy K siêu khoá
Các tập thực lớn U ACG, CGH, ACH, AGH dễ dàng kiểm tra tập ACG có (ACH)+ = U K khơng khoá.
Bài số 2:
Cho lược đồ quan hệ =(U, F) với U=ABCDEGHK F={ ADHBC, GHBE, DCG, CHK}
Hãy tìm khố lược đồ
- Chọn siêu khốK=ACDGH
- loại A ta có (K-A)+ = (CDGH)+ = BCDEGHK U nên A loai đựơc - loại C ta có (K-C)+ = (ADGH)+ = ABCDEGHK=U
nên gán K:=K – {C}= ADGH
- loại D ta có (K-D)+ = (AGH)+ =ABEGH U nên khơng loại D - loại G ta có (K-G)+ = (ADH)+ = ABCDEGHK=U
nên gán K=K- {G} = ADH
- loại H ta có (K-H)+=(AD)+ =ACDG U nên khơng loại D Vậy khố K=ADH
Bài số 3:
Hãy tìm giao tấp khoá lược đồ =(U, F) Với U=ABCDEGH
F={AB CDE, AC BCG, BDG, ACHHE, CG BDE }
I = U \ ((CDE – AB) (BCG – AC) (G – BD) (HE – ACH) (BDE – CG) ) =U \ ( CDE BG G E BDE ) =U \ BCDEG=AH
Bài số 4:
Cho lược đồ quan hệ = (U, F) với
U=ABCDEGH, F={ ABCADH, ABGAEH, AEDG}
Hãy tìm tất khoá lược đồ I =U \ (Ri -Li )=ABC
N= (Ri -Li )=DH ( víi Li I )
(4)Do (I )+ U nên lược đồ cho có nhiều khố, lược đồ có hai khố I E
=ABCE và I G= ABCG
C/ BÀI TẬP TỰ GIẢI
Bài tập 1:
Xây dựng lược đồ quan hệ có khố ADE, BCH, CG, AHE
Bài tập 2:
Cho lược đồ quan hệ =(U, F)với U=ABCDEGHK
F={ ADHBC, GHBE, DCG, CHK} Hãy tìm
a) Giao tất khố
b) Lược đồ cho có hay nhiều khố c) Hãy tìm tất khố lược đồ d) Một số phần tử khơng khố
Bài tập 3:
Tìm thuộc tính khố lược đồ =(U, F)với U=ABCDE
F={ ABC, ADB, BD }
Hãy tìm phần tử khố lược đồ
Bài tập 4
Các mệnh đề mệnh đề đúng/ sai a) KU khoá KU b) KU khố KU
c) Hai khố khơng giao d) Hai khố không bao
e) Mọi lược đồ quan hệ có khố f) thân U khố
g) tồn lược đồ quan hệ khơng có khố h) U khơng thể khố lược đồ
i) Hợp hai khoá phân biệt khoá j) Hợp hai khoá siêu khoá
Bài tập 5:
Cho lược đồ quan hệ (=(U, F) với U=ABCDEGH
F={ ABCDE, BCDG, ABHEG, CEGH} Hãy tìm khóa lược đồ
Bài tập 6:
Cho lược đồ quan hệ =(U, F)với U=ABCDEGH
F={CDH, EB, DG, BHE, CHDG, CA } a) Tìm giao tất khố
b) Lược đồ có hay nhiều khố
c) Tập ABD có phải khố khơng? ? d) Tập CH có phải khố khơng? ?
e) Tính Z=(X+Y)+ (K+ -Y) trong X=CD , Y=CH , K siêu khoá
Bài tập 7:
(5)U=ABCD, F={ ADBC, BA, DC} a Tìm khoá lược đồ
b Cho biết C có phải thuộc tính khố hay khơng?
Bài tập 8:
Cho lược đồ quan hệ =(U, F) với
U=ABCDEGH, F={ DEG, HC, EA, CGH, DGAE, DB} Tìm giao tất khố
a) Lược đồ có hay nhiều khố b) Tìm khố lược đồ
c) Tập BCE có phải khố khơng? ?
d) Hãy thêm bớt phụ hàm F để lược đồ có khố
Bài tập 9:
Cho lược đồ quan hệ =(U, F)với
U=ABCDEH, F={ BCE, DA, CA, AED, BECH} Tìm khố K lược đồ
a) Ngồi khố K lược đồ cịn có khố khác khơng? Vì sao? b) Tập BCH có phải khố khơng? ?
c) Tập BD có phải khố khơng? ?
Bài tập 10:
Cho lược đồ quan hệ =(U, F) với U=ABCDE , F={ DEA, BC, EAD}
a) Tìm khố lược đồ
b) Tập BCE có phải khố khơng? ? c) Tập AD có phải khố khơng? ? d) Tập BD có phải khố khơng? ? e) Lược đồ có cịn khố khơng? Vì sao?
f) Tính Z=(X+ Y)+ (K+ -Y)với X=DE, Y=AD, K siêu khố .
Bài tập 11:
Cho lược đồ quan hệ =(U, F) với
U=ABCDE , F={ AEB, CD, ABE}
Tìm khố lược đồ
a) Tập BDE có phải khố khơng? ? b) Tập AC có phải khố khơng? ? c) Lược đồ có cịn khố khơng? Vì sao?
d) Tính Z=(X+ Y)+ K+ với X=AB, Y=AC, K siêu khoá Bài tập 12:
Cho lược đồ quan hệ =(U,F) với U=ABCDEG tập phụ hàm F={A C, BDE, DE, AED, ABG} Hãy tìm khố lược đồ quan hệ
Bài tập 13:
Xác định khoá cuả lược đồ quan hệ =(U, F) với a) U=ABCEDH
F={ABC, CDE, AHB, BD, AD} b) U=ABCDMNPQ
(6)F={AJ, AEH, HE, DEH, AI, ABC, CBD, JE}
Bài tập 14:
Cho lược đồ quan hệ =(U, F) với U=ABCDEGHI tập phụ hàm
F={AEG, AHI, GE, DEG, AGC, BCD, HIE} Hãy tìm khố lược đồ
Bài tập 15:
Cho lược đồ = (U, F) có U = ABCDE
F = { AB C, BD CE, D AC, A DC, CE A }
Lược đồ có hay nhiều khố ? Hãy tìm khố lược đồ
Bài tập 16:
Cho lược đồ = (U, F) có U = ABCDE
F = { AB C, BD CE, D AC, A DC, CE A } a Hỏi tập BDE có khố lược đồ hay khơng b Lược đồ có hay nhiều khố ?
Bài tập 17:
Xây dựng lược đồ = (U, F) với U = ABCDEGHIK Sao cho lược đồ có khố thuộc tính A,B,C khơng tham gia vào khoá
Bài tập 18:
Cho lược đồ quan hệ = (U, F) có U = ABCDEG F = { A BD, BC DE, D B, CD GE, BE A, G B } a Hỏi tập CGE có khố lược đồ hay khơng b Lược đồ có hay nhiều khố ?
c Hãy tìm khố giải thích
Bài tập 19:
Cho lược đồ = (U, F) có U = ABCDEG
F = { BC DE, A CD, CE A, G C, D C, BD GE, } a Hỏi tập BDE có khố lược đồ hay khơng b Lược đồ có hay nhiều khố ?
c Hãy tìm khố giải thích
Bài tập 20:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH và
F = { AB CDE , BD CGE , DG ACE, AD CDEH, BCG AEH }
i Lược đồ cho có hay nhiều khố ? ii Hãy tìm khố lược đồ
iii Liệu có thuộc tính khơng tham gia vào khố khơng ? Vì ?
Bài tập 21:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH F = { BDG AEH , BC ADE , AC CDEH ,
AG CDE, CG BDE }
i Lược đồ cho có hay nhiều khố ? ii Hãy tìm khố lược đồ
iii Liệu có thuộc tính khơng tham gia vào khố khơng ? Vì ?
Bài tập 22:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH F = { AB CDE , BD CGE , DG ACE,
AD CDEH, BCG AEH }
i Lược đồ cho có hay nhiều khố ?
(7)Bài tập 23:
Cho U = ABCDEGH Hãy xây dựng lược đồ quan hệ U thoả mãn điều kiện sau :
- Lược đồ có khố
- Có hai thuộc tính C, D khơng tham gia vào khoá - Hợp tất khoá lược đồ tập lớn
Hãy giải thích điều
Bài tập 24:
Xây dựng lược đồ quan hệ = (U, F) với U = ABCDEGHIK cho lược đồ có khố giao khố DG hai thuộc tính E,H khơng tham gia vào khoá
Bài tập 25:
Cho lược đồ quan hệ = (U,F) với U = ABCDEGHIK F = { AEK BEH , EH BD , DG BCD, ABCE DE} i Tập DEGH có phải khố lược đồ cho hay khơng ? ii Hãy tìm khố lược đồ
iii Hãy tìm tất thuộc tính khơng tham gia vào khoá
Bài tập 26:
Cho lược đồ quan hệ = (U,F) với U = ABCDEGHIK F = { ACK BCH , CH BD , DG BDE, ABCE CD} i Hãy tìm khoá lược đồ
ii Tập CDGH có phải khố lược đồ cho hay khơng ? iii Hãy tìm tất khố cịn lại
Bài tập 27:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH F = { AB CE , BCD CH , DG ACE,
AD CDH, BC AEG }
i Lược đồ cho có hay nhiều khố ? ii Hãy tìm khố lược đồ
ii Tập BCDG có phải khố lược đồ cho hay khơng ?
Bài tập 28:
Cho lược đồ quan hệ = (U,F) với U = ABCDEGHIK F = { AEK BEH , EH BD , DG BCD, ABCE DE} i Hãy tìm khố lược đồ
ii Tập DEGH có phải khố lược đồ cho hay khơng ?
b Liệu có thuộc tính khơng tham gia vào khố khơng ?
Bài tập 29:
Xây dựng lược đồ quan hệ = (U, F) với U = ABCDEGH cho lược đồ có khố giao khoá CDE
Bài tập 30:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH F = { AB CDE , BD CG , DG ACE,
AD CDH, BCE AEH }
(8)ii Hãy tìm khố lược đồ
iv Liệu có thuộc tính khơng tham gia vào khố khơng ?
Bài tập 31:
Xây dựng lược đồ quan hệ = (U, F) với U = ABCDEGH cho lược đồ có khố tập thuộc tính khơng khố DH
Bài tập 32:
Cho lược đồ quan hệ = (U,F) với U = ABCDEGHIK F = { ACK BCH , CH BD , DG BDE, ABCE CD} i Hãy tìm khố lược đồ
ii Tập CDGH có phải khố lược đồ cho hay khơng ? iii Hãy tìm tất khố cịn lại
iv Liệu có thuộc tính khơng tham gia vào khố khơng ?
Bài tập 33:
Cho lược đồ quan hệ = (U, F) với U = ABCDEGH F = { AB CE , BCD CH , DG ACE,
AD CDH, BC AEG }
i Lược đồ cho có hay nhiều khố ? ii Hãy tìm khố lược đồ
ii Tập BCDG có phải khố lược đồ cho hay không ?
iii Liệu có thuộc tính khơng tham gia vào khố khơng ?
Bài tập 34:
Cho lược đồ = (U, F) có U = ABCDEGH
F = { AB CE, BCD CH, DG ACE, AD DCH, BC AEG } a Hãy tìm khố lược đồ
b Xây dựng lược đồ quan hệ có tập thuộc tính U cho cho thoả mãn điều sau :
1 Lược đồ có it ba khố
2 Hai khố có giao khác trống
3 Các thuộc tính B H thuộc tính khơng khoá
Bài tập 35:
a Cho lược đồ = (U, F) có U = ABCDEGH
F = { AB CE, BCD CH, DG ACE, AD DCH, BC AEG } a Hãy tìm khố lược đồ
b Xây dựng lược đồ quan hệ có tập thuộc tính U cho cho thoả mãn điều sau :
Lược đồ có it ba khố
Hai khố có giao khác trống