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

Cả khóa chính và khóa duy nhất đều là khóa duy nhất trong cơ sở dữ liệu quan hệ đảm bảo tính duy nhất của các giá trị trên một cột hoặc một tập hợp các cột. Đã có một ràng buộc khóa duy nhất được xác định trước trong một ràng buộc khóa chính. Mặc dù khóa chính được sử dụng đặc biệt để xác định từng bản ghi trong bảng, nhưng một khóa duy nhất, mặt khác, được sử dụng để ngăn các mục trùng lặp trong một cột ngoại trừ mục nhập null. Tuy nhiên, cả hai khóa có thể chứa nhiều hơn một cột từ một bảng nhất định và cả hai đều đóng vai trò quan trọng trong việc lưu trữ và truy xuất dữ liệu. Dữ liệu là một chuỗi các bảng có các cột và các cột này lưu trữ thông tin của tất cả các loại có thể được truy cập hoặc truy xuất thêm bằng cách sử dụng các hướng dẫn. Đây là nơi các phím đến với hình ảnh. Khóa chính và Khóa duy nhất là hai khóa duy nhất xác định cách lưu trữ dữ liệu trong hệ thống.

Khóa chính

Khóa chính (cũng đi theo từ khóa chính), là một khóa duy nhất trong cơ sở dữ liệu quan hệ xác định từng bản ghi trong bảng cơ sở dữ liệu. Đó là một loại định danh duy nhất, chẳng hạn như số an sinh xã hội của một người, số điện thoại, số bằng lái xe hoặc số biển số xe. Một cơ sở dữ liệu phải có một khóa chính.

Một bảng trong cơ sở dữ liệu chứa một cột hoặc một tập hợp các cột chứa các giá trị xác định duy nhất mỗi hàng trong bảng. Cột này hoặc một tập hợp các cột được gọi là khóa chính của bảng phải chứa các giá trị duy nhất và không thể chứa các giá trị null. Không có khóa chính, cơ sở dữ liệu quan hệ sẽ không hoạt động.

Khóa chính được tạo bằng cách xác định ràng buộc PRIMARY KEY khi tạo hoặc sửa đổi bảng. Trong Tiêu chuẩn SQL, khóa chính có thể chứa một hoặc nhiều cột, trong khi mỗi cột được định nghĩa ngầm là KHÔNG NULL. Nếu bạn xác định ràng buộc CHÍNH CHÍNH trên nhiều cột, điều đó có thể dẫn đến trùng lặp các giá trị trong một cột, đó là lý do tại sao mỗi tổ hợp giá trị phải là duy nhất cho tất cả các cột.

Khóa chính có các chức năng sau:

  • Mỗi bảng phải có một và chỉ một khóa chính, không quá một.
  • Khóa chính không thể chứa giá trị NULL.
  • Nó có thể bao gồm một hoặc nhiều cột.
  • Tất cả các cột phải được xác định là KHÔNG NULL.
  • Theo mặc định, khóa chính được phân cụm chỉ mục duy nhất.

Khóa duy nhất

Khóa duy nhất là một tập hợp của một hoặc nhiều cột / trường của bảng xác định duy nhất một bản ghi trong bảng cơ sở dữ liệu. Ràng buộc UNIQUE KEY đảm bảo tất cả các giá trị trong một cột là duy nhất trong cơ sở dữ liệu. Giống như một khóa chính, một khóa duy nhất cũng có thể chứa nhiều hơn một cột. Tuy nhiên, một khóa duy nhất chỉ có thể chấp nhận một giá trị null. Không có hai hàng có cùng giá trị trong bảng cơ sở dữ liệu.

Khóa duy nhất khá giống với khóa chính và có thể được xác định trong quá trình tạo bảng. Khi một cột hoặc một tập hợp các cột được đánh dấu là duy nhất trong hệ thống cơ sở dữ liệu quan hệ, nó sẽ kiểm tra tính toàn vẹn của các giá trị trước khi gán ràng buộc để ngăn hai bản ghi có các giá trị giống hệt nhau trong một cột cụ thể.

