Một bài có nhiều bản thu
Ở danh sách hư cấu, “Mưa đầu mùa” xuất hiện tại R01 và R02. Sau khi đã tách ca sĩ, cả tên bài và nhạc sĩ của hai hàng vẫn bị lặp. Lập bảng `bannhac(idBannhac, tenBannhac, tenNhacsi)`: K01 = Mưa đầu mùa do Mai An sáng tác, K02 = Ngày nắng do Mai An sáng tác, K03 = Đêm yên do Hà Vy sáng tác.
Trong `banthuam`, thay cặp tên bài–tên nhạc sĩ bằng `idBannhac`. Hai bản thu R01/R02 cùng mang K01 nhưng khác ca sĩ C01/C02; R03 mang K02/C01, R04 mang K03/C02. Bảng bản thu giờ có ba trường `banthuam(idBanthuam, idBannhac, idCasi)`. Sửa tên “Mưa đầu mùa” ở hàng K01 của bannhac là đủ cho tên chuẩn; hai bản thu vẫn cùng trỏ tới K01.
Một nhạc sĩ có nhiều bài
Tên Mai An còn lặp ở K01 và K02. Lập tiếp `nhacsi(idNhacsi, tenNhacsi)` với N01 = Mai An, N02 = Hà Vy. Trong `bannhac`, thay tên nhạc sĩ bằng `idNhacsi`: K01/K02 mang N01, K03 mang N02.
Bốn bảng cuối cùng là `casi(idCasi, tenCasi)`, `nhacsi(idNhacsi, tenNhacsi)`, `bannhac(idBannhac, tenBannhac, idNhacsi)` và `banthuam(idBanthuam, idBannhac, idCasi)`. Muốn đọc R02: từ R02 lấy K01 và C02; K01 cho “Mưa đầu mùa” và N01; N01 cho “Mai An”; C02 cho “Quang Minh”. Kết quả là bản thu R02 của “Mưa đầu mùa”, do Mai An sáng tác, Quang Minh thể hiện. Đây là mạch thiết kế bảng của SGK, với tên và mã giả để tránh nhầm lỗi mã ở một hình minh họa.
Bài luyện
R01 và R02 cùng dùng bài K01 nhưng ca sĩ khác nhau. Bảng nào lưu tên bài K01 một lần?
banthuam lưu mã bài ở từng bản thu.
casi lưu tên ca sĩ.
bannhac lưu tên bài theo mã K01.
nhacsi lưu tên nhạc sĩ.
Lời giải
K01 là khóa của hàng trong bannhac, nơi lưu tên “Mưa đầu mùa”. R01 và R02 chỉ giữ mã K01.
Bài luyện
Trong mô hình bốn bảng, từ R02 muốn biết nhạc sĩ, đi theo đường nào?
R02 cho K01; hàng K01 cho N01; hàng N01 cho tên Mai An.
Bảng ca sĩ không giữ mã nhạc sĩ.
Bảng bản thu không có idNhacsi trực tiếp.
Bảng ca sĩ không nối sang bảng bài hát trong mô hình này.
Lời giải
R02 có idBannhac = K01. Bảng bannhac cho idNhacsi = N01, rồi bảng nhacsi cho tên Mai An.
Bài luyện
Vì sao không thay tên nhạc sĩ ở mọi hàng bannhac mỗi khi sửa cách ghi tên Mai An?
Cách ghi tên vẫn có thể cần chỉnh.
banthuam giữ mã bài, không tự sửa tên.
idBannhac xác định bài hát.
K01 và K02 cùng tham chiếu N01.
Lời giải
K01 và K02 lưu cùng mã N01, không chép tên Mai An. Sửa tên ở hàng N01 của nhacsi giúp giữ một giá trị chuẩn.
Đang học