Sự khác biệt giữa khóa chính và khóa ứng viên

Khóa chính so với khóa ứng viên
 

Mặc dù khóa chính được chọn từ các khóa ứng viên, vẫn tồn tại một số khác biệt giữa khóa chính và các khóa ứng viên khác, sẽ được thảo luận chi tiết trong bài viết này. Thiết kế cơ sở dữ liệu là một trong những hoạt động quan trọng nhất cần được thực hiện khi duy trì và lưu trữ dữ liệu. Trong quá trình thiết kế này, các bảng khác nhau với nhiều mối quan hệ phải được tạo ra. Để truy cập các bảng này trong cơ sở dữ liệu, các loại khóa khác nhau được sử dụng trong các ngôn ngữ thiết kế cơ sở dữ liệu hiện đại như MYSQL, MSAccess, SQLite, v.v..

Khóa ứng viên là gì?

Khóa ứng cử viên là một cột đơn hoặc tập hợp các cột trong bảng cơ sở dữ liệu có thể được sử dụng để xác định duy nhất bất kỳ bản ghi cơ sở dữ liệu nào mà không cần tham khảo bất kỳ dữ liệu nào khác. Mỗi bảng của cơ sở dữ liệu có thể có một hoặc nhiều khóa ứng viên. Một tập hợp các khóa ứng cử viên có thể được tạo bằng cách sử dụng các phụ thuộc chức năng. Có một số tính năng quan trọng trong một khóa ứng cử viên. Họ đang;

• khóa ứng viên phải là duy nhất trong miền và chúng không được chứa bất kỳ giá trị NULL nào.

• khóa ứng viên không bao giờ thay đổi và nó phải giữ cùng một giá trị cho một lần xuất hiện cụ thể của một thực thể.

Mục đích chính của khóa ứng viên là giúp xác định một hàng trong số hàng triệu hàng trong một bảng lớn. Mỗi khóa ứng viên đủ điều kiện để trở thành một khóa chính. Tuy nhiên, trong số tất cả các khóa ứng cử viên, khóa ứng viên quan trọng và đặc biệt nhất sẽ trở thành khóa chính của bảng và nó là khóa tốt nhất trong số các khóa ứng cử viên.

Khóa chính là gì?

Khóa chính là khóa ứng viên tốt nhất của bảng được sử dụng để xác định duy nhất các bản ghi được lưu trữ trong một bảng. Khi tạo một bảng mới trong cơ sở dữ liệu, chúng tôi được yêu cầu chọn khóa chính. Do đó, lựa chọn khóa chính cho bảng là quyết định quan trọng nhất cần được đưa ra bởi nhà thiết kế cơ sở dữ liệu. Ràng buộc quan trọng nhất, cần được xem xét khi quyết định khóa chính, là cột được chọn của bảng chỉ nên chứa các giá trị duy nhất và không được chứa bất kỳ giá trị NULL nào. Một số khóa chính thường được sử dụng khi thiết kế bảng là Số An sinh Xã hội (SSN), ID và Số Chứng minh nhân dân Quốc gia (NIC).

Lập trình viên nên nhớ chọn khóa chính cẩn thận vì khó thay đổi. Do đó, theo các lập trình viên, cách tốt nhất để tạo khóa chính là sử dụng khóa chính được tạo bên trong, chẳng hạn như ID bản ghi được tạo bởi kiểu dữ liệu AutoNumber của MS Access. Nếu chúng ta cố gắng chèn một bản ghi vào một bảng có khóa chính trùng lặp với một bản ghi hiện có, việc chèn sẽ thất bại. Giá trị khóa chính không nên tiếp tục thay đổi, vì vậy điều quan trọng hơn là giữ một khóa chính tĩnh.

Khóa chính là khóa ứng viên tốt nhất.

Sự khác biệt giữa Khóa chính và Khóa Ứng viên là gì??

• Khóa ứng viên là cột đủ điều kiện là duy nhất trong khi khóa chính là cột xác định duy nhất một bản ghi.

• Một bảng không có khóa ứng cử viên không thể hiện bất kỳ mối quan hệ nào.

• Có thể có nhiều khóa ứng cử viên cho một bảng trong cơ sở dữ liệu, nhưng chỉ nên có một khóa chính cho một bảng.

• Mặc dù khóa chính là một trong các khóa ứng cử viên, đôi khi nó là khóa ứng viên duy nhất.

• Khi một khóa chính được chọn, các khóa ứng cử viên khác sẽ trở thành các khóa duy nhất.

• Thực tế, khóa ứng viên có thể chứa các giá trị NULL mặc dù hiện tại nó không chứa bất kỳ giá trị nào. Do đó, khóa ứng viên không đủ điều kiện cho khóa chính vì khóa chính không được chứa bất kỳ giá trị NULL nào.

• Cũng có thể các khóa ứng cử viên, là duy nhất tại thời điểm này, có thể chứa các giá trị trùng lặp không đủ tiêu chuẩn để trở thành khóa chính.

Tóm lược:

Khóa chính so với khóa ứng viên

Khóa ứng viên và khóa chính là các khóa thiết yếu được sử dụng trong thiết kế cơ sở dữ liệu để xác định duy nhất dữ liệu trong một bản ghi và tạo mối quan hệ giữa các bảng của cơ sở dữ liệu. Một bảng chỉ nên chứa một khóa chính và có thể chứa nhiều hơn một khóa ứng cử viên. Ngày nay, hầu hết các cơ sở dữ liệu đều có khả năng tự động tạo khóa chính của riêng họ. Do đó, khóa chính và khóa ứng viên cung cấp nhiều hỗ trợ cho hệ thống quản lý cơ sở dữ liệu.

Hình ảnh lịch sự: 

  1. Khóa chính của SqlPac (CC BY-SA 3.0)