SAU BÀI HỌC NÀY EM SẼ:
- Hiểu được mô hình CSDL quan hệ.
- Hiểu được các thuật ngữ và khái niệm liên quan: bản ghi, trường (thuộc tính), khoá, khoá chính, khoá ngoại, liên kết dữ liệu.
1. KHÁI NIỆM CƠ SỞ DỮ LIỆU QUAN HỆ

Trong bài trước các em đã biết khái niệm CSDL. Đã có khá nhiều mô hình CSDL khác nhau. Từ những năm 1970, Edgar Frank Codd (1923 – 2003) đã đề xuất mô hình CSDL quan hệ. Mô hình này nhanh chóng trở thành mô hình được sử dụng phổ biến nhất, nó xuất hiện trong hầu hết các ứng dụng quản lí, kể cả trong các ứng dụng trên Internet, mạng xã hội,...
Một CSDL bán nhạc, trên một website âm nhạc, được tổ chức gồm có danh sách các nhạc sĩ (Aid), ca sĩ (Sid), bản nhạc (Mid) và bản thu âm.

a) Bảng Nhạc sĩ
| Aid | TenNS |
|---|---|
| 1 | Đỗ Nhuận |
| 2 | Văn Cao |
| 3 | Hoàng Việt |
| 4 | Nguyễn Tài Tuệ |
b) Bảng Ca sĩ
| Sid | TenCS |
|---|---|
| TK | Trần Khánh |
| LD | Lê Dung |
| TN | Tân Nhàn |
| QH | Quốc Hương |
c) Bảng Bản nhạc
| Mid | Aid | TenBN |
|---|---|---|
| 0001 | 1 | Du kích Sông Thao |
| 0002 | 2 | Trường ca Sông Lô |
| 0003 | 3 | Tình ca |
| 0004 | 4 | Xa khơi |
| 0005 | 1 | Việt Nam quê hương tôi |
| 0006 | 2 | Tiến về Hà Nội |
d) Bảng Bản thu âm
| Mid | Sid |
|---|---|
| 0001 | TK |
| 0002 | LD |
| 0003 | TK |
| 0004 | TN |
| 0005 | QH |
| 0006 | QH |
Câu hỏi:
1. Nhạc sĩ sáng tác "Trường ca Sông Lô" là ai? "Xa khơi" là ai?
2. Bản thu âm mã 0004 TN là bản nhạc nào, ca sĩ nào thể hiện?
Trả lời:
1. "Trường ca Sông Lô" → Aid=2 → Văn Cao. "Xa khơi" → Aid=4 → Nguyễn Tài Tuệ.
2. Mã 0004, Sid=TN → Bản nhạc "Xa khơi", ca sĩ Tân Nhàn.
Tất cả dữ liệu được tổ chức ở dạng các bảng có các hàng và các cột. Mỗi bảng lưu trữ dữ liệu của các đối tượng có các thuộc tính giống nhau.
- Bảng Bản nhạc và bảng Nhạc sĩ có chung thuộc tính Aid.
- Bảng Bản thu âm và bảng Bản nhạc có chung thuộc tính Mid.
⭐ CSDL quan hệ là CSDL lưu trữ dữ liệu dưới dạng các bảng có quan hệ với nhau.
Câu hỏi:
1. Hãy chỉ ra các cột của bảng Bản nhạc.
2. Bảng Bản thu âm và bảng Ca sĩ có chung thuộc tính nào?
Trả lời: 1. Mid, Aid, TenBN. 2. Thuộc tính Sid.
2. MỘT SỐ THUẬT NGỮ, KHÁI NIỆM LIÊN QUAN
CSDL quan hệ tổ chức lưu trữ dữ liệu dưới dạng các bảng gồm các hàng và các cột.
- Bản ghi (record) = mỗi hàng của bảng, là tập hợp thông tin về một đối tượng cụ thể.
- Trường (field) = mỗi cột trong bảng, thể hiện thuộc tính của đối tượng.
Ví dụ: Bảng Nhạc sĩ có 4 bản ghi (Đỗ Nhuận, Văn Cao, Hoàng Việt, Nguyễn Tài Tuệ) và 2 trường (Aid, TenNS).
🧠 BẢN GHI = HÀNG | TRƯỜNG = CỘT
Mỗi bảng có thể có một hay một nhóm trường mà giá trị không trùng nhau, xác định duy nhất một bản ghi. Trường hay nhóm trường này được gọi là khoá của bảng.
Một bảng có thể có nhiều khoá. Người ta chọn một khoá làm khoá chính, thường chọn khoá có số trường ít nhất.
Ví dụ: Ở bảng Bản nhạc, Mid là khoá chính (vì mỗi giá trị Mid xác định duy nhất một bản nhạc).
🧠 KHOÁ CHÍNH = DUY NHẤT + ĐỊNH DANH
Mỗi bảng (A) có thể có trường hay nhóm trường (K) làm thành khoá chính ở một bảng (B). Khi đó K được gọi là khoá ngoại của bảng A. Hai bảng A và B có quan hệ với nhau qua khoá ngoại ở A.
Ví dụ: Trường Aid trong bảng Bản nhạc là khoá ngoại vì Aid là khoá chính ở bảng Nhạc sĩ.
🧠 KHOÁ NGOẠI = THAM CHIẾU KHOÁ CHÍNH BẢNG KHÁC → TẠO QUAN HỆ
Có thể dùng khoá ngoại để thực hiện ghép nối (liên kết – join) dữ liệu hai bảng với nhau.
Ví dụ: Liên kết bảng Bản nhạc với Nhạc sĩ theo Aid:
| Aid | TenNS | Mid | TenBN |
|---|---|---|---|
| 1 | Đỗ Nhuận | 0001 | Du kích Sông Thao |
| 2 | Văn Cao | 0002 | Trường ca Sông Lô |
| 3 | Hoàng Việt | 0003 | Tình ca |
| 4 | Nguyễn Tài Tuệ | 0004 | Xa khơi |
| 1 | Đỗ Nhuận | 0005 | Việt Nam quê hương tôi |
| 2 | Văn Cao | 0006 | Tiến về Hà Nội |
Liên kết cả 3 bảng (Bản thu âm + Bản nhạc + Ca sĩ):
| Mid | TenCS | TenNS | TenBN |
|---|---|---|---|
| 0001 | Trần Khánh | Đỗ Nhuận | Du kích Sông Thao |
| 0002 | Lê Dung | Văn Cao | Trường ca Sông Lô |
| 0003 | Trần Khánh | Hoàng Việt | Tình ca |
| 0004 | Tân Nhàn | Nguyễn Tài Tuệ | Xa khơi |
| 0005 | Quốc Hương | Đỗ Nhuận | Việt Nam quê hương tôi |
| 0006 | Quốc Hương | Văn Cao | Tiến về Hà Nội |
Lí do tách thành nhiều bảng: Tránh lặp dữ liệu. Khi sửa tên nhạc sĩ/ca sĩ chỉ cần sửa một lần ở bảng gốc.
🧠 LIÊN KẾT = GHÉP BẢNG QUA KHOÁ NGOẠI
Xét bảng điểm thi tiếng Anh:
| SBD | Họ và tên | Giới tính | Ngày sinh | Điểm | Mã kì thi |
|---|---|---|---|---|---|
| 1 | Phan Việt An | Nam | 17/10/2005 | 6,25 | A1001 |
| 2 | Trần Duy Anh | Nam | 11/09/2004 | 8,00 | A1001 |
| 3 | Bùi Thị Hương | Nữ | 20/03/2006 | 9,50 | A1001 |
| 4 | Đỗ Hồng Hoa | Nữ | 15/09/2005 | 7,75 | A1001 |
| 5 | Nguyễn Văn Khoa | Nam | 22/11/2003 | 7,25 | A1001 |
Kiểu dữ liệu các trường:
- sbd: số nguyên
- hoten: xâu kí tự (≤ 64 kí tự)
- gt: kiểu logic (1=Nữ, 0=Nam)
- ngaysinh: kiểu ngày tháng
- diem: số thập phân (tối đa 5 chữ số, 2 sau dấu phẩy)
- makithi: xâu kí tự (5 kí tự)
Mục đích xác định kiểu dữ liệu: Hạn chế lãng phí dung lượng và kiểm soát tính đúng đắn của dữ liệu nhập vào.
❓ Câu hỏi:
1. Hãy chỉ ra khoá chính của bảng Ca sĩ và bảng Bản nhạc.
2. Hãy chỉ ra các khoá ngoại của bảng Bản nhạc và bảng Bản thu âm.
Trả lời:
1. Khoá chính bảng Ca sĩ: Sid. Khoá chính bảng Bản nhạc: Mid.
2. Khoá ngoại bảng Bản nhạc: Aid (tham chiếu Nhạc sĩ). Khoá ngoại bảng Bản thu âm: Mid (tham chiếu Bản nhạc) và Sid (tham chiếu Ca sĩ).
📝 LUYỆN TẬP
- Hocsinh (họ tên, số CCCD, số thẻ học sinh, ngày sinh, địa chỉ, giới tính)
- Monhoc (tên, mã môn)
- Diem (số thẻ học sinh, mã môn, ngày học kì, loại điểm, điểm)
Loại điểm: ĐĐG thường xuyên, ĐĐG giữa kì, ĐĐG cuối kì.
Yêu cầu: Xác định khoá chính và khoá ngoại của từng bảng.
Trả lời:
- Hocsinh: Khoá chính = số CCCD (hoặc số thẻ học sinh). Không có khoá ngoại.
- Monhoc: Khoá chính = mã môn. Không có khoá ngoại.
- Diem: Khoá chính = (số thẻ học sinh, mã môn, loại điểm). Khoá ngoại: số thẻ học sinh (→ Hocsinh), mã môn (→ Monhoc).
🔎 VẬN DỤNG

