BÀI 20 - THỰC HÀNH TẠO LẬP CÁC BẢNG CÓ KHÓA NGOÀI



TIN HỌC 11 – CHỦ ĐỀ 4

Bài 20. Thực Hành Tạo Lập Các Bảng Có Khóa Ngoài

Hiểu khóa ngoài là hiểu cách các bảng liên kết; thực hành tốt hôm nay là nền tảng để xây dựng những cơ sở dữ liệu lớn và khoa học ngày mai.

I. MỤC TIÊU BÀI HỌC

  • Biết cách tạo mới các bảng có khóa ngoài.
  • Biết khai báo khóa chính.
  • Biết khai báo khóa cấm trùng lặp (UNIQUE).
  • Biết khai báo khóa ngoài (FOREIGN KEY).
  • Biết chọn bảng được tham chiếu và trường được tham chiếu.

⭐ Công thức nhớ nhanh: KHÓA NGOÀI = LIÊN KẾT GIỮA CÁC BẢNG

II. NHIỆM VỤ & CẤU TRÚC BẢNG bannhac

Close-up of a computer screen displaying programming code in a dark environment.

Cấu trúc bảng bannhac:

bannhac(idBannhac, tenBannhac, idNhacsi)
STTTên trườngKiểu dữ liệuThuộc tính
1idBannhacINTAUTO_INCREMENT, PRIMARY KEY
2tenBannhacVARCHAR(255)UNIQUE
3idNhacsiINTUNIQUE, FOREIGN KEY

⭐ Nhớ nhanh

bannhac
├── idBannhac → INT → PRIMARY KEY → AUTO_INCREMENT
├── tenBannhac → VARCHAR(255) → UNIQUE
└── idNhacsi → INT → UNIQUE → FOREIGN KEY

III. KHAI BÁO CÁC TRƯỜNG CỦA BẢNG bannhac

📋 Bước 1 – Tạo bảng:

  1. Trong CSDL mymusic: Tạo mới → Bảng
  2. Nhập tên bảng: bannhac
  3. Chọn Thêm mới để thêm các trường.

🔹 Trường idBannhac:

Nhập idBannhac → Kiểu: INT → Không NULL → AUTO_INCREMENT

Ý nghĩa: mã số định danh cho mỗi bản nhạc.

idBannhactenBannhac
1Tiến quân ca
2Như có Bác Hồ
3Việt Nam quê hương tôi

🔹 Trường tenBannhac:

Thêm trường tenBannhac → Kiểu: VARCHAR(255)

Trường này lưu tên bản nhạc.

🔹 Trường idNhacsi:

Thêm trường idNhacsi → Kiểu: INT

Trường này lưu mã nhạc sĩ sáng tác bản nhạc.

idBannhactenBannhacidNhacsi
1Tiến quân ca1
2Làng tôi2

IV. KHÓA NGOÀI LÀ GÌ?

Khóa ngoài (Foreign Key) là trường của một bảng dùng để tham chiếu đến khóa chính của bảng khác.

Bảng nhacsi
idNhacsi ← khóa chính

│ tham chiếu
idNhacsi ← khóa ngoài
Bảng bannhac

⭐ Công thức nhớ: Bảng con → khóa ngoài → tham chiếu → khóa chính bảng cha

V. KHAI BÁO KHÓA CHÍNH & KHÓA CẤM TRÙNG

🔑 Khai báo khóa chính idBannhac:

  1. Chọn trường idBannhac
  2. Nháy chuột phải → Create new index → PRIMARY

Khóa chính giúp phân biệt duy nhất từng bản ghi trong bảng.

🔒 Khai báo khóa cấm trùng lặp (UNIQUE):

Chọn hai trường: tenBannhac  idNhacsi → Create new index → UNIQUE

Ý nghĩa: Không cho phép cặp (tenBannhac + idNhacsi) bị trùng nhau.

tenBannhacidNhacsiKết quả
Bài hát A1✓ Được phép
Bài hát A2✓ Được phép
Bài hát A1✗ Không được

⭐ UNIQUE = KHÔNG ĐƯỢC TRÙNG

VI. KHAI BÁO KHÓA NGOÀI idNhacsi

⚡ Đây là nội dung quan trọng nhất của Bài 20!

📋 CÁC BƯỚC KHAI BÁO KHÓA NGOÀI:

  1. Bước 1: Chọn thẻ Foreign keys
  2. Bước 2: Thêm một khóa ngoài mới → Trong phần Columns, chọn: idNhacsi
  3. Bước 3: Trong Reference table, chọn: nhacsi
  4. Bước 4: Chọn trường tham chiếu: idNhacsi của bảng nhacsi
  5. Bước 5: Nhấn Lưu

KẾT QUẢ LIÊN KẾT

bannhac.idNhacsi
nhacsi.idNhacsi

⭐ nhacsi là bảng được tham chiếu → bannhac là bảng có khóa ngoài

