Cách tìm siêu khóa

Tìm tất cả các khóa trong lược đồ quan hệ Trước khi đi vào chi tiết chúng ta tìm hiểu một số khái niệm: - Tập thuộc tính nguồn [TN]: bao gồm các thuộc tính chỉ xuất hiện ở vế trái, không xuất hiện ở vế phải của pth và các thuộc tính không xuất hiện ở vế trái lẫn vế phải của pth. - Tập thuộc tính đích [TĐ] : bao gồm các thuộc tính chỉ xuất hiện ở vế phải không xuất hiện ở vế trái của pth. - Tập thuộc tính trung gian [TG]: Chứa thuộc tính ở vế trái lẫn vế phải của pth.

Thuật toán:

Bước 1: - Tạo tập nguồn TN và tập trung gian TG Bước 2: - Nếu TG=0[rỗng] thì K=TN, kết thúc. ngược lại qua bước 3. Bước 3: - tìm tất cả - tập con Xi của tập trung gian. Bước 4: - tìm siêu khóa Si bằng cách với mọi Xi, nếu [TN U Xi]+=Q+ thì Si = TN U Xi Bước 5: - tìm khóa bằng cách loại bỏ các siêu khóa không tối thiểu - với mọi Si, Sj thuộc S nếu Si chứa trong Sj thì loại bỏ tập Sj ra khỏi siêu khóa [VD: Si=AB, Sj=ABC thì loại bỏ Sj ra khỏi tập siêu khóa] S còn lại chính là tập khóa cần tìm. Ví dụ : cho lược đồ quan hệ Q={CSZ} tập phụ thuộc hàm F={CS → Z; Z → C} tìm tất cả các khóa của lược đồ quan hệ trên. Bước 1: - TN={S}, TG={CZ} Bước 2: - TG khác rỗng nên qua bước 3 Bước 3: - tập con Xi của tập trung gian X={0,C,Z,CZ} ghi chú 0: là rỗng Bước 4: - S+=S Khác Q có nghĩa không có siêu khóa. - SC+=CZS bằng với Q nên siêu khóa SC. - SZ+=CZ bằng với Q nên Siêu khóa là CZ - SCZ+= bằng với Q nên Siêu khóa là CSZ Bước 5: - Vậy tập siêu khóa S={SC, CZ, CSZ} Vì SC chứa trong CSZ và CZ chứa trong CSZ nên loại bỏ siêu khóa CSZ khỏi tập siêu khóa. - Kết quả khóa của lược đồ quan hệ trên là SC và CZ. K={SC, CZ}

Thuật toán tìm một khóa trên lược đồ quan hệ

SUNDAY, 31. MAY 2009, 17:05:46 COSODULIEU Mục tiêu : cho một lược đồ U có các thuộc tính {A1,A2,...An} và tập Phụ thuộc hàm F. hãy tìm một khóa cho lược đồ đó. Thuật toán: Bước 1 : + Gán K0=U+ [U+ là tập thuộc tính của U] Bước 2 : ta có A là thuộc tính của U. + Tính bao đóng của [Ki-1\A]+ nếu bằng U+ [[Ki-1\A]+ =U+] thì loại bỏ A ra khỏi K tức là Ki =[Ki-1\A]. nếu [Ki-1\A]+ !=U+ thì Ki =Ki-1. Lặp lại bước trên n lần Bước n: kết quả K=Kn Ví dụ : cho U={A,B,C,D,E} và F={AB->C, AC->B, BC->DE} tìm một khóa của lược đồ quan hệ r xác định trên U và F ? Bước 1: + K=U tức là K=ABCDE Bước 2: + Tính Bao đóng của [K\A]+ nghĩa là tính [BCDE]+ = BCDE ta thấy kết quả tính bao đóng không bằng U+ nên K=ABCDE Bước 3: + Tính Bao đóng của [K\B]+ nghĩa là tính [ACDE]+ = ABCDE ta thấy kết quả tính bao đóng bằng U+ nên loại B ra tập K ban đầu K=ACDE Bước 4: + Tính Bao đóng của [K\C]+ nghĩa là tính [ADE]+ = ADE ta thấy kết quả tính bao đóng Không bằng U+ nên không bỏ C ra tập K ta có K=ACDE Bước 5: + Tính Bao đóng của [K\D]+ nghĩa là tính [ACE]+ = ACEBD ta thấy kết quả tính bao đóng bằng U+ nên bỏ D ra tập K ta có K=ACE Bước 6: + Tính Bao đóng của [K\E]+ nghĩa là tính [AC]+ = ACBDE ta thấy kết quả tính bao đóng bằng U+ nên bỏ E ra tập K ta có K=AC =>>Kết quả Khóa là K=AC

Thuật toán tìm phủ tối thiểu của một tập phụ thuộc hàm

