Tải bản đầy đủ (.pdf) (7 trang)

Đề thi tổng hợp môn Cơ sở dữ liệu (Đề số 3)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (178.81 KB, 7 trang )

NG HỢP
Cho lược đồ cơ sở dữ liệu Quản lý điểm thi như sau:
LOP(MaLop, TenLop, LopTruong, SiSo)
SINHVIEN(MaSV, HoTenSV, NgaySinh, GioiTinh, DiaChi, Lop)
MONHOC(MaMH, TenMH, SoTinChi, SoTiet)
KETQUA(MaSV, MaMH, LanThi, Diem, KetQua)
Yêu cầu:
1. Hãy phát biểu một cách chặt chẽ RBTV “Sĩ số thực sự (SiSo) của một lớp
bằng số lượng sinh viên trực thuộc lớp đó”.
Thực hiện các câu truy vấn sau bằng ngôn ngữ đại số quan hệ:
2. Với các sinh viên thuộc lớp ‘K1-01’ (tên lớp = ‘K1-01’), hãy liệt kê mã số
sinh viên, họ tên sinh viên, tên môn học, lần thi, điểm số của các môn học
mà sinh viên tham gia với kết quả ‘Đậu’.
Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL, DSQH:
3. Liệt kê mã sinh viên, họ tên sinh viên và kết quả thi (MaSV, HoTenSV,
Diem, KetQua) lần 1 môn ‘Cơ sở dữ liệu’ (Tên môn học = ’Cơ sở dữ liệu’).
Kết quả sắp xếp theo điểm giảm dần.
4. Cho biết tên lớp và sĩ số của lớp có đơng sinh viên nhất. (chọn mẫu tin có
cột kiểu số có giá trị lớn nhất) (tương tự cho câu hỏi: Cho biết môn học có
số tín chỉ nhiều nhất hoặc Cho biết sinh viên có tuổi lớn nhất,…. )
5. Cho biết mã sinh viên, họ tên và số lượng môn học mà sinh viên đó đã tham
gia thi. (dùng GROUP BY)
6. Cho biết mã sinh viên, họ tên và số môn học mà sinh viên đó đã tham
gia thi với số mơn học trên 5? (đk trên nhóm HAVING)
7. Cho biết sinh viên học nhiều môn nhất? (đk HAVING>= all…)
8. (DSQH+SQL, phép giao): cho biết sv học cả 2 môn ‘Co So Du Lieu’ và
‘Toan Roi Rac’
9. (DSQH+SQL, phép trừ): cho biết những sv không học môn ‘Toan Roi
Rac’

– k2cn4.n-stars.org - 4rum K2CN4



3


Bộ Đề Thi Tổng Hợp - Môn Cơ Sở Dữ Liệu
ĐÁP ÁN ĐỀ TỔNG HỢP
Câu 1: (1 điểm)
 Nội dung:
Sĩ số thực sự của một lớp bằng số lượng sinh viên trực thuộc lớp đó.
l  LOP,
sv  SINHVIEN sao cho sv.Lop = l.MaLop
l.Siso = Count (sv.MaSV)
Cuối sv
Cuối l
Hoặc viết khác:
l  LOP,
l.Siso = Count(sv  SINHVIEN  sv.Lop = l.Malop) (sv.MaSV)
Cuối l
hoặc cách khác: l.SiSo = Count(sv  SINHVIEN  sv.Lop = l.Malop) (*)
 Bối cảnh: LOP, SINHVIEN
 Bảng tầm ảnh hưởng:

LOP
SINHVIEN

Thêm
+

Xóa
-


+

+

Sửa
+
(SiSo)
+
(Lop)

Câu 2: (0.75 điểm)
MaLop=Lop
MaSV
MaMH
((LOP:TenLop=‘K1-01’)
SINHVIEN
(KETQUA:Ketqua=’Đậu’) aaa
MONHOC) [MaSV, HoTenSV, TenMH, LanThi, Diem]
Câu 3: (0.75 điểm) (kết giữa các bảng, chọn, chiếu đơn giản)
SELECT sv.MaSV, HoTenSV, Diem, KetQua
FROM SINHVIEN sv, MONHOC m, KETQUA k
WHERE sv.MaSV = k.MaSV AND k.MaMH = m.MaMH
AND m.TenMH = ‘Cơ sở dữ liệu’ and k.LanThi=1
ORDER BY Diem DESC;

Câu 4: (0.5 điểm) (chọn mẫu tin có cột kiểu số có giá trị lớn nhất)
SELECT TenLop, SiSo
FROM LOP
WHERE SiSo = ( SELECT Max (SiSo) FROM Lop)


– k2cn4.n-stars.org - 4rum K2CN4

4


