Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
+4
nguyenduc
itlinh
Nheo
phamtuananh
8 posters
:: Góc Học Tập :: Cơ Sở Dữ Liệu
Trang 1 trong tổng số 1 trang
Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
Đề thi và bài giải của các khóa trước, bà con tham khảo nha.
http://www.mediafire.com/?ddqzc4y2lmj
Nghe nói bài giải là chính xác. Các bác check có gì tham khảo nha.
đưa ra 3 đề của k11 bà con tham khảo thử nha!
Đề 1 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Xác định xem các phụ thuộc hàm sau, phụ thuộc hàm nào được suy ra từ F.
o EG -> BD
o AB -> CDEGH
o D -> GH
Đáp án
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G
Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}
- EG -> BD không thuộc vì EG+ = EG
- AB -> CDEGH không thuộc vì AB+ = ABHG
- D -> GH thuộc vì D+ = DEBHGA
2. Cho cơ sở dữ liệu
Quản lý rau quả
Loai (ma_loai char(2), ghi_chu char(20), han_luu_giu int)
Sanpham (ma_san_pham char(5), ten_san_pham char(20), ma_loai char(2))
Phieunhapxuat (so_phieu int, ngay_nhap datetime, loai char(1))
Chitietphieu (so_phieu int, ma_san_pham char(5), so_luong int)
Ghi chú :
- <<Han_luu_giu>> : thời gian tính bằng đơn vị là ngày để cho sản phẩm thuộc loại đó có thể trử trong kho mà không bị hư.
- <<Loai>> trong bảng Phieunhapxuat chỉ ra đây là nhập hay xuất :
o Loai = 1 : nhập loai = 0 : xuất
Phát biểu :
- Mỗi một sản phẩm thuộc một loại.
- Mỗi lần nhập một sản phẩm về kho hay xuất sản phẩm ra kho đều được ghi nhận trong bảng “phieuxuatnhap” với thuộc tính loại để phân biệt.
- Cụ thể mỗi lần nhập vào hay xuất kho những mặt hàng nào thì đều được ghi nhận trong bảng chitietphieu.
Câu hỏi :
a. Liệt kê danh sách gồm mã sản phẩm và tên sản phẩm mà có khả năng lưu giử trong kho hơn 3 tuần. (0.5 điểm)
b. Liệt kê danh sách gồm năm, tháng, tổng số lượng nhập vào của hàng hóa có mã là “A”. (Hàm lấy tháng và năm là hàm month(ngày) và year(ngày)). (1 điểm)
c. Liệt kê danh sách gồm mã sản phẩm, tên sản phẩm mà không được nhập vào trong ngày 24/12/2006. (1 điểm)
d. Liệt kê danh sách gồm số phiếu, ngày nhập phiếu mà phiếu này nhập vào nhiều hơn 2 loại hàng hóa. (1 điểm)
e. Liệt kê danh sách cho biết ngày nào mà công ty nhập nhiều mã sản phẩm nhất. (1 điểm)
Đáp án
- Select sp.ma_san_pham,sp.ten_san_pham
From sanpham sp inner join loai l on l.ma_loai = sp.ma_loai
Where l.han_luu_giu > 21
- Select year(p.ngay_nhap), month(p.ngay_nhap), sum(ct.so_luong)
From phieunhapxuat p inner join chitietphieu ct on ct.so_phieu = p.so_phieu
Where ct.ma_san_pham = ‘A’ and p.loai = 1
Group by year(p.ngay_nhap), month(p.ngay_nhap)
- Select ma_san_pham,ten_san_pham
From sanpham
Where ma_san_pham not in (
Select ct.ma_san_pham
From chitietphieu ct inner join phieunhapxuat p on p.so_phieu = ct.so_phieu
Where p.ngay_nhap = ‘12/24/2006’ and p.loai = 1
)
- Select p.so_phieu,p.ngay_nhap
From (phieunhapxuat p inner join chitietphieu ct on ct.so_phieu=p.so_phieu)
Inner join sanpham sp on sp.ma_san_pham = ct.ma_san_pham
Where p.loai = 1
Group by p.so_phieu,p.ngay_nhap
having count(distinct sp.ma_loai) > 2
- Select p.ngay, count(distinct ct.ma_san_pham) as tssp
From phieunhapxuat p inner join chitietphieu ct on ct.ma_phieu = p.ma_phieu
Q1
Select ngay
From Q1
Where tssp = (select max(tssp) from Q1)
Đề 2 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Chứng minh A tương đương B (A <-> B)
Đáp án :
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G
Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}
- Chứng minh
A+ = BHG B+ = HGA
2. Cho cơ sở dữ liệu
Quản lý đề tài
Loai (ma_loai char(5), ten loai char(20))
Giaovien (ma_gv char(5), ten_gv char(20))
Sinhvien (ma_sv char(5), ten_sv char(20), nien_khoa int)
Detai (ma_de_tai char(5), ten_de_tai char(50), ma_gv char(5), ma_loai char(5))
Sinhvien_detai (ma_de_tai char(5), ma_sv char(5))
Ghi chú :
- Loai : ghi thông tin về loại đề tài, VD : đề tài thuộc loại “Thống kê”, hay “Tính toán thông minh”,…
- <<nien_khoa>> ghi nhận là một số năm vào học. VD : niên khóa 2006, ghi là 2006
Phát biểu :
- Mỗi một đề tài đăng ký là thuộc duy nhất một loại nào đó, và có một giáo viên hướng dẫn.
- Một đề tài có thể có một hoặc nhiều sinh viên cùng tham gia làm.
- Một sinh viên có thể tham gia làm 1 hay nhiều đề tài (số lượng tùy theo ràng buộc đưa sau)
Câu hỏi
a. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà là học viên năm thứ 3 (năm học được tính bằng cách lấy năm hiện tại trừ đi niên khóa). (0.5 điểm)
b. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà làm hơn 2 loại đề tài khác nhau. (1 điểm)
c. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà không hề tham gia hướng dẫn bất cứ đề tài nào. (1 điểm)
d. Liệt kê danh sách gồm mã đề tài, tên đề tài, tên giáo viên hướng dẫn mà chỉ có duy nhất 1 sinh viên tham gia làm(1 điểm)
e. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà hướng dẫn ít đề tài nhất.(1 điểm)
Đáp án :
- Select ma_sv, ten_sv
From sinhvien
Where year(date()) – nien_khoa = 3
- Select sv.ma_sv,sv.ten_sv
From (sinhvien as sv inner join sinhvien_detai svdt on sv.ma_sv = svdt.ma_sv)
Inner join detai dt on dt.ma_de_tai = svdt.ma_de_tai
Group by sv.ma_sv,sv.ten_sv
Having count(distinct dt.ma_loai) > 2
- Select ma_gv,ten_gv
From giaovien
Where ma_gv not in (
Select ma_gv from detai
)
- Select dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
From ( detai dt inner join giaovien gv on gv.ma_gv = dt.ma_gv )
Inner join sinhvien_detai svdt on svdt.ma_de_tai = dt.ma_de_tai
Group by dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
Having count(svdt.masv) = 1
- Select ma_gv, count(distinct ma_de_tai) as tsdt
From detai
Group by ma_gv
Q
Select gv.ma_gv,gv.ten_gv
From Q inner join giaovien gv on gv.ma_gv = Q.ma_gv
Where Q.tsdt = (Select min(Q.tsdt) from Q)
Đề 3 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm tất cả các khóa chính.
- Hỏi tập phụ thuộc hàm K { A -> B ,D -> EBHG, B ->H , BG -> HA } có tương đương tập F hay không ? Giải thích tại sao ?
- Tìm bao đóng của các thuộc tính sau
o ABC
o DBG
Đáp án :
A -> B , B -> A , D -> EB , B -> HG
- Tìm tất cả các khóa
DC
- Không tương đương vì B -> G không được suy từ K
- ABC + = ABCHG
- DBG+ = DBGHAE
2. Cho cơ sở dữ liệu
Quản lý nguồn nhân lực
Chucvu (ma_chuc_vu char(5), ten_chuc_vu char(5))
Nhanvien (ma_nhan_vien char(5), ten_nhan_vien char(20), dia_chi char(50))
Congviec (so_cong_van char(5),ma_nhan_vien char(5), ma_chuc_vu char(5),
nam_bat_dau int, thang_bat_dau int, nam_ket_thuc int, thang_ket_thuc int)
Hesoluong (ma_chuc_vu char(5), so_nam_lam_viec int, he_so float)
Phát biểu :
- Mỗi một nhân viên chỉ có thể đảm nhiệm duy nhất một công việc trong 1 thời điểm.
- Mỗi nhân viên vẫn được lưu lại tất cả các chức vụ mà mình đã từng trải qua trong quá trình làm việc.
- Các chức vụ mà nhân viên đó đã làm trong quá khứ và sau đó đổi chức vụ và cũng có thể đổi lại chức vụ đó.
- Một công việc của một nhân viên được ghi nhận bằng năm bắt đầu và tháng bắt đầu và khi đã chuyển sang công việc mới thì năm kết thúc và tháng kết thúc mới được ghi nhận. (Bắt đầu là tính đầu tháng, kết thúc là tính cuối tháng)
- Tiền lương hằng tháng được tính theo hệ số lương theo chức vụ * mức lương căn bản.
- Hệ số lương được tính theo chức vụ và số năm làm việc với chức vụ đó (số năm này làm tròn xuống – tức làm 3 năm 6 tháng là 3 năm)
Câu hỏi :
a. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà đã làm hơn 2 chức vụ cho công ty. (1 điểm)
b. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà có làm chức vụ có tên là “giam doc” hay “truong phong” trong thời gian hơn 2 năm. (1 điểm)
c. Liệt kê danh sách gồm tên nhân viên, tên chức vụ hiện tại mà nhân viên này đang làm, và hệ số lương cho chức vụ đó. (1 điểm)
d. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm hết mọi chức vụ. (1 điểm)
e. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm chức vụ có tên là “truong phong” vào tháng 2 năm 2005 và cho đến bây giờ vẫn còn làm chức vụ đó mà không hề có sự thay đổi. (1 điểm)
Đáp án :
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) > 2
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where
ch.ten_chuc_vu in (“giam doc”,”truong phong”)
and
(
([(cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is not null] )
Or
( [(year(date()) – cv.nam_bat_dau)*12 + (month(date()) – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is null] )
)
- Select nv.ma_nhan_vien, nv.ten_nhan_vien, hs.he_so
From ((nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu)
Inner join hesoluong hs on
INT(((cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau))/12) = hs.so_nam_lam_viec
Where cv.nam_ket_thuc is null and cv.thang_ket_thuc is null
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) =
(select count(ma_chuc_vu) from chucvu)
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien) inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where ch.ten_chuc_vu = ‘Truong phong’ and
cv.nam_ket_thuc is null and
[
( cv.nam_bat_dau = 2005 and cv.thang_bat_dau <= 2)
Or
( cv.nam_bat_dau < 2005)
]
http://www.mediafire.com/?ddqzc4y2lmj
Nghe nói bài giải là chính xác. Các bác check có gì tham khảo nha.
đưa ra 3 đề của k11 bà con tham khảo thử nha!
Đề 1 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Xác định xem các phụ thuộc hàm sau, phụ thuộc hàm nào được suy ra từ F.
o EG -> BD
o AB -> CDEGH
o D -> GH
Đáp án
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G
Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}
- EG -> BD không thuộc vì EG+ = EG
- AB -> CDEGH không thuộc vì AB+ = ABHG
- D -> GH thuộc vì D+ = DEBHGA
2. Cho cơ sở dữ liệu
Quản lý rau quả
Loai (ma_loai char(2), ghi_chu char(20), han_luu_giu int)
Sanpham (ma_san_pham char(5), ten_san_pham char(20), ma_loai char(2))
Phieunhapxuat (so_phieu int, ngay_nhap datetime, loai char(1))
Chitietphieu (so_phieu int, ma_san_pham char(5), so_luong int)
Ghi chú :
- <<Han_luu_giu>> : thời gian tính bằng đơn vị là ngày để cho sản phẩm thuộc loại đó có thể trử trong kho mà không bị hư.
- <<Loai>> trong bảng Phieunhapxuat chỉ ra đây là nhập hay xuất :
o Loai = 1 : nhập loai = 0 : xuất
Phát biểu :
- Mỗi một sản phẩm thuộc một loại.
- Mỗi lần nhập một sản phẩm về kho hay xuất sản phẩm ra kho đều được ghi nhận trong bảng “phieuxuatnhap” với thuộc tính loại để phân biệt.
- Cụ thể mỗi lần nhập vào hay xuất kho những mặt hàng nào thì đều được ghi nhận trong bảng chitietphieu.
Câu hỏi :
a. Liệt kê danh sách gồm mã sản phẩm và tên sản phẩm mà có khả năng lưu giử trong kho hơn 3 tuần. (0.5 điểm)
b. Liệt kê danh sách gồm năm, tháng, tổng số lượng nhập vào của hàng hóa có mã là “A”. (Hàm lấy tháng và năm là hàm month(ngày) và year(ngày)). (1 điểm)
c. Liệt kê danh sách gồm mã sản phẩm, tên sản phẩm mà không được nhập vào trong ngày 24/12/2006. (1 điểm)
d. Liệt kê danh sách gồm số phiếu, ngày nhập phiếu mà phiếu này nhập vào nhiều hơn 2 loại hàng hóa. (1 điểm)
e. Liệt kê danh sách cho biết ngày nào mà công ty nhập nhiều mã sản phẩm nhất. (1 điểm)
Đáp án
- Select sp.ma_san_pham,sp.ten_san_pham
From sanpham sp inner join loai l on l.ma_loai = sp.ma_loai
Where l.han_luu_giu > 21
- Select year(p.ngay_nhap), month(p.ngay_nhap), sum(ct.so_luong)
From phieunhapxuat p inner join chitietphieu ct on ct.so_phieu = p.so_phieu
Where ct.ma_san_pham = ‘A’ and p.loai = 1
Group by year(p.ngay_nhap), month(p.ngay_nhap)
- Select ma_san_pham,ten_san_pham
From sanpham
Where ma_san_pham not in (
Select ct.ma_san_pham
From chitietphieu ct inner join phieunhapxuat p on p.so_phieu = ct.so_phieu
Where p.ngay_nhap = ‘12/24/2006’ and p.loai = 1
)
- Select p.so_phieu,p.ngay_nhap
From (phieunhapxuat p inner join chitietphieu ct on ct.so_phieu=p.so_phieu)
Inner join sanpham sp on sp.ma_san_pham = ct.ma_san_pham
Where p.loai = 1
Group by p.so_phieu,p.ngay_nhap
having count(distinct sp.ma_loai) > 2
- Select p.ngay, count(distinct ct.ma_san_pham) as tssp
From phieunhapxuat p inner join chitietphieu ct on ct.ma_phieu = p.ma_phieu
Q1
Select ngay
From Q1
Where tssp = (select max(tssp) from Q1)
Đề 2 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1.5 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm phủ tối thiểu của F.
- Chứng minh A tương đương B (A <-> B)
Đáp án :
- Phủ tối thiểu
A -> B Không bỏ
A -> G bỏ vì A -> B -> HG
F = { A -> B ,D -> EG ,GB -> HA , D -> BA , B -> HG }
D -> G bỏ vì D -> B -> HG
F = { A -> B ,D -> E ,GB -> HA , D -> BA , B -> HG }
GB -> H bỏ vì B -> H
F = { A -> B ,D -> E ,GB -> A , D -> BA , B -> HG }
D -> B không bỏ
D -> A bỏ vì D -> B -> GB -> A
F = { A -> B ,D -> E ,GB -> A , D -> B , B -> HG }
B -> H không bỏ
B -> G không bỏ
Bỏ thuộc tính G trong GB -> A vì B -> G
Phủ tối thiểu : {A -> B ,D -> E , B -> A , D -> B , B -> HG}
- Chứng minh
A+ = BHG B+ = HGA
2. Cho cơ sở dữ liệu
Quản lý đề tài
Loai (ma_loai char(5), ten loai char(20))
Giaovien (ma_gv char(5), ten_gv char(20))
Sinhvien (ma_sv char(5), ten_sv char(20), nien_khoa int)
Detai (ma_de_tai char(5), ten_de_tai char(50), ma_gv char(5), ma_loai char(5))
Sinhvien_detai (ma_de_tai char(5), ma_sv char(5))
Ghi chú :
- Loai : ghi thông tin về loại đề tài, VD : đề tài thuộc loại “Thống kê”, hay “Tính toán thông minh”,…
- <<nien_khoa>> ghi nhận là một số năm vào học. VD : niên khóa 2006, ghi là 2006
Phát biểu :
- Mỗi một đề tài đăng ký là thuộc duy nhất một loại nào đó, và có một giáo viên hướng dẫn.
- Một đề tài có thể có một hoặc nhiều sinh viên cùng tham gia làm.
- Một sinh viên có thể tham gia làm 1 hay nhiều đề tài (số lượng tùy theo ràng buộc đưa sau)
Câu hỏi
a. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà là học viên năm thứ 3 (năm học được tính bằng cách lấy năm hiện tại trừ đi niên khóa). (0.5 điểm)
b. Liệt kê danh sách gồm mã sinh viên, tên sinh viên mà làm hơn 2 loại đề tài khác nhau. (1 điểm)
c. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà không hề tham gia hướng dẫn bất cứ đề tài nào. (1 điểm)
d. Liệt kê danh sách gồm mã đề tài, tên đề tài, tên giáo viên hướng dẫn mà chỉ có duy nhất 1 sinh viên tham gia làm(1 điểm)
e. Liệt kê danh sách gồm mã giáo viên, tên giáo viên mà hướng dẫn ít đề tài nhất.(1 điểm)
Đáp án :
- Select ma_sv, ten_sv
From sinhvien
Where year(date()) – nien_khoa = 3
- Select sv.ma_sv,sv.ten_sv
From (sinhvien as sv inner join sinhvien_detai svdt on sv.ma_sv = svdt.ma_sv)
Inner join detai dt on dt.ma_de_tai = svdt.ma_de_tai
Group by sv.ma_sv,sv.ten_sv
Having count(distinct dt.ma_loai) > 2
- Select ma_gv,ten_gv
From giaovien
Where ma_gv not in (
Select ma_gv from detai
)
- Select dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
From ( detai dt inner join giaovien gv on gv.ma_gv = dt.ma_gv )
Inner join sinhvien_detai svdt on svdt.ma_de_tai = dt.ma_de_tai
Group by dt.ma_de_tai, dt.ten_de_tai, gv.ten_gv
Having count(svdt.masv) = 1
- Select ma_gv, count(distinct ma_de_tai) as tsdt
From detai
Group by ma_gv
Q
Select gv.ma_gv,gv.ten_gv
From Q inner join giaovien gv on gv.ma_gv = Q.ma_gv
Where Q.tsdt = (Select min(Q.tsdt) from Q)
Đề 3 :
1. Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F thỏa Q. (1 điểm)
F = { A -> BG ,D -> EG ,GB -> HA , D -> BA , B -> HG }
- Tìm tất cả các khóa chính.
- Hỏi tập phụ thuộc hàm K { A -> B ,D -> EBHG, B ->H , BG -> HA } có tương đương tập F hay không ? Giải thích tại sao ?
- Tìm bao đóng của các thuộc tính sau
o ABC
o DBG
Đáp án :
A -> B , B -> A , D -> EB , B -> HG
- Tìm tất cả các khóa
DC
- Không tương đương vì B -> G không được suy từ K
- ABC + = ABCHG
- DBG+ = DBGHAE
2. Cho cơ sở dữ liệu
Quản lý nguồn nhân lực
Chucvu (ma_chuc_vu char(5), ten_chuc_vu char(5))
Nhanvien (ma_nhan_vien char(5), ten_nhan_vien char(20), dia_chi char(50))
Congviec (so_cong_van char(5),ma_nhan_vien char(5), ma_chuc_vu char(5),
nam_bat_dau int, thang_bat_dau int, nam_ket_thuc int, thang_ket_thuc int)
Hesoluong (ma_chuc_vu char(5), so_nam_lam_viec int, he_so float)
Phát biểu :
- Mỗi một nhân viên chỉ có thể đảm nhiệm duy nhất một công việc trong 1 thời điểm.
- Mỗi nhân viên vẫn được lưu lại tất cả các chức vụ mà mình đã từng trải qua trong quá trình làm việc.
- Các chức vụ mà nhân viên đó đã làm trong quá khứ và sau đó đổi chức vụ và cũng có thể đổi lại chức vụ đó.
- Một công việc của một nhân viên được ghi nhận bằng năm bắt đầu và tháng bắt đầu và khi đã chuyển sang công việc mới thì năm kết thúc và tháng kết thúc mới được ghi nhận. (Bắt đầu là tính đầu tháng, kết thúc là tính cuối tháng)
- Tiền lương hằng tháng được tính theo hệ số lương theo chức vụ * mức lương căn bản.
- Hệ số lương được tính theo chức vụ và số năm làm việc với chức vụ đó (số năm này làm tròn xuống – tức làm 3 năm 6 tháng là 3 năm)
Câu hỏi :
a. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà đã làm hơn 2 chức vụ cho công ty. (1 điểm)
b. Liệt kê danh sách gồm mã nhân viên và tên nhân viên mà có làm chức vụ có tên là “giam doc” hay “truong phong” trong thời gian hơn 2 năm. (1 điểm)
c. Liệt kê danh sách gồm tên nhân viên, tên chức vụ hiện tại mà nhân viên này đang làm, và hệ số lương cho chức vụ đó. (1 điểm)
d. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm hết mọi chức vụ. (1 điểm)
e. Liệt kê danh sách gồm mã nhân viên, tên nhân viên mà đã làm chức vụ có tên là “truong phong” vào tháng 2 năm 2005 và cho đến bây giờ vẫn còn làm chức vụ đó mà không hề có sự thay đổi. (1 điểm)
Đáp án :
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) > 2
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where
ch.ten_chuc_vu in (“giam doc”,”truong phong”)
and
(
([(cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is not null] )
Or
( [(year(date()) – cv.nam_bat_dau)*12 + (month(date()) – cv.thang_bat_dau) >= 24 ] and [cv.nam_ket_thuc is null] )
)
- Select nv.ma_nhan_vien, nv.ten_nhan_vien, hs.he_so
From ((nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien)
Inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu)
Inner join hesoluong hs on
INT(((cv.nam_ket_thuc – cv.nam_bat_dau)*12 + (cv.thang_ket_thuc – cv.thang_bat_dau))/12) = hs.so_nam_lam_viec
Where cv.nam_ket_thuc is null and cv.thang_ket_thuc is null
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien
Group by nv.ma_nhan_vien, nv.ten_nhan_vien
Having count(distinct cv.ma_chuc_vu) =
(select count(ma_chuc_vu) from chucvu)
- Select nv.ma_nhan_vien, nv.ten_nhan_vien
From (nhanvien nv inner join congviec cv on cv.ma_nhan_vien = nv.ma_nhan_vien) inner join chucvu ch on ch.ma_chuc_vu = cv.ma_chuc_vu
Where ch.ten_chuc_vu = ‘Truong phong’ and
cv.nam_ket_thuc is null and
[
( cv.nam_bat_dau = 2005 and cv.thang_bat_dau <= 2)
Or
( cv.nam_bat_dau < 2005)
]
phamtuananh- Cống hiến
- Tổng số bài gửi : 165
Join date : 16/09/2009
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
chịu không nổi, bác quá kool ... thanks bac
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
cam on ban tuan anh nha
kool
kool
itlinh- Góp sức
- Tổng số bài gửi : 84
Join date : 27/09/2009
Đến từ : HCM
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
GREATTTTTTTTTTTTT!
Thanh củi
Thanh củi
nguyenduc- Cống hiến
- Tổng số bài gửi : 312
Join date : 17/09/2009
Age : 44
Đến từ : Bến tre - Hồ chí minh
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
Thanks Tuan Anh
Cong nhan la bac Tuan Anh nha ta nhiet tinh
Very good !!!!!!!!!!!!!!
Cong nhan la bac Tuan Anh nha ta nhiet tinh
Very good !!!!!!!!!!!!!!
tvthuylinh01- Khởi đầu
- Tổng số bài gửi : 30
Join date : 21/10/2009
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
wa' chuẩn, wa' đẹp..dể iu pác wa' haha
thanks kiu.
thanks kiu.
hapt1206- Góp sức
- Tổng số bài gửi : 51
Join date : 15/10/2009
Age : 41
Đến từ : HCM
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
Hi, bà con
Cho mình hỏi: thi CSDL đề mở hay đóng vậy?
Thân,
ThuHang.
Cho mình hỏi: thi CSDL đề mở hay đóng vậy?
Thân,
ThuHang.
ThuHang- Cống hiến
- Tổng số bài gửi : 193
Join date : 25/09/2009
De thi
Day la de thi cac khoa truoc, cac ban tham khao nhe!
Một cửa hàng muốn quản lý việc tính số tiền khách phải trả khi mua hàng khi mà giá bán thay đổi và cửa hàng lại có chính sách giảm giá. Sau đây là các quy tắc quản lý và danh sách tối thiểu các thuộctính:
Các quy tắc quản lý:
1. Giá bán hàng hoá, nếu thay đổi, sẽ được điều chỉnh vào đầu mỗi ngày và được áp dụng cho đến
lần thay đổi sau (những lần thay đổi giá đều được lưu trữ);
2. Hoá đơn với trị giá từ 500 trở lên sẽ được giảm giá 5% trên toàn bộ trị giá hoá đơn;
Danh sách tối thiểu các thuộc tính:
mã hàng (M)
tên hàng (T)
giá bán (G)
ngày áp dụng (A)
hoá đơn số (H)
ngày bán (D)
lượng bán (L)
Hãy thực hiện các công việc sau (cho phép lưu giá bán thực tế nếu cần thiết)
Câu 1 (3 điểm)
Với mỗi quy tắc, chọn làm 1 trong 3 yêu cầu sau:
1. Hoặc cài đặt ràng buộc toàn vẹn (khoá chính, khoá ngoại, miền giá trị);
2. Hoặc viết một trigger thích hợp để kiểm tra;
3. Hoặc viết câu truy vấn chỉ ra các vi phạm (để sử dụng sau này, khi cần).
Câu 2 (3 điểm)
Giả sử cơ sở dữ liệu đã nhất quán, hãy viết các câu truy vấn:
1. Đưa ra bảng giá được áp dụng trong ngày N, thông tin gồm (mã hàng, tên hàng, giá bán, ngày áp
dụng);
2. Tính số tiền khách phải trả trị cho mỗi hoá đơn, thông tin gồm (hoá đơn số, ngày bán, trị giá, giảm
giá, phải trả);
3. Tìm những mặt hàng chưa có giá bán.
Câu 3 (2 điểm)
Xét lược đồ quan hệ <R, F>, với R = MTGAHDL và F = { H → D, M → T, MA → G, MH → L}.
Hãy
1. Xác định dạng chuẩn của <R, F>;
2. Biết F đã tối thiểu, hãy chuẩn hoá <R, F> bằng thuật toán tổng hợp.
Một cửa hàng muốn quản lý việc tính số tiền khách phải trả khi mua hàng khi mà giá bán thay đổi và cửa hàng lại có chính sách giảm giá. Sau đây là các quy tắc quản lý và danh sách tối thiểu các thuộctính:
Các quy tắc quản lý:
1. Giá bán hàng hoá, nếu thay đổi, sẽ được điều chỉnh vào đầu mỗi ngày và được áp dụng cho đến
lần thay đổi sau (những lần thay đổi giá đều được lưu trữ);
2. Hoá đơn với trị giá từ 500 trở lên sẽ được giảm giá 5% trên toàn bộ trị giá hoá đơn;
Danh sách tối thiểu các thuộc tính:
mã hàng (M)
tên hàng (T)
giá bán (G)
ngày áp dụng (A)
hoá đơn số (H)
ngày bán (D)
lượng bán (L)
Hãy thực hiện các công việc sau (cho phép lưu giá bán thực tế nếu cần thiết)
Câu 1 (3 điểm)
Với mỗi quy tắc, chọn làm 1 trong 3 yêu cầu sau:
1. Hoặc cài đặt ràng buộc toàn vẹn (khoá chính, khoá ngoại, miền giá trị);
2. Hoặc viết một trigger thích hợp để kiểm tra;
3. Hoặc viết câu truy vấn chỉ ra các vi phạm (để sử dụng sau này, khi cần).
Câu 2 (3 điểm)
Giả sử cơ sở dữ liệu đã nhất quán, hãy viết các câu truy vấn:
1. Đưa ra bảng giá được áp dụng trong ngày N, thông tin gồm (mã hàng, tên hàng, giá bán, ngày áp
dụng);
2. Tính số tiền khách phải trả trị cho mỗi hoá đơn, thông tin gồm (hoá đơn số, ngày bán, trị giá, giảm
giá, phải trả);
3. Tìm những mặt hàng chưa có giá bán.
Câu 3 (2 điểm)
Xét lược đồ quan hệ <R, F>, với R = MTGAHDL và F = { H → D, M → T, MA → G, MH → L}.
Hãy
1. Xác định dạng chuẩn của <R, F>;
2. Biết F đã tối thiểu, hãy chuẩn hoá <R, F> bằng thuật toán tổng hợp.
JanePhuong- Tổng số bài gửi : 14
Join date : 29/09/2009
Re: Đề thi và bài giải mẫu môn cơ sở dữ liệu các khóa trước!
Con mot de nua ne. Cac ban tham khao nhe!
Minh chuc cac ban noen vui ve va mot nam moi an khang thinh vuong nhe!
Chuc cac ban K14 thi tot mon nay nhe!
Câu 1 (4 điểm)
Cho lược đồ cơ sở dữ liệu quan hệ:
Lược đồ cơ sở dữ liệu
Khách Sạn(mã khách Sạn, Tên khách sạn, Địa chỉ khách sạn)
Phòng (Phòng số, mã khách Sạn, Loạị phòng, đơn Giá)
Thuê phòng (mã khách Sạn, mã Khách hàng, Từ ngày, Đến ngày, Phòng số)
Khách thuê (mã Khách hàng, Tên khách hàng, Địa chỉ khách hàng, số CMND)
Viết tắt:
s(STsDs)
p(PSLG)
t(SKTDP)
k(KTkDkC)
Hãy viết các câu truy vấn trả lời các câu hỏi sau:
1. Liệt kê các khách sạn có giá phòng đôi và phòng dành cho gia đình dưới 200, thông tin gồm Tên
khách sạn, Địa chỉ khách sạn, Loạị phòng, đơn Giá.
2. Liệt kê danh sách khách thuê hiện đang còn ở tại khách sạn hoàng gia, thông tin gồm Tên khách
hàng, Địa chỉ khách hàng, số CMND, Từ ngày, Đến ngày, Phòng số.
3. Liệt kê tổng số phòng (N) của mỗi khách sạn theo từng loại phòng, thông tin gồm Tên khách sạn,
Loạị phòng, tổng số phòng
4. Biết hiệu suất sử dụng phòng trong tháng (H) là số ngày phòng có khách thuê chia cho số ngày
của tháng. Hãy cho biết hiệu suất sử dụng phòng trong tháng 12/2006 của mỗi khách sạn theo từng
loại phòng, thông tin gồm Tên khách sạn, Loạị phòng, hiệu suất sử dụng phòng.
Câu 2 (5 điểm)
Chủ của một cửa hàng bán giày dép muốn xây dựng một chương trình nhỏ, độc lập dành cho nhân
viên bán hàng. Người này dùng chương trình để thực hiện các nhiệm vụ sau:
− In bảng giá vào đầu mỗi ngày, gồm: mã hàng, tên hàng, quy cách, đơn giá, màu sắc;
− Lưu chi tiết bán hàng ngay sau khi bán, gồm: hoá đơn số, ngày bán, mã hàng, số lượng; đồng
thời in hoá đơn cho khách, gồm: hoá đơn số, ngày bán, mã hàng, số lượng, đơn giá, thành tiền,
trị giá;
− In báo cáo bán hàng vào cuối mỗi ngày, gồm: ngày bán, mã hàng, tên hàng, quy cách, tổng
lượng bán, lượng tồn, đơn giá, thành tiền, doanh số bán hàng.
Hãy:
1. Vẽ mô hình thực thể kết hợp;
2. Vẽ mô hình cơ sở dữ liệu quan hệ từ kết quả trên;
3. Xác định dạng chuẩn của lược đồ cơ sở dữ liệu vừa lập;
4. Viết 2 câu truy vấn
c. Lấy bảng giá
d. Báo cáo bán hàng trong ngày.
Câu 3 (3 điểm)
Xét lược đồ quan hệ <R, F>, với
R = MGQKTHNCLD và
F = { M → Q, MK→ TG, H → N, HMC → L, C → D}.
Hãy
1. Xác định dạng chuẩn của <R, F>;
2. Biết F đã tối thiểu, hãy chuẩn hoá <R, F> bằng thuật toán tổng hợp.
Minh chuc cac ban noen vui ve va mot nam moi an khang thinh vuong nhe!
Chuc cac ban K14 thi tot mon nay nhe!
Câu 1 (4 điểm)
Cho lược đồ cơ sở dữ liệu quan hệ:
Lược đồ cơ sở dữ liệu
Khách Sạn(mã khách Sạn, Tên khách sạn, Địa chỉ khách sạn)
Phòng (Phòng số, mã khách Sạn, Loạị phòng, đơn Giá)
Thuê phòng (mã khách Sạn, mã Khách hàng, Từ ngày, Đến ngày, Phòng số)
Khách thuê (mã Khách hàng, Tên khách hàng, Địa chỉ khách hàng, số CMND)
Viết tắt:
s(STsDs)
p(PSLG)
t(SKTDP)
k(KTkDkC)
Hãy viết các câu truy vấn trả lời các câu hỏi sau:
1. Liệt kê các khách sạn có giá phòng đôi và phòng dành cho gia đình dưới 200, thông tin gồm Tên
khách sạn, Địa chỉ khách sạn, Loạị phòng, đơn Giá.
2. Liệt kê danh sách khách thuê hiện đang còn ở tại khách sạn hoàng gia, thông tin gồm Tên khách
hàng, Địa chỉ khách hàng, số CMND, Từ ngày, Đến ngày, Phòng số.
3. Liệt kê tổng số phòng (N) của mỗi khách sạn theo từng loại phòng, thông tin gồm Tên khách sạn,
Loạị phòng, tổng số phòng
4. Biết hiệu suất sử dụng phòng trong tháng (H) là số ngày phòng có khách thuê chia cho số ngày
của tháng. Hãy cho biết hiệu suất sử dụng phòng trong tháng 12/2006 của mỗi khách sạn theo từng
loại phòng, thông tin gồm Tên khách sạn, Loạị phòng, hiệu suất sử dụng phòng.
Câu 2 (5 điểm)
Chủ của một cửa hàng bán giày dép muốn xây dựng một chương trình nhỏ, độc lập dành cho nhân
viên bán hàng. Người này dùng chương trình để thực hiện các nhiệm vụ sau:
− In bảng giá vào đầu mỗi ngày, gồm: mã hàng, tên hàng, quy cách, đơn giá, màu sắc;
− Lưu chi tiết bán hàng ngay sau khi bán, gồm: hoá đơn số, ngày bán, mã hàng, số lượng; đồng
thời in hoá đơn cho khách, gồm: hoá đơn số, ngày bán, mã hàng, số lượng, đơn giá, thành tiền,
trị giá;
− In báo cáo bán hàng vào cuối mỗi ngày, gồm: ngày bán, mã hàng, tên hàng, quy cách, tổng
lượng bán, lượng tồn, đơn giá, thành tiền, doanh số bán hàng.
Hãy:
1. Vẽ mô hình thực thể kết hợp;
2. Vẽ mô hình cơ sở dữ liệu quan hệ từ kết quả trên;
3. Xác định dạng chuẩn của lược đồ cơ sở dữ liệu vừa lập;
4. Viết 2 câu truy vấn
c. Lấy bảng giá
d. Báo cáo bán hàng trong ngày.
Câu 3 (3 điểm)
Xét lược đồ quan hệ <R, F>, với
R = MGQKTHNCLD và
F = { M → Q, MK→ TG, H → N, HMC → L, C → D}.
Hãy
1. Xác định dạng chuẩn của <R, F>;
2. Biết F đã tối thiểu, hãy chuẩn hoá <R, F> bằng thuật toán tổng hợp.
JanePhuong- Tổng số bài gửi : 14
Join date : 29/09/2009
:: Góc Học Tập :: Cơ Sở Dữ Liệu
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
|
|
10/12/2020, 01:06 by Ti3uThucodon93
» Tiểu thuyết : Yêu anh là sai lầm của cuộc đời em
24/2/2019, 11:49 by Ti3uThucodon93
» Tiểu thuyết : Yêu sai thời điểm
23/2/2019, 16:39 by Ti3uThucodon93
» Thơ Trung Quốc !
15/10/2018, 10:05 by Ti3uThucodon93
» Câu nói hay !
22/1/2017, 15:59 by Ti3uThucodon93
» Thơ tình dài !
15/11/2016, 11:45 by Ti3uThucodon93
» Thơ 4 câu !
1/9/2016, 16:14 by Ti3uThucodon93
» Thơ hài hước !
9/8/2016, 09:04 by Ti3uThucodon93
» Cách chữa trị bệnh hôi nách dành cho sinh viên
30/7/2016, 16:02 by thammybacsihathanh