Khóa ngoại (Foreign Key)
Định nghĩa
Khóa ngoại (Foreign Key - FK) là một (hoặc một tổ hợp) cột trong một bảng (gọi là bảng con - child table), mà giá trị của nó tham chiếu (references) đến giá trị của khóa chính (Primary Key) trong một bảng khác (gọi là bảng cha - parent table). 🔗
Khóa ngoại là cơ chế chính để thiết lập và duy trì mối quan hệ (relationship) giữa các bảng trong cơ sở dữ liệu quan hệ.
Mục đích
- Tạo Liên kết: Liên kết các bảng có liên quan lại với nhau (ví dụ: liên kết bảng
DonHangvới bảngKhachHangthông quaMaKhachHang). - Đảm bảo Tính toàn vẹn Tham chiếu (Referential Integrity): Ngăn chặn việc tạo ra các “bản ghi mồ côi”. Điều này có nghĩa là:
- Giá trị trong cột Khóa ngoại phải tồn tại trong cột Khóa chính của bảng cha (hoặc là NULL nếu được phép).
- Không thể xóa một hàng ở bảng cha nếu vẫn còn hàng ở bảng con tham chiếu đến nó (trừ khi có thiết lập đặc biệt như
ON DELETE CASCADE).
Ví dụ
- Bảng
KhachHang:MaKH(PK) 👈 (Khóa chính)TenKH
- Bảng
DonHang:SoDH(PK)NgayDHMaKH(FK) → Tham chiếu đếnMaKHcủa bảngKhachHang. (Đây là Khóa ngoại)