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

Tác Giả: Laura McKinney
Ngày Sáng TạO: 1 Tháng Tư 2021
CậP NhậT Ngày Tháng: 12 Có Thể 2024
Anonim
Sự khác biệt giữa khóa chính và khóa ngoại trong DBMS - Công Nghệ
Sự khác biệt giữa khóa chính và khóa ngoại trong DBMS - Công Nghệ

NộI Dung


Các khóa là phần quan trọng của DBMS mà chúng được sử dụng để xác định và thiết lập mối quan hệ giữa các bảng trong một lược đồ. Bây giờ, hôm nay chúng ta sẽ thảo luận về hai khóa rất quan trọng của DBMS, tức là khóa chính và khóa ngoại, và chúng ta cũng sẽ thảo luận về sự khác biệt giữa khóa chính và khóa ngoại. Trên đường đi, để tôi cho bạn biết sự khác biệt cơ bản giữa khóa chính và khóa ngoại là khóa chính là một trong những khóa ứng viên được chọn bởi nhà thiết kế cơ sở dữ liệu trong khi đó, khóa ngoại là khóa liên quan đến khóa chính của mối quan hệ khác.

Có nhiều sự khác biệt khác giữa hai điều này, chúng ta hãy xác định những khác biệt đó với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.


  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhKhóa chínhKhóa ngoại
Căn bảnKhóa chính là khóa ứng cử viên được chọn xác định duy nhất một bộ dữ liệu trong mối quan hệ.Khóa ngoại trong bảng đề cập đến khóa chính của bảng khác.
VÔ GIÁ TRỊGiá trị khóa chính không bao giờ có thể là NULL.Khóa ngoại chấp nhận giá trị NULL.
Bản saoKhông có hai bộ dữ liệu trong một mối quan hệ mang các giá trị trùng lặp cho một thuộc tính khóa chính.Bộ dữ liệu có thể mang giá trị trùng lặp cho một thuộc tính khóa ngoại.
Phạm viChỉ có thể có một khóa chính của một mối quan hệ.Có thể có nhiều khóa ngoại trong một mối quan hệ.
Bảng tạm thờiRàng buộc khóa chính có thể được xác định trên các bảng tạm thời.Ràng buộc khóa ngoài không thể được xác định trên các bảng tạm thời.
Chỉ số cụmTheo mặc định, khóa chính được lập chỉ mục.Khóa ngoại không được phân nhóm tự động; nó phải được thực hiện bằng tay.
ChènChúng ta có thể chèn một giá trị vào thuộc tính khóa chính, ngay cả khi khóa ngoại tham chiếu không có giá trị đó trong cột của nó.Chúng tôi không thể chèn một giá trị vào khóa ngoại, nếu giá trị đó không có trong cột khóa chính được tham chiếu.
XóaTrước khi bạn xóa một giá trị khóa chính, hãy đảm bảo rằng giá trị đó vẫn không xuất hiện trong cột khóa ngoại tham chiếu của bảng tham chiếu.Bạn có thể xóa một giá trị khỏi cột khóa ngoại mà không làm phiền, cho dù giá trị đó có trong cột khóa chính được tham chiếu của quan hệ được tham chiếu hay không.


Định nghĩa khóa chính

Khóa chính độc nhất định nghĩa các bộ dữ liệu trong một mối quan hệ. Nó có thể là một thuộc tính duy nhất trong một mối quan hệ hoặc nó có thể là một tập hợp các thuộc tính trong một mối quan hệ. Giá trị của thuộc tính khóa chính phải không bao giờ hoặc hiếm khi thay đổi. Bởi vì nó là hiệu trưởng, có nghĩa là xác định bất kỳ bản ghi nào trong cơ sở dữ liệu. Thay đổi trong bất kỳ giá trị thuộc tính nào của khóa chính sẽ tạo ra sự nhầm lẫn.

Nhà thiết kế cơ sở dữ liệu chọn một trong những chìa khóa ứng cử viên như một chìa khóa chính, xem xét một số điểm. Việc xem xét đầu tiên là giá trị thuộc tính khóa chính không bao giờ có thể chứa VÔ GIÁ TRỊ giá trị. Bởi vì, nếu một giá trị thuộc tính khóa chính chứa NULL, điều đó có nghĩa là chúng ta không thể xác định bản ghi đó trong bảng. Nó cũng vi phạm các ràng buộc toàn vẹn thực thể. Cân nhắc thứ hai là, không có hai bộ trong một bảng có thể chứa tương tự giá trị cho một thuộc tính khóa chính, vì nó sẽ vi phạm tính duy nhất giữa các bộ dữ liệu.

