Đáp án một số bài tập mẫu môn cơ sở dữ liệu - Phần 2
ĐÁN ÁN MOÄT SOÁ BAØI TAÄP MAÃU MOÂN CSDL
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
MOÄT SOÁ BAØI TAÄP MAÃU MOÂN CSDL
Baøi 1.
Cho löôïc ñoà CSDL sau:
HANGHOA (MaHH, TenHH, DonGia)
NHANVIEN (MaNV, TenNV)
HOADON (MaHD, NgayHD, MaNV)
CTHD (MaHD, MaCT, MaHH, SoLuong)
1.1. Vieát caùc caâu SQL cho bieát:
a) Doanh soá baùn trong naêm 2008 theo maët haøng. Bieát raèng doanh soá baùn =
SoLuong * DonGia. Keát quaû hieån thò goàm Maõ HH, Teân HH vaø toång doanh soá baù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) Nhaân vieân vaø soá löôïng hoùa ñôn baùn trong thaùng 08 naêm 2008 do hoï phuï traùch.
Thoâng tin goàm: Maõ NV, Teân NV, Soá löôïng hoùa ñôn phuï traùch, saép xeáp theo soá
löôïng giaûm daà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) Haøng hoùa coù ñôn giaù lôùn nhaát laø haøng hoùa naøo? Neáu coù nhieàu maët haøng nhö
theá, keát quaû saép xeáp theo Teâ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 saùch nhaân vieân chöa töøng phuï traùch baùn moät hoùa ñôn naøo caû.
SELECT NV.MANV, TENNV
FROM NHANVIEN NV
WHERE MANV NOT IN (SELECT DISTINCT MANV FROM HOADON)
e) Toång doanh soá baùn trong thaùng 08/2008 cuûa maët haøng coù teân ‘iPHONE 3G’.
Bieát raèng doanh soá baùn = SoLuong * DonGia. Thoâng tin goà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 soá baùn trong caùc hoùa ñôn do nhaân vieân coù teân ‘Quynh Huong’ phuï traùch.
Thoâng tin goàm: MaHD, NgayHD, Doanh soá. Keát quaû saép xeáp theo doanh soá giaûm
daà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 saùch nhaân vieân khoâng phuï traùch hoùa ñôn naøo trong thaù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 saùch haøng hoùa chöa töøng ñöôïc baùn.
SELECT HH.MAHH, TENHH
FROM HANGHOA HH
WHERE MAHH NOT IN (SELECT MAHH FROM CTHD)
1.2. Vieát bieåu thöùc ñaïi soá quan heä cho bieát maõ soá, teân cuûa caùc nhaân vieân phuï
traùch caùc hoùa ñôn baùn haøng maët haøng ‘sua’.
p MANV, TENNV (NHANVIEN |><|
s TENHH=’sua’ (HANGHOA |><| CTHD)))
1.3. Vieát bieåu thöùc ñaïi soá quan heä cho bieát maõ soá, teân cuûa caùc haøng hoùa baùn
trong ngaøy 31/12/2007
p MAHH,TENHH (HANGHOA |><| s NGAYHD=’31/12/2007’ HOADON))
Baøi 2: xaùc ñònh phuï thuoäc haøm.
2.1. Cho löôïc ñoà quan heä Q(ABCDEGH) vaø taäp caùc phuï thuoäc haøm
F = { AB à C
B à D
CD à E
CE à GH
G à A }
Phuï thuoäc haøm BG à E coù ñöôïc suy ra töø F khoâng? Chöùng minh.
Tính bao ñoùng (BG)+ = BGDACEH É E. Vaäy BG à E ñöôïc suy ra töø F
2.2. Cho löôïc ñoà quan heä Q( IJKLMNO) vaø taäp caùc phuï thuoäc haøm
F = { IJ à K
J à L
KL à M
KM à NO
Nà I }
Phuï thuoäc haøm JN à M coù ñöôïc suy ra töø F khoâng? Chöùng minh.
Tính (JN)+=JNLIKMO É M neân JNàM ñöôïc suy töø F
Dap an Bai tap mon CSDL trang 4
Baøi 3: xaùc ñònh daïng chuaån cuûa löôïc ñoà quan heä.
3.1. Cho löôïc ñoà quan heä Q(ABCDEGHI) vaø taäp phuï thuoäc haøm F
F = { AB à DE
C à ABDE
G à H
ABI à H
BI à GH }
- Xaùc ñònh {IC} laø khoùa cuûa löôïc ñoà.
- Xaùc ñònh daïng chuaån cuûa löôïc ñoà.
Ti ́nh {IC}+ = {ICABDE}
{ ICABDE }+ = { ICABDEGH } = Q+
=> IC laø sieâu khoùa, vaø caùc taäp con cuûa IC thoûa:
{I}+ = {I} => khoâng laø sieâu khoùa
{C}+ = {CABDE} => khoâng laø sieâu khoùa
=> IC laø toái thieåu => IC laø khoùa
Do f2: ABDE phuï thuoäc khoâng ñaày ñuû vaøo khoùa à Khoâng ñaït daïng chuaån 2 à
Daïng chuaån 1
3.2. Cho löôïc ñoà quan heä Q(CDVLGTPN) vaø taäp phuï thuoäc haøm F
F = { V à CDLG
CD à LG
T à P
CDN à P
DN à TP }
- Xaùc ñònh {VN} laø khoùa cuûa löôïc ñoà.
- Xaùc ñònh daïng chuaån cuûa löôïc ñoà.
Ti ́nh {VN}+ = {VNCDLG}
{ VNCDLG }+ = { VNCDLGTP } = Attrs(Q)
=> VN laø sieâu khoùa, vaø caùc taäp con cuûa VN thoûa:
{V}+ = {VCDLG} => khoâng laø sieâu khoùa
{N}+ = {N} => khoâng laø sieâu khoùa
=> VN laø toái thieåu => VN laø khoùa
Do f1 neân CDLG phuï thuoäc khoâng ñaày ñuû vaøo khoùa à khoâng ñaït Daïng chuaån 2
à Daïng chuaån 1