Sự khác biệt cơ bản giữa khóa chính và khóa duy nhất là khóa chính không chấp nhận giá trị NULL trong khi giá trị NULL được cho phép trong các ràng buộc khóa duy nhất.
Biểu đồ so sánh
Cơ sở để so sánh | Khóa chính | Khóa duy nhất |
---|---|---|
Căn bản | Nó được sử dụng để phục vụ như một định danh duy nhất cho mỗi hàng trong một bảng. | Nó cũng xác định duy nhất một hàng, không được xác định là khóa chính. |
Chấp nhận giá trị NULL | Khóa chính sẽ không chấp nhận giá trị NULL. | Unique sẽ chấp nhận giá trị NULL. |
Số lượng khóa có thể được xác định trong bảng | Chỉ có một khóa chính | Nhiều hơn một |
Mục lục | Tạo chỉ mục cụm | Tạo chỉ mục không phân cụm |
Định nghĩa khóa chính
Một cột có thể được gọi là khóa chính của bảng nếu nó xác định duy nhất mỗi bộ (hàng) trong bảng đó. Nó thi hành các ràng buộc toàn vẹn cho bảng. Chỉ có một khóa chính được cho phép trong một bảng. Khóa chính không chấp nhận các giá trị trùng lặp và NULL. Khóa chính được chọn một cách cẩn thận trong đó các thay đổi có thể xảy ra theo cách hiếm khi, có nghĩa là khóa chính trong bảng thay đổi rất hiếm khi.
Hãy hiểu khái niệm về khóa chính với sự trợ giúp của bảng. Ở đây chúng tôi đang tạo một bảng có tên là bảng Sinh viên, có các thuộc tính như Roll_number, Name, Batch, Phone_number, Citizen_ID.
Một khóa chính có thể được tham chiếu bởi khóa ngoại. Nó tạo ra một chỉ mục cụm duy nhất trên bảng. Trong một chỉ mục được nhóm, các hàng dữ liệu được sắp xếp và lưu trữ trong một bảng hoặc các khung nhìn trên cơ sở các giá trị chính của nó. Chỉ có thể có một chỉ mục được nhóm trong một bảng, lý do đằng sau điều này là một hàng dữ liệu trong bảng có thể được sắp xếp theo một thứ tự.
Định nghĩa khóa duy nhất
Tương tự như khóa chính, các ràng buộc khóa duy nhất cũng xác định một bộ dữ liệu riêng lẻ trong một mối quan hệ. Nhưng, có một số khác biệt nhất định giữa chúng. Một bảng có thể có nhiều hơn một khóa duy nhất. Các ràng buộc khóa duy nhất chỉ có thể chấp nhận một giá trị NULL cho một cột.
Chúng ta hãy hiểu điều này với ví dụ tương tự, nơi chúng ta có một bảng Sinh viên với các thuộc tính Roll_number, Name, Batch, Phone_number và Citizen_ID. Thuộc tính số cuộn được gán với khóa chính.
Các ràng buộc duy nhất cũng được tham chiếu bởi khóa ngoại. Nó có thể được sử dụng khi ai đó muốn thực thi các ràng buộc trên một cột và một nhóm các cột không phải là khóa chính. Không giống như khóa chính, nó tạo ra chỉ mục không được nhóm . Các chỉ mục không phân cụm có cấu trúc riêng biệt từ các hàng dữ liệu. Mỗi mục nhập giá trị khóa trong nó trỏ đến hàng dữ liệu chứa giá trị khóa do đó nó sử dụng các con trỏ.
Sự khác biệt chính giữa Khóa chính và Khóa duy nhất
- Khi một thuộc tính được khai báo là khóa chính, nó sẽ không chấp nhận các giá trị NULL. Mặt khác, khi một thuộc tính được khai báo là Unique, nó có thể chấp nhận một giá trị NULL.
- Một bảng chỉ có thể có khóa chính trong khi có thể có nhiều ràng buộc duy nhất trên một bảng.
- Một chỉ mục Clustered tự động được tạo khi khóa chính được xác định. Ngược lại, khóa Unique tạo chỉ mục không phân cụm.
Phần kết luận
Khóa chính và Khóa duy nhất đều phục vụ mục đích của một mã định danh duy nhất cho các hàng của bảng có các giá trị duy nhất trong một cột hoặc nhóm cột. Các ràng buộc khóa này được phân biệt đáng kể trong đó mỗi bảng có thể có nhiều nhất một khóa chính trong khi một bảng có thể có nhiều khóa duy nhất không phải là khóa chính.