Giáo án Tin học 11 · Chung, Khoa học máy tính và Tin học ứng dụng
Tin họcLớp 11Phần 7. THUD · Chủ đề 6. Thực hành tạo và khai thác cơ sở dữ liệu · Chọn định hướng, không bắt buộc KHMT

Giáo án Bài 20 · THUD. Thực hành tạo lập các bảng có khóa ngoài

Kế hoạch bài dạy theo mẫu Công văn 5512/BGDĐT-GDTrH · 2 tiết (90 phút)

I. Mục tiêu

1. Kiến thức

  • Nêu được khóa ngoài là cột tham chiếu tới khóa chính của bảng cha, và giải thích được vì sao phải tạo bảng cha trước bảng con.
  • Giải thích được ý nghĩa các ràng buộc PRIMARY KEY, NOT NULL, FOREIGN KEY và CHECK trong câu lệnh CREATE TABLE Muon.
  • Vận dụng được quy trình: kiểm tra bảng cha, tạo bảng con có khóa ngoài, nhập dữ liệu cha trước con, thử dòng hợp lệ và dòng có mã chưa tồn tại.
  • Nhận biết được điều kiện áp dụng: dùng MySQL 8.0.16 trở lên và bảng InnoDB khi cần ràng buộc CHECK và khóa ngoài; không tắt kiểm tra khóa để cho qua dữ liệu mồ côi.

2. Năng lực

a) Năng lực chung

  • Tự chủ và tự học: tự đối chiếu sản phẩm của mình với thang chấm và tự kiểm tra kết quả từng bước thực hành.
  • Giao tiếp và hợp tác: phối hợp trong nhóm đôi, giải thích cho bạn lí do thứ tự tạo bảng và chia sẻ lỗi gặp phải khi nhập dữ liệu.
  • Giải quyết vấn đề và sáng tạo: xác định nguyên nhân khi dòng dữ liệu bị từ chối, đề xuất cách sửa đúng (nhập cha trước, kiểm tra miền giá trị) thay vì tắt ràng buộc.

b) Năng lực đặc thù

  • Sử dụng và quản lí các phương tiện công nghệ thông tin và truyền thông: sử dụng MySQL hoặc công cụ quản trị để chạy CREATE TABLE, INSERT và kiểm tra kết quả trong môi trường riêng.
  • Ứng xử phù hợp trong môi trường số: chỉ dùng dữ liệu mẫu giả định trong bài, không đưa thông tin cá nhân thật vào bài thực hành hoặc sản phẩm chia sẻ.
  • Giải quyết vấn đề với sự hỗ trợ của công nghệ thông tin và truyền thông: đọc thông báo lỗi khóa ngoài hoặc CHECK, xác định dòng vi phạm và chọn cách xử lí đúng.
  • Ứng dụng công nghệ thông tin và truyền thông trong học và tự học: sử dụng bài giảng và bài tập tương tác trên NeoEdu để ôn lại và tự kiểm tra.
  • Hợp tác trong môi trường số: chia sẻ script SQL trong nhóm đôi, kiểm tra chéo sản phẩm của nhau theo thang chấm.

3. Phẩm chất

  • Chăm chỉ: thực hiện đủ các bước thực hành, thử nhiều trường hợp hợp lệ và không hợp lệ, không bỏ qua bài tập 8 và 9.
  • Trách nhiệm: không tắt FOREIGN KEY hay ràng buộc để làm cho lệnh chạy được; khi gặp dữ liệu sai thì đối chiếu dữ liệu gốc trước khi sửa.
  • Trung thực: ghi đúng kết quả chạy lệnh (kể cả lỗi), không tự nhận đã nhập dữ liệu khi lệnh chưa thành công.

II. Thiết bị dạy học và học liệu