1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính. [ví dụ: A->BC thành A->B và A->C] 2. Bỏ các thuộc tính dư thừa ở vế trái. [ví dụ: cho F = {A → B, B → C, AB → D} các phụ thuộc hàm có vế trái 1 thuộc tính là đầy đủ nên ta không xét, xét AB → D có B dư thừa[bỏ B] vì bao đóng của A có chứa B. A+=ABC] [dễ hiểu là chúng ta bỏ thuộc tính bên vế trái, khi và chỉ khi bao đóng của các thuộc tính còn lại có chứa thuộc tính đó] 3. Loại khỏi F các phụ thuộc hàm dư thừa. [Các thuộc tính ở vế phải của PTH chỉ xuất hiện di nhất 1 lần thì không thể loại bỏ. Còn lại tính bao đóng của tập thuộc tính vế trái nếu có xuất hiện thuộc tính vế phải thì có thể loại bỏ thuộc tính đó và đó là PTH dư thừa.] Ví dụ: Cho lược đồ quan hệ Q[A,B,C,D] và tập pth F={AB->CD, B->C, C->D} Tìm phủ tối thiểu? 1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính. + ta có F={AB->C, AB->D, B->C, C->D} 2. Bỏ các thuộc tính dư thừa ở vế trái. + B->C, C->D Không xét vì vế trái chỉ có một thuộc tính. + xét AB->C : Nếu Bỏ A thì B+=BCD không chứa A nên không thể Bỏ A. Nếu Bỏ B thì A+=A. không bỏ được thuộc tính nào. + xét AB->D : Nếu Bỏ A thì B+=BCD không chứa A nên không thể Bỏ A. Nếu Bỏ B thì A+=A. không bỏ được thuộc tính nào. 3. Loại khỏi F các phụ thuộc hàm dư thừa. + xét AB->C : Tính AB+=ABCD = Q nên loại bỏ AB->C + xét AB->D : tính AB+=ABCD = Q nên loại bỏ AB->D + B->C : tính B+=B không thể bỏ. + C->D : tính C+=C không thể bỏ. Phủ tối thiểu là Ftt = {B->C, C->D}

Tìm bao đóng

Ví dụ: Cho lược đồ quan hệ R[U, F] Với U = ABCDE và F = { AB -->CD, E --> C, D -->CE, A -->E}. Tìm A+ - Đầu tiên gán A+=A - Tiếp theo xét xem có PTH nào A->X không? nếu có bỏ X vào A+, ở đây ta có A->E nên A+=AE - Ta thấy E->C nên A+=ACE

- Cuối cùng ta có A+=ACE

2019

Khóa là các yếu tố cần thiết của bất kỳ cơ sở dữ liệu quan hệ. Nó xác định mỗi bộ dữ liệu trong một mối quan hệ duy nhất. Các khóa cũng được sử dụng để thiết lập mối quan hệ giữa các bảng trong một lược đồ. Trong bài thienmaonline.vnết này, chúng tôi sẽ thảo luận về hai khóa cơ bản của bất kỳ cơ sở dữ liệu nào là siêu khóa và khóa ứng thienmaonline.vnên. Mỗi khóa ứng thienmaonline.vnên là một siêu khóa, nhưng, mọi siêu khóa có thể hoặc không thể là khóa ứng thienmaonline.vnên. Có nhiều yếu tố phân biệt khác giữa siêu khóa và khóa ứng thienmaonline.vnên, mà tôi đã thảo luận ngắn gọn trong biểu đồ so sánh dưới đây.

Đang xem: Siêu khóa là gì

Biểu đồ so sánh

Cơ sở để so sánhSiêu chìa khóaKhóa ứng thienmaonline.vnên
Căn bản Một thuộc tính duy nhất hoặc một tập hợp các thuộc tính xác định duy nhất tất cả các thuộc tính trong một mối quan hệ là siêu khóa. Một tập hợp con đúng của một siêu khóa, cũng là một siêu khóa là một khóa ứng cử thienmaonline.vnên.
Một trong những Không bắt buộc rằng tất cả các siêu khóa sẽ là khóa ứng cử thienmaonline.vnên. Tất cả các khóa ứng cử thienmaonline.vnên là siêu khóa.
Lựa chọn Tập hợp các siêu khóa tạo thành cơ sở để lựa chọn các khóa ứng cử thienmaonline.vnên. Tập hợp các khóa ứng cử thienmaonline.vnên tạo thành cơ sở để lựa chọn một khóa chính duy nhất.
Đếm Có tương đối nhiều siêu khóa trong một mối quan hệ. Có các khóa ứng thienmaonline.vnên tương đối ít hơn trong một mối quan hệ.

Định nghĩa siêu khóa

Một siêu khóa là một khóa cơ bản của bất kỳ mối quan hệ. Nó được định nghĩa là một khóa có thể xác định tất cả các thuộc tính khác trong một mối quan hệ . Siêu khóa có thể là một thuộc tính đơn hoặc một tập hợp các thuộc tính. Hai thực thể không có cùng giá trị cho các thuộc tính tạo thành một siêu khóa. Có ít nhất một hoặc nhiều hơn một siêu khóa trong một mối quan hệ.

Một siêu khóa tối thiểu cũng được gọi là khóa ứng cử thienmaonline.vnên. Vì vậy, chúng ta có thể nói một số siêu khóa được xác minh là khóa ứng thienmaonline.vnên. Sau này chúng ta sẽ thấy cách một siêu khóa được kiểm tra để trở thành khóa ứng thienmaonline.vnên.