ĐỘC ĐÁO là một ràng buộc đối với cột KEY KHÔNG CHÍNH HÃNG, đặc trưng cho các mục sau:

  • Ràng buộc KEY UNIITE đảm bảo tính duy nhất của các giá trị.
  • Nhiều khóa duy nhất có thể được xác định trên một bảng.
  • Một cột có thể chứa giá trị NULL, nhưng chỉ cho phép một giá trị NULL cho mỗi cột.
  • Theo mặc định, một khóa duy nhất có thể tạo một chỉ mục không được phân cụm.

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

1. Chức năng

Khóa chính là một loại định danh khóa duy nhất xác định duy nhất một hàng trong bảng cơ sở dữ liệu, trong khi đó một khóa duy nhất xác định tất cả các hàng có thể tồn tại trong một bảng chứ không chỉ các hàng hiện có.

2. Hành vi

Khóa chính được sử dụng để xác định một bản ghi trong bảng cơ sở dữ liệu, trong khi đó một khóa duy nhất được sử dụng để ngăn các giá trị trùng lặp trong một cột ngoại trừ mục nhập null.

3. Lập chỉ mục

Theo mặc định, khóa chính tạo một chỉ mục duy nhất được phân cụm trong khi một khóa duy nhất là một chỉ mục không phân cụm duy nhất trong bảng cơ sở dữ liệu theo mặc định.

4. Giá trị Null

Khóa chính không thể chấp nhận giá trị NULL trong bảng cơ sở dữ liệu trong khi khóa duy nhất chỉ có thể chấp nhận một giá trị NULL trong bảng.

5. Giới hạn

Chỉ có thể có một và chỉ một khóa chính trên một bảng, tuy nhiên, có thể có nhiều khóa duy nhất cho một bảng trong hệ thống cơ sở dữ liệu.

Khóa chính so với khóa duy nhất

Khóa chính

Khóa duy nhất

Khóa chính được sử dụng để xác định duy nhất một bản ghi / hàng trong bảng cơ sở dữ liệu. Khóa duy nhất được sử dụng để xác định duy nhất tất cả các hàng có thể có trong một bảng và không chỉ các hàng hiện có.
Nó không chấp nhận giá trị NULL. Nó chỉ có thể chấp nhận một giá trị NULL trong một bảng.
Nó được phân cụm theo mặc định, có nghĩa là dữ liệu được tổ chức theo chuỗi chỉ mục được phân cụm. Nó là một chỉ mục không phân cụm duy nhất theo mặc định.
Chỉ có một khóa chính trong bảng. Một bảng có thể có nhiều khóa duy nhất.
Khóa chính được xác định bằng cách sử dụng ràng buộc PRIMARY KEY. Khóa duy nhất được biểu diễn bằng ràng buộc ĐỘC ĐÁO.
Được sử dụng để xác định một hàng trong bảng. Được sử dụng để ngăn các giá trị trùng lặp trong một cột.
Giá trị khóa chính không thể thay đổi hoặc xóa. Giá trị khóa duy nhất có thể được sửa đổi.

Tóm lược

  • Cả khóa chính và khóa duy nhất là các ràng buộc toàn vẹn thực thể tương tự nhau về nhiều mặt. Tuy nhiên, họ có sự chia sẻ công bằng về sự khác biệt khi nói đến lập trình. Cả hai đều là các khái niệm thiết yếu được sử dụng chủ yếu trong các hệ thống quản lý cơ sở dữ liệu.
  • Khóa chính là một tập hợp một hoặc nhiều cột / trường của bảng cơ sở dữ liệu xác định duy nhất một bản ghi trong bảng. Mặt khác, khóa duy nhất ngăn hai bản ghi có các giá trị giống nhau trong một cột.
  • Về mặt khái niệm, chỉ có thể có một KHÓA CHÍNH cho một bảng nhất định, trong khi có thể có nhiều hơn một KHÓA ĐỘC ĐÁO cho một bảng.
  • Khóa chính phải là duy nhất nhưng khóa duy nhất không nhất thiết phải là khóa chính.
  • Khóa chính không thể chấp nhận giá trị NULL trong bảng, trong khi đó khóa duy nhất có thể cho phép giá trị NULL ngoại trừ chỉ có một NULL trong bảng.