ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ<br />
TRƯỜNG ĐẠI<br />
CÔNG NGHỆ THÔNG<br />
<br />
KỲ THI TỐT NGHIỆP CỬ NHÂN CNTTQM NĂM<br />
Môn: CHUYÊN<br />
Thời gian làm bài: 180 phút (Không được sử dụng tài<br />
Ngày<br />
<br />
ĐỀ SỐ 1<br />
Phần2: CƠ SỞ DỮ LIỆU<br />
<br />
Cho lược đồ CSDL quản lý nhân viên gồm các quan hệ sau:<br />
NHANVIEN (MaNV, HoTen, NgSinh, DChi, GioiTinh, Luong, Ma_NGS, MaPhong)<br />
Tân từ: Mỗi nhân viên có mã số duy nhất để phân biệt với các nhân viên khác (MaNV), có họ và tên<br />
(HoTen), ngày sinh (NGSINH), địa chỉ (DCHI), giới tính, có một mức lương cơ bản (LUONG), chịu<br />
sự giám sát trực tiếp của một nhân viên khác (Ma_NGS – ghi mã nhân viên được giám sát) và thuộc<br />
một phòng (MaPhong) nào đó trong công ty.<br />
PHONGBAN (MaPB, TenPhong, TrPHG, NgNhanChuc)<br />
Tân từ: Mỗi phòng ban có mã số duy nhất để phân biệt với các phòng ban khác (MaPB), có tên phòng<br />
(TenPhong), cử ra một người làm trưởng phòng (TrPHG – ghi mã nhân viên được cử là trưởng phòng)<br />
và ghi nhận ngày nhận chức trưởng phòng của người đó (NgNhanChuc).<br />
DEAN (MaDA, TenDA, MaPhong, NgayBD, NgayKT)<br />
Tân từ: Mỗi đề án có một mã số duy nhất để phân biệt với các đề án khác (MaDA), có tên đề án<br />
(TenDA), và do một phòng duy nhất phụ trách (MaPhong). Mỗi đề án có ngày bắt đầu (NgayBD) và<br />
ngày kết thúc (NgayKT) đề án.<br />
PHANCONG (MaNV, MaDA, ThoiGian)<br />
Tân từ: Mỗi nhân viên (MaNV) có thể được phân công vào một hay nhiều đề án (MaDA) do phòng<br />
mình phụ trách với lượng thời gian tham gia đề án được tính bằng giờ làm việc trong 1 tuần<br />
(ThoiGian).<br />
Câu 1: Mô tả chặt chẽ ràng buộc toàn vẹn sau: (1.0 điểm)<br />
Ngày nhận chức của trưởng phòng phải lớn hơn ngày sinh của trưởng phòng.<br />
Câu 2: Thực hiện câu truy vấn sau bằng đại số quan hệ: (0.75 điểm)<br />
Tìm họ tên nhân viên làm việc ở phòng nhân sự (TenPhong=’Nhan su’) do Trần Minh giám sát<br />
trực tiếp.<br />
Câu 3: Thực hiện câu truy vấn sau bằng SQL: (0.75 điểm)<br />
Tìm họ tên nhân viên làm việc ở phòng nhân sự (TenPhong=’Nhan su’) do Trần Minh giám sát<br />
trực tiếp.<br />
Câu 4: Thực hiện câu truy vấn sau bằng SQL: (1.0 điểm)<br />
Cho biết thông tin về các nhân viên đã tham gia các đề án với tổng thời gian làm tại các đề án<br />
là lớn nhất. Thông tin gồm: Họ tên nhân viên, tổng số giờ làm việc.<br />
-----HẾT-----<br />
<br />
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ<br />
TRƯỜNG ĐẠI<br />
CÔNG NGHỆ THÔNG<br />
<br />
KỲ THI TỐT NGHIỆP CỬ NHÂN CNTTQM NĂM<br />
Môn: CHUYÊN<br />
Thời gian làm bài: 180 phút (Không được sử dụng tài<br />
Ngày<br />
<br />
ĐỀ SỐ 1<br />
<br />
ĐÁP ÁN<br />
Phần2: CƠ SỞ DỮ LIỆU<br />
Câu 1: (1.0 điểm)<br />
* Nộidung:<br />
Ngày nhận chức của trưởng phòng phải lớn hơn ngày sinh của trưởng phòng.<br />
∀t∈PHONGBAN, u∈NHANVIEN: (t.TRPHG=u.MANV) (t.NgNhanChuc> u.NgSinh)<br />
* Bối cảnh: PHONGBAN, NHANVIEN<br />
* Loại RBTV: Ràng buộc toàn vẹn liên thuộc tính, liên quan hệ<br />
* Bảng tầm ảnh hưởng:<br />
<br />
PHONGBAN<br />
NHANVIEN<br />
<br />
Thêm<br />
+<br />
-<br />
<br />
Xóa<br />
-<br />
<br />
Sửa<br />
+ (NgNhanChuc, TRPHG)<br />
+(NgSinh)<br />
<br />
Câu 2: (0.75 điểm)<br />
<br />
R1 Π<br />
Π<br />
<br />
MaNV, Hoten, Ma_NGS, MaPhong<br />
<br />
MaNV<br />
<br />
R3 Π<br />
<br />
(NHANVIEN) R2<br />
<br />
(δHoTen=’Tran Minh’ (NHANVIEN))<br />
<br />
MaPB<br />
<br />
(δTenP B=’Nhan Su’ (PHONGBAN))<br />
<br />
R(Hoten) Π<br />
<br />
Hoten ((R1Ma_NGS<br />
<br />
MaNV R2)<br />
<br />
MaPhong, MaPB<br />
<br />
R3)<br />
<br />
Câu 3: (0.75 điểm)<br />
Cách 1:<br />
SELECT nv1.Hoten<br />
FROM NHANVIEN AS nv1, NHANVIEN AS nv2, PHONGBAN AS pb<br />
WHERE (nv1.MaPhong=pb.MaPB) AND<br />
(nv1.Ma_NGS = nv2.MaNV) AND<br />
(TenPhong='Nhan su') AND<br />
(nv2.Hoten='Tran Minh')<br />
Cách 2:<br />
SELECT Hoten<br />
FROM NHANVIEN AS nv, PHONGBAN AS pb<br />
WHERE (nv.MaPhong=pb.MaPB) AND<br />
(TenPhong='Nhan su') AND<br />
Ma_NGS = (SELECT MaNV<br />
FROM NHANVIEN<br />
WHERE Hoten='Tran Minh'<br />
)<br />
<br />
Cách 3:<br />
SELECT Hoten<br />
FROM NHANVIEN AS nv INNER JOIN PHONGBAN AS pb ON<br />
(nv.MaPhong=pb.MaPB) WHERE (TenPhong='Nhan su') AND<br />
Ma_NGS = (SELECT MaNV FROM<br />
NHANVIEN WHERE<br />
Hoten='Tran Minh'<br />
)<br />
Câu 4: (1.0 điểm)<br />
Cách 1:<br />
SELECT Hoten, Sum(ThoiGian) AS 'Tong So<br />
Gio' FROM NHANVIEN AS nv, PHANCONG<br />
AS pc WHERE (nv.MaNV=pc.MaNV)<br />
GROUP BY Hoten<br />
HAVING Sum(ThoiGian)>=ALL<br />
(<br />
SELECT<br />
Sum(ThoiGian)<br />
FROM NHANVIEN AS nv, PHANCONG AS pc<br />
WHERE<br />
(nv.MaNV=pc.MaNV)<br />
GROUP BY Hoten<br />
)<br />
Cách 2:<br />
SELECT Hoten, Sum(ThoiGian) AS 'Tong So Gio'<br />
FROM NHANVIEN AS nv INNER JOIN PHANCONG AS pc ON<br />
(nv.MaNV=pc.MaNV) GROUP BY Hoten<br />
HAVING Sum(ThoiGian)>=ALL<br />
(<br />
SELECT<br />
Sum(ThoiGian)<br />
FROM NHANVIEN AS nv, PHANCONG AS pc<br />
WHERE<br />
(nv.MaNV=pc.MaNV)<br />
GROUP BY Hoten<br />
)<br />
<br />
Lưu ý : Nếu thí sinh làm bài không theo dàn ý như mỗi câu<br />
trong đáp án, nhưng đủ ý và chính xác thì vẫn được điểm tối đa theo<br />
thang điểm đã qui định.<br />
<br />
-----HẾT----<br />
<br />