Hệ thống quản lý cơ sở dữ liệu (DBMS) rất cần thiết trong kinh doanh, ngân hàng, hãng hàng không, viễn thông và trường đại học vì đây là phương pháp hiệu quả và đáng tin cậy để tạo, lưu trữ và quản lý dữ liệu 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 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 một liên kết giữa hai bảng khác nhau và xác định duy nhất bất kỳ hàng dữ liệu nào trong một 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, điều này sẽ rất phức tạp hoặc thậm chí là không thể nếu không có khóa. Hai khóa chính giúp thiết lập và xác định liên kết giữa các cơ sở dữ liệu quan hệ một cách hiệu quả là Khóa chính và Khóa ngoại.
Các nội dung chính
- Khóa chính là mã định danh duy nhất cho mỗi bản ghi trong bảng cơ sở dữ liệu, đảm bảo rằng không có hai hàng nào có cùng giá trị khóa chính.
- Khóa ngoại là một trường trong bảng tham chiếu đến khóa chính của bảng khác, thiết lập mối quan hệ giữa hai bảng và duy trì tính toàn vẹn tham chiếu.
- Sự khác biệt chính giữa khóa chính và khóa ngoại là chức năng của chúng trong cơ sở dữ liệu, với các khóa chính cung cấp mã định danh duy nhất cho bản ghi. Ngược lại, khóa ngoại tạo mối quan hệ giữa các bảng bằng cách tham chiếu khóa chính trong các bảng khác.
Khóa chính vs Khóa ngoại
Khóa chính là sự lựa chọn các cột duy nhất và xác định tập hợp các hàng trên một bảng cụ thể, đồng thời cũng là một thuộc tính có ID được coi là khóa ứng viên. Khóa ngoại là một cột trong một bảng phục vụ như một liên kết giữa hai bảng khác nhau và nó chứa các giá trị null.
Một bảng không thể là một quan hệ cơ sở dữ liệu bảng không có khóa chính. Vì các khóa chính xác định duy nhất một hàng dữ liệu cụ thể nên hai hoặc nhiều hàng không thể có các khóa chính giống nhau. Ngược lại, 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 khác nhau.
Bảng so sánh
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ị. | Khóa ngoại cho phép hai hàng có cùng giá trị. |
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 | Theo mặc định, các khóa chính có chỉ mục nhóm. | Khóa ngoại không có chỉ mục 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 xuất hiện trong bảng tham chiếu khóa ngoại. | Khi một giá trị bị xóa, người ta có thể dễ dàng thực hiện việc đó từ các khóa ngoại. |
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. | Khóa ngoại không thể được xác định trên 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ột cụ thể 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ó ID duy nhất và cũng được coi là khóa ứng cử viên.
Giá trị của khóa chính không bao giờ 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, việc thay đổi giá trị sẽ dẫn đến rất nhiều nhầm lẫn.
Khóa chính được lập chỉ mục theo cụm, nghĩa là tất cả các hàng của 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.
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.
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.
Khóa ngoại không thể được xác định trên bảng tạm thời. Trong khi thêm một giá trị vào cột khóa ngoại, người ta phải đảm bảo rằng giao dịch đó có trong khóa chính và không có ràng buộc nào khi xóa các giá trị khỏi khóa ngoại.
Sự khác biệt chính giữa Khóa chính và Khóa ngoại
- Khóa chính không cho phép hai hàng trong bảng cơ sở dữ liệu có giá trị trùng lặp. Khóa ngoại cho phép hai hàng trong bảng cơ sở dữ liệu có giá trị trùng lặp.
- Trong thuộc tính của khóa chính, các giá trị có thể được chèn vào bảng ngay cả khi khóa ngoại không có giá trị đó trong cột của nó. bên trong khóa ngoại giảm giá không thể được chèn vào bảng nếu các giá trị không có trong cơ sở dữ liệu khóa chính.
- A khóa chính thuộc tính chỉ có thể có một dãy khóa chính trong bảng của nó. Một khóa ngoại thuộc tính có thể có nhiều khóa ngoại trong bảng của nó.
- Khóa chính có chỉ mục nhóm, nghĩa là tất cả các hàng trong quan hệ cơ sở dữ liệu đều được sắp xếp. Khóa ngoại không có chỉ mục nhóm tự động nhưng có thể được thực hiện thủ công.
- Theo khóa chính, một giá trị có thể bị xóa khỏi bảng tham chiếu bằng cách đảm bảo giao dịch không có trong bảng tham chiếu khóa ngoại. Trong các khóa ngoại, các giá trị có thể bị xóa mà không gặp trục trặc vì việc giá trị đó có còn hiện hành trong bảng tham chiếu khóa chính hay không không quan trọng.
- Khóa chính có thể được xác định trên một bảng tạm thời. Khóa ngoại không thể được xác định hoặc thi hành trên một bảng tạm thời.