Đáp án một số bài tập mẫu môn cơ sở dữ liệu (Phần 2)

Tài liệu Đáp án một số bài tập mẫu môn cơ sở dữ liệu (Phần 2): Dap an Bai tap mon CSDL trang 1 ĐÁN ÁN MỘT SỐ BÀI TẬP MẪU MÔN CSDL Bài 1. Cho lược đồ CSDL sau: HANGHOA (MaHH, TenHH, DonGia) NHANVIEN (MaNV, TenNV) HOADON (MaHD, NgayHD, MaNV) CTHD (MaHD, MaCT, MaHH, SoLuong) 1.1. Viết các câu SQL cho biết: a) Doanh số bán trong năm 2008 theo mặt hàng. Biết rằng doanh số bán = SoLuong * DonGia. Kết quả hiển thị gồm Mã HH, Tên HH và tổng doanh số bán. SELECT hh.mahh, tenhh, sum(soluong*dongia) AS dsban FROM hanghoa hh, hoadon hd, cthd ct WHERE hh.mahh=ct.mahh AND hd.mahd=ct.mahd AND YEAR(ngayhd)=2008 GROUP BY hh.mahh, tenhh ORDER BY SUM(soluong*dongia) b) Nhân viên và số lượng hóa đơn bán trong tháng 08 năm 2008 do họ phụ trách. Thông tin gồm: Mã NV, Tên NV, Số lượng hóa đơn phụ trách, sắp xếp theo số lượng giảm dần. SELECT nv.manv,tennv, count(mahd) AS so_luong_hd_ban FROM nhanvien nv,hoadon hd WHERE nv.manv=hd.manv AND YEAR(ngayhd)=2008...

