Đề XuấT, 2024

Editor Choice

Sự khác biệt giữa khóa siêu và khóa ứng viên

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 viế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 viên. Mỗi khóa ứng viê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 viên. Có nhiều yếu tố phân biệt khác giữa siêu khóa và khóa ứng viên, mà tôi đã thảo luận ngắn gọn trong biểu đồ so sánh dưới đây.

Biểu đồ so sánh

Cơ sở để so sánhSiêu chìa khóaKhóa ứng viên
Căn bảnMộ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ử viên.
Một trong nhữngKhông bắt buộc rằng tất cả các siêu khóa sẽ là khóa ứng cử viên.Tất cả các khóa ứng cử viên là siêu khóa.
Lựa chọnTậ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ử viên.Tập hợp các khóa ứng cử viên tạo thành cơ sở để lựa chọn một khóa chính duy nhất.
ĐếmCó tương đối nhiều siêu khóa trong một mối quan hệ.Có các khóa ứng viê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ử viê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 viê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 viê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.

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 viê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 viên . Giống như siêu khóa, một khóa ứng cử viê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 viên có thể chấp nhận giá trị NULL .

Một trong các khóa ứng cử viê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 viê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 viê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ử viê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 viê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ử viê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ử viên. Xem bảng trên bạn có thể kết luận rằng mỗi khóa ứng viê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 viên chính

  1. 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 viên.
  2. Tất cả các khóa ứng cử viên là siêu khóa nhưng điều ngược lại là không đúng.
  3. Bộ siêu khóa được xác minh để tìm khóa ứng viên trong khi đó, bộ khóa ứng viên được xác minh để chọn một khóa chính duy nhất.
  4. Các siêu khóa có số lượng tương đối nhiều hơn các khóa ứng cử viên.

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 viê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.

Top