Đề XuấT, 2024

Editor Choice

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

Chúng tôi đã nghiên cứu các loại khóa khác nhau được sử dụng trong cơ sở dữ liệu và lược đồ trong các bài viết trước đó là Sự khác biệt giữa Khóa chính và Khóa ngoài. Trong bài viết này, chúng tôi đang phân biệt khóa chính và khóa duy nhất. Cả khóa chính và khóa duy nhất được sử dụng để xác định một bộ dữ liệu duy nhất và thực thi tính duy nhất trong một cột hoặc kết hợp của một cột.

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ánhKhóa chínhKhóa duy nhất
Căn bảnNó đượ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ị NULLKhó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ảngChỉ có một khóa chínhNhiều hơn một
Mục lụcTạo chỉ mục cụmTạ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.

Trong ví dụ đã cho, số cuộn thuộc tính không bao giờ có thể có giá trị NULL giống hệt nhau, bởi vì mọi sinh viên đăng ký vào một trường đại học với một Roll_number duy nhất. Không có hai sinh viên có thể có cùng một Roll_number và mỗi hàng trong một bảng được xác định duy nhất với số cuộn của sinh viên. Vì vậy, chúng ta có thể đặt thuộc tính Roll_number làm khóa chính trong trường hợp cụ thể này.

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.

Ở đây Citizen_ID có thể được chỉ định với các ràng buộc duy nhất trong đó mỗi mục nhập trong cột Citizen_ID phải là duy nhất, không trùng lặp vì mỗi công dân của một quốc gia phải có số nhận dạng duy nhất của mình. Nhưng, nếu một học sinh di cư từ một quốc gia khác, trong trường hợp đó, anh ta hoặc cô ta sẽ không có Citizen_ID và mục nhập có thể có giá trị NULL vì một NULL được phép trong ràng buộc duy nhất.

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

  1. 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.
  2. 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.
  3. 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.

Top