1. Giáo viên

  • Máy tính có MySQL 8.0.16 trở lên và bảng InnoDB; GV kiểm tra phiên bản trước giờ học, vì phiên bản cũ có thể không thực thi CHECK như mong đợi.
  • Công cụ quản trị MySQL (MySQL Workbench hoặc giao diện dòng lệnh) và máy chiếu để trình bày mô hình CREATE TABLE.
  • Phiếu học tập số 1 và Phiếu học tập số 2 in sẵn hoặc chiếu lên màn hình.
  • Thang chấm thực hành (rubric 1 điểm) và đáp án bài tập 1 đến 9.
  • Học liệu số NeoEdu: trang bài học có bài giảng, ví dụ và bài tập tương tác tại neoedu.vn/learn/11/informatics/bai-20-thud-thuc-hanh-tao-lap-cac-bang-co-khoa-ngoai.

2. Học sinh

  • Máy tính có cài MySQL hoặc truy cập được môi trường thực hành do GV cung cấp, mỗi nhóm đôi một máy.
  • Phiếu học tập số 1 và số 2, vở ghi, bút.
  • Tài khoản học tập NeoEdu để làm bài tập tương tác.

III. Tiến trình dạy học

Hoạt động 1: Mở đầu · 8 phút

Tình huống thêm lượt mượn sách

a) Mục tiêu

Huy động kiến thức nền về bảng cha, bảng con và lí do cần tạo bảng cha trước; xác định nhiệm vụ của bài thực hành.

b) Nội dung

GV đưa tình huống: thư viện đã có bảng DocGia và Sach, muốn lưu các lượt mượn trong bảng Muon. HS trả lời hai câu hỏi: (1) Nếu tạo bảng Muon trước khi có DocGia thì điều gì xảy ra khi khai báo khóa ngoài MaDG? (2) Dòng (104, 9, 11, 4) có được nhập khi chưa có độc giả mã 9 không?

c) Sản phẩm

Kết luận ban đầu của lớp: khóa ngoài MaDG và MaSach tham chiếu tới bảng cha, nên bảng cha phải tồn tại trước; dòng (104, 9, 11, 4) vi phạm ràng buộc vì không có bản ghi cha có MaDG = 9. Từ đó xác định nhiệm vụ: tạo bảng Muon đúng thứ tự, kiểm tra dòng hợp lệ và dòng vi phạm, không tắt kiểm tra khóa.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu tình huống thư viện, chiếu hai câu hỏi và yêu cầu HS suy nghĩ 1 phút trước khi trả lời.

    Học sinh

    HS đọc tình huống, suy nghĩ cá nhân và ghi nhanh câu trả lời vào vở.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh lớp, gợi ý: 'Bảng Muon lưu mã độc giả và mã sách, vậy hai mã đó phải lấy từ đâu?'

    Học sinh

    HS trao đổi với bạn cùng bàn. Dự kiến HS trả lời: 'Phải có DocGia và Sach trước, nếu không thì không có mã để tham chiếu.'

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 HS trả lời hai câu hỏi và yêu cầu lớp nhận xét.

    Học sinh

    HS trả lời: (1) Không thể khai báo tham chiếu tới bảng chưa tồn tại, hoặc dữ liệu mồ côi sẽ xuất hiện. (2) Không, vì không có độc giả mã 9 nên dòng vi phạm khóa ngoài.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: khóa ngoài giữ tham chiếu từ bảng con tới bảng cha, nên phải tạo và nhập bảng cha trước. GV nêu nhiệm vụ của hai tiết: tạo bảng Muon đúng cách và kiểm tra các trường hợp hợp lệ, vi phạm.

    Học sinh

    HS ghi tiêu đề bài 'Thực hành tạo bảng có khóa ngoài' và nhiệm vụ của buổi học vào vở.

Hoạt động 2.1: Hình thành kiến thức mới · 18 phút

Nhận diện khóa chính và khóa ngoài trong bảng Muon

a) Mục tiêu

Phân tích được vai trò của PRIMARY KEY, FOREIGN KEY, NOT NULL và CHECK trong câu lệnh CREATE TABLE Muon.

b) Nội dung

