NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm

8 3 0
NHẬP MÔN CSDL QUAN HỆ Soạn bởi bộ môn Công nghệ phần mềm

Đang tải... (xem toàn văn)

Thông tin tài liệu

NHẬP MƠN CSDL QUAN HỆ Soạn mơn Cơng ngh phn mm 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 khố, 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 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 | XU } cho hai phần tử M không bao Nhận xét: Tập hợp K tất khoá lược đồ họ Sperner U Siêu khoá khoá Định nghĩa: Cho lược đồ quan hệ =(U,F) , KU n ếu K+= U, ta nói K siêu khố Chú ý: Điều kiện K+=U thay KU KU \ K Định nghĩa: Cho lược đồ quan hệ =(U,F) , KU n ếu K+= U, ta nói K siêu khố Chú ý: Điều kiện K+=U thay KU KU \ K Định nghĩa: Cho lược đồ quan hệ =(U,F), tập K U gọi khoá lược đồ (nếu thoả mãn: - K siêu khố -  K1  K K1 Khơng siêu khoá 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ó khố 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 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 khố lược đồ K+ = U chứng tỏ K siêu khoá, để kiểm tra K có phải khố khơng ta lấy tập thực K, tất tập thực K không siêu khố chứng tỏ K khố, tồn tai tập thực K siêu khoá chứng tỏ K khơng khố Trang NHẬP MƠN CSDL QUAN HỆ Soạn mơn Cơng nghệ phần mềm Bài tốn 2: Tìm khố lược đồ Cho lược đồ  = (U, F), tìm khố K Phương pháp: b1) Trước hết chọn siêu khố K b2) Từ siêu khố 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 khoá 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 if (K-A)+ = R then K:= K- A; end; Nhận xét: Thuật toá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 khố lược đồ hay I giao tất khố lược đồ Kí hiệu N tập mà phần tử khơng tham gia vào khố l ược đồ n Kí hiệu S ={ U \  (Ri – Li) |  Li  Ri  F } i 1 n Khi đ ó: I =S = { U \  (Ri – Li) |  Li  Ri  F} i 1 Bài toán 4: Cho lược đồ quan hệ = (U, F) Hỏi lược đồ có khoá 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 tốn 5: Cho lược đồ  = (U, F) Hãy tìm khoá lược đồ Thuật toán: - Xác định I - Xác định N={  ( Ri -Li ) cho Li  I } - Đặt N’=(I N)+ \ I ( N’N ) Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm - Đặ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, BDG, ACHHE, 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 khố Bài số 2: Cho lược đồ quan hệ =(U, F) với U=ABCDEGHK F={ ADHBC, GHBE, DCG, CHK} Hãy tìm khoá lược đồ - Chọn siêu khoá 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, BDG, ACHHE, 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={ ABCADH, ABGAEH, AEDG} Hãy tìm tất khoá lược đồ I =U \  (Ri -Li )=ABC N= (Ri -Li )=DH ( víi Li I ) N’=(I N)+ \ I =(ABCDH)+ \ ABC = DH  N B=U \ N \ I = ABCDEGH \ ABC \ DH =EG Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm Do (I )+  U nên lược đồ cho có nhiều khố, lược đồ có hai khoá I  E =ABCE 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={ ADHBC, GHBE, DCG, CHK} 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={ ABC, ADB, BD } Hãy tìm phần tử khoá lược đồ Bài tập Các mệnh đề mệnh đề đúng/ sai a) KU khoá KU b) KU khố KU 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={ ABCDE, BCDG, ABHEG, CEGH} 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={CDH, EB, DG, BHE, CHDG, CA } 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) X=CD , Y=CH , K siêu khoá  Bài tập 7: Cho lược đồ quan hệ (=(U, F) với Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm U=ABCD, F={ ADBC, BA, DC} a Tìm khố 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={ DEG, HC, EA, CGH, DGAE, DB} 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={ BCE, DA, CA, AED, BECH} 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={ DEA, BC, EAD} a) b) c) d) e) f) Tìm khố lược đồ Tập BCE có phải khố  khơng? ? Tập AD có phải khố  khơng? ? Tập BD có phải khố  khơng? ? Lược đồ có cịn khố khơng? Vì sao? 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={ AEB, CD, ABE} 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 khố  Bài tập 12: Cho lược đồ quan hệ =(U,F) với U=ABCDEG tập phụ hàm F={A C, BDE, DE, AED, ABG} 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={ABC, CDE, AHB, BD, AD} b) U=ABCDMNPQ F={AMNB, BNCM, AP, DM, PCA, DQA} c) U=ABCDEGHIJ Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm F={AJ, AEH, HE, DEH, AI, ABC, CBD, JE} Bài tập 14: Cho lược đồ quan hệ  =(U, F) với U=ABCDEGHI tập phụ hàm F={AEG, AHI, GE, DEG, AGC, BCD, HIE} 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 khoá ? 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 khố 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 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ố ? ii Liệu có thuộc tính khơng tham gia vào khố khơng ? Vì ? Trang NHẬP MƠN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm 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 khố - 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ó khoá giao khoá 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 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 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 khố 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 } i Lược đồ cho có hay nhiều khố ? ii Hãy tìm khố lược đồ Trang NHẬP MƠN CSDL QUAN HỆ Soạn mơn Cơng nghệ phần mềm 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 khoá 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 : Lược đồ có it ba khố Hai khố có giao khác trống Các thuộc tính B H thuộc tính khơng khố 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 Các thuộc tính B H thuộc tính khơng khố Hãy giải thích Trang ... (K+ -Y) X=CD , Y=CH , K siêu khoá  Bài tập 7: Cho lược đồ quan hệ (=(U, F) với Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm U=ABCD, F={ ADBC, BA, DC} a Tìm khố lược đồ b Cho biết... PCA, DQA} c) U=ABCDEGHIJ Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm F={AJ, AEH, HE, DEH, AI, ABC, CBD, JE} Bài tập 14: Cho lược đồ quan hệ  =(U, F) với U=ABCDEGHI tập phụ...  I } - Đặt N’=(I N)+ \ I ( N’N ) Trang NHẬP MÔN CSDL QUAN HỆ Soạn môn Công nghệ phần mềm - Đặ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

Ngày đăng: 25/11/2022, 03:44

Tài liệu cùng người dùng

Tài liệu liên quan