Sự khác biệt giữa khóa ngoại và khóa chính

Các sự khác biệt chính giữa khóa ngoại và khóa chính là khóa ngoại là một cột hoặc một tập hợp các cột tham chiếu đến khóa chính hoặc khóa ứng cử viên của một bảng khác trong khi khóa chính là 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 duy nhất một hàng trong bảng.

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 chính trong cơ sở dữ liệu quan hệ 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 của bảng. Khóa ngoại trong cơ sở dữ liệu quan hệ là một trường trong bảng khớp với khóa chính của bảng khác. Khóa ngoại được sử dụng để chéo bảng tham chiếu.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Khóa ngoại là gì
3. Khóa chính là gì
4. So sánh cạnh nhau - Khóa ngoại và khóa chính ở dạng bảng
5. Tóm tắt

Khóa ngoại là gì?

Khóa ngoại là một ràng buộc tham chiếu giữa hai bảng. Nó xác định một cột hoặc một tập hợp các cột trong một bảng, được gọi là bảng tham chiếu tham chiếu đến một tập hợp các cột trong bảng khác, được gọi là bảng được tham chiếu. Khóa ngoại hoặc các cột trong bảng tham chiếu phải là khóa chính hoặc khóa ứng viên (một khóa có thể được sử dụng làm khóa chính) trong bảng được tham chiếu. Hơn nữa, khóa ngoại cho phép liên kết dữ liệu qua một số bảng. Do đó, khóa ngoại không thể chứa các giá trị không xuất hiện trong bảng mà nó đề cập đến. Sau đó, tham chiếu được cung cấp bởi khóa ngoại giúp liên kết thông tin trong một số bảng và điều này sẽ trở nên cần thiết với cơ sở dữ liệu được chuẩn hóa. Nhiều hàng trong bảng tham chiếu có thể tham chiếu đến một hàng trong bảng được tham chiếu.

Hình 01: Ánh xạ khóa ngoài

Trong tiêu chuẩn SQL ANSI, ràng buộc FOREIGN KEY xác định các khóa ngoại. Hơn nữa, có thể xác định các khóa ngoại khi tạo bảng. Một bảng có thể có nhiều khóa ngoại và chúng có thể tham chiếu các bảng khác nhau.

Khóa chính là gì?

Khóa chính 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. Do đó, một cột có 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 đả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.

Hình 02: Khóa chính

Hơn nữa, ràng buộc PRIMARY KEY trong ANSI SQL Standard xác định các khóa chính. Cũng có thể xác định khóa chính khi tạo bảng. Ngoài ra, 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 xác định 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 ngoại và khóa chính là gì?

 Khóa ngoại so với khóa chính

Khóa ngoại là một cột hoặc nhóm cột trong bảng cơ sở dữ liệu quan hệ cung cấp liên kết giữa dữ liệu trong hai bảng. Khóa chính là một cột bảng cơ sở dữ liệu quan hệ đặc biệt hoặc kết hợp nhiều cột cho phép xác định duy nhất tất cả các bản ghi bảng.
VÔ GIÁ TRỊ
Khóa ngoại chấp nhận giá trị NULL. Giá trị khóa chính không thể là NULL.
Số lượng chìa khóa
Bảng có thể có nhiều khóa ngoại. Bảng chỉ có thể có một khóa chính.
  Sao chép
Bộ dữ liệu có thể có giá trị trùng lặp cho thuộc tính khóa ngoài. Hai bộ dữ liệu trong một mối quan hệ không thể có các giá trị trùng lặp cho một thuộc tính khóa chính.

Tóm tắt - Khóa ngoại so với Khóa chính

Sự khác biệt giữa khóa ngoại và khóa chính là khóa ngoại là một cột hoặc một tập hợp các cột tham chiếu đến khóa chính hoặc khóa ứng cử viên của một bảng khác trong khi khóa chính là một cột hoặc một tập hợp các cột có thể được sử dụng để duy nhất xác định một hàng trong bảng.

Tài liệu tham khảo:

1. Khóa nước ngoài. Wikipedia, Wikimedia Foundation, ngày 12 tháng 5 năm 2018. Có sẵn tại đây  
2. Khóa chính. Wikipedia, Wikimedia Foundation, ngày 3 tháng 4 năm 2018. Có sẵn tại đây 

Hình ảnh lịch sự:

1.'Foreign-Key-Mapping'By MovGP0 - Công việc riêng, (CC BY-SA 3.0) qua Commons Wikimedia  
2.'Erd-id-as-chính-key'By UniCollab - Công việc riêng, (CC BY-SA 3.0) qua Commons Wikimedia