Bộ Đề Thi Tổng Hợp - Môn Cơ Sở Dữ Liệu
Câu 5: (0.5 điểm) (dùng GROUP BY)
SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc
FROM SINHVIEN sv, KETQUA k
WHERE sv.MaSV = k.MaSV
GROUP BY sv.MaSV, HoTenSV
MỞ RỘNG
Câu 6: Cho biết mã sinh viên, họ tên và số mơn học mà sinh viên đó đã tham gia thi với số môn
học trên 5? (đk trên nhóm HAVING)
SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc
FROM SINHVIEN sv, KETQUA k
WHERE sv.MaSV = k.MaSV
GROUP BY sv.MaSV, HoTenSV
HAVING count(distinct k.MaMH) >=5
Câu 7: Cho biết sinh viên học nhiều môn nhất? (đk HAVING>= all…)
SELECT sv.MaSV, HoTenSV, count(distinct k.MaMH) as SoMonDaHoc
FROM SINHVIEN sv, KETQUA k
WHERE sv.MaSV = k.MaSV
GROUP BY sv.MaSV, HoTenSV
HAVING count(distinct k.MaMH) >= All (SELECT count(distinct k.MaMH)
FROM SINHVIEN sv, KETQUA k
WHERE sv.MaSV = k.MaSV
GROUP BY sv.MaSV, HoTenSV )
Câu 8: (DSQH+SQL, phép giao): cho biết sv học cả 2 môn ‘Co So Du Lieu’ và ‘Toan Roi

