Sự khác biệt giữa khóa chính và khóa duy nhất

Anonim

Khóa chính vs khoá 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 các hàng trong cơ sở dữ liệu được gọi là khoá. Một khóa duy nhất là một chìa khóa có thể xác định duy nhất một hàng trong một bảng trong bối cảnh các cơ sở dữ liệu quan hệ. Khóa duy nhất được tạo thành từ một cột đơn hoặc một tập các cột. Khóa chính cũng là sự kết hợp của các cột trong một bảng xác định duy nhất một hàng. Nhưng nó được coi là một trường hợp đặc biệt của khoá duy nhất.

Khóa duy nhất là gì?

Như đã đề cập ở trên, khoá duy nhất là một cột hoặc một tập các cột có thể xác định duy nhất một hàng trong một bảng. Vì vậy, một khoá duy nhất bị hạn chế để không có hai giá trị 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 NOT 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ì nó không có nghĩa là các giá trị bằng nhau. Cột được định nghĩa như một khóa duy nhất cho phép chỉ một giá trị NULL duy nhất trong cột đó. Sau đó, có thể được sử dụng để xác định rằng hàng cụ thể duy nhất. Ví dụ: trong một bảng có chứa thông tin sinh viên, ID sinh viên có thể được định nghĩa 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ó chỉ nhận một học sinh duy nhất. Vì vậy, cột ID sinh viên đáp ứng tất cả các thuộc tính của một khoá duy nhất. Tùy thuộc vào thiết kế của một cơ sở dữ liệu, một bảng có thể có nhiều hơn một khoá duy nhất.

Khóa chính là gì?

Khóa chính cũng là một cột hoặc một sự kết hợp của các cột xác định duy nhất một hàng trong một bảng 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 NOT NULL không rõ ràng. Vì vậy, một cột được định nghĩa là khóa chính không thể 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 bảo đảm 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 ra bởi hệ thống quản lý cơ sở dữ liệu như là một định danh duy nhất trên toàn cầu (GUID) trong Microsoft SQL Server. Các khóa chính được định nghĩa thông qua các ràng buộc KEY CHÍNH 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 ngầm định là NOT 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 chính chính rõ ràng NOT NULL.

Mặc dù cả khóa chính và khoá 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 một bảng nhưng chúng có một số khác biệt quan trọng. Quan trọng nhất, một bảng có thể chỉ 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 như là một trường hợp đặc biệt của khoá duy nhất. Một khác biệt nữa là các khóa chính có một ràng buộc NOT NULL ngầm định trong khi khóa duy nhất không có ràng buộc đó. Do đó, các cột khoá duy nhất có thể hoặc không thể chứa các giá trị NULL nhưng các cột khoá chính không thể chứa các giá trị NULL.