Logo vi.removalsclassifieds.com

Sự khác biệt giữa khóa chính và khóa ngoại (Có bảng)

Mục lục:

Anonim

Hệ thống quản lý cơ sở dữ liệu (DBMS) rất quan trọng trong các lĩnh vực như kinh doanh, ngân hàng, hãng hàng không, viễn thông và trường đại học vì nó là một phương pháp hiệu quả và đáng tin cậy khi tạo, lưu trữ và quản lý dữ liệu trong cơ sở dữ liệu. Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) là dạng nâng cao của DMBS được cấu trúc đặc biệt cho cơ sở dữ liệu quan hệ. Các cơ sở dữ liệu này bảo quản dữ liệu trong các bảng chứa các hàng và cột tương ứng tượng trưng cho một mục nhập và một thuộc tính.

Khóa là thành phần quan trọng của lược đồ cơ sở dữ liệu quan hệ vì chúng thiết lập liên kết giữa hai bảng khác nhau và đảm bảo xác định duy nhất bất kỳ hàng dữ liệu nào trong bảng. Tuy nhiên, các khóa có tầm quan trọng cụ thể hơn là chỉ duy trì các liên kết.

Nó giúp thu thập dữ liệu cụ thể từ nhiều hàng mà đôi khi sẽ rất phức tạp hoặc thậm chí là không thể nếu nó không phải là khóa. Hai khóa cơ bản giúp thiết lập và xác định các liên kết giữa các cơ sở dữ liệu quan hệ một cách hiệu quả và chúng là Khóa chính và Khóa ngoài.

Khóa chính so với Khóa ngoài

Sự khác biệt giữa khóa chính và khóa ngoại là khóa chính sử dụng dữ liệu chứa trong một hoặc nhiều cột trong bảng để xác định duy nhất từng hàng trong khi khóa ngoại là một cột hoặc nhiều cột trong cơ sở dữ liệu trỏ đến khóa chính của một bản ghi cơ sở dữ liệu trong một số bảng khác.

Không có khóa chính, một bảng không thể được tính là một bảng cơ sở dữ liệu quan hệ. Bởi vì khóa chính được sử dụng để xác định duy nhất một hàng dữ liệu cụ thể, hai hoặc nhiều hàng không được có khóa chính giống nhau. Ngược lại, các khóa ngoại được sử dụng để thiết lập mối quan hệ giữa các bản ghi của hai bảng riêng biệt. Tuy nhiên, không giống như khóa chính, chúng ta có thể có nhiều khóa ngoại trong cơ sở dữ liệu.

Bảng so sánh giữa khóa chính và khóa ngoại (ở dạng bảng)

Tham số so sánh Khóa chính Khóa ngoại
Giá trị trùng lặp Khóa chính không cho phép hai hàng có cùng giá trị. Các khóa ngoại cho phép hai hàng có cùng giá trị.
Sự chèn Trong khóa chính, người ta có thể chèn giá trị ngay cả khi khóa ngoại không có giá trị đó. Trong khóa ngoại, người ta không thể chèn giá trị nếu giá trị không có trong khóa chính.
Phạm vi Mỗi hàng trong bảng cơ sở dữ liệu quan hệ chỉ có thể có một khóa chính. Một bảng cơ sở dữ liệu quan hệ có thể có nhiều khóa ngoại.
Chỉ mục theo cụm Các khóa chính, theo mặc định, có một chỉ mục theo nhóm. Các khóa ngoại không có chỉ mục được phân cụm.
Xóa Khi một giá trị bị xóa, người ta phải làm cho giá trị đó vẫn không có trong bảng tham chiếu khóa ngoại. Khi một giá trị bị xóa, người ta có thể thực hiện điều đó khỏi các khóa ngoại một cách dễ dàng.
Bảng tạm thời Các khóa chính có thể được xác định trên một bảng tạm thời. Các khóa ngoại không thể được xác định trên một bảng tạm thời.

Khóa chính là gì?