HS làm việc nhóm đôi với Phiếu học tập số 1. GV chiếu mô hình CREATE TABLE Muon gồm các cột MaMuon, MaDG, MaSach, SoNgay và các ràng buộc. Nhiệm vụ: (1) Xác định khóa chính của bảng Muon. (2) Xác định hai khóa ngoài và cột nào tham chiếu tới bảng nào. (3) Giải thích vì sao MaDG, MaSach, SoNgay có NOT NULL. (4) Giải thích tác dụng của CHECK (SoNgay >= 0).

c) Sản phẩm

Kết quả trên Phiếu học tập số 1:

  • Khóa chính: MaMuon, mỗi lượt mượn có một mã duy nhất.
  • Khóa ngoài 1: MaDG tham chiếu DocGia(MaDG), đảm bảo mỗi lượt mượn gắn với một độc giả có thật trong bảng cha.
  • Khóa ngoài 2: MaSach tham chiếu Sach(MaSach), đảm bảo mỗi lượt mượn gắn với một sách có trong bảng cha.
  • NOT NULL: không để trống mã độc giả, mã sách và số ngày mượn, vì lượt mượn thiếu thông tin là không đầy đủ.
  • CHECK (SoNgay >= 0): loại bỏ số ngày âm.
    Kết luận HS rút ra: khóa ngoài giữ tham chiếu bằng giá trị khóa, không phải bằng vị trí hàng.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV chiếu mô hình CREATE TABLE Muon và phát Phiếu học tập số 1. GV nêu thời gian 8 phút và yêu cầu nhóm đôi thảo luận từng câu.

    Học sinh

    HS đọc mô hình, ghi chú vào phiếu các cột và ràng buộc cần xác định.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV theo dõi và hỏi thêm: 'Nếu MaDG có giá trị 9 mà bảng DocGia không có 9 thì ràng buộc nào ngăn lại?'

    Học sinh

    HS thảo luận, dự kiến trả lời: MaDG là khóa ngoài nên ràng buộc FOREIGN KEY sẽ từ chối giá trị 9 vì không có bản ghi cha tương ứng.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời một nhóm trình bày câu 2 và câu 4, các nhóm khác bổ sung hoặc phản biện.

    Học sinh

    Đại diện nhóm trình bày: MaDG và MaSach là hai khóa ngoài; CHECK (SoNgay >= 0) không cho phép số ngày âm như -4.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: khóa ngoài là cột tham chiếu khóa chính của bảng cha; NOT NULL và CHECK là ràng buộc miền giá trị bổ sung. GV nhắc điều kiện: CHECK và khóa ngoài cần MySQL 8.0.16 trở lên và bảng InnoDB.

    Học sinh

    HS ghi kết luận vào vở và hoàn thiện phần đáp án của Phiếu học tập số 1.

Hoạt động 2.2: Hình thành kiến thức mới · 20 phút

Quy trình tạo bảng con và nhập dữ liệu cha trước con

a) Mục tiêu

Vận dụng được quy trình tạo bảng có khóa ngoài, nhập dữ liệu theo đúng thứ tự và giải thích được lỗi khi nhập dòng vi phạm.

b) Nội dung

GV mô tả quy trình: (1) Kiểm tra bảng cha DocGia và Sach đã có khóa chính. (2) Tạo bảng con Muon có khóa ngoài. (3) Nhập dữ liệu cha: DocGia (1, An), (2, Binh); Sach (11, Vuon cay), (12, Bau troi). (4) Nhập dữ liệu con: Muon (101, 1, 11, 7), (102, 2, 12, 5), (103, 1, 12, 3). (5) Thử dòng (104, 9, 11, 4). Câu hỏi thảo luận: Nếu nhập Muon (101, 1, 11, 7) trước khi nhập DocGia thì kết quả thế nào? Vì sao không được tắt FOREIGN KEY để nhập dòng (104, 9, 11, 4)?

c) Sản phẩm