VII. SƠ ĐỒ LIÊN KẾT & CÁC BẢNG TRONG mymusic

SƠ ĐỒ LIÊN KẾT HAI BẢNG

nhacsi
PK idNhacsi
tenNhacsi
↓ tham chiếu
bannhac
PK idBannhac
tenBannhac
FK idNhacsi

Các bảng trong CSDL mymusic:

BảngCác trườngKhóa
nhacsiidNhacsi, tenNhacsiidNhacsi – PK
casiidCasi, tenCasiidCasi – PK
bannhacidBannhac, tenBannhac, idNhacsiidBannhac – PK; idNhacsi – FK
banthuamidBanthuam, idBannhac, idCasiidBanthuam – PK; có các FK

📝 VIII. LUYỆN TẬP – TẠO BẢNG banthuam

❓ Hãy tạo lập bảng banthuam.

Theo cấu trúc: banthuam(idBanthuam, idBannhac, idCasi)

STTTên trườngKiểu dữ liệuThuộc tính
1idBanthuamINTPRIMARY KEY, AUTO_INCREMENT
2idBannhacINTFOREIGN KEY
3idCasiINTFOREIGN KEY

LIÊN KẾT

banthuam.idBannhac → bannhac.idBannhac
banthuam.idCasi → casi.idCasi

✅ Đáp án: Tạo bảng banthuam gồm idBanthuam, idBannhac, idCasi; trong đó idBanthuam là khóa chính, idBannhac và idCasi là các khóa ngoài tham chiếu lần lượt đến bảng bannhac và casi.

🔎 IX. VẬN DỤNG

❓ Hãy tạo lập bảng Phường/Xã trong CSDL quản lí tên phường/xã, tỉnh/thành phố.

💡 GỢI Ý THIẾT KẾ:

Bảng tinhthanhpho:

Tên trườngKiểu dữ liệuKhóa
idTinhThanhPhoINTPRIMARY KEY
tenTinhThanhPhoVARCHAR(255)

Bảng phuongxa:

Tên trườngKiểu dữ liệuKhóa
idPhuongXaINTPRIMARY KEY
tenPhuongXaVARCHAR(255)
idTinhThanhPhoINTFOREIGN KEY
LIÊN KẾT
tinhthanhpho.idTinhThanhPho
↑ khóa ngoài
phuongxa.idTinhThanhPho

✅ Đáp án: Tạo bảng phuongxa gồm idPhuongXa, tenPhuongXa, idTinhThanhPho. Chọn idPhuongXa làm khóa chính. Trường idTinhThanhPho làm khóa ngoài, tham chiếu đến idTinhThanhPho của bảng tinhthanhpho.

🧠 X. TÓM TẮT – HỌC THUỘC NHANH

🔹 1. Khóa chính – PRIMARY KEY

Xác định duy nhất một bản ghi. Ví dụ: idBannhac → PRIMARY KEY

🔹 2. Khóa cấm trùng – UNIQUE

Không cho phép giá trị bị trùng. Trong bài: tenBannhac + idNhacsi → UNIQUE

🔹 3. Khóa ngoài – FOREIGN KEY

Liên kết hai bảng với nhau. Ví dụ: bannhac.idNhacsi → nhacsi.idNhacsi

Loại khóaNhớ bằng từ khóa
PRIMARY KEYDUY NHẤT BẢN GHI
UNIQUEKHÔNG TRÙNG
FOREIGN KEYLIÊN KẾT BẢNG

🔑 XI. CÔNG THỨC NHỚ

BÀI 20bannhac
idBannhac
PRIMARY KEY
AUTO_INCREMENT
tenBannhac
VARCHAR(255)
UNIQUE
idNhacsi
FOREIGN KEY
→ nhacsi.idNhacsi
CHỐT KIẾN THỨC
Bài 20: chuyển từ tạo bảng độc lập → tạo bảng có quan hệ qua KHÓA NGOÀI
PRIMARY KEY = Duy nhất | UNIQUE = Không trùng | FOREIGN KEY = Liên kết bảng
Two women working together on software programming indoors, focusing on code.

"PRIMARY KEY = Duy nhất | UNIQUE = Không trùng | FOREIGN KEY = Liên kết bảng"

 
💻🎓

BÀI KIỂM TRA TIN HỌC THPT

Lựa chọn mức độ phù hợp với năng lực của em

📌 HƯỚNG DẪN

Em hãy lựa chọn mức độ phù hợp với yêu cầu của bài học. Sau khi chọn mức độ, bài kiểm tra trực tuyến sẽ được hiển thị ngay bên dưới.

💡 Mẹo: Hãy hoàn thành mức độ trước khi chuyển sang mức độ tiếp theo.

🌟 Mỗi câu hỏi là một cơ hội để em tiến bộ. Hãy tự tin, bình tĩnh và cố gắng hết mình!

Chúc em hoàn thành bài thật tốt!

 

 


Bài cũ hơn Bài mới hơn
Đọc tiếp:
Lên đầu trang