Giải Tin Học trang 98
Lời giải chi tiết SGK Lớp 11 · Môn Tin Há»c · Trang 98–99
Nguon: Tin Hoc 11 - Ket Noi Tri Thuc Voi Cuoc Song (trang 98 – 99)
⚠️ Lưu ý: Nội dung hai trang này là phần lý thuyết hướng dẫn thực hành (mục 3. Khai báo các trường khoá), không có bài tập hay câu hỏi. Vì vậy, thầy sẽ tóm tắt và giải thích chi tiết kiến thức trọng tâm để các em nắm vững thao tác.
🔍 Kiến thức cần nhớ
Bài học hướng dẫn cách khai báo các loại khoá cho bảng trong cơ sở dữ liệu, sử dụng phần mềm HeidiSQL (hệ quản trị MariaDB/MySQL). Các bảng đang làm việc thuộc CSDL mymusic, gồm bảng casi (ca sĩ) và nhacsi (nhạc sĩ).
Có ba loại khoá cần khai báo:
| Loại khoá | Vai trò | Lệnh chọn |
|---|---|---|
| Khoá chính (PRIMARY) | Định danh duy nhất mỗi bản ghi | Create new index → PRIMARY |
| Khoá chống trùng lặp (UNIQUE) | Ngăn trùng giá trị của một/nhiều trường | Create new index → UNIQUE |
| Khoá ngoài (Foreign Key) | Liên kết, tham chiếu tới bảng khác | Thẻ Foreign keys |
⚙️ Nội dung chi tiết
a) Khai báo khoá chính: idBannhac
Mục đích: Trường idBannhac (mã bản nhạc) là thuộc tính dùng để phân biệt duy nhất từng bản ghi trong bảng, nên được chọn làm khoá chính.
Các bước thực hiện:
- Nháy nút phải chuột vào ô
idBannhac. - Chọn Create new index (tạo chỉ mục mới).
- Chọn PRIMARY.
💡 Mẹo nhớ: PRIMARY KEY có hai tính chất quan trọng: - Giá trị duy nhất (UNIQUE), không được trùng. - Không được để trống (NOT NULL). Trong hình, trường idBannhac còn được đặt AUTO_INCREMENT — tự động tăng giá trị, đảm bảo mỗi bản ghi luôn có mã riêng.
b) Khai báo khoá chống trùng lặp (UNIQUE)
Mục đích: Cặp giá trị (tenBannhac, idNhacsi) — tức (tên bản nhạc, mã nhạc sĩ) — không được trùng lặp. Một nhạc sĩ không thể có hai bản nhạc cùng tên. Vì vậy phải tạo khoá cấm trùng lặp trên đồng thời hai trường này.
Các bước thực hiện:
- Đánh dấu (chọn) cả hai trường
tenBannhacvàidNhacsi. - Nháy nút phải chuột vào vùng đã đánh dấu.
- Chọn Create new index.
- Chọn UNIQUE.
⚠️ Lưu ý: Đây là khoá UNIQUE trên nhiều cột (composite unique key). Điểm khác biệt cần phân biệt: - Khoá UNIQUE trên một cột: từng giá trị của cột đó không được trùng. - Khoá UNIQUE trên nhiều cột: chỉ cần tổ hợp các giá trị khác nhau là hợp lệ. Ví dụ hai bản nhạc khác tên của cùng một nhạc sĩ vẫn được phép.
c) Khai báo các khoá ngoài (Foreign Key)
Mục đích: Trường idNhacsi trong bảng bản nhạc dùng để tham chiếu đến bảng nhacsi. Khai báo khoá ngoài giúp liên kết hai bảng và đảm bảo toàn vẹn tham chiếu (referential integrity) — giá trị idNhacsi phải tồn tại trong bảng nhacsi.
Các bước thực hiện:
- Chọn thẻ Foreign keys.
- Nháy Thêm mới để tạo một khoá ngoài (ví dụ FK1).
- Nháy chuột vào ô dưới dòng Columns, chọn trường khoá ngoài là
idNhacsirồi chọn OK (Hình 20.8). - Nháy chuột vào ô phía dưới Reference table để chọn bảng tham chiếu là
nhacsirồi chọn OK.
Hai tùy chọn quan trọng (xem Hình 20.7):
- On UPDATE và On DELETE mặc định là NO ACTION — nghĩa là không cho phép cập nhật/xoá bản ghi cha nếu còn bản ghi con tham chiếu, nhằm bảo vệ tính toàn vẹn dữ liệu.
💡 Mẹo nhớ — phân biệt khoá chính và khoá ngoài: - Khoá chính nằm ở bảng đang xét, định danh bản ghi của chính nó. - Khoá ngoài là trường "trỏ sang" khoá chính của bảng khác, tạo nên mối quan hệ giữa các bảng.
🎯 Ghi nhớ: - PRIMARY → khoá chính: duy nhất + không trống, định danh bản ghi. - UNIQUE → chống trùng lặp; có thể đặt trên một hoặc nhiều cột. - Foreign Key → khoá ngoài: liên kết bảng, đảm bảo toàn vẹn tham chiếu, chọn cột khoá ngoài và bảng tham chiếu (Reference table). - Trong HeidiSQL, ba loại khoá được khai báo qua Create new index (PRIMARY, UNIQUE) và thẻ Foreign keys.