Thứ tự chuẩn của quy trình:

  • Bước 1: kiểm tra bảng DocGia và Sach đã có khóa chính MaDG, MaSach.
  • Bước 2: tạo bảng Muon với hai khóa ngoài.
  • Bước 3: nhập DocGia (1, An), (2, Binh) và Sach (11, Vuon cay), (12, Bau troi).
  • Bước 4: nhập Muon (101, 1, 11, 7), (102, 2, 12, 5), (103, 1, 12, 3) đều hợp lệ.
  • Bước 5: dòng (104, 9, 11, 4) bị từ chối do không có MaDG = 9 trong DocGia.
    Kết luận HS rút ra: nếu nhập con trước cha thì lệnh INSERT bị lỗi vi phạm khóa ngoài; không tắt kiểm tra khóa để cho qua dữ liệu mồ côi, mà nhập đúng cha hoặc sửa giá trị sau khi đối chiếu dữ liệu gốc.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV trình bày 5 bước của quy trình và nêu hai câu hỏi thảo luận. Nhắc HS làm việc trên môi trường riêng của nhóm đôi, không dùng dữ liệu thật.

    Học sinh

    HS đọc quy trình và chuẩn bị máy tính, mở môi trường MySQL do GV hướng dẫn.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV hướng dẫn nhóm đôi chạy từng bước trên máy, nhắc kiểm tra thông báo lỗi nếu có.

    Học sinh

    HS thực hiện từng bước. Dự kiến: khi chạy INSERT Muon trước DocGia, HS nhận thông báo lỗi khóa ngoài; sau khi nhập DocGia, lệnh chạy thành công.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 nhóm chia sẻ kết quả bước 5 và lí do không nên tắt FOREIGN KEY.

    Học sinh

    Đại diện nhóm trả lời: dòng (104, 9, 11, 4) bị từ chối vì MaDG = 9 chưa có ở DocGia; tắt kiểm tra khóa sẽ tạo dữ liệu mồ côi, làm sai lệch dữ liệu thư viện.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt quy trình 5 bước và nhấn mạnh: tạo cha trước, nhập cha trước con, không tắt ràng buộc. GV nhận xét các lỗi thường gặp của lớp.

    Học sinh

    HS ghi quy trình vào vở và tự đánh giá nhóm mình đã làm đúng các bước nào.

Hoạt động 3.1: Luyện tập · 12 phút

Trắc nghiệm và đúng sai về khóa ngoài

a) Mục tiêu

Củng cố khái niệm khóa ngoài, thứ tự tạo bảng, ràng buộc tham chiếu và ánh xạ giá trị mẫu thông qua các bài tập 2 đến 7.

b) Nội dung

HS làm Phiếu học tập số 2 (bài 2 đến 7) trong thời gian 8 phút, sau đó đối chiếu đáp án. Bài 2: Nên tạo bảng nào trước Muon? Bài 3: Mã 9 chưa có ở DocGia thì Muon trỏ 9 có vi phạm không? Bài 4: Muon mẫu có mấy khóa ngoài? Bài 5: Khi thêm lượt mượn mà chưa có dữ liệu cha, nên nhập dữ liệu nào trước? Bài 6: Khóa ngoài có cùng khái niệm với vị trí hàng không? Bài 7: Ghép MaDG = 1, MaSach = 11 với nội dung tương ứng.

c) Sản phẩm

