Mục tiêu bài học
- Hình dung được quy trình xác định các bảng dữ liệu, cấu trúc của bảng và các trường khóa trước khi tạo CSDL. (tr.86)
chuẩn hóa
khóa chính
khóa ngoại
bảng dữ liệu
Nhiệm vụ & bối cảnh
- Bài toán: Quản lí các bản thu âm nhạc (tên bản nhạc, nhạc sĩ, ca sĩ) cho website âm nhạc. (tr.86)
Gợi ý: Bảng ghi chép ban đầu (Bảng 18.1) có dữ liệu lặp vì cùng bản nhạc/ca sĩ xuất hiện nhiều lần.
Quy trình xác định cấu trúc bảng
1) Xem xét bài toán
- Từ bảng ghi chép ban đầu (Bảng 18.1), nhận ra dữ liệu lặp: cùng bản nhạc/ca sĩ xuất hiện nhiều lần. (tr.86)
2) Tạo lập bảng ban đầu
- Phác thảo bảng
banthuam(idBanthuam, tenBannhac, tenNhacsi, tenCasi). - Chọn khóa chính: ưu tiên
idBanthuamvì gọn và thuận tiện hơn nhóm nhiều trường. (tr.87)
3) Tổ chức lại dữ liệu (chuẩn hóa từng bước)
- Tách ca sĩ: lập bảng
casi(idCasi, tenCasi); thaytenCasitrongbanthuambằngidCasi. (tr.87) - Tách bản nhạc: lập bảng
bannhac(idBannhac, tenBannhac, tenNhacsi); thay cặp (tenBannhac,tenNhacsi) trongbanthuambằngidBannhac. (tr.88) - Tách nhạc sĩ: lập bảng
nhacsi(idNhacsi, tenNhacsi); thaytenNhacsitrongbannhacbằngidNhacsi. (tr.88–89)
Kết quả hệ bảng (Hình 18.1):
casi(idCasi, tenCasi)nhacsi(idNhacsi, tenNhacsi)bannhac(idBannhac, tenBannhac, idNhacsi)banthuam(idBanthuam, idBannhac, idCasi)
Các loại khóa & kiểu dữ liệu gợi ý
4) Các loại khóa
- Mỗi bảng có khóa chính (gạch chân trong mô tả).
- Khóa ngoại:
bannhac.idNhacsi→nhacsi.idNhacsibanthuam.idBannhac→bannhac.idBannhacbanthuam.idCasi→casi.idCasi
- Ràng buộc duy nhất (Unique):
(tenBannhac, idNhacsi)trongbannhackhông trùng;(idBannhac, idCasi)trongbanthuamkhông trùng. (tr.90)
Hình 18.2: Sơ đồ quan hệ thể hiện các khóa ngoại và ràng buộc liên kết giữa các bảng.
5) Kiểu dữ liệu gợi ý cho trường
- Khóa chính: kiểu
INT, tự tăngAUTO_INCREMENT. - Tên: chuỗi
VARCHAR(255)chotenNhacsi,tenCasi,tenBannhac. (tr.90)
Luyện tập – Vận dụng
- Bổ sung quản lí ngày sinh, nơi sinh cho nhạc sĩ/ca sĩ → mở rộng lược đồ (thêm trường/bảng liên quan). (tr.90)
- Vận dụng: phân tích – thiết lập mô hình dữ liệu cho danh sách tên quận/huyện theo tỉnh/thành. (tr.90)
Gợi ý trình bày: Viết rõ bảng, khóa chính, khóa ngoại và ràng buộc unique cho từng bảng.
chuẩn hóa dữ liệu
ràng buộc khóa
lược đồ CSDL