Chỉ có thể là một khóa chính bất cứ gì quan hệ. Khóa chính là mặc định lập chỉ mục cụm, có nghĩa là tất cả các bộ dữ liệu trong một bảng được sắp xếp, dựa trên các giá trị thuộc tính của khóa chính. Ràng buộc khóa chính có thể được xác định trên một bảng tạm thời. Các bảng trung gian được tạo trong quá trình thực hiện truy vấn được gọi là các bảng tạm thời.

Trong khi xóa một tuple từ một mối quan hệ, người ta phải lưu ý rằng giá trị khóa chính đã bị xóa của tuple, vẫn không xuất hiện trong cột khóa ngoài của quan hệ tham chiếu. Trong khi chèn không có bất kỳ ràng buộc nào đối với khóa chính.

Khóa chính của một bảng khi được sử dụng trong một số bảng khác thì nó trở thành khóa ngoại cho bảng đó. Các ràng buộc khóa ngoại được thảo luận dưới đây.

Định nghĩa khóa ngoại

Khi quan hệ R 1, trong số các thuộc tính của nó, có một sơ cấp Chìa khóa của mối quan hệ khác R2, sau đó thuộc tính đó được gọi là Khóa ngoại cho mối quan hệ R 1. Mối quan hệ R 1 chứa khóa ngoại được gọi quan hệ tham khảo vì nó đề cập đến khóa chính của quan hệ R2 và quan hệ R2 được gọi là quan hệ tham chiếu.
Không giống như khóa chính, khóa ngoại có thể chấp nhận VÔ GIÁ TRỊ bởi vì, nó không có nhiệm vụ xác định một bản ghi rõ ràng trong một mối quan hệ, vì chúng ta có khóa chính cho việc này. Theo cách tương tự, khóa ngoại cũng chấp nhận giá trị trùng lặp.

Một mối quan hệ có thể có nhiều khóa ngoại, vì nó có thể có các thuộc tính khác nhau là khóa chính trong các quan hệ khác nhau. Ràng buộc khóa ngoại có thể không phải được định nghĩa trên bảng tạm thời, cũng không khóa ngoại là một lập chỉ mục cụm thuộc tính.

Trong khi chèn một giá trị vào cột khóa ngoài của quan hệ tham chiếu, đảm bảo rằng giá trị chèn phải có trong cột khóa chính của quan hệ được tham chiếu. Trong khi đó, không có ràng buộc trong khi xóa một giá trị từ cột khóa ngoại.

  1. Chính là một tập hợp các thuộc tính / khóa ứng viên xác định rõ ràng một bản ghi trong một mối quan hệ. Tuy nhiên, khóa ngoại trong bảng đề cập đến khóa chính của bảng khác.
  2. Không có thuộc tính khóa chính nào có thể chứa giá trị NULL trong khi đó, thuộc tính khóa ngoài có thể chấp nhận giá trị NULL.
  3. Khóa chính phải có các giá trị thuộc tính duy nhất trong khi đó, khóa ngoại có thể có các giá trị thuộc tính trùng lặp.
  4. Có thể có nhiều khóa ngoại trong một mối quan hệ, nhưng một mối quan hệ chỉ có một khóa chính.
  5. Ràng buộc khóa chính có thể được áp dụng cho các bảng tạm thời. Tuy nhiên, ràng buộc khóa ngoại không thể được áp dụng cho các bảng tạm thời.
  6. Theo mặc định, khóa chính được lập chỉ mục theo cụm, trong khi đó, khóa ngoại không được lập chỉ mục cụm tự động, nhưng có thể được thực hiện thủ công.
  7. Trong khi chèn một giá trị vào cột khóa ngoài, hãy đảm bảo rằng giá trị thuộc tính chèn có trong cột khóa chính được tham chiếu. Tuy nhiên, không có hạn chế về việc chèn vào cột khóa chính.
  8. Trong khi xóa một giá trị khỏi cột khóa chính, đảm bảo rằng giá trị thuộc tính bị xóa không có trong cột khóa ngoài tham chiếu. Tuy nhiên, không có ràng buộc nào trong việc xóa giá trị khỏi cột khóa ngoại.

Phần kết luận:

Cả hai, khóa chính và khóa ngoại đều cần thiết cho một lược đồ. Khóa chính xác định mỗi bộ dữ liệu trong một mối quan hệ duy nhất trong khi đó, khóa ngoại được sử dụng để tạo liên kết giữa hai quan hệ.