Đáp án bài tập 2 đến 7:

  • Bài 2: A. DocGia và Sach (bảng tham chiếu cần tồn tại trước).
  • Bài 3: Đúng (không có bản ghi cha nên vi phạm ràng buộc).
  • Bài 4: 2 khóa ngoài là MaDG và MaSach.
  • Bài 5: A. Người đọc và sách hợp lệ (cha phải tồn tại khi ràng buộc có hiệu lực).
  • Bài 6: Sai (khóa ngoài tham chiếu bằng giá trị khóa, không phải vị trí hàng).
  • Bài 7: MaDG = 1 ghép với người đọc An; MaSach = 11 ghép với sách Vuon cay.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV phát Phiếu học tập số 2, nêu thời gian 8 phút và yêu cầu HS làm cá nhân trước khi đối chiếu cặp đôi.

    Học sinh

    HS đọc từng câu hỏi, khoanh đáp án hoặc ghi đúng/sai vào phiếu.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi kiểm tra, gợi ý bài 2 bằng câu hỏi: 'Bảng nào phải có mặt trước để Muon tham chiếu?'

    Học sinh

    HS làm bài cá nhân, sau đó đổi phiếu với bạn cùng bàn để đối chiếu. Dự kiến lỗi: nhầm bài 6 vì nghĩ khóa ngoài là số thứ tự hàng.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV yêu cầu HS giơ thẻ đáp án theo từng câu, mời HS giải thích một câu sai.

    Học sinh

    HS giơ đáp án và giải thích, ví dụ: bài 6 sai vì khóa ngoài tham chiếu bằng giá trị MaDG, không phải vị trí dòng trong bảng.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt đáp án và nhấn mạnh hai ý: bảng cha tồn tại trước và khóa ngoài tham chiếu bằng giá trị khóa.

    Học sinh

    HS sửa lại các câu làm sai và ghi chú vào vở.

Hoạt động 3.2: Luyện tập · 20 phút

Thực hành tạo bảng Muon và kiểm tra dữ liệu

a) Mục tiêu

Tạo được bảng Muon với khóa ngoài đúng, kiểm tra dữ liệu mẫu hợp lệ, xử lí được dòng vi phạm khóa ngoài và dòng vi phạm miền giá trị.

b) Nội dung

Mỗi nhóm đôi thực hiện trên môi trường riêng, không dùng chung bản mẫu với bài khác.
Bài 8: Tạo bảng Muon với khóa ngoài theo hai bảng cha đã có. Kiểm tra mẫu MaDG = 1, MaSach = 11 với dữ liệu DocGia (1, An), (2, Binh); Sach (11, Vuon cay), (12, Bau troi); Muon (101, 1, 11, 7), (102, 2, 12, 5), (103, 1, 12, 3). Trình bày script và kết quả kiểm tra.
Bài 9: Dòng (105, 2, 11, -4) hợp lệ về khóa nhưng SoNgay = -4. Hãy nêu vi phạm và cách xử lí.
Mẫu câu lệnh tham khảo:
CREATE TABLE Muon (
MaMuon INT PRIMARY KEY,
MaDG INT NOT NULL,
MaSach INT NOT NULL,
SoNgay INT NOT NULL CHECK (SoNgay >= 0),
FOREIGN KEY (MaDG) REFERENCES DocGia(MaDG),
FOREIGN KEY (MaSach) REFERENCES Sach(MaSach)
);

c) Sản phẩm

Đáp án bài 8 (thang chấm 1 điểm):

  • Cấu trúc bảng Muon với MaMuon là PRIMARY KEY: 0,25 điểm.
  • Hai khóa ngoài MaDG và MaSach đúng: 0,3 điểm.
  • SoNgay có NOT NULL và CHECK (SoNgay >= 0): 0,2 điểm.
  • Thử dòng hợp lệ (101, 1, 11, 7) thành công và thử mã 9 không có thì bị từ chối: 0,15 điểm.
  • Không tắt ràng buộc: 0,1 điểm.
    Chấp nhận phương án khác đúng, có lí giải và đảm bảo an toàn dữ liệu.
    Đáp án bài 9 (thang chấm 1 điểm):
  • Vi phạm miền SoNgay >= 0 vì số ngày mượn âm: 0,5 điểm.
  • Không tự bịa giá trị sửa; đối chiếu dữ liệu gốc để xác nhận, không tự đổi -4 thành 4 nếu không biết ý nghĩa: 0,5 điểm.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu bài 8 và bài 9, nhắc nhóm đôi ghi script vào vở hoặc file, và lưu ý: không tắt kiểm tra khóa ngoài trong bất kì trường hợp nào.

    Học sinh

    HS mở môi trường MySQL, đọc mẫu câu lệnh và chuẩn bị bảng DocGia, Sach đã có dữ liệu.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV đi quanh lớp, kiểm tra từng nhóm đã nhập bảng cha trước chưa, nhắc HS đọc kĩ thông báo lỗi.

    Học sinh

    HS tạo bảng Muon, nhập dữ liệu mẫu, thử dòng (104, 9, 11, 4) và ghi lại thông báo lỗi. Với bài 9, HS thử dòng SoNgay = -4 và nhận thông báo vi phạm CHECK (dự kiến).

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 2 nhóm trình bày script và kết quả kiểm tra; yêu cầu nhóm khác đối chiếu với thang chấm.

    Học sinh

    Đại diện nhóm trình bày câu lệnh, kết quả thành công của dòng hợp lệ và lỗi của dòng vi phạm. Các nhóm chấm chéo theo thang 1 điểm.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: dòng vi phạm khóa ngoài phải được xử lí bằng cách nhập cha hoặc sửa đúng giá trị; dòng vi phạm miền giá trị phải đối chiếu dữ liệu gốc. GV nhận xét chung và nêu lỗi phổ biến.

    Học sinh

    HS hoàn thiện sản phẩm của nhóm, ghi lại thang chấm và điểm tự đánh giá.

