Professional Documents
Culture Documents
Môn: CƠ SỞ DỮ LIỆU
ĐỀ SỐ 1
(Sinh viên không được phép sử dụng tài liệu - Đề thi gồm có 2 trang)
Câu 1: (8 điểm)
Cho lược đồ cơ sở dữ liệu “Quản lý hồ sơ bệnh án điện tử công dân” có cấu trúc như sau:
BENHNHAN (MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)
Tân từ: Quan hệ BENHNHAN lưu trữ thông tin của một bệnh nhân, bao gồm: họ tên (HOTEN), ngày
sinh (NGSINH), số chứng minh nhân dân/căn cước công dân/hộ chiếu (CMND), địa chỉ (DIACHI), đối
tượng (DOITUONG), số lần phẫu thuật (SLPT). Mỗi bệnh nhân được cấp một mã số (MABN).
KHAMBENH (MAKB, MABN, BENH, BENHKT, BATDAU, KETTHUC, KETLUAN, TAIKHAM)
Tân từ: Quan hệ KHAMBENH chứa các thông tin của việc khám bệnh, bao gồm: mã khám bệnh
(MAKB), mã bệnh nhân được khám bệnh (MABN), bệnh chính (BENH), bệnh kèm theo (BENHKT), thời
gian bắt đầu việc khám bệnh (BATDAU), thời gian kết thúc việc khám bệnh (KETTHUC), kết luận của
bác sĩ (KETLUAN) và ngày hẹn tái khám nếu có (TAIKHAM).
PHAUTHUAT (MAPT, MAKB, BOPHANPT, LOAIPT, KETQUA)
Tân từ: Quan hệ PHAUTHUAT chứa các thông tin sự kiện phẫu thuật, bao gồm: mã phẫu thuật
(MAPT), mã khám bệnh mà bác sĩ kết luận chỉ định phẫu thuật (MAKB), bộ phận cơ thể cần phẫu
thuật (BOPHANPT), loại phẫu thuật (LOAIPT) và kết quả ca phẫu thuật (KETQUA).
BACSI (MABS, HOTEN, NAMSINH, CHUYENMON, KHOA, BENHVIEN)
Tân từ: Quan hệ BACSI lưu trữ thông tin các bác sĩ, bao gồm: mã bác sĩ (MABS), họ tên (HOTEN), năm
sinh (NAMSINH), chuyên môn (CHUYENMON), khoa (KHOA) và bệnh viện đang công tác (BENHVIEN).
PHUTRACH (MABS, MAKB, BATDAUPT, KETTHUCPT)
Tân từ: Quan hệ PHUTRACH lưu trữ thông tin phụ trách khám bệnh của mỗi bác sĩ, bao gồm: mã bác
sĩ phụ trách (MABS), mã khám bệnh (MAKB), thời điểm bắt đầu phụ trách (BATDAUPT), thời điểm kết
thúc (KETTHUCPT).
Ghi chú: Các thuộc tính gạch dưới là các thuộc tính khóa chính.
1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (bao gồm bối cảnh, nội dung, bảng tầm ảnh
hưởng): (2 điểm)
“Số lần phẫu thuật của một bệnh nhân phải bằng số lần phẫu thuật được chỉ định qua các lần
khám của bệnh nhân đó.”
Lưu ý: Không được sửa thuộc tính khóa chính.
20521743 Lê Hải Phong
BỐI CẢNH: BENHNHAN, KHAMBENH, PHAUTHUAT
NỘI DUNG:
Cách 1:
∀ bn ∈ BENHNHAN: bn.SLPT =COUNT (kbpt ∈ KPBT : bn . MaBN =kbpt . MaBN ) (kbpt.MaPT)
Với KBPT ←KHAMBENH⋈ MaKB PHAUTHUAT)
Cách 2:
∀ bn ∈ BENHNHAN: bn.SLPT =COUNT (kb ∈KHAMBENH , pt ∈PHAUTHUAT :bn . MaBN =kb . MaBN ∧ pt . MaKB=kb .MaKB )
(pt.MaPT)
BẢNG TAH:
THÊM XÓA SỬA
BENHNHAN +(1) - +(SLPT)
KHAMBENH - - +(MaBN)
PHAUTHUAT + + +(MaKB)
(1): Kiểm tra SLPT = 0
2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL: (6 điểm)
a. Cho biết thông tin bệnh nhân (HOTEN, CMND) thuộc đối tượng ‘BHYT’ hoặc có địa chỉ ở ‘Đồng
Nai’. Kết quả được sắp xếp theo số lần phẫu thuật giảm dần. (1 điểm)
20521839, Đỗ Phi Sơn
SELECT HOTEN, CMND
FROM BENHNHAN
c. Cho biết số lần khám bệnh của từng bệnh nhân trong năm 2020. Thông tin hiển thị gồm:
MABN, HOTEN và SL. (1 điểm)
20520748 - Nguyễn Minh Tâm
SELECT B.MABN, B.HOTEN, COUNT(K.MAKB) AS SL
FROM BENHNHAN B inner join KHAMBENH K on B. MABN = K. MABN
WHERE YEAR (BATDAU) = 2020
GROUP BY B.MABN, B.HOTEN
d. Cho biết thông tin những bác sĩ (MABS, HOTEN) có chuyên môn ‘Tai-Mũi-Họng’ chưa được
phụ trách khám bệnh trong năm 2020 (BATDAUPT). (1 điểm)
Cách 1:
20521818 _ Trần Văn Quý
SELECT MABS, HOTEN
FROM BACSI
WHERE CHUYENMON=’TAI-MUI-HONG’
EXCEPT
SELECT BS.MABS, HOTEN
FROM BACSI AS BS, PHUTRACH AS PT
WHERE BS.MABS=PT.MABS AND
YEAR(BAUDAUPT)=2020
Cách 2: NOT IN
(20521661 - Cao Đình Duy Ngọc)
SELECT BACSI.MABS, HOTEN
FROM BACSI
WHERE CHUYENMON = N‘Tai-Mũi-Họng’
AND MABS NOT IN (SELECT MABS FROM PHUTRACH
WHERE YEAR(BATDAUPT) = 2020)
HAVING COUNT(MAKB)=0
Cách 1:
20521813 - Nguyễn Huỳnh Vương Quốc
SELECT BS.MABS, BS.HOTEN, COUNT (KB.MAKB) AS SLKB
FROM BACSI BS, PHUTRACH PT, BENHNHAN BN, KHAMBENH KB
WHERE BS.CHUYENMON = ‘Hồi sức - Cấp cứu’
AND BN.HOTEN = ‘Nguyễn Văn A’
AND BS.MABS = PT.MABS
AND PT.MAKB = KB.MAKB
AND KB.MABN = BN.MABN
GROUP BY BS.MABS, BS.HOTEN
HAVING COUNT(KB.MAKB) = ( SELECT COUNT(KB.MAKB)
FROM BENHNHAN BN, KHAMBENH KB
WHERE BN.MABN = KB.MABN
AND BN.HOTEN = ‘Nguyễn Văn A’)
Cách 2:
SELECT BS.MABS, BS.HOTEN
FROM BACSI BS
WHERE BS.CHUYENMON = ‘Hồi sức - Cấp cứu’
AND NOT EXISTS ( SELECT *
FROM BENHNHAN BN, KHAMBENH KB
WHERE BN.MABN = KB.MABN
AND BN.HOTEN = ‘Nguyễn Văn A’
AND NOT EXISTS ( SELECT *
FROM PHUTRACH PT
WHERE PT.MABS = BS.MABS
AND PT.MAKB = KB.MAKB))
f. Cho biết thông tin bác sĩ (MABS, HOTEN) có số lần phụ trách khám bệnh nhiều nhất. (1 điểm)
Cách 1:20521986 Lê Thị Anh Thư
SELECT TOP 1 WITH TIES BS.MABS, HOTEN, COUNT(MAKB) AS SLKB
FROM BACSI BS, PHUTRACH PT
WHERE BS.MABS=PT.MABS
GROUP BY BS.MABS, HOTEN
ORDER BY COUNT(MAKB) DESCS
CÁCH 2- 20521936- Nguyễn Thị Phương Thảo
SELECT BACSI.MABS, BACSI.HOTEN, COUNT(MAKB) AS SLKB
FROM BACSI, PHUTRACH
WHERE BACSI.MABS=PHUTRACH.MABS
GROUP BY BACSI.MABS, BACSI.HOTEN
HAVING COUNT (MAKB) >= ALL ( SELECT COUNT(MAKB)
FROM PHUTRACH
GROUP BY MAKB)
Câu 2: (2 điểm)
Cho lược đồ quan hệ Q(ABCDE) có tập phụ thuộc hàm: F = {A→ BC, A→E, BC→AD, AB→D}
+
1. Phụ thuộc hàm BDC→E có thuộc F không? Giải thích. (0.75 điểm)
20520422 Nguyễn Minh Cường
2. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích. (1.25 điểm)
20521743 Lê Hải Phong
- Tìm tất cả các khóa của Q
Tập nguồn: N= ∅
Tập trung gian: TG= {A ,B, C}
Ta có các tập con của TG: {A}, {B}, {C}, {AB}, {AC}, {BC}, {ABC}
Tìm bao đóng:
F = ABCED = Q ❑ ⇒ A là Khóa, loại các tập con của TG có chứa A: {AB}, {AC}, {ABC}
A+¿ ¿ +¿¿
●
F = B khác Q ❑ ⇒ B không là khóa
B+¿¿ +¿¿
●
F = C khác Q ❑ ⇒ C không là khóa
C +¿¿ +¿¿
●
F = BCADE = Q ❑ ⇒ BC là khóa
BC +¿¿ +¿¿
●
Khóa của Q là A, BC
ĐỀ SỐ 2 (Sinh viên không được phép sử dụng tài liệu - Đề thi gồm có 2 trang)
Câu 1: (8 điểm)
Cho lược đồ cơ sở dữ liệu “Quản lý hồ sơ bệnh án điện tử công dân” có cấu trúc như sau:
BENHNHAN (MABN, HOTEN, NGSINH, CMND, DIACHI, DOITUONG, SLPT)
Tân từ: Quan hệ BENHNHAN lưu trữ thông tin của một bệnh nhân, bao gồm: họ tên (HOTEN), ngày
sinh (NGSINH), số chứng minh nhân dân/căn cước công dân/hộ chiếu (CMND), địa chỉ (DIACHI), đối
tượng (DOITUONG), số lần phẫu thuật (SLPT). Mỗi bệnh nhân được cấp một mã số (MABN).
KHAMBENH (MAKB, MABN, BENH, BENHKT, BATDAU, KETTHUC, KETLUAN, TAIKHAM)
Tân từ: Quan hệ KHAMBENH chứa các thông tin của việc khám bệnh, bao gồm: mã khám bệnh
(MAKB), mã bệnh nhân được khám bệnh (MABN), bệnh chính (BENH), bệnh kèm theo (BENHKT), thời
gian bắt đầu việc khám bệnh (BATDAU), thời gian kết thúc việc khám bệnh (KETTHUC), kết luận của
bác sĩ (KETLUAN) và ngày hẹn tái khám nếu có (TAIKHAM).
PHAUTHUAT (MAPT, MAKB, BOPHANPT, LOAIPT, KETQUA)
Tân từ: Quan hệ PHAUTHUAT chứa các thông tin sự kiện phẫu thuật, bao gồm: mã phẫu thuật
(MAPT), mã khám bệnh mà bác sĩ kết luận chỉ định phẫu thuật (MAKB), bộ phận cơ thể cần phẫu
thuật (BOPHANPT), loại phẫu thuật (LOAIPT) và kết quả ca phẫu thuật (KETQUA).
BACSI (MABS, HOTEN, NAMSINH, CHUYENMON, KHOA, BENHVIEN)
Tân từ: Quan hệ BACSI lưu trữ thông tin các bác sĩ, bao gồm: mã bác sĩ (MABS), họ tên (HOTEN), năm
sinh (NAMSINH), chuyên môn (CHUYENMON), khoa (KHOA) và bệnh viện đang công tác (BENHVIEN).
PHUTRACH (MABS, MAKB, BATDAUPT, KETTHUCPT)
Tân từ: Quan hệ PHUTRACH lưu trữ thông tin phụ trách khám bệnh của mỗi bác sĩ, bao gồm: mã bác
sĩ phụ trách (MABS), mã khám bệnh (MAKB), thời điểm bắt đầu phụ trách (BATDAUPT), thời điểm kết
thúc (KETTHUCPT).
Ghi chú: Các thuộc tính gạch dưới là các thuộc tính khóa chính.
1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (bao gồm bối cảnh, nội dung, bảng tầm ảnh
hưởng): (2 điểm)
“Số lần phẫu thuật của một bệnh nhân phải bằng số lần phẫu thuật được chỉ định qua các lần
khám của bệnh nhân đó.”
Lưu ý: Không được sửa thuộc tính khóa chính → Giống đề 1
2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL: (6 điểm)
a. Cho biết thông tin khám bệnh (MAKB, KETLUAN) có bệnh chính hoặc bệnh kèm theo là ‘Suy
thận’. Kết quả được sắp xếp theo mã bệnh nhân tăng dần. (1 điểm)
20521310-Trịnh Thế Hiển
SELECT MAKB, KETLUAN
FROM KHAMBENH
WHERE BENH = n‘Suy thận’ OR BENHKT = n‘Suy thận’
ORDER BY MABN ASC
b. Cho biết thông tin (MAKB, MABS, HOTEN) của những bác sĩ có chuyên môn là ‘Tim mạch’ bắt
đầu phụ trách từ năm 2021. (1 điểm)
20521940 _Nguyễn Trần Gia Thế
SELECT MAKB, BACSI.MABS, HOTEN
FROM BACSI, PHUTRACH
WHERE BACSI.MABS=PHUTRACH.MABS
AND CHUYENMON=’Tim mạch’
AND YEAR(BATDAUPT)>=2021
c. Cho biết số lần phụ trách khám bệnh của từng bác sĩ trong năm 2020 (BATDAUPT). Thông tin
hiển thị gồm: MABS, HOTEN và SL. (1 điểm)
19520025 - Đỗ Đông Chiến
d. Cho biết thông tin những bệnh nhân (MABN, HOTEN) được bác sỹ chuẩn đoán cả 2 bệnh chính
là ‘Viêm phổi’ và ‘Tim mạch’ có lịch tái khám trong năm 2021. (1 điểm) -> PHÉP GIAO
Cách 1: INTERSECT
20521817- Trần Ngọc Quý
SELECT BN.MABN, HOTEN
FROM BENHNHAN AS BN, KHAMBENH AS KB
WHERE BN.MABN=KB.MABN
AND BENH=’VIEM PHOI’ AND YEAR(TAIKHAM)=2021
INTERSECT
SELECT BN.MABN, HOTEN
FROM BENHNHAN AS BN, KHAMBENH AS KB
WHERE BN.MABN=KB.MABN
AND BENH=’TIM MACH’ AND YEAR(TAIKHAM)=2021
Cách 2: IN
20521273 _TRẦN THỊ THU HÀ
Select bn.MABN, HOTEN
from KHAMBENH kb, BENHNHAN bn
where BENH= “Viêm phổi” and kb.MABN=kb.MABN and year(TAIKHAM)=2021
and bn.MABN IN (Select MABN
from KHAMBENH
where BENH= “Tim mạch” and year(TAIKHAM)=2021)
Cách 3: EXISTS
Trần ngọc quý - 20521817
SELECT BN.MABN, HOTEN
FROM BENHNHAN BN, KHAMBENH KB1
WHERE BN.MABN = KB1.MABN
AND BENH = 'VIEM PHOI' AND YEAR(TAIKHAM)=2021
AND EXISTS (
SELECT *
FROM KHAMBENH KB2
WHERE BENH = 'TIM MACH' AND YEAR(KB2. TAIKHAM) = 2021
AND KB2.MABN =KB1.MABN
)
e. Cho biết thông tin (MABS, HOTEN) của những bác sĩ khoa ‘Cấp cứu’ tham gia tất cả các mã
khám bệnh có bộ phận cơ thể cần phẫu thuật là ‘Phổi’. (1 điểm)
20520594- Trần Đình Khôi
Select bs.MABS, HOTEN
From BACSI
C +¿¿
F = C khác Q+ => C không là khoá
D +¿¿
F = DBCEA = Q+ => D là khoá, loại các tập con chứa D: {BD},{CD},{BCD}
BC +¿¿
F = BCADE = Q+ -> BC là khoá
C +¿¿
F = C
+¿¿ +¿¿
Ta thấy BF , C F không chứa thuộc tính không khóa A, E. nên các thuộc tính không khoá đều
phụ thuộc đầy đủ vào khoá.
Do vậy Q đạt DC2
----------------------------------------------------------------Hết-------------------------------------------------------
ĐỀ THI CUỐI KỲ HỌC KỲ I, NĂM HỌC: 2019-2020
Môn: CƠ SỞ DỮ LIỆU
ĐỀ SỐ 1
Câu 1: (8 điểm) Cho lược đồ cơ sở dữ liệu “Quản lý thế vận hội Olympic” có cấu trúc như sau:
Quocgia (MaQG, TenQG, ChauLuc, DienTich)
Tân từ: Quan hệ Quocgia chứa thông tin về quốc gia gồm: mã quốc gia (MaQG), tên quốc gia
(TenQG), tên châu lục (ChauLuc), diện tích (DienTich).
Thevanhoi (MaTVH, TenTVH, MaQG, Nam)
Tân từ: Quan hệ Thevanhoi chứa thông tin về thế vận hội gồm: mã thế vận hội (MaTVH), tên thế vận
hội (TenTVH), mã quốc gia đăng cai thế vận hội (MaQG), năm (Nam) diễn ra thế vận hội.
Vandongvien (MaVDV, HoTen, NgSinh, GioiTinh, QuocTich)
Tân từ: Quan hệ Vandongvien chứa thông tin vận động viên gồm: mã vận động viên (MaVDV), họ tên
(HoTen), ngày sinh (NgSinh), giới tính (GioiTinh), quốc tịch (QuocTich) của vận động viên (quốc tịch
chính là mã quốc gia)
Noidungthi (MaNDT, TenNDT, GhiChu)
Tân từ: Quan hệ Noidungthi chứa thông tin nội dung thi gồm: mã nội dung thi (MaNDT), tên nội dung
thi (TenNDT), ghi chú (GhiChu).
Thamgia (MaVDV, MaNDT, MaTVH, HuyChuong)
Tân từ: Quan hệ Thamgia chứa thông tin vận động viên (MaVDV) tham dự nội dung (MaNDT) gì ở thế
vận hội (MaTVH) nào và đạt huy chương gì (thuộc tính HuyChuong có giá trị là: 0 nếu không đạt huy
chương, 1 nếu đạt huy chương vàng, 2 nếu đạt huy chương bạc, 3 nếu đạt huy chương đồng).
Ghi chú: Các thuộc tính gạch dưới là các thuộc tính khóa chính
1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (bao gồm bối cảnh, nội dung, bảng tầm ảnh
hưởng): (1.5 điểm)
Tại một kỳ thế vận hội, mỗi nội dung thi chỉ có duy nhất một huy chương vàng.
Nguyễn Huỳnh Vương Quốc - 20521813
- Bối cảnh: THAMGIA
- Nội dung:
∀ tg 1 , tg2 ∈THAMGIA : Nếu tg1.MaTVH = tg2.MaTVH ∧tg1.MaNDT = tg2.MaDT ∧
tg1.HuyChuong = 1 thì tg2.HuyChuong ≠ 1
∀ tg 1 ∈THAMGIA :
COUNT ❑(tg 2∈THAMGIA :tg 2. MaTVH =tg1. MaTVH ∧ tg2. MaNDT =tg 1. MaNDT ∧ tg 2.HuyChuong=1) (¿) ≤1
THAMGIA + - +(HuyChuong)
2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL: (6 điểm)
a. Liệt kê danh sách vận động viên (HoTen, NgSinh, GioiTinh) có Quốc tịch là ‘UK’ và sắp xếp
danh sách theo (HoTen) tăng dần. (1 điểm)
20521808 Nguyễn Xuân Quang
SELECT HoTen, NgSinh, GioiTinh
FROM Vandongvien
WHERE Quoctich=’UK’
ORDER BY HoTen
b. In ra danh sách những vận động viên tham gia nội dung thi ‘Bắn Cung’ ở thế vận hội
‘Olympic ’. (1 điểm)
20521808 Nguyễn Xuân Quang
SELECT VDV.MaVDV, HoTen
FROM Noidungthi N join Thamgia TG on T.MaNDT=TG.MaNDT
join Thevanhoi TVH on TVH.MaTVH=TG.MaTVH
join Vandongvien VDV on VDV.MaVDV = TG.MaVDV
WHERE TenTVH=‘Olympic ’ and TenNDT=‘Bắn Cung’
c. Cho biết số lượng huy chương vàng mà các vận động viên ‘Nhật Bản’ đạt được ở thế vận
hội diễn ra vào năm 2020. (1 điểm)
CACH 1: 19520025 - DO DONG CHIEN
SELECT COUNT(HUYCHUONG)
FROM THAMGIA TG, VANDONGVIEN VDV, THEVANHOI TVH, QUOCGIA QG
WHERE VDV.MAVDV = TG.MAVDV
AND TVH.MATVH = TG.MATVH
AND VDV.QUOCTICH = QG.MAQG
AND HUYCHUONG = 1
AND TENQG = ‘NHAT BAN’
20521273-Trần Thị Thu Hà
Select count(HuyChuong=1)
d. Liệt kê họ tên và quốc tịch của những vận động viên tham gia cả 2 nội dung thi ‘100m bơi
ngửa’ và ‘200m tự do’. (1 điểm)
20521871 - Nguyễn Hữu Minh Tâm
Cách 1: INTERSECT
(SELECT HoTen, QuocTich
FROM Vandongvien VDV, Thamgia TG, Noidungthi NDT
WHERE VDV.MaVDV = TG.MaVDV
AND TG.MANDT = NDT.MaNDT
AND NDT.TenNDT = ’100m bơi ngửa’)
INTERSECT
(SELECT HoTen, QuocTich
FROM Vandongvien VDV, Thamgia TG, Noidungthi NDT
WHERE VDV.MaVDV = TG.MaVDV
AND TG.MANDT = NDT.MaNDT
AND NDT.TenNDT = ’200m tự do’)
Câu 2: Phụ thuộc hàm và các dạng chuẩn (2.5 điểm)
Cho lược đồ quan hệ Q(ABCDEGH) có tập phụ thuộc hàm:
F = {f1: AD→CG; f2: AE→BH; f3: C→D; f4: CE→H; f5: DE→G; f6: CD→BE}
1. c. (1 điểm)
Nguyễn Minh Cường 20520422
2. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích. (1.5 điểm)
20520477 - Nguyễn Phạm Hồng Duyên.
- Tìm khóa của Q
Tập nguồn:{A}
Ta có: (A)+ =A khác Q+ => A không là khóa của Q
Tập trung gian:{C}, {D}, {E}
Các tập con của tập trung gian: {C}, {D}, {E}, {CD}, {DE}, {CE}, {CDE}
Tập đích: {B}, {G}, {H}
Tính bao đóng:
(AC)+ =ACDGBEH = Q+ => AC là khóa, loại các tập con chứa C: {CD}, {CE}, {CDE}
(AD)+ =ADCGBEH = Q+ => AD là khóa, loại các tập con chứa D: {DE}
(AE)+ =AEBH khác Q+ => AE không là khóa
Suy ra khóa của Q là AC và AD
- Xét dạng chuẩn 2
Cách 1:
Tập con thât sự của khóa là {A}, {C}, {D}
(A)+ =A
(C)+ =CDBEGH
(D)+ =D
Ta thấy (C)+ có chứa H, mà H là thuộc tính không khóa, nên H không phụ thuộc đầy đủ vào khóa.
Kết luận: lược đồ quan hệ (Q, F) không đạt dạng chuẩn 2.
Cách 2:
F = {f1: AD→CG; f2: AE→BH; f3: C→D; f4: CE→H; f5: DE→G; f6: CD→BE}
Vì C là tập con của khóa AC và B, E là thuộc tính không khóa => các thuộc tính không khóa không phụ
thuộc đầy đủ vào khóa
Kết luận: Q không đạt dạng chuẩn 2
ĐỀ THI CUỐI KỲ HỌC KỲ I, NĂM HỌC: 2019-2020
Môn: CƠ SỞ DỮ LIỆU
ĐỀ SỐ 2
Câu 1: (8 điểm) Cho lược đồ cơ sở dữ liệu “Quản lý thế vận hội Olympic” có cấu trúc như sau:
Quocgia (MaQG, TenQG, ChauLuc, DienTich)
Tân từ: Quan hệ Quocgia chứa thông tin về quốc gia gồm: mã quốc gia (MaQG), tên quốc gia
(TenQG), tên châu lục (ChauLuc), diện tích (DienTich).
Thevanhoi (MaTVH, TenTVH, MaQG, Nam)
Tân từ: Quan hệ Thevanhoi chứa thông tin về thế vận hội gồm: mã thế vận hội (MaTVH), tên thế vận
hội (TenTVH), mã quốc gia đăng cai thế vận hội (MaQG), năm (Nam) diễn ra thế vận hội.
Vandongvien (MaVDV, HoTen, NgSinh, GioiTinh, QuocTich)
Tân từ: Quan hệ Vandongvien chứa thông tin vận động viên gồm: mã vận động viên (MaVDV), họ tên
(HoTen), ngày sinh (NgSinh), giới tính (GioiTinh), quốc tịch (QuocTich) của vận động viên (quốc tịch
chính là mã quốc gia)
Noidungthi (MaNDT, TenNDT, GhiChu)
Tân từ: Quan hệ Noidungthi chứa thông tin nội dung thi gồm: mã nội dung thi (MaNDT), tên nội dung
thi (TenNDT), ghi chú (GhiChu).
Thamgia (MaVDV, MaNDT, MaTVH, HuyChuong)
Tân từ: Quan hệ Thamgia chứa thông tin vận động viên (MaVDV) tham dự nội dung (MaNDT) gì ở thế
vận hội (MaTVH) nào và đạt huy chương gì (thuộc tính HuyChuong có giá trị là: 0 nếu không đạt huy
chương, 1 nếu đạt huy chương vàng, 2 nếu đạt huy chương bạc, 3 nếu đạt huy chương đồng).
Ghi chú: Các thuộc tính gạch dưới là các thuộc tính khóa chính
1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (bao gồm bối cảnh, nội dung, bảng tầm ảnh
hưởng): (1.5 điểm)
Hai kỳ thế vận hội liên tiếp không được tổ chức ở cùng một quốc gia. Biết rằng, thế vận hội diễn
ra cứ 4 năm 1 lần.
Đỗ Phi Sơn - 20521839
Bối cảnh: THEVANHOI
Nội dung:
∀tvh1, tvh2 ∈THEVANHOI: tvh1.MAQG = tvh2.MAQG ⇒ abs(tvh1.Nam - tvh2.Nam) ≠ 4
Bảng tầm ảnh hưởng: Thêm Xoá Sửa
THEVANHOI + - +(Nam,MAQG)
Thevanhoi + - +(MaQG,Nam)
2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL: (6 điểm)
a. Liệt kê danh sách Nữ vận động viên (HoTen, NgSinh) có Quốc tịch là ‘JA’. (1 điểm)
20521817- Trần Ngọc Quý
SELECT HoTen, NgSing
FROM VANDONGVIEN
WHERE GioiTinh=’Nu’ AND QuocTich=’JA’
b. In ra danh sách những vận động viên tham gia nội dung thi ‘Điền kinh’ ở thế vận hội
‘Olympic Rio 2016’. (1 điểm)
20521871 - Nguyễn Hữu Minh Tâm
SELECT VDV.MaVDV, VDV.HoTen
FROM Vandongvien VDV, Thamgia TG, Noidungthi NDT, Thevanhoi TVH
WHERE VDV.MaVDV = TG.MaVDV
AND TG.MaNDT = NDT.MaNDT
AND TG.MaTVH = TVH.MaTVH
AND NDT.TenNDT = ‘Điền kinh’
AND TVH.TenTVH = ’Olympic Rio 2016’
c. Cho biết số lượng huy chương bạc mà các vận động viên nước ‘Trung Quốc’ đạt được tại
thế vận hội diễn ra vào năm 2012. (1 điểm)
20521818 _Trần Văn Quý
SELECT COUNT(HUYCHUONG)
HUYCHUONG=2
d. Liệt kê họ tên và quốc tịch của những vận động viên tham gia nội dung thi ‘100m bơi ngửa’
nhưng không tham gia nội dung thi ‘200m tự do’. (1 điểm)
20521936 - Nguyễn Thị Phương Thảo
(SELECT Vandongvien.HoTen, Vandongvien.QuocTich
FROM Vandongvien INNER JOIN Thamgia
ON Vandongvien.MaVDV=Thamgia.MaVDV INNER JOIN Noidungthi
ON Noidungthi.MaNDT = Thamgia.MaNDT
WHERE TenNDT = '100m bơi ngửa')
EXCEPT
(SELECT Vandongvien.HoTen, Vandongvien.QuocTich
FROM Vandongvien INNER JOIN Thamgia
ON Vandongvien.MaVDV=Thamgia.MaVDV INNER JOIN Noidungthi
ON Noidungthi.MaNDT = Thamgia.MaNDT
WHERE TenNDT = '200m tự do')
e. In ra thông tin (MaVDV, HoTen) của những vận động viên Nam người Đức (QuocTich=DE)
tham gia tất cả các kỳ thế vận hội từ năm 2012 tới nay. (1 điểm)
SELECT V1.MaVDV, V1.HoTen FROM Vandongvien V1, Thamgia T1, Thevanhoi TV1
WHERE V1.MaVDV = T1.MaVDV AND T1.MaTVH = TV1.MaTVH
AND V1.GioiTinh = ‘Nam’ AND V1.QuocTich = ‘DE’
AND TV1.Nam >= 2012
GROUP BY V1.MaVDV, V1.HoTen
HAVING COUNT(DISTINCT TV1.MaTVH) = (
SELECT COUNT(TV2.MaTVH) FROM Thevanhoi TV2
WHERE TV2.Nam > 2012
)
f. Tìm vận đông viên (MaVDV, HoTen) đã đạt từ 2 huy chương vàng trở lên với nội dung thi
‘Bắn cung’. (1 điểm)
20521936 - Nguyễn Thị Phương Thảo
SELECT Vandongvien.MaVDV, Vandongvien.HoTen
FROM Vandongvien INNER JOIN Thamgia
ON Vandongvien.MaVDV=Thamgia.MaVDV INNER JOIN Noidungthi
ON Noidungthi.MaNDT = Thamgia.MaNDT
WHERE HuyChuong = 1 AND TenNDT = 'Bắn cung'
GROUP BY Vandongvien.MaVDV, Vandongvien.HoTen
HAVING COUNT(HuyChuong) >= 2
Câu 2: Phụ thuộc hàm và các dạng chuẩn (2.5 điểm)
Cho lược đồ quan hệ Q(ABCDEGH) có tập phụ thuộc hàm:
F = {f1: DG→BE; f2: AD→CH; f3: E→G; f4: AE→C; f5: AG→B; f6: EG→AH}
1. BE→AC có thuộc F+ không? Giải thích. (1 điểm)
2. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích. (1.5 điểm)
Nguyễn Huỳnh Vương Quốc - 20521813
Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (1.5 điểm)
Đề 1:
Khách hàng chỉ được mở tài khoản (SoTK) khi khách hàng có tuổi từ 14 trở lên.
BẢNG TAH:
KhachHang - - +(NgSinh)
Đề 2:
Thời điểm giao dịch (NgayGD) của một tài khoản (SoTK) phải lớn hơn hoặc bằng ngày mở tài
khoản đó (NgayMo).
20521808 Nguyễn Xuân Quang
BẢNG TAH:
TaiKhoan - - +(NgayMo)
GiaoDich + - +(NgayGD,SoTK)
II. QUẢN LÝ ĐƠN ĐẶT HÀNG
<Trích đề 1 và 2 thi Cuối kỳ Học kỳ 1 năm học 2018-2019>
Cho lược đồ cơ sở dữ liệu “Quản lý đơn đặt hàng” có cấu trúc như sau:
MATHANG (MAMH, TENMH, DVT, NUOCSX)
Tân từ: Quan hệ MATHANG chứa thông tin về các mặt hàng. Thông tin này gồm có: mã mặt
hàng (MAMH), tên mặt hàng (TENMH), đơn vị tính (DVT) và nước sản xuất (NUOCSX). Mỗi mặt
hàng sẽ được quản lý bằng một mã mặt hàng duy nhất (MAMH).
NHACC (MACC, TENCC, DIACHICC)
Tân từ: Quan hệ NHACC chứa thông tin về các nhà cung cấp. Thông tin này gồm có: mã nhà
cung cấp (MACC), tên nhà cung cấp (TENCC) và địa chỉ nhà cung cấp (DIACHICC). Mỗi nhà cung cấp
sẽ được quản lý bằng một mã số duy nhất (MACC)
CUNGCAP (MACC, MAMH, TUNGAY)
Tân từ: Quan hệ CUNGCAP chứa thông tin về các mặt hàng mà nhà cung cấp có thể cung cấp.
Thông tin này gồm có: mã nhà cung cấp (MACC), mã mặt hàng (MAMH) và ngày bắt đầu cung cấp
mặt hàng này (TUNGAY).
DONDH (MADH, NGAYDH, MACC, TONGTRIGIA, SOMH)
Tân từ: Quan hệ DONDH chứa thông tin về các đơn đặt hàng. Thông tin này gồm có: mã đơn
hàng (MADH), ngày đặt hàng (NGAYDH), đặt hàng từ nhà cung cấp (MACC), tổng trị giá của đơn
hàng (TONGTRIGIA) và số mặt hàng có trong mỗi đơn đặt hàng (SOMH). Khi thêm mới đơn đặt
hàng thì TONGTRIGIA, SOMH được gán giá trị mặc định là 0. Mỗi đơn đặt hàng sẽ được quản lý
bằng một mã đơn hàng duy nhất (MADH).
CHITIET (MADH, MAMH, SOLUONG, DONGIA, TRIGIA)
Tân từ: Quan hệ CHITIET chứa thông tin về các chi tiết đặt hàng. Thông tin này gồm có: mã đơn
hàng (MADH), mã mặt hàng (MAMH), số lượng (SOLUONG), đơn giá (DONGIA) và trị giá của mặt
hàng được đặt (TRIGIA= SOLUONG x DONGIA).
Ghi chú: Các thuộc tính gạch dưới là các thuộc tính khóa chính.
Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (1.5 điểm)
Đề 1:
Tổng trị giá của đơn đặt hàng (TONGTRIGIA) bằng tổng các trị giá (TRIGIA) của các chi tiết đặt
hàng thuộc đơn đặt hàng đó.
*Lưu ý: Không được sửa thuộc tính khóa chính.
20521818 _ Trần Văn Quý
BẢNG TAH:
DONDH - - +(TONGTRIGIA)
CHITIET + + +(SOLUONG,
DONGIA, TRIGIA)
Đề 2:
Thuộc tính số mặt hàng (SOMH) trong đơn đặt hàng phải bằng số mặt hàng thuộc chi tiết của
đơn đặt hàng đó.
*Lưu ý: Không được sửa thuộc tính khóa chính.
Cao Đình Duy Ngọc 20521661
NỘI DUNG:
BẢNG TAH:
DONDH - - +(SoMH)
CHITIET + + -(*)
III. QUẢN LÝ ĐẶT HÀNG VÀ PHÂN BỔ VẮC-XIN
<Trích đề 1 và 2 thi Cuối kỳ Học kỳ 2 năm học 2020-2021>
Cho một phần lược đồ cơ sở dữ liệu “Quản lý đặt hàng và phân bổ vắc xin Covid-19” có cấu trúc
như sau:
BẢNG TAH:
PHANBO + + +(SL,MADP)
=> Q có khóa là A
3. (0.75 đ) Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 3 không? Giải thích.
Cách 1: Dùng định nghĩa 1
- Phân rã F thành các phụ thuộc có vế phải chứa 1 thuộc tính ta được:
F = {A → B; A → C; AB → D; AC → E; B → G}
- Ta thấy A → B và B → G
=> Thuộc tính không khóa G phụ thuộc bắc cầu vào khóa A
Nên Lược đồ quan hệ (Q, F) không đạt dạng chuẩn 3
Cách 2: Dùng định nghĩa 2
- Phân rã F thành các phụ thuộc có vế phải chứa 1 thuộc tính ta được:
F = {A → B; A → C; AB → D; AC → E; B → G}
- Xét phụ thuộc hàm B → G, ta thấy vế trái B không là 1 siêu khóa và vế phải G
không là một thuộc tính khóa
=> Lược đồ quan hệ (Q, F) không đạt dạng chuẩn 3
<Trích đề 1 thi Cuối kỳ Học kỳ 1 năm học 2017-2018>
Câu 2. Cho lược đồ quan hệ Q(ABCDEGH) có tập phụ thuộc hàm:
F = {f1: A→H; f2: DG→B; f3: C→A; f4: E→D; f5: AE→C; f6: DG→H}
1. (0.75đ) Cho f: EG→C, f có phải là phụ thuộc hàm hệ quả (là thành viên) của F không? Giải
thích.
2. (1 đ) Tìm khóa của lược đồ quan hệ (Q, F)
3. (0.75 đ) Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích.
<Trích đề 2 thi Cuối kỳ Học kỳ 1 năm học 2017-2018>
2. Lược đồ quan hệ (R, F) có đạt dạng chuẩn 2 không? Giải thích. (1.25 điểm)
20521813 - Nguyễn Huỳnh Vương Quốc
VACXIN (MaVX, TenVX, CongNgheSX, NamPM, MaLB, MaCTy, HQLS, HQTT, SoMui,
KC2Mui)
3. Liệt kê các khách hàng (MaKH, HoTen) trong năm 2021 đã tiêm các vắc xin
được sản xuất theo công nghệ ‘Viral vector vaccine’.
4. Liệt kê các loại bệnh (MaLB, TenLB) đã có vắc xin phòng ngừa do các
công ty của nước có tên là ‘Hoa Ky’ sản xuất theo công nghệ ‘Viral vector
vaccine’
Cách 2:
SELECT KH.MAKH, HOTEN
FROM VACXIN VX, LICHSUTIEM LST, KHACHHANG KH
WHERE KH.MAKH = LST.MAKH
AND VX.MAVX = LST.MAVX
AND YEAR(NGTIEM) = 2021
AND TENVX = ‘Quai bi B’
AND KH.MAKH IN (SELECT MAKH
FROM VACXIN VX, LICHSUTIEM LST
WHERE VX.MAVX = LST.MAVX
AND YEAR(NGTIEM) = 2021
AND TENVX = ‘Covid-19 A’)
CÁCH 2: DÙNG IN
SELECT CTY.MACTY, TENCTY
FROM VACXIN VX, LOAIBENH LB, CONGTY CTY
WHERE VX.MALB = LB.MALB
AND CTY.MACTY = VX.MACTY
AND QUOCGIA = ‘HOA KY’
AND TENLB = ‘SOI’
AND CTY.MACTY IN (SELECT MACTY
FROM VACXIN VX, LOAIBENH LB, CONGTY CTY
WHERE VX.MALB = LB.MALB
AND CTY.MACTY = VX.MACTY
AND QUOCGIA = ‘HOA KY’
AND TENLB = ‘UON VAN’
CÁCH 2: NOT IN
SELECT MAKH
FROM LICHSUTIEM LST, VACXIN VX, LOAIBENH LB
WHERE LST.MAVX = VX.MAVX
AND VX.MALB = LB.MALB
AND TENLB = ‘COVID-19’
AND LANTIEM = 1
AND MAKH NOT IN (SELECT MAKH
FROM LICHSUTIEM LST, VACXIN VX, LOAIBENH LB
WHERE LST.MAVX = VX.MAVX
AND VX.MALB = LB.MALB
AND TENLB = ‘COVID-19’
AND LANTIEM = 2)
2. Cho biết thông tin vắc xin (MaVX, TenVX) phòng ngừa bệnh có tên là
‘Covid-19’ đã được tất cả các khách hàng sinh năm 2003 tiêm ít nhất một mũi.
3. Cho biết thông tin khách hàng (MaKH, HoTen) đã tiêm ít nhất một mũi tất
cả các vắc xin do công ty có tên ‘BIT’ sản xuất theo công nghệ ‘Viral vector
vaccine’
SELECT MAKH, HOTEN
FROM KHACHHANG
WHERE NOT EXISTS (SELECT *
FROM VACXIN, CONGTY
WHERE VACXIN.MACTY = CONGTY.MACTY
AND TENCTY = ‘BIT’
AND CONNGHESX = ‘VIRAL VECTOR VACCINE’
AND NOT EXISTS (SELECT *
FROM LICHSUTIEM
WHERE LICHSUTIEM.MAKH =
KHACHHANG.MAKH
AND LICHSUTIEM.MAVX = VACXIN.MAVX))
CÁC CÂU PHÉP CHIA CÓ THỂ SỬ DỤNG CÁCH TÍNH TOÁN GOM NHÓM CÓ
ĐIỀU KIỆN ĐỂ GIẢI
2. Với mỗi loại bệnh, tính số lượng vắc xin được sản xuất để phòng ngừa
loại bệnh đó. Thông tin hiển thị: MaLB, TenLB, SLVacXin
3. Với mỗi khách hàng, tính số lượt tiêm chủng của khách hàng đó. Thông
tin hiển thị: MaKH, HoTen, SoLuotTiem
SELECT KH.MAH, HOTEN, COUNT(MAVX) SOLUOTTIEM
FROM KHACHHANG KH, LICHSUTIEM LST
WHERE KH.MAKH = LST.MAKH
GROUP BY KH.MAH, HOTEN
V. CÂU HỎI TRUY VẤN TÍNH TOÁN GOM NHÓM CÓ ĐIỀU KIỆN
1. Cho biết thông tin loại bệnh có vắc-xin do các công ty có quốc gia là ‘Hoa
Ky’ sản xuất nhiều nhất. Thông tin hiển thị bao gồm: MaLB, TenLB, SLVX
2. Cho biết thông tin vắc-xin phòng bệnh có tên là “Covid-19” được khách
hàng lựa chọn tiêm mũi một nhiều nhất. Thông tin hiển thị bao gồm: MaVX,
TenVX, SLKH
3. Cho biết thông tin loại bệnh được khách hàng lựa chọn tiêm mũi một
nhiều nhất trong năm 2021. Thông tin hiển thị bao gồm: MaLB, TenLB, SLKH