Có một số khác biệt nữa giữa Khóa chính và Ứng viên mà tôi sẽ thảo luận với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.
Biểu đồ so sánh
Cơ sở để so sánh | Khóa chính | Khóa ứng viên |
---|---|---|
Căn bản | Chỉ có thể có một khóa chính trong bất kỳ mối quan hệ. | Có thể có nhiều hơn một khóa ứng cử viên trong một mối quan hệ. |
VÔ GIÁ TRỊ | Không có thuộc tính nào của khóa Chính có thể chứa giá trị NULL. | Thuộc tính của khóa Ứng viên có thể có giá trị NULL. |
Chỉ định | Nó là tùy chọn để chỉ định một khóa chính cho bất kỳ mối quan hệ. | Không thể có một mối quan hệ mà không có khóa ứng cử viên được chỉ định. |
Đặc tính | Khóa chính mô tả thuộc tính quan trọng nhất cho mối quan hệ. | Khóa ứng viên trình bày các ứng cử viên có thể đủ điều kiện cho Khóa chính. |
Ngược lại | Khóa chính là khóa ứng viên. | Nhưng nó không bắt buộc rằng mỗi khóa ứng viên có thể là một khóa chính. |
Định nghĩa khóa chính
Khóa chính là một thuộc tính hoặc một tập hợp các thuộc tính sẽ xác định duy nhất mỗi bộ dữ liệu trong một mối quan hệ. Chỉ có thể có một khóa chính cho mỗi mối quan hệ. Cần phải lưu ý rằng khóa chính không bao giờ chứa giá trị NULL và nó phải có giá trị duy nhất cho mỗi bộ trong mối quan hệ. Các giá trị của thuộc tính / s của khóa chính phải là tĩnh, nghĩa là giá trị của thuộc tính không bao giờ hoặc hiếm khi thay đổi.
Một trong các Khóa Ứng viên đủ điều kiện để trở thành khóa chính. Các quy tắc mà khóa ứng viên phải đủ điều kiện để trở thành chính là giá trị khóa không bao giờ phải là NULL và nó phải là duy nhất cho tất cả các bộ dữ liệu.
Nếu một mối quan hệ chứa một thuộc tính là khóa chính của một số mối quan hệ khác, thì thuộc tính đó được gọi là khóa ngoại .
Bạn nên tìm ra khóa chính của một mối quan hệ trước khi đưa ra các thuộc tính khác của mối quan hệ là khóa chính xác định từng bộ dữ liệu duy nhất. Tốt hơn là chọn một thuộc tính duy nhất hoặc một số lượng nhỏ các thuộc tính làm khóa chính, điều này giúp cho việc xử lý quan hệ trở nên dễ dàng.
Bây giờ chúng ta hãy xem một ví dụ về khóa chính.
Sinh viên {ID, First_name, Last_name, Tuổi, Địa chỉ}
Ở đây trước tiên chúng ta sẽ tìm ra các khóa ứng cử viên. Tôi đã tìm ra hai khóa ứng viên {ID} và {First_name, Last_name} vì chúng sẽ xác định duy nhất mỗi sinh viên trong mối quan hệ Sinh viên. Bây giờ, ở đây tôi sẽ chọn ID làm khóa chính của mình vì đôi khi có thể xảy ra việc hai sinh viên có thể có cùng họ và tên, vì vậy sẽ dễ dàng theo dõi một sinh viên bằng ID của anh ta.
Định nghĩa khóa ứng viên
Khóa ứng cử viên là một thuộc tính hoặc một tập hợp các thuộc tính xác định duy nhất một bộ dữ liệu trong một mối quan hệ. Có nhiều hơn một khóa ứng cử viên trong một mối quan hệ. Các khóa Ứng viên này là những ứng cử viên có thể đủ điều kiện để trở thành khóa chính.
Mặc dù mỗi khóa ứng viên đủ điều kiện để trở thành khóa chính, nhưng chỉ một khóa có thể được chọn làm khóa chính. Các quy tắc mà khóa ứng viên yêu cầu để trở thành khóa chính là giá trị thuộc tính của khóa không bao giờ có thể là NULL trong bất kỳ miền nào của khóa, nó phải là duy nhất và tĩnh .
Nếu tất cả các khóa ứng cử viên đủ điều kiện cho khóa chính, thì một DBA có kinh nghiệm phải đưa ra quyết định để tìm ra khóa chính. Không bao giờ có thể có một mối quan hệ mà không có khóa ứng cử viên.
Hãy để chúng tôi hiểu khóa ứng cử viên với một ví dụ. Nếu chúng ta thêm một số thuộc tính vào quan hệ Sinh viên, tôi đã thảo luận ở trên.
Sinh viên {ID, First_name, Last_name, Tuổi, Địa chỉ, DOB, Department_name}
Ở đây tôi có thể tìm ra hai khóa ứng viên là {ID}, {First_name, Last_name, DOB} . Vì vậy, bạn có thể hiểu các khóa ứng cử viên là một khóa xác định duy nhất một tuple trong một mối quan hệ.
Sự khác biệt chính giữa khóa chính và thí sinh
- Điểm cơ bản phân biệt khóa chính với khóa ứng viên là chỉ có thể có một khóa chính cho bất kỳ mối quan hệ nào trong một lược đồ. Tuy nhiên, có thể có nhiều khóa ứng viên cho một mối quan hệ.
- Thuộc tính dưới khóa chính không bao giờ có thể chứa giá trị NULL vì chức năng chính của khóa chính là xác định duy nhất một bản ghi trong quan hệ. Ngay cả khóa chính cũng có thể được sử dụng làm khóa ngoại trong quan hệ khác và do đó, nó không phải là NULL để quan hệ tham chiếu có thể tìm thấy các bộ dữ liệu trong quan hệ được tham chiếu. Khóa ứng viên có thể là NULL trừ khi ràng buộc thuộc tính được chỉ định không phải là null.
- Tùy chọn chỉ định khóa chính, nhưng không thể có quan hệ nếu không có khóa ứng viên.
- Khóa chính mô tả thuộc tính duy nhất và quan trọng nhất của mối quan hệ trong khi đó, các khóa ứng viên cung cấp cho các ứng cử viên trong đó một khóa có thể được chọn làm khóa chính.
- Mỗi khóa chính là một khóa ứng viên, nhưng ngược lại là không đúng.
Phần kết luận:
Nó là tùy chọn cho một mối quan hệ để xác định một khóa chính. Mặt khác, nếu bạn đang khai báo một mối quan hệ, các khóa ứng cử viên phải có mặt trong mối quan hệ đó để xây dựng một mối quan hệ tốt.