Chúng ta hãy lấy một mối quan hệ R [A, B, C, D, E, F]; chúng tôi đã tuân theo các phụ thuộc cho một mối quan hệ R và chúng tôi đã kiểm tra từng phụ thuộc cho siêu khóa.

Xem thêm: Vải Tuyết Mưa Là Gì, Tìm Hiểu Về Vải Thun Tuyết Mưa

Sử dụng khóa, AB chúng ta có thể xác định phần còn lại của các thuộc tính của bảng tức là CDEF . Tương tự, sử dụng các khóa CD, ABD, DFDEF, chúng ta có thể xác định các thuộc tính còn lại của bảng R. Vì vậy, tất cả đây là các siêu khóa.

Nhưng khi sử dụng CB chính, chúng ta chỉ có thể tìm thấy các giá trị cho thuộc tính DF, chúng ta không thể tìm thấy giá trị cho các thuộc tính AE. Do đó, CB không phải là một siêu khóa. Tương tự là trường hợp với khóa D, chúng ta không thể tìm thấy các giá trị của tất cả các thuộc tính trong một bảng bằng khóa D. Vì vậy, D không phải là một siêu khóa.

Định nghĩa khóa ứng thienmaonline.vnên

Một siêu khóa là một tập hợp con đúng của một siêu khóa khác có cùng quan hệ được gọi là siêu khóa tối thiểu . Khóa siêu tối thiểu được gọi là khóa Ứng thienmaonline.vnên . Giống như siêu khóa, một khóa ứng cử thienmaonline.vnên cũng xác định từng bộ dữ liệu trong một bảng duy nhất. Thuộc tính của khóa ứng thienmaonline.vnên có thể chấp nhận giá trị NULL .

Một trong các khóa ứng cử thienmaonline.vnên được DBA chọn làm khóa chính. Với điều kiện là các giá trị thuộc tính khóa phải là duy nhất và không chứa NULL. Các thuộc tính của khóa Ứng thienmaonline.vnên được gọi là thuộc tính nguyên tố .

Trong ví dụ trên, chúng tôi đã tìm thấy các siêu khóa cho mối quan hệ R. Bây giờ, chúng ta hãy kiểm tra tất cả các siêu khóa để trở thành khóa Ứng thienmaonline.vnên.

Super key AB là tập con thích hợp của super key ABD . Vì vậy, khi một siêu khóa AB tối thiểu một mình, có khả năng xác định tất cả các thuộc tính trong một bảng, thì chúng ta không cần khóa ABD lớn hơn. Do đó, siêu khóa AB là một khóa ứng cử thienmaonline.vnên trong khi ABD sẽ chỉ là siêu khóa. Tương tự, một siêu khóa DF cũng là một tập hợp con đúng của siêu khóa DEF . Vì vậy, khi DF một mình có khả năng xác định tất cả các thuộc tính trong mối quan hệ tại sao chúng ta cần DEF . Do đó, siêu khóa DF trở thành khóa ứng thienmaonline.vnên trong khi DEF chỉ là siêu khóa.

CD siêu khóa không phải là tập hợp con của bất kỳ siêu khóa nào khác. Vì vậy, chúng ta có thể nói CD là một siêu khóa tối thiểu xác định tất cả các thuộc tính trong một mối quan hệ. Do đó, CD là một khóa ứng cử thienmaonline.vnên.

Trong khi đó khóa CBD không phải là siêu khóa vì vậy, chúng thậm chí không thể là khóa ứng cử thienmaonline.vnên. Xem bảng trên bạn có thể kết luận rằng mỗi khóa ứng thienmaonline.vnên là một siêu khóa nhưng điều ngược lại là không đúng.

Sự khác biệt chính giữa Super Key và Ứng thienmaonline.vnên chính

Một thuộc tính duy nhất hoặc một tập hợp các thuộc tính có thể xác định duy nhất tất cả các thuộc tính của một mối quan hệ cụ thể được gọi là Siêu khóa. Mặt khác, một siêu khóa là một tập hợp con đúng của một siêu khóa khác được gọi là khóa ứng thienmaonline.vnên.Tất cả các khóa ứng cử thienmaonline.vnên là siêu khóa nhưng điều ngược lại là không đúng.Bộ siêu khóa được xác minh để tìm khóa ứng thienmaonline.vnên trong khi đó, bộ khóa ứng thienmaonline.vnên được xác minh để chọn một khóa chính duy nhất.Các siêu khóa có số lượng tương đối nhiều hơn các khóa ứng cử thienmaonline.vnên.

Xem thêm: Tải Game Người Dơi – Drop Everything And Download: 6 Free Batman Games

Phần kết luận:

Super key là một khóa cơ bản của bất kỳ mối quan hệ. Chúng phải được vẽ trước tiên trước khi nhận ra các khóa khác cho mối quan hệ khi chúng tạo thành cơ sở cho các khóa khác. Khóa ứng thienmaonline.vnên rất quan trọng vì nó giúp nhận ra khóa quan trọng nhất của bất kỳ mối quan hệ nào là khóa chính.

Video liên quan

Chủ Đề