Lưu ý : Nếu thí sinh làm bài không theo dàn ý như mỗi câu trong đáp án, nhưng đủ ý và chính xác thì vẫn được điểm tối đa theo thang điểm đã qui định. ---HẾT---.[r]
(1)ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
KỲ THI TỐT NGHIỆP CỬ NHÂN CNTTQM NĂM 2010 Môn: CHUYÊN NGÀNH
Thời gian làm bài: 180 phút (Không sử dụng tài liệu) Ngày thi:
-ĐỀ SỐ 1
P
h ầ n : CƠ SỞ DỮ LIỆU
Cho lược đồ CSDL quản lý nhân viên gồm quan hệ sau:
NHANVIEN (Ma N V , HoTen, NgSinh, DChi, GioiTinh, Luong, Ma_NGS, MaPhong)
Tân từ: Mỗi nhân viên có mã số để phân biệt với nhân viên khác (MaNV), có họ tên (HoTen), ngày sinh (NGSINH), địa (DCHI), giới tính, có mức lương (LUONG), chịu giám sát trực tiếp nhân viên khác (Ma_NGS – ghi mã nhân viên giám sát) thuộc phịng (MaPhong) cơng ty
PHONGBAN (Ma P B , TenPhong, TrPHG, NgNhanChuc)
Tân từ: Mỗi phịng ban có mã số để phân biệt với phịng ban khác (MaPB), có tên phòng (TenPhong), cử người làm trưởng phòng (TrPHG – ghi mã nhân viên cử trưởng phòng) ghi nhận ngày nhận chức trưởng phòng người (NgNhanChuc)
DEAN (Ma D A , TenDA, MaPhong, NgayBD, NgayKT)
Tân từ: Mỗi đề án có mã số để phân biệt với đề án khác (MaDA), có tên đề án (TenDA), phòng phụ trách (MaPhong) Mỗi đề án có ngày bắt đầu (NgayBD) ngày kết thúc (NgayKT) đề án
PHANCONG (Ma NV , Ma D A , ThoiGian)
Tân từ: Mỗi nhân viên (MaNV) phân công vào hay nhiều đề án (MaDA) phịng phụ trách với lượng thời gian tham gia đề án tính làm việc tuần (ThoiGian)
Câu 1: Mô tả chặt chẽ ràng buộc toàn vẹn sau: (1.0 điểm)
Ngày nhận chức trưởng phòng phải lớn ngày sinh trưởng phòng Câu 2: Thực câu truy vấn sau đại số quan hệ: (0.75
điểm)
Tìm họ tên nhân viên làm việc phòng nhân (TenPhong=’Nhan su’) Trần Minh giám sát trực tiếp
Câu 3: Thực câu truy vấn sau SQL: (0.75 điểm)
Tìm họ tên nhân viên làm việc phòng nhân (TenPhong=’Nhan su’) Trần Minh giám sát trực tiếp
Câu 4: Thực câu truy vấn sau SQL: (1.0 điểm)
Cho biết thông tin nhân viên tham gia đề án với tổng thời gian làm đề án lớn Thông tin gồm: Họ tên nhân viên, tổng số làm
việc
(2)-HẾT -ĐỀ SỐ 1
Câu 1: (1.0 điểm) * N ộ i d un g:
ĐÁP ÁN
P
h ầ n : CƠ SỞ DỮ LIỆU
Ngày nhận chức trưởng phòng phải lớn ngày sinh trưởng phòng. ∀t∈PHONGBAN, u∈NHANVIEN: (t.TRPHG=u.MANV)(t.NgNhanChuc>
u.NgSinh)
* Bối cảnh: PHONGBAN, NHANVIEN
* Loại RBTV: Ràng buộc toàn vẹn liên thuộc tính, liên quan hệ * Bảng tầm ảnh hưởng:
Thêm Xóa Sửa
PHONGBAN + - + (NgNhanChuc, TRPHG)
NHANVIEN - - +(NgSinh)
Câu 2: (0.75 điểm)
R1 Π MaNV, Hoten, Ma_NGS, MaPhong (NHANVIEN)
R2 Π MaNV (δHoTen=’Tran Minh’ (NHANVIEN))
R3 Π MaPB (δTenPB=’Nhan Su’ (PHONGBAN))
R(Hoten) Π Hoten ((R1Ma_NGS MaNV R2) MaPhong, MaPB R3)
Câu 3: (0.75 điểm) Cách 1:
SELECT nv1.Hoten
FROM NHANVIEN AS nv1, NHANVIEN AS nv2, PHONGBAN AS pb WHERE (nv1.MaPhong=pb.MaPB) AND
(nv1.Ma_NGS = nv2.MaNV) AND (TenPhong='Nhan su') AND (nv2.Hoten='Tran Minh') Cách 2:
SELECT Hoten
FROM NHANVIEN AS nv, PHONGBAN AS pb WHERE (nv.MaPhong=pb.MaPB) AND
(TenPhong='Nhan su') AND Ma_NGS = (SELECT MaNV
FROM NHANVIEN
(3)Cách 3:
SELECT Hoten
FROM NHANVIEN AS nv INNER JOIN PHONGBAN AS pb ON (nv.MaPhong=pb.MaPB) WHERE (TenPhong='Nhan su') AND
Ma_NGS = (SELECT MaNV FROM NHANVIEN WHERE Hoten='Tran Minh' )
Câu 4: (1.0 điểm) Cách 1:
SELECT Hoten, Sum(ThoiGian) AS 'Tong So Gio' FROM NHANVIEN AS nv, PHANCONG AS pc WHERE (nv.MaNV=pc.MaNV)
GROUP BY Hoten
HAVING Sum(ThoiGian)>=ALL (
SELECT Sum(ThoiGian)
FROM NHANVIEN AS nv, PHANCONG AS pc WHERE (nv.MaNV=pc.MaNV)
GROUP BY Hoten )
Cách 2:
SELECT Hoten, Sum(ThoiGian) AS 'Tong So Gio'
FROM NHANVIEN AS nv INNER JOIN PHANCONG AS pc ON (nv.MaNV=pc.MaNV) GROUP BY Hoten
HAVING Sum(ThoiGian)>=ALL (
SELECT Sum(ThoiGian)
FROM NHANVIEN AS nv, PHANCONG AS pc WHERE (nv.MaNV=pc.MaNV)
GROUP BY Hoten )
Lưu ý : Nếu thí sinh làm khơng theo dàn ý câu trong đáp án, đủ ý xác điểm tối đa theo thang điểm qui định.
(4)(5)P
h ầ n : CƠ SỞ DỮ LIỆU
Cho lược đồ CSDL quản lý nhân viên gồm quan hệ sau:
NHANVIEN (Ma N V , HoTen, NgSinh, DChi, GioiTinh, Luong, Ma_NGS, MaPhong)
Tân từ: Mỗi nhân viên có mã số để phân biệt với nhân viên khác (MaNV), có họ tên (HoTen), ngày sinh (NGSINH), địa (DCHI), giới tính, có mức lương (LUONG), chịu giám sát trực tiếp nhân viên khác (Ma_NGS – ghi mã nhân viên giám sát) thuộc phòng (MaPhong) cơng ty
PHONGBAN (Ma P B , TenPhong, TrPHG, NgNhanChuc)
Tân từ: Mỗi phòng ban có mã số để phân biệt với phịng ban khác (MaPB), có tên phịng (TenPhong), cử người làm trưởng phòng (TrPHG – ghi mã nhân viên cử trưởng phòng), ghi nhận ngày nhận chức trưởng phịng người (NgNhanChuc)
DEAN (Ma D A , TenDA, MaPhong, NgayBD, NgayKT)
Tân từ: Mỗi đề án có mã số để phân biệt với đề án khác (MaDA), có tên đề án (TenDA), phòng phụ trách (MaPhong) Mỗi đề án có ngày bắt đầu (NgayBD) ngày kết thúc (NgayKT) đề án
PHANCONG (Ma NV , Ma D A , ThoiGian)
Tân từ: Mỗi nhân viên (MaNV) phân cơng vào hay nhiều đề án (MaDA) do phịng phụ trách với lượng thời gian tham gia đề án tính làm việc tuần (ThoiGian)
Câu 1: Mơ tả chặt chẽ ràng buộc tồn vẹn sau: (1.0 điểm)
Tổng thời gian làm việc tất đề án nhân viên nữ phải nhỏ 40 tuần Câu 2: Thực câu truy vấn sau đại số quan hệ: (0.75
điểm)
Tìm thơng tin nhân viên có giới tính nam tham gia đề án có tên Cơ sở liệu (TenDA=’CSDL’) với thời gian làm việc đề án lớn 20 tuần (ThoiGian>20) Thông tin lấy gồm họ tên thời gian làm việc
Câu 3: Thực câu truy vấn sau SQL: (0.75 điểm)
Tìm thơng tin nhân viên có giới tính nam tham gia đề án có tên Cơ sở liệu (TenDA=’CSDL’), có ngày bắt đầu năm 2010 Thông tin lấy gồm họ tên nhân viên, ngày bắt đầu thời gian làm việc
Câu 4: Thực câu truy vấn sau SQL: (1.0 điểm)
Cho biết họ tên, mức lương nhân viên trẻ tuổi cơng ty có lương cao lương tất trưởng phòng
(6)(7)Câu 1: (1.0 điểm) * N ộ i d un g:
ĐÁP ÁN
P
h ầ n : CƠ SỞ DỮ LIỆU
Tổng thời gian làm việc tất đề án nhân viên nữ phải nhỏ 40 giờ một tuần
Cách 1:
t δGioiTinh=’Nu’ (NHANVIEN), Sum(u.ThoiGian | u ∈ PHANCONGu.MaNV=t.MaNV) <40 Cách 2:
t∈NHANVIEN, Sum(u.ThoiGian | u∈PHANCONGu.MaNV=t.MaNVGioiTinh=’Nu’) <40 * Bối cảnh: NHANVIEN, PHANCONG
* Loại RBTV: Ràng buộc tồn vẹn thuộc tính tổng hợp. * Bảng tầm ảnh hưởng:
Thêm Xóa Sửa
NHANVIEN - - + (GioiTinh)
PHANCONG + (MaNV, ThoiGian) - + (MaNV, ThoiGian) Câu 2: (0.75 điểm)
R1 П MaNV, Hoten(δ GioiTinh=’Nam’NHANVIEN)
R2 П MaDA (δTenDA=’CSDL’DEAN)
R3 П MaNV, MaDA, ThoiGian(δ ThoiGian>20PHANCONG)
R(Hoten, ThoiGian) П Hoten, ThoiGian ((R1 MaNV, MaNV R3) MaDA, MaDA R2)
Câu 3: (0.75 điểm) Cách 1:
SELECT Hoten, NgayBD, ThoiGian
FROM NHANVIEN AS nv, DEAN AS da, PHANCONG AS pc WHERE (nv.MANV=pc.MaNV) AND
(8)(TenDA='CSDL') AND (year(NgayBD)=2010) Cách 3:
SELECT Hoten, NgayBD, ThoiGian
FROM NHANVIEN AS nv, DEAN AS da, PHANCONG AS pc WHERE (nv.MANV=pc.MaNV) AND
(pc.MaDA=da.MADA) AND (GioiTinh='Nam') AND (TenDA='CSDL') AND (NgayBD>=’1/1/2010’) AND (NgayBD<=’31/12/2010’) Câu 4: (1.0 điểm)
Cách 1:
SELECT HoTen, Luong, NgSinh FROM Nhanvien
WHERE (Luong > ALL (SELECT Luong
FROM NHANVIEN AS nv, PHONGBAN AS pb WHERE nv.MaNV=pb.TRPHG)
) AND
( NgSinh>=ALL
( SELECT NgSinh FROM NhanVien )
); Cách 2:
SELECT HoTen, Luong, NgSinh FROM Nhanvien
WHERE (Luong >
( SELECT max(Luong)
FROM NHANVIEN AS nv, PHONGBAN AS pb WHERE nv.MaNV=pb.TRPHG )
) AND
( NgSinh>=
( SELECT max(NgSinh) FROM NhanVien) );
Lưu ý : Nếu thí sinh làm khơng theo dàn ý câu đáp án, đủ ý xác điểm tối đa theo thang điểm đã qui định.
(9)-HẾT -ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN
KỲ THI TỐT NGHIỆP CỬ NHÂN CNTTQM NĂM 2010 Môn: CHUYÊN NGÀNH
Thời gian làm bài: 180 phút (Không sử dụng tài liệu) Ngày thi:
-ĐỀ SỐ 3
P
h ầ n : CƠ SỞ DỮ LIỆU
Cho lược đồ CSDL quản lý nhân viên gồm quan hệ sau:
NHANVIEN (Ma N V , HoTen, NgSinh, DChi, GioiTinh, Luong, Ma_NGS, MaPhong)
Tân từ: Mỗi nhân viên có mã số để phân biệt với nhân viên khác (MaNV), có họ tên (HoTen), ngày sinh (NGSINH), địa (DCHI), giới tính, có mức lương (LUONG), chịu giám sát trực tiếp nhân viên khác (Ma_NGS – ghi mã nhân viên giám sát) thuộc phịng (MaPhong) cơng ty
PHONGBAN (Ma P B , TenPhong, TrPHG, NgNhanChuc)
Tân từ: Mỗi phịng ban có mã số để phân biệt với phịng ban khác (MaPB), có tên phịng (TenPhong), cử người làm trưởng phòng (TrPHG – ghi mã nhân viên cử trưởng phòng), ghi nhận ngày nhận chức trưởng phịng người (NgNhanChuc)
DEAN (Ma D A , TenDA, MaPhong, NgayBD, NgayKT)
Tân từ: Mỗi đề án có mã số để phân biệt với đề án khác (MaDA), có tên đề án (TenDA), phòng phụ trách (MaPhong) Mỗi đề án có ngày bắt đầu (NgayBD) ngày kết thúc (NgayKT) đề án
PHANCONG (Ma NV , Ma D A , ThoiGian)
Tân từ: Mỗi nhân viên (MaNV) phân cơng vào hay nhiều đề án (MaDA) phịng phụ trách với lượng thời gian tham gia đề án tính làm việc tuần (ThoiGian)
Câu 1: Mơ tả chặt chẽ ràng buộc tồn vẹn sau: (1.0 điểm) Mỗi nhân viên không tham gia đề án
Câu 2: Thực câu truy vấn sau đại số quan hệ: (0.75 điểm)
Cho biết thơng tin phịng có đề án triển khai năm 2010 Thông tin gồm: Họ tên trưởng phòng, tên đề án ngày bắt đầu triển khai đề án
Câu 3: Thực câu truy vấn sau SQL: (0.75 điểm)
Cho biết Họ tên trưởng phòng, tên phòng ban, tên đề án ngày bắt đầu triển khai đề án đề án triển khai năm 2010
Câu 4: Thực câu truy vấn sau SQL: (1.0 điểm)
(10)-HẾT -ĐỀ SỐ 3
Câu 1: (1.0 điểm) * N ộ i d un g:
ĐÁP ÁN
P
h ầ n : CƠ SỞ DỮ LIỆU
Mỗi nhân viên không tham gia đề án.
t ∈ NHANVIEN, Sum(u.MaDA | u ∈ PHANCONGu.MaNV=t.MaNV) <=3 * Bối cảnh: NHANVIEN, PHANCONG
* Loại RBTV: Ràng buộc toàn vẹn thuộc tính tổng hợp. * Bảng tầm ảnh hưởng:
Thêm Xóa Sửa
NHANVIEN - -
-PHANCONG + (MaNV) - + (MaNV)
Câu 2: (0.75 điểm)
R1 Π MaNV, Hoten(NHANVIEN)
R2 Π MaPB, TenPhong, TrPHG(PHONGBAN)
R3 (MaPB, HoTen, TenPhong) Π MaPB, HoTen, TenPhong(R1 MaNV, TrPHG R2)
R4 TenDA, MaPhong, NgayBD(Πyear(NgayBD)=2010DEAN)
R(HotenTP, TenPhong, TenDA, NgayBD)Π Hoten,TenPhong,TenDA,NgayBD(R3 MaPB, MaPhongR4 )
Câu 3: (0.75 điểm) Cách 1:
SELECT HoTen AS 'Ho Ten TP', TenPhong, TenDA, NgayBD FROM NHANVIEN AS nv, PHONGBAN AS pb, DEAN AS da WHERE (nv.MaNV=pb.TrPHG) AND
(da.MaPhong=pb.MaPB) AND (Year(NgayBD)=2010);
Cách 2:
SELECT HoTen AS ['Ho Ten TP'], TenPhong, TenDA, NgayBD FROM NHANVIEN AS nv, PHONGBAN AS pb, DEAN AS da WHERE (nv.MaNV=pb.TrPHG) AND
(11)Cách 3:
SELECT HoTen AS 'Ho Ten TP', TenPhong, TenDA, NgayBD
FROM (Nhanvien AS nv INNER JOIN PhongBan AS pb ON nv.MaNV=pb.TRPHG) INNER JOIN DEAN as da ON pb.MaPB = da.MaPhong
WHERE year(NgayBD)=2010 Câu 4: (1.0 điểm)
Cách 1:
SELECT TenPhong, count(MaNV) AS SoNV FROM NHANVIEN AS nv, PHONGBAN AS pb WHERE nv.MaPhong=pb.MaPB
GROUP BY TenPhong
HAVING Count(MANV) <=ALL (SELECT Count(MaNV)
FROM NHANVIEN AS nv, PHONGBAN AS pb WHERE nv.MaPhong=pb.MaPB
GROUP BY MaPB );
Cách 2:
SELECT TenPhong, count(MaNV) AS SoNV
FROM NHANVIEN AS nv Inner join PHONGBAN AS pb ON (nv.MaPhong=pb.MaPB) GROUP BY TenPhong
HAVING Count(MANV) <=ALL (SELECT Count(MaNV)
FROM NHANVIEN AS nv Inner join PHONGBAN AS pb ON (nv.MaPhong=pb.MaPB) GROUP BY TenPhong
);
Lưu ý : Nếu thí sinh làm không theo dàn ý câu trong đáp án, đủ ý xác điểm tối đa theo thang điểm qui định.