Rac’
MaMH
((MONHOC: TenMH= ‘Co So Du Lieu’)
KETQUA)[Masv] a aa(((MONHOC:
MaMH
TenMH= ‘Toan Roi Rac’)
KETQUA)[Masv]
Select masv From MONHOC, KETQUA
Where tenmh=‘Co So Du Lieu’ and monhoc.mamh=ketqua.mamh and
Masv IN (Select masv From MONHOC, KETQUA
Where tenmh=‘Toan Roi Rac’ and monhoc.mamh=ketqua.mamh and
)



Câu 9: (DSQH+SQL, phép trừ): cho biết những sv không học môn ‘Toan Roi Rac’
MaMH

SINHVIEN[MaSV]-((MONHOC:TenMH=‘Toanroirac’)

KETQUA)[Masv]

Select masv, hoten From SINHVIEN
Where Masv NOT IN (Select masv from monhoc, ketqua
Where tenmh=‘Toan Roi Rac’ and monhoc.mamh=ketqua.mamh and
)

– k2cn4.n-stars.org - 4rum K2CN4

5



Bộ Đề Thi Tổng Hợp - Môn Cơ Sở Dữ Liệu

Đề Mở Rộng:
Đề 1: Cho lược đồ cơ sở dữ liệu Quản lí đề tài tốt nghiệp như sau:
KHOA(MaKhoa, TenKhoa, TruongKhoa, TongsoSV)
Tân từ: mỗi khoa có một mã số duy nhất để phân biệt với các khoa khác, tên khoa, trưởng
khoa và tổng số sinh viên thuộc khoa.
SINHVIEN(MaSV, HoTenSV, NgaySinh, Gioitinh, DiaChi, MaKhoa)
Tân từ: mỗi sinh viên có một mã số duy nhất để phân biệt với các sinh viên khác, tên sinh
viên, ngày sinh, giới tính (Nam/Nữ), địa chỉ, và khoa sinh viên trực thuộc (MaKhoa).
GIANGVIEN(MaGV,HoTenGV, NgaySinh, DiaChi, MaKhoa)
Tân từ: mỗi giảng viên có một mã số duy nhất để phân biệt với các giảng viên khác, tên
giảng viên, ngày sinh, giới tính (Nam/Nữ), địa chỉ, khoa trực thuộc.
DETAI(MaDeTai, LinhVuc, Nam, MaKhoa)
Tân từ: mỗi đề tài tốt nhghiệp có một mã số (MaDeTai) phân biệt với các đề tài khác, tên
đề tài, thuộc lĩnh vực nào (ví dụ: máy học, CSDL phân tán, xử lí ngơn ngữ,...), năm thực
hiện đề tài (Nam), giảng viên hướng dẫn đề tài ( MaGV).
HUONGDAN(MaDeTai,MaSV,Diemso)
Tân từ: Sinh viên tham gia làm đề tài tốt nghiệp dưới sự hướng dẫn của giảng viên, có
một kết quả đề tài (điểm số). Mỗi đề tài có tối đa 2 sinh viên tham gia
Yêu cầu:
1. Hãy phát biểu một cách chặt chẽ (nội dung, bối cảnh, tầm ảnh hưởng) RBTV
"Tổng số sinh viên của khoa bằng số lượng sinh viên của khoa đó".
Nội dung: Mọi sv Thuộc Bảng sinh viên(tồn tại U Thuộc vào bảng Khoa(t.makhoa=
U.makhoa)).
Bối cảnh: Bảng sinhVien, Bảng khoa.
Tầm ảnh Hưởng RBTV ........
Thêm......... Xóa........... Sửa

SinhVien......-................+.............Khoa............+............... +.............Thực hiên các câu truy vấn sau bằng ngôn ngữ đại số quan hệ:
2. Liệt kê danh sách các sinh viên có điểm số đè tài tốt nghiệp trên 8. Thơng tin liệt kê
bao gồm (MaSV, HoTenSV, TenDeTai, DiemSo).
Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL:
3. Với các sinh viên thuộc khoa "Công nghệ thông tin" (tên khoa là "Cơng nghệ thơng
tin") và có làm đề tài tốt nghiệp, hãy liệt kê tên sinh viên, tên đề tài, tên giáo viên hướng
dẫn (HoTenSV, TenDeTai, HoTenGV), sắp thứ tự theo HoTenSV.
select s.masv,s.hoatensv,d.linhvuc,h.diemso
from SINHVIEN s,DETAI d,HUONGDAN h
where h.diemso >=8 orderby h.diemso desc
4. Cho biết tên giảng viên không hướng dẫn đề tài nào trong năm 2006.
5. Cho biết tên sinh viên có điểm số tốt nghiệp cao nhất trong năm 2006.

– k2cn4.n-stars.org - 4rum K2CN4

6


Bộ Đề Thi Tổng Hợp - Môn Cơ Sở Dữ Liệu
Đề 1:
Cho lược đồ CSDL quản lí bán hàng
KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH)
Tân từ: mỗi kháh hàng sẽ có một mã số để phân biệt với nhau, cần lưu trữ họ tên, địa chỉ,
số điện thoại, ngày sinh
SANPHAM (MASP, TENSP, DVT, NUOCSX, GIA)
Tân từ: Mỗi sản phẩm có một số, một tên gọi, Đơn vị tính, nước sản xuất và một giá bán.
HOADON (SOHD, MASP, SL)
Tân từ: Mỗi lần mua hàng sẽ ghi nhận số hóa đơn, ngày mua, trị giá của hóa đơn và
khách hàng nào mua.
CTHD (SOHD, MASP, SL)

Tân từ: Diễn giải chi tiết trong hóa đơn gồm có những sản phẩm gì với số lượng là bao
nhiêu.
Phần 1: Phát biểu các câu truy vấn sau bằng đại số quan hệ( câu a, b) và SQL (câu b,c):
a. In ra danh sách các sản phẩm ( mã sản phẩm, tên sản phẩm) được bán ra trong ngày
10/10/2005.
b. In ra danh sách các sản phẩm ( mã sản phẩm, tên sản phẩm) có giá từ 10.000 đến
50.000 do Trung Quốc sản xuất.
c. Tìm khách hàng (MAKH, HOTEN) mua hóa đơn có trị giá ca nhất
Phần 2: Mơ tả chặt chẽ các ràng buộc sau:
a. Trị giá của một hóa đơn phải bằng tổng tiền của các chi tiết( sl*gia) thuộc hóa đơn đó.
Đề 2:
Cho lược đồ cơ sở dữ liệu Quản lí đề tài tốt nghiệp như sau:
KHOA(MaKH, TenKH)
Tân từ: Mỗi khoa có các thơng tin: Mã khoa, Tên khoa.
MON (MaMH, TenMH, SoTiet)
Tân từ: Danh mục các môn học gồm có: Mã mơn học, Tên mơn học, Số tiết.
SINHVIEN (MaSV, HoSV, TenSV, Phai, Ngaysinh, NoiSinh,MaKH, HocBong)
Tân từ: Mỗi sinh viên cần lưu trữ các thông tin: Mã sinh viên. Họ tên sinh viên, Giới tính,
Ngày sinh, Nơi sinh, Học bổng và Mã khoa mà sinh viên học.
KETQUA (MaSV, MaKH, Diem)
Tân từ: Lưu trữ thông tin điểm thi các môn học của sinh viên.
Câu 1: Phát biểu các câu truy vấn sau bằng đại số liên hệ:
a. Cho biết các mơn học có số tiết lớn hơn 40 và nhỏ hơn 60, gồm các thông tin: Mã môn
học, Tên môn học, Số tiết.
b. In ra danh sách các sinh viên (Mã sinh viên) chưa thi môn cơ sở dữ liệu.
Câu 2: Phát biểu các truy vấn sau bằng ngôn ngữ SQL:
a. Liệt kê danh sách các nam sinh viên khoa Công nghệ thông tin sinh sau năm 1989,
gồm các thông tin: Mã sinh viên, Họ sinh viên, Tên sinh viên, Phái, Ngày sinh, Tên khoa.
b. Thống kê tổng số môn thi của từng sinh viên, gồm các thông tin: Họ sinh viên, Tên
sinh viên, Tên khoa, Tổng số môn thi.

Câu 3: Mô tả chặt chẽ các ràng buộc sau:
Mỗi khoa có tối đa 150 sinh viên theo học

– k2cn4.n-stars.org - 4rum K2CN4

7



×