Gợi ý các bảng:
- ThiSinh (SBD, họ tên, ngày sinh, giới tính, lớp, trường)
- MonThi (mã môn, tên môn)
- PhongThi (mã phòng, địa điểm, sức chứa)
- DiemThi (SBD, mã môn, điểm)
- PhanPhong (SBD, mã phòng)
Khoá chính: ThiSinh → SBD; MonThi → mã môn; PhongThi → mã phòng.
Khoá ngoại: DiemThi: SBD, mã môn. PhanPhong: SBD, mã phòng.
🧠 SƠ ĐỒ NHỚ TOÀN BÀI
🔑 CÔNG THỨC NHỚ
📌 CÔNG THỨC NHỚ NHANH – CỐT LÕI BÀI 13
BẢNG → HÀNG → CỘT → KHÓA → LIÊN KẾT
| Khái niệm | Nhớ nhanh |
|---|---|
| Bản ghi | 👉 Hàng |
| Trường | 👉 Cột |
| Khóa | 👉 Nhận diện bản ghi |
| Khóa chính | 👉 Duy nhất – định danh |
| Khóa ngoại | 👉 Nối bảng |
| Liên kết dữ liệu | 👉 Ghép các bảng qua khóa |
| CSDL quan hệ | 👉 Nhiều bảng có quan hệ với nhau |
| Kiểu dữ liệu | 👉 Quy định dữ liệu được phép nhập |
🎯 Mẹo nhớ cực nhanh
"CHÍNH để NHẬN DIỆN – NGOẠI để LIÊN KẾT."
Khóa chính → không trùng → xác định 1 bản ghi.
Khóa ngoại → tham chiếu khóa chính bảng khác → tạo quan hệ giữa các bảng.