pdf4 trang | Chia sẻ: hunglv | Lượt xem: 2658 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đáp án một số bài tập mẫu môn cơ sở dữ liệu (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Dap an Bai tap mon CSDL trang 1 ĐÁN ÁN MỘT SỐ BÀI TẬP MẪU MÔN CSDL Bài 1. Cho lược đồ CSDL sau: HANGHOA (MaHH, TenHH, DonGia) NHANVIEN (MaNV, TenNV) HOADON (MaHD, NgayHD, MaNV) CTHD (MaHD, MaCT, MaHH, SoLuong) 1.1. Viết các câu SQL cho biết: a) Doanh số bán trong năm 2008 theo mặt hàng. Biết rằng doanh số bán = SoLuong * DonGia. Kết quả hiển thị gồm Mã HH, Tên HH và tổng doanh số bán. SELECT hh.mahh, tenhh, sum(soluong*dongia) AS dsban FROM hanghoa hh, hoadon hd, cthd ct WHERE hh.mahh=ct.mahh AND hd.mahd=ct.mahd AND YEAR(ngayhd)=2008 GROUP BY hh.mahh, tenhh ORDER BY SUM(soluong*dongia) b) Nhân viên và số lượng hóa đơn bán trong tháng 08 năm 2008 do họ phụ trách. Thông tin gồm: Mã NV, Tên NV, Số lượng hóa đơn phụ trách, sắp xếp theo số lượng giảm dần. SELECT nv.manv,tennv, count(mahd) AS so_luong_hd_ban FROM nhanvien nv,hoadon hd WHERE nv.manv=hd.manv AND YEAR(ngayhd)=2008 AND MONTH(ngayhd)=08 GROUP BY nv.manv,tennv ORDER BY COUNT(mahd) DESC c) Hàng hóa có đơn giá lớn nhất là hàng hóa nào? Nếu có nhiều mặt hàng như thế, kết quả sắp xếp theo Tên HH. SELECT HH.MAHH, TENHH FROM HANGHOA HH WHERE DONGIA=(SELECT MAX(DONGIA) FROM HANGHOA) ORDER BY TENHH Dap an Bai tap mon CSDL trang 2 Hoac: SELECT HH.MAHH, TENHH FROM HANGHOA HH WHERE DONGIA >= ALL (SELECTDONGIA FROM HANGHOA) ORDER BY TENHH d) Danh sách nhân viên chưa từng phụ trách bán một hóa đơn nào cả. SELECT NV.MANV, TENNV FROM NHANVIEN NV WHERE MANV NOT IN (SELECT DISTINCT MANV FROM HOADON) e) Tổng doanh số bán trong tháng 08/2008 của mặt hàng có tên ‘iPHONE 3G’. Biết rằng doanh số bán = SoLuong * DonGia. Thông tin gồm: TenHH, TongDS. SELECT MaHH, TenHH, SUM(SOLUONG*DONGIA) AS DSBAN FROM CTHD CT, HANGHOA HH, HOADON HD WHERE HD.MAHD=CT.MAHD AND CT.MAHH=HH.MAHH AND TENHH=’iPHONE 3G’ AND YEAR(NGAYHD)=2008 AND MONTH(NGAYHD)=08 GROUP BY CT.MAHH, TenHH f) Doanh số bán trong các hóa đơn do nhân viên có tên ‘Quynh Huong’ phụ trách. Thông tin gồm: MaHD, NgayHD, Doanh số. Kết quả sắp xếp theo doanh số giảm dần. SELECT HD.MAHD, NGAYHD, SUM(SOLUONG*DONGIA) AS DSBAN FROM HOADON HD, CTHD CT, NHANVIEN NV, HANGHOA HH WHERE HD.MAHD=CT.MAHD AND CT.MAHH=HH.MAHH AND NV.MANV=HD.MANV AND TENNV=’Quynh Huong’ GROUP BY HD.MAHD, NGAYHD g) Danh sách nhân viên không phụ trách hóa đơn nào trong tháng 08/2008. SELECT NV.MANV, TENNV FROM NHANVIEN NV WHERE MANV NOT IN (SELECT DISTINCT MANV FROM HOADON WHERE YEAR(NGAYHD)=2008 AND MONTH(NGAYHD)=08) Dap an Bai tap mon CSDL trang 3 h) Danh sách hàng hóa chưa từng được bán. SELECT HH.MAHH, TENHH FROM HANGHOA HH WHERE MAHH NOT IN (SELECT MAHH FROM CTHD) 1.2. Viết biểu thức đại số quan hệ cho biết mã số, tên của các nhân viên phụ trách các hóa đơn bán hàng mặt hàng ‘sua’. p MANV, TENNV (NHANVIEN |><| s TENHH=’sua’ (HANGHOA |><| CTHD))) 1.3. Viết biểu thức đại số quan hệ cho biết mã số, tên của các hàng hóa bán trong ngày 31/12/2007 p MAHH,TENHH (HANGHOA |><| s NGAYHD=’31/12/2007’ HOADON)) Bài 2: xác định phụ thuộc hàm. 2.1. Cho lược đồ quan hệ Q(ABCDEGH) và tập các phụ thuộc hàm F = { AB à C B à D CD à E CE à GH G à A } Phụ thuộc hàm BG à E có được suy ra từ F không? Chứng minh. Tính bao đóng (BG)+ = BGDACEH É E. Vậy BG à E được suy ra từ F 2.2. Cho lược đồ quan hệ Q( IJKLMNO) và tập các phụ thuộc hàm F = { IJ à K J à L KL à M KM à NO Nà I } Phụ thuộc hàm JN à M có được suy ra từ F không? Chứng minh. Tính (JN)+=JNLIKMO É M nên JNàM được suy từ F Dap an Bai tap mon CSDL trang 4 Bài 3: xác định dạng chuẩn của lược đồ quan hệ. 3.1. Cho lược đồ quan hệ Q(ABCDEGHI) và tập phụ thuộc hàm F F = { AB à DE C à ABDE G à H ABI à H BI à GH } - Xác định {IC} là khóa của lược đồ. - Xác định dạng chuẩn của lược đồ. Ti ́nh {IC}+ = {ICABDE} { ICABDE }+ = { ICABDEGH } = Q+ => IC là siêu khóa, và các tập con của IC thỏa: {I}+ = {I} => không là siêu khóa {C}+ = {CABDE} => không là siêu khóa => IC là tối thiểu => IC là khóa Do f2: ABDE phụ thuộc không đầy đủ vào khóa à Không đạt dạng chuẩn 2 à Dạng chuẩn 1 3.2. Cho lược đồ quan hệ Q(CDVLGTPN) và tập phụ thuộc hàm F F = { V à CDLG CD à LG T à P CDN à P DN à TP } - Xác định {VN} là khóa của lược đồ. - Xác định dạng chuẩn của lược đồ. Ti ́nh {VN}+ = {VNCDLG} { VNCDLG }+ = { VNCDLGTP } = Attrs(Q) => VN là siêu khóa, và các tập con của VN thỏa: {V}+ = {VCDLG} => không là siêu khóa {N}+ = {N} => không là siêu khóa => VN là tối thiểu => VN là khóa Do f1 nên CDLG phụ thuộc không đầy đủ vào khóa à không đạt Dạng chuẩn 2 à Dạng chuẩn 1

Các file đính kèm theo tài liệu này:

  • pdfUnlock-Đáp án một số bài tập mẫu môn cơ sở dữ liệu (Phần 2).pdf