1. Trang chủ
  2. » Công Nghệ Thông Tin

Một số bài tập mẫu môn cơ sở dữ liệu

7 4K 115

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 7
Dung lượng 279,59 KB

Nội dung

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

Trang 1

Đáp án

Một số bài

tập mẫu môn

cơ sở dữ liệu

Trang 2

ĐÁ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)

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 3

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)

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 4

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’

pMANV, TENNV (NHANVIEN | >< | (HOADON | >< |

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

pMAHH,TENHH (HANGHOA | >< | (CTHD | >< | sNGAYHD=’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

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

Phụ thuộc hàm JN à M có được suy ra từ F không? Chứng minh

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 5

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 đồ

=> IC là siêu khóa, và các tập con của IC thỏ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 đồ

=> VN là siêu khóa, và các tập con của VN thỏ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

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 6

ĐÁN ÁN MỘT SỐ BÀI TẬP MẪU MÔN CSDL Câu 1:

Cho sơ đồ ER biểu diễn một phần cơ sở dữ liệu của thư viện như sau

Xây dựng lược đồ cơ sở dữ liệu quan hệ từ sơ đồ ER trên Xác định khóa chính và khóa ngoại cho từng lược đồ quan hệ

Giải:

Các quan hệ phát sinh sau khi chuyển từ sơ đồ E/R là:

SACH(ISBN, TuaSach, TacGia, NgonNgu, TomTat, NamXuatBan)

Khóa chính: ISBN

Khóa ngoại: không có

CUONSACH(MaCuonSach, TinhTrang, ISBN)

Khóa chính: MaCuonSach

Khóa ngoại: ISBN tham chiếu tới SACH(ISBN)

DOCGIA(MaTheDocGia, Ho, Ten, NgayLapThe,NgayHetHan)

Khóa chính: MaTheDocGia

Khóa ngoại: không có

MUON(MaCuonSach, MaTheDocGia, NgayMuon, NgayTra)

Khóa chính: MaCuonSach, MaTheDocGia

Khóa ngoại: MaCuonSach tham chiếu tới SACH(MaCuonSach)

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 7

Câu 2 :

Từ lược đồ cơ sở dữ liệu quan hệ ở câu 1 sử dụng ngôn ngữ đại số quan hệ, truy vấn các thông tin sau:

a Cho biết danh sách các tựa sách có ngôn ngữ là ‘tiếng Việt’ và xuất bản sau năm

2000

b Cho biết danh sách độc giả chưa mượn bất kỳ cuốn sách nào

Giải:

a) pTuaSach ( sNgonNgu = ‘tiếng Việt’ Ù NamXuatBan >= 2000 SACH)

b) pHo, Ten DOCGIA | >< | ( pMaTheDocGia DOCGIA - p MaTheDocGia MUON)

Câu 3 :

Từ lược đồ cơ sở dữ liệu quan hệ ở câu 1 sử dụng ngôn ngữ SQL, truy vấn các

thông tin sau

a Cho biết với mỗi sách có bao nhiêu cuốn sách

b Cho biết độc giả có mã thẻ độc giả = ‘DG0001’ đã mượn những cuốn sách có tựa là

c Cho biết trong năm 2007 mỗi độc giả đã mượn bao nhiêu cuốn sách

Giải:

a) select ISBN, COUNT(MaCuonSach) from CUONSACH group by ISBN

b) select DISTINCT TuaSach from SACH s, CUONSACH cs, MUON m

where m.MaDocGia = ‘DG0001’

AND m.MaCuonSach = cs.MaCuonSach

AND cs.ISBN = s.ISBN

c) select Ho, Ten, COUNT(MaCuonSach)

from DOCGIA dg, MUON m

where dg.MaTheDocGia = m.MaTheDocGia

AND YEAR(NgayMuon) = 2007

group by dg.MaTheDocGia, Ho, Ten

Câu 4 :

Cho quan hệ R(A,B,C,D,E) và tập phụ thuộc hàm

F= {AB ->C, CD ->A, C->E, C->B}

Tìm bao đóng (CD)

Tìm tất cả các khóa của quan hệ trên

Giải:

TN = {D}

TG = {A, B, C}

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Ngày đăng: 12/10/2014, 13:02

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w