TRANG CHỦ

Tin 11 - Bài 18: Thực hành xác định cấu trúc bảng và các trường khóa

Bài học thực hành giúp hình dung quy trình xác định các bảng dữ liệu, cấu trúc bảng và các trường khóa trước khi tạo CSDL, minh họa bằng bài toán quản lí bản thu âm nhạc cho website âm nhạc.

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 idBanthuam vì 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); thay tenCasi trong banthuam bằng idCasi. (tr.87)
  • Tách bản nhạc: lập bảng bannhac(idBannhac, tenBannhac, tenNhacsi); thay cặp (tenBannhac, tenNhacsi) trong banthuam bằng idBannhac. (tr.88)
  • Tách nhạc sĩ: lập bảng nhacsi(idNhacsi, tenNhacsi); thay tenNhacsi trong bannhac bằng idNhacsi. (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.idNhacsinhacsi.idNhacsi
    • banthuam.idBannhacbannhac.idBannhac
    • banthuam.idCasicasi.idCasi
  • Ràng buộc duy nhất (Unique): (tenBannhac, idNhacsi) trong bannhac không trùng; (idBannhac, idCasi) trong banthuam khô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ăng AUTO_INCREMENT.
  • Tên: chuỗi VARCHAR(255) cho tenNhacsi, 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