Các loại khóa khác nhau trong DBMS là -
- Khoá Ứng viên - Các khóa ứng viên trong bảng được định nghĩa là tập hợp các khóa tối thiểu và có thể xác định duy nhất bất kỳ hàng dữ liệu nào trong bảng.
- Khóa Chính - Khóa chính được chọn từ một trong các khóa ứng viên và trở thành khóa xác định của bảng. Nó có thể xác định duy nhất bất kỳ hàng dữ liệu nào của bảng.
- Super Key - Super Key là tập siêu khóa của khóa chính. Siêu khóa chứa một tập hợp các thuộc tính, bao gồm cả khóa chính, có thể xác định duy nhất bất kỳ hàng dữ liệu nào trong bảng.
- Khóa tổng hợp - Nếu bất kỳ thuộc tính đơn lẻ nào của bảng không có khả năng là khóa, tức là nó không thể xác định một hàng duy nhất, thì chúng tôi kết hợp hai hoặc nhiều thuộc tính để tạo thành khóa. Đây được gọi là khóa tổng hợp.
- Khóa phụ - Chỉ một trong các khóa ứng viên được chọn làm khóa chính. Phần còn lại của chúng được gọi là khóa phụ.
- Khoá ngoại - Khóa ngoại là một giá trị thuộc tính trong bảng đóng vai trò là khóa chính trong bảng khác. Do đó, khóa ngoại rất hữu ích trong việc liên kết hai bảng với nhau. Dữ liệu phải được nhập vào cột khóa ngoại một cách cẩn thận, vì dữ liệu nhập sai có thể làm mất hiệu lực mối quan hệ giữa hai bảng.
Một ví dụ để giải thích các khóa khác nhau là -
Student_Number | Student_Name | Student_Phone | Subject_Number |
---|---|---|---|
1 | Andrew | 6615927284 | 10 |
2 | Sara | 6583654865 | 20 |
3 | Harry | 4647567463 | 10 |
Subject_Number | Tên_ Chủ đề | Subject_Instructor |
---|---|---|
10 | DBMS | Korth |
20 | Thuật toán | Cormen |
30 | Thuật toán | Người giải trí |
Student_Number | Subject_Number |
---|---|
1 | 10 |
2 | 20 |
3 | 10 |
Super Keys trong
{Student_Number} {Student_Phone} {Student_Number,Student_Name} {Student_Number,Student_Phone} {Student_Number,Subject_Number} {Student_Phone,Student_Name} {Student_Phone,Subject_Number} {Student_Number,Student_Name,Student_Phone} {Student_Number,Student_Phone,Subject_Number} {Student_Number,Student_Name,Subject_Number} {Student_Phone,Student_Name,Subject_Number}
Super Keys trong
{Subject_Number} {Subject_Number,Subject_Name} {Subject_Number,Subject_Instructor} {Subject_Number,Subject_Name,Subject_Instructor} {Subject_Name,Subject_Instructor}
Super Key trong
{Student_Number,Subject_Number}
Khóa ứng viên trong bảng
Khóa ứng viên trong bảng
Khóa ứng viên trong bảng
Khóa chính trong bảng
Khóa chính trong bảng
Khóa chính trong bảng
Khóa tổng hợp trong bảng
Khóa phụ trong bảng
Khóa phụ trong bảng
{Subject_Number} là Khóa ngoại của bảng