Hoạt động 4: Vận dụng · 12 phút

Mở rộng bảng Tra có khóa ngoài trỏ tới Muon

a) Mục tiêu

Vận dụng quy trình tạo bảng có khóa ngoài vào một tình huống mới trong thư viện, giữ đúng thứ tự tạo bảng cha trước bảng con.

b) Nội dung

Thư viện muốn ghi nhận việc trả sách trong bảng Tra(MaTra, MaMuon, NgayTra). Nhiệm vụ: (1) Nêu bảng cha của bảng Tra và lí do. (2) Viết câu lệnh tạo bảng Tra với MaMuon là khóa ngoài tham chiếu Muon(MaMuon). (3) Nhập dữ liệu mẫu Tra (201, 101) hợp lệ và thử Tra (202, 999) có vi phạm không. Dữ liệu mẫu là giả định, không dùng thông tin thật.

c) Sản phẩm

Sản phẩm gợi ý:

  • Bảng cha của Tra là Muon, vì MaMuon trong Tra phải trỏ tới một lượt mượn đã tồn tại.
  • Câu lệnh gợi ý: CREATE TABLE Tra (MaTra INT PRIMARY KEY, MaMuon INT NOT NULL, NgayTra DATE, FOREIGN KEY (MaMuon) REFERENCES Muon(MaMuon));
  • Tra (201, 101) hợp lệ vì Muon có MaMuon = 101.
  • Tra (202, 999) vi phạm khóa ngoài vì không có lượt mượn mã 999.
    Kết luận HS rút ra: cùng quy tắc 'cha trước con' và 'không tắt kiểm tra khóa' áp dụng cho mọi bảng có khóa ngoài.

d) Tổ chức thực hiện

  1. Giáo viên

    Bước 1: Chuyển giao nhiệm vụ

    GV nêu tình huống thư viện và yêu cầu HS làm cá nhân trong 6 phút, sau đó chia sẻ với bạn cùng bàn.

    Học sinh

    HS đọc tình huống, xác định bảng cha và viết câu lệnh tạo bảng Tra.

  2. Giáo viên

    Bước 2: Thực hiện nhiệm vụ

    GV gợi ý: 'Tra phải tham chiếu tới cột nào của Muon? Nếu tạo Tra trước Muon thì điều gì xảy ra?'

    Học sinh

    HS viết câu lệnh và thử nhập dữ liệu mẫu. Dự kiến: HS nhận ra phải tạo Muon trước khi tạo Tra.

  3. Giáo viên

    Bước 3: Báo cáo, thảo luận

    GV mời 1 HS đọc câu lệnh và kết quả thử dòng (202, 999), yêu cầu lớp nhận xét.

    Học sinh

    HS trình bày: bảng cha là Muon; dòng (202, 999) bị từ chối vì không có lượt mượn mã 999.

  4. Giáo viên

    Bước 4: Kết luận, nhận định

    GV chốt: khóa ngoài là công cụ giữ tham chiếu đúng giữa các bảng; luôn tạo và nhập dữ liệu cha trước con, kiểm tra điều kiện MySQL và InnoDB trước khi dùng CHECK và khóa ngoài.

    Học sinh

    HS ghi kết luận và tự đánh giá mức độ hoàn thành của mình theo mục tiêu bài học.