Khóa chính đề cập đến một lựa chọn cụ thể của các cột xác định duy nhất tập hợp các hàng trong bảng. Khóa chính là một thuộc tính duy nhất có một ID duy nhất và cũng được coi là khóa ứng viên. Có hai loại khóa chính, tức là khóa chính đơn giản và khóa chính tổng hợp. Khóa chính đơn giản là một bảng cơ sở dữ liệu chỉ có một cột trong khi khóa chính tổng hợp trong bảng cơ sở dữ liệu có nhiều hơn một cột.

Giá trị của khóa chính không bao giờ được dao động hoặc thay đổi vì khóa chính đặc trưng cho tầm quan trọng trong cơ sở dữ liệu. Vì vậy, bằng cách thay đổi giá trị, nó sẽ dẫn đến rất nhiều nhầm lẫn. Khóa chính không được chứa giá trị rỗng ngay từ đầu để không ai có thể xác định giá trị trong bảng đó. Ngoài ra, không có hai hàng nào có cùng khóa chính vì điều này sẽ không dẫn đến cơ sở dữ liệu là duy nhất. Do đó, chỉ có thể có một khóa chính cho mỗi hàng dữ liệu trong bảng.

Khóa chính được lập chỉ mục theo cụm có nghĩa là tất cả các hàng trong bảng đều được sắp xếp. Khóa chính chủ yếu được xác định trên một bảng tạm thời. Khi một người đang xóa các hàng khỏi bảng, họ phải cẩn thận rằng giá trị đã xóa không có trong cột khóa ngoại.

Khóa ngoại là gì?

Khóa ngoại đề cập đến một cột trong bảng cơ sở dữ liệu cung cấp liên kết giữa hai bảng. Khi bảng 1 có khóa chính của bảng 2, thì thuộc tính này là khóa ngoại. Bảng 1 có khóa ngoại được gọi là khóa tham chiếu và khóa chính của bảng 2 đượ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ứa giá trị null vì nó không giúp xác định sự khác biệt trong mối quan hệ vì khóa chính đã thực hiện phần công việc này. Khóa ngoại cũng có thể chấp nhận các giá trị trùng lặp không giống như khóa chính và có thể có nhiều hoặc nhiều khóa ngoại trong cơ sở dữ liệu vì khóa ngoại có thể có các thuộc tính khác nhau. Tuy nhiên, khóa ngoại không được có chỉ mục được phân cụm.

Các khóa ngoại không thể được xác định trên một bảng tạm thời. Trong khi thêm giá trị vào cột khóa ngoại, người ta phải đảm bảo giá trị đó có trong khóa chính và không có ràng buộc nào khi xóa giá trị khỏi khóa ngoại. Các bảng ngoại giúp duy trì tính toàn vẹn của các bảng trong cơ sở dữ liệu. Hệ thống quản lý cơ sở dữ liệu có thể ngăn chặn việc xóa ngẫu nhiên bất kỳ giá trị nào.

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

Sự kết luận

Trong hệ quản trị cơ sở dữ liệu, các khóa đóng một vai trò quan trọng trong việc thiết lập các mối quan hệ trong một bảng và giữa các bảng khác nhau. Nhưng để làm như vậy, chúng ta phải đảm bảo rằng các khu vực chúng ta sử dụng để duy trì mối quan hệ giữa các bảng khác nhau phải có các giá trị có thể so sánh được và bảng phải bao gồm các hàng duy nhất.

Bài viết này nói về hai khóa cơ bản và phổ biến nhất tạo liên kết giữa các bảng và giúp hệ quản trị cơ sở dữ liệu quan hệ hoạt động hiệu quả. Khóa chính và khóa ngoại được mô tả chi tiết và phân biệt để giúp mọi người hiểu rõ ràng cả hai khác nhau như thế nào vì mặc dù các thuật ngữ này có thể giống nhau về thiết kế, nhưng chúng thực hiện các vai trò khác nhau.

Khóa chính sử dụng dữ liệu trong một cột hoặc nhiều cột để xác định duy nhất tất cả các hàng trong bảng cơ sở dữ liệu quan hệ nhằm tránh chèn một hàng dữ liệu trùng lặp trong khi khóa ngoại được sử dụng để thiết lập liên kết giữa hai bảng trong cơ sở dữ liệu.

Sự khác biệt giữa khóa chính và khóa ngoại (Có bảng)