Đề Thi Số 5<br />
Câu 1 (3.5 điểm) Cho lược đồ cơ sở dữ liệu Quản lý đặt mua báo như sau:<br />
BAO (MaToBao, TenBao, DiaChiTS)<br />
Tân từ: mỗi báo có một mã số duy nhất để phân biệt với các báo khác, tên báo, địa chỉ tòa<br />
soạn chính. Ví dụ: báo “Tuổi trẻ”, báo “Công an”, báo “Thanh niên”,…<br />
DOCGIA(MaDG, HoTen, NgaySinh, GioiTinh, DiaChi)<br />
Tân từ: mỗi đọc giả có một mã số để phân biệt với các đọc giả khác, họ tên đọc giả, ngày<br />
sinh, giới tính (Nam/Nữ), địa chỉ đọc giả.<br />
DATMUA (MaDG, MaToBao, Quy, Nam, SoLuong, DonGia, ThanhTien)<br />
Tân từ: mỗi đọc giả (MaDG) sẽ đặt mua các báo (MaToBao) theo từng quý (1, 2, 3, 4)<br />
trong năm với số lượng đặt là bao nhiêu tờ (SoLuong), có đơn giá một tờ báo (DonGia),<br />
thành tiền là số tiền đọc giả mua báo trong quý đó (ThanhTien = SoLuong x DonGia).<br />
Yêu cầu:<br />
1. Hãy phát biểu chặt chẽ ràng buộc: “Số tiền (ThanhTien) đọc giả trả khi đặt mua<br />
báo trong một quý phải bằng số tờ đặt trong quý đó (SoLuong) x đơn giá<br />
(DonGia).” (0.75 điểm).<br />
Thực hiện câu truy vấn sau bằng đại số quan hệ:<br />
2. Cho biết họ tên, địa chỉ các đọc giả đặt mua báo tuổi trẻ (TenBao=“Tuổi trẻ”) của<br />
quý 1 năm 2006. (0.75 điểm)<br />
Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL:<br />
3. Cho biết họ tên, địa chỉ các đọc giả đặt mua báo tuổi trẻ (TenBao=“Tuổi trẻ”) của<br />
quý 1 năm 2006. (0.75 điểm)<br />
4. Hãy cho biết tổng số tờ báo độc giả đặt mua trong năm 2005 theo từng báo. Thông<br />
tin hiển thị gồm 2 cột: MaToBao và tổng số tờ đặt. (0.75 điểm)<br />
5. Tương tự câu d nhưng thông tin hiển thị gồm 2 cột: TenBao và tổng số lượng đặt.<br />
(0.5 điểm).<br />
<br />
ĐÁP ÁN ĐỀ THI SỐ 5<br />
Câu a) (0.75 điểm)<br />
Nội dung:<br />
Số tiền (ThanhTien) độc giả trả khi đặt mua báo trong một quý phải bằng số tờ đặt<br />
trong quý đó (SoLuong) x đơn giá (DonGia).<br />
d DATMUA,<br />
d.ThanhTien = d.SoLuong * d.DonGia<br />
Cuối d<br />
Bối cảnh: DATMUA<br />
Bảng tầm ảnh hưởng:<br />
<br />
DATMUA<br />
<br />
Thêm<br />
+<br />
<br />
Xóa<br />
-<br />
<br />
Sửa<br />
+<br />
(SoLuong, DonGia,<br />
ThanhTien)<br />
<br />
Câu b) (0.75 điểm)<br />
MaToBao<br />
((BAO: TenBao=“Tuổi trẻ”)<br />
(DATMUA: Quy =1 Nam = 2006)<br />
DOCGIA) [HoTen, DiaChi]<br />
Câu c) (0.75 điểm)<br />
SELECT HoTen, DiaChi<br />
FROM BAO t, DATMUA dm, DOCGIA dg<br />
WHERE t.TenBao= “Tuổi trẻ”<br />
AND<br />
t.MaToBao = dm.MaToBao<br />
AND dm.Quy=1 AND dm.Nam = 2006<br />
AND<br />
dm.MaDG = dg.MaDG<br />
Câu d) (0.75 điểm)<br />
SELECT dm.MaToBao, sum(dm.SoLuong) as TongSoLuongDat<br />
FROM DATMUA dm<br />
WHERE dm.Nam = 2005<br />
GROUP BY dm.MaToBao<br />
Câu e) (0.5 điểm)<br />
SELECT t.TenBao, sum(dm.SoLuong) as TongSoLuongDat<br />
FROM DATMUA dm, BAO t<br />
WHERE t.MaToBao = dm.MaToBao AND dm.Nam = 2005<br />
GROUP BY t.TenBao<br />
<br />
MaDG<br />
<br />