Khóa chính so với khóa duy nhất
Một cột hoặc một tập hợp các cột, có thể được sử dụng để xác định hoặc truy cập một hàng hoặc một tập hợp các hàng trong cơ sở dữ liệu được gọi là khóa. Khóa duy nhất là một khóa có thể xác định duy nhất một hàng trong bảng trong bối cảnh cơ sở dữ liệu quan hệ. Một khóa duy nhất được tạo thành từ một cột đơn hoặc một tập hợp các cột. Khóa chính cũng là sự kết hợp của các cột trong bảng xác định duy nhất một hàng. Nhưng nó được coi là trường hợp đặc biệt của khóa duy nhất.
Khóa duy nhất là gì?
Như đã đề cập trước đó, khóa duy nhất là một cột hoặc một tập hợp các cột có thể xác định duy nhất một hàng trong bảng. Vì vậy, một khóa duy nhất bị ràng buộc sao cho không có hai giá trị nào của nó bằng nhau. Một thuộc tính quan trọng là các khóa duy nhất không thực thi ràng buộc KHÔNG NULL. Vì NULL đại diện cho việc thiếu một giá trị, nếu hai hàng có NULL trong một cột thì điều đó không có nghĩa là các giá trị bằng nhau. Cột được xác định là khóa duy nhất chỉ cho phép một giá trị NULL duy nhất trong cột đó. Sau đó, có thể được sử dụng để xác định hàng cụ thể đó duy nhất. Ví dụ: trong một bảng chứa thông tin sinh viên, ID sinh viên có thể được xác định là một khóa duy nhất. Vì không có hai sinh viên có thể có cùng một ID nên nó xác định duy nhất một sinh viên. Vì vậy, cột ID sinh viên đáp ứng tất cả các thuộc tính của một khóa duy nhất. Tùy thuộc vào thiết kế của cơ sở dữ liệu, một bảng có thể có nhiều hơn một khóa duy nhất.
Khóa chính là gì?
Khóa chính cũng là một cột hoặc một tổ hợp các cột xác định duy nhất một hàng trong bảng của cơ sở dữ liệu quan hệ. Một bảng có thể có nhiều nhất một khóa chính. Khóa chính thực thi ràng buộc KHÔNG NULL ngầm định. Vì vậy, một cột được xác định là khóa chính không thể có các giá trị NULL trong đó. Khóa chính có thể là một thuộc tính bình thường trong bảng được đảm bảo là duy nhất như số an sinh xã hội hoặc nó có thể là một giá trị duy nhất được tạo bởi hệ thống quản lý cơ sở dữ liệu như Mã định danh duy nhất toàn cầu (GUID) trong Microsoft SQL Server. Các khóa chính được xác định thông qua ràng buộc PRIMARY KEY trong ANSI SQL Standard. Khóa chính cũng có thể được xác định khi tạo bảng. SQL cho phép khóa chính được tạo thành từ một hoặc nhiều cột và mỗi cột được bao gồm trong khóa chính được định nghĩa ngầm là KHÔNG NULL. Nhưng một số hệ thống quản lý cơ sở dữ liệu yêu cầu làm cho các cột khóa chính rõ ràng KHÔNG NULL.
Sự khác biệt giữa khóa chính và khóa duy nhất
Mặc dù cả khóa chính và khóa duy nhất là một hoặc nhiều cột có thể xác định duy nhất một hàng trong bảng, chúng có một số khác biệt quan trọng. Quan trọng nhất, một bảng chỉ có thể có một khóa chính duy nhất trong khi nó có thể có nhiều hơn một khóa duy nhất. Khóa chính có thể được coi là trường hợp đặc biệt của khóa duy nhất. Một điểm khác biệt nữa là các khóa chính có ràng buộc KHÔNG NULL ngầm định trong khi khóa duy nhất không có ràng buộc đó. Do đó, các cột khóa duy nhất có thể có hoặc không chứa các giá trị NULL nhưng các cột khóa chính không thể chứa các giá trị NULL.