Phiếu học tập

Phiếu học tập số 1

Mô hình: CREATE TABLE Muon (MaMuon INT PRIMARY KEY, MaDG INT NOT NULL, MaSach INT NOT NULL, SoNgay INT NOT NULL CHECK (SoNgay >= 0), FOREIGN KEY (MaDG) REFERENCES DocGia(MaDG), FOREIGN KEY (MaSach) REFERENCES Sach(MaSach));

Câu 1. Khóa chính của bảng Muon là cột nào? Vì sao cần khóa chính?
Câu 2. Bảng Muon có mấy khóa ngoài? Điền bảng sau:

  • Khóa ngoài thứ nhất: cột ..., tham chiếu cột ... của bảng ...
  • Khóa ngoài thứ hai: cột ..., tham chiếu cột ... của bảng ...
    Câu 3. Giải thích vì sao MaDG, MaSach và SoNgay đều có NOT NULL.
    Câu 4. CHECK (SoNgay >= 0) cho phép hay không cho phép giá trị nào? Nêu ví dụ một giá trị bị loại.
    Câu 5. Điều kiện để CHECK và khóa ngoài có hiệu lực là gì?

Dữ liệu mẫu giả định, không dùng thông tin thật.

Phiếu học tập số 2

Khoanh tròn đáp án đúng hoặc ghi Đúng/Sai cho từng câu.

Câu 2. Nên tạo bảng nào trước Muon?

  • A. DocGia và Sach
  • B. Chỉ DocGia vì MaSach không cần cha
  • C. Chỉ Sach vì MaDG không cần cha
  • D. Muon trước rồi mới tạo các bảng tham chiếu

Câu 3. Mã 9 chưa có ở DocGia thì Muon trỏ 9 vi phạm ràng buộc. Đúng hay Sai?

Câu 4. Muon mẫu có mấy khóa ngoài?

Câu 5. Khi thêm lượt mượn mà chưa có dữ liệu cha, nên nhập dữ liệu nào trước?

  • A. Người đọc và sách hợp lệ
  • B. Giao dịch mồ côi
  • C. Tắt toàn vẹn dữ liệu
  • D. Mã ngẫu nhiên

Câu 6. Khóa ngoài là cùng một khái niệm với vị trí hàng. Đúng hay Sai?

Câu 7. Ghép:

  • MaDG = 1 ... (a) Sách Vuon cay
  • MaDG = 1 ... (b) Người đọc An
  • MaSach = 11 ... (c) Người đọc Binh
  • MaSach = 11 ... (d) Sách Bau troi

Tất cả tên và giao dịch là giả định.

Hướng dẫn về nhà

  • Hoàn thiện bài 8 và bài 9 trong môi trường riêng: ghi lại script CREATE TABLE, các lệnh INSERT và thông báo lỗi nhận được; viết 3 đến 5 dòng giải thích lí do từng lỗi.
  • Làm bài tương tác về khóa ngoài và thứ tự tạo bảng trên trang bài học NeoEdu: neoedu.vn/learn/11/informatics/bai-20-thud-thuc-hanh-tao-lap-cac-bang-co-khoa-ngoai; ghi lại số câu đúng để báo cáo trong tiết sau.
  • Hoàn thành bảng Tra trong hoạt động vận dụng, kiểm tra lại bằng dữ liệu mẫu giả định và đối chiếu với thang chấm 1 điểm do GV cung cấp.

Giáo án do NeoEdu soạn với sự hỗ trợ của AI, dựa trên nội dung bài học trên Học liệu. Thầy cô nên đọc lại và điều chỉnh cho phù hợp với học sinh của mình; bản Word để sửa trực tiếp.