You are on page 1of 19

Đề thi cuối kỳ 2017 - 2018

Đề 1
Câu 1.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):

 tk  TaiKhoan(

 kh  KhanhHang(tk.MaKH = kh.MaKH  (YEAR(NgayMo) – YEAR(NgaySinh) ≥ 14)


 Bối cảnh: KhachHang, TaiKhoan.
 Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


KhachHang - - +(NgaySinh)
TaiKhoan +(MaKH, NgayMo) - +(NgayMo, MaKH)

2.

a. Hiển thị thông tin các tài khoản của các khách hàng (SoTK, TrangThai, SoDu) đã

mở tài khoản vào ngày ‘01/01/2017’ (NgayMo) và sắp xếp kết quả theo số dư tăng dần.

Select SoTK, TrangThai, SoDu

From TaiKhoan

Where NgayMo = '1-1-2017'

Ordered by SoDu ASC

b. Liệt kê mã loại giao dịch (MaLGD) cùng với tổng số tiền (SoTien) giao dịch của

từng loại giao dịch. (1đ)

Select MaLGD, Sum(SoTien)

From LoaiGiaoDich inner join GiaoDich

on LoaiGiaoDich.MaLGD = GiaoDich.MaGD

Group by MaLGD

c. Cho biết những khách hàng (MaKH, HoTen, CMND) đã mở cả hai loại tài khoản:

tiết kiệm (TenLTK= ‘Tiết kiệm’) và thanh toán (TenLTK= ‘Thanh toán’). (1đ)
Select KH.MaKH, KH.HoTen, KH.CMND

From KhachHang KH, TaiKhoan TK, LoaiTaiKhoan LTK

Where KH.MaKH = TK.MaKH and TK.MaLTK = LTK.MaLTK

LTK.TenLTK = 'Tiet kiem'

INTERSECT

Select KH.MaKH, KH.HoTen, KH.CMND

From KhachHang KH, TaiKhoan TK, LoaiTaiKhoan LTK

Where KH.MaKH = TK.MaKH and TK.MaLTK = LTK.MaLTK

LTK.TenLTK = 'Thanh toan'

d. Liệt kê thông tin các giao dịch (MaGD, SoTK, MaLGD, NgayGD, SoTien,

NoiDung) có số tiền lớn nhất trong tháng 12 năm 2017. (1đ)

Select MaGD, SoTK, MaLGD, NgayGD, SoTien, NoiDung

From GiaoDich

Where Month(NgayGD)=12 AND Year(NgayGD)=2017

and SoTien =

Select Max(SoTien) From GiaoDich

WHERE Month(NgayGD)=12 AND Year(NgayGD)=2017

e. Liệt kê danh sách các khách hàng (MaKH, HoTen, SoDT) đã mở tất cả các loại

tài khoản. (1đ))

Select KH.MaKH, KH.HoTen, KH.SoDT

From KhachHang KH inner join TaiKhoan TK

on KH.MaKH = TK.MaKH

Group by KH.MaKH, KH.HoTen, KH.SoDT

Having Count(TK.MaLTK) = (Select Count(*) From LoaiTaiKhoan)

f. Liệt kê những loại tài khoản (MaLTK, TenLTK) được mở nhiều nhất trong năm
2016. (1đ)

Select LTK.MaLTK, TenLTK, COUNT(LTK.MaLTK)

From LoaiTaiKhoan LTK inner join TaiKhoan TK

on LTK.MaLTK = TK.MaLTK

Where Year(NgayMo)=2016

Group by LTK.MaLTK, TenLTK

Having Count(*) >= ALL( Select Count(*) From TaiKhoan

Where Year(NgayMo)=2016 )

Câu 2.
a. Cho f: AG → DG, 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.
- Ta có AG -> DG ∈ F+ ⇔ DG  AG+
AG+F = (A,G)
= (A,G,B,C) – (Do f1)
= (A,G,B,C,D) – (Do f2)
 DG  AG+F => AG → DG => f phụ thuộc hàm hệ quả (là thành viên) của f
b. Tìm tất cả các khóa của lược đồ quan hệ (Q, F).
- Nguồn = {A} – Đích = {D,E,G} – Trung Gian = {B,C}
- Xét N = {A} → N+ = {A,B,C} (Do f1)
N+ = {A,B,C,D} (Do f2)
N+ = {A,B,C,D,E} (Do f3)
N+ = {A,B,C,D,E,F} (Do f4)
Mà N+ = Q+ => A là khóa lược đồ quan hệ (Q,F)
c. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 3 không? Giải thích.
- Ta có: A→B
B→G
Thuộc tính không khóa G phụ thuộc bắc cầu vào khóa A => Q không đạt dạng chuẩn 3

Đề 2
Câu 1.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):
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).

 gd  GiaoDich(

 tk  TaiKhoan(gd.SoTK = tk.SoTK  (gd.NgayDG > tk.NgayMo))


 Bối cảnh: GiaoDich, TaiKhoan
 Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


GiaoDich +(SoTK, NgayGD) - +(NgayGD, SoTK)
TaiKhoan - - +(NgayMo)

2. (6 đ) Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL

a. Hiển thị danh sách các giao dịch (MaGD, SoTK, SoTien) đã thực hiện giao

dịch vào ngày ‘01/01/2017’ (NgayGD) và sắp xếp kết quả theo thứ tự giảm dần số tiền. (1đ)

Select MaGD, SoTK, SoTien From GiaoDich

Where NgayGD = '1-1-2017'

Ordered by SoTien DESC

b. Liệt kê mã loại tài khoản (MaLTK) cùng với tổng số dư (SoDu) của từng loại

tài khoản. (1đ)

Select MaLTK, Sum(SoDu)

From TaiKhoan inner join LoaiTaiKhoan

on TaiKhoan.MaLTK = LoaiTaiKhoan.MaLTK

Group by MaLTK

c. Cho biết những khách hàng (MaKH, HoTen, CMND) đã mở cả hai loại tài

khoản: thanh toán (TenLTK= ‘Thanh toán’) và vay (TenLTK= ‘Vay’). (1đ)

Select KH.MaKH, KH.HoTen, KH.CMND

From KhachHang KH, TaiKhoan TK, LoaiTaiKhoan LTK


Where KH.MaKH = TK.MaKH and TK.MaLTK = LTK.MaLTK

LTK.TenLTK = 'Vay'

INTERSECT

Select KH.MaKH, KH.HoTen, KH.CMND

From KhachHang KH, TaiKhoan TK, LoaiTaiKhoan LTK

Where KH.MaKH = TK.MaKH and TK.MaLTK = LTK.MaLTK

LTK.TenLTK = 'Thanh toan'

d. Liệt kê các tài khoản (SoTK, MaKH, MaLTK, NgayMo, SoDu, LaiSuat,

TrangThai) mở trong tháng 12 năm 2017 có số dư lớn nhất. (1đ)

Select SoTK, MaKH, MaLTD, NgayMo, SoDu, LaiSuat, TrangThai

From TaiKhoan

Where Month(NgayGD)=12 AND Year(NgayGD)=2017

and SoDu =

Select Max(SoDu) From GiaoDich

WHERE Month(NgayGD)=12 AND Year(NgayGD)=2017

e. Liệt kê danh sách các tài khoản (SoTK, SoDu, TrangThai) đã thực hiện tất cả

các loại giao dịch. (1đ)

Select TK.SoTK, TK.SoDu, TK.TrangThai

From TaiKhoan TK inner join GiaoDich GD

on TK.SoTK = GD.SoTK

Group by TK.SoTK, TK.SoDu, TK.TrangThai

Having Count(GD.MaLGD) = Select Count(*) From LoaiGiaoDich

f. Liệt kê các khách hàng (MaKH, HoTen) có số lượng tài khoản ‘chưa kích hoạt’

nhiều nhất. (1đ)


Select KH.MaKH, HoTen

From KhachHang KH inner join TaiKhoan TK

on KH.MaKH = TK.MaKH

Where TrangThai = 'chua kich hoat'

Group by KH.MaKH, HoTen

Having Count(SoTK) >= ALL ( Select Count(*) From TaiKhoan

Where TrangThai = 'chua kich hoat')

Câu 2:
Cho f: AG → DG, f có phải là phụ thuộc hàm hệ quả (là thành viên) của F
EG → C không? Giải thích.
- Ta có EG → C ∈ F+ ⇔ C  EG+
EG+F = (E,G)
= (D,E,G) – (Do f4)
= (D,E,G,H) – (Do f6)
= (B,D,E,G,H) – (Do f2)
Ngừng – (Do f1,f3,f5 không thỏa) => EG+F = (B,D,E,G,H)
 C không  AG+F => f không là phụ thuộc hàm hệ quả (là thành viên) của F
Tìm tất cả các khóa của lược đồ quan hệ (Q, F).
- Nguồn = {E,G} – Đích = {B,H} – Trung Gian = {A,C,D}
- Xét N = {C,E,G} → N+ = {C,D,E,G} (Do f4)
N+ = {A,C,D,E,G} (Do f3)
N+ = {A,B,C,D,E,G} (Do f2)
N+ = {A,B,C,D,E,G,H} (Do f6)
Mà N+ = Q+ => {C,E,G} là khóa lược đồ quan hệ (Q,F)
Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích.
- Ta có Lược đồ Q có khóa là CEG trong đó có
C  CEG
C → A (A là thuộc tính không khóa)
=> Q không đạt dạng chuẩn 2
Đề cuối kỳ 2022 - 2023
Đề 1

1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (nội dung, bối cảnh, bảng tầm ảnh hưởng): (1.5

điểm)

‘Các căn hộ có diện tích trên 50m2

thì KHÔNG được trả góp với kỳ hạn dưới 24 tháng.’

 Nội dung:

ch  CANHO

Nếu  ht  HINHTHUCTG,  tg  TRAGOP:

(ht.MAHT = tg.MAHT)  (ch.MACH = tg.MACH)  (ch.DIENTICH > 50) thì


ht.KYHAN ≥ 24
 Bối cảnh: CANHO, HINHTHUCTG, TRAGOP
 Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


CANHO - - +(DIENTICH)
HINHTHUCTG - - +(KYHAN)
TRAGOP - - +(MACH, MAHT)

2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL (6 điểm)

a. Tìm thông tin những khách hàng (MAKH, TENKH, DIACHI) có năm sinh từ 1980 đến

1985 đã mua trả góp căn hộ vào ngày ‘1/2/2023’ (NGAYMUA). (1đ)

Select KH.MaKH, KH.TenKH, KH.DiaChi

From KhachHang KH inner join TraGop TG

on KH.MaKH = TG.MaKH

Where YEAR(KH.NgaySinh) >= 1980 and YEAR(KH.NgaySinh) < 1985

and TG.NgayMua = '1-2-2023'

b. Liệt kê thông tin các khách hàng (TENKH, DIACHI) mua trả góp căn hộ có diện tích trên
80m2, kết quả xuất ra theo tên khách hàng có thứ tự giảm dần. (1đ)

Select KH.TenKH, KH.DiaChi

From KhachHang KH, CanHo CH, TraGop TG

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH

and CH.DienTich > 80

Ordered by KH.TenKH DESC

c. Liệt kê mã loại căn hộ (MALCH), tên loại căn hộ (TENLCH) và số lượng căn hộ trong

từng loại căn hộ. (1đ)

Select MaLCH, TenLCH, Count(MaCH)

From LoaiCH inner join CanHo

on LoaiCH.MaLCH = CanHo.MaLCH

Group by MaLCH, TenLCH

d. Cho biết khách hàng (MAKH, TENKH) đang trả góp nhóm chung cư (NHOMCC) ‘cao

cấp’ nhưng không trả góp nhóm chung cư ‘trung cấp’. (1đ)

Select KH.MaKH, KH.TenKH

From KhachHang KH, CanHo CH, TraGop TG, LoaiCH LCH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.NhomCC = 'cao cap'

and KH.MaKH not in

( Select KH.MaKH

From KhachHang KH, CanHo CH, TraGop TG, LoaiCH LCH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.NhomCC = 'trung cap' )


e. Tìm khách hàng (TENKH) đã mua trả góp tất cả các căn hộ loại ‘penthouse’ của nhóm

chung cư ‘cao cấp’. (1đ)

Select KH.MaKH, KH.TenKH

From KhachHang KH, CanHo CH, TraGop TG, LoaiCH LCH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.NhomCC = 'cao cap' and LCH.TenLCH = 'penhouse'

Group by KH.MaKH, KH.TenKH

Having Count (LCH.MaLCH) =

( Select Count(*) From LoaiCH

Where NhomCC = 'cao cap' and TenLCH = 'penhouse' )

f. Trong năm 2022, loại căn hộ nào (MALCH, TENLCH) thuộc nhóm chung cư 'cao cấp' có

số lượt bán trả góp nhiều hơn 10. (1đ)

Select LCH.MaLCH, LCH.TenLCH

From CanHo CH, TraGop TG, LoaiCH LCH

Where TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.NhomCC = 'cao cap' and YEAR(TG.NgayMua) = 2022

Group by LCH.MaLCH, LCH.TenLCH, TG.MaTG

Having Count(TG.MaTG) > 10

Câu 2: Cho lược đồ quan hệ R(ABCDEGH) với tập phụ thuộc hàm: (2,5 điểm)
F = {f1: AE → BH, f2: B → E, f3: ABH → CD, f4: AB → G, f5: EH → B}
1. AB → DG có là phụ thuộc hàm thành viên của F+ không? Giải thích?
Ta có AB → DG ∈ F+ ⇔ DG  AB+
AB+ = (A,B)
= (A,B,G) – (Do f4)
= (A,B,E,G) – (Do f2)
= (A,B,E,G,H) – (Do f1)
= (A,B,C,D,E,G,H) – (Do f3)
 DG  AB => AB → DG  F+
+
2. Tìm tất cả các khóa của lược đồ quan hệ trên? Giải thích. (1đ)

- Nguồn = {A} – Đích = {C,D,G} – Trung Gian = {B,E,H}


- Xét N = {A,B} → N+ = {A,B,G} (Do f4)
N+ = {A,B,E,G} (Do f2)
N+ = {A,B,E,G,H} (Do f1)
N+ = {A,B,C,D,E,G,H} (Do f3)
Mà N+ = Q+ => AB là khóa lược đồ quan hệ (Q,F)
Cmtt ta có AE là khóa lược đồ quan hệ (Q,F)
3. Xác định dạng chuẩn cao nhất của lược đồ quan hệ trên. Giải thích.
- Chuẩn 3: Ta có AB → G, G ko thuộc AB có
+ Vế trái AB ko là siêu khóa.
+ Vế phải G ko là thuộc tính khóa.
 Loại chuẩn 3.
- Chuẩn 2: Lược đồ Q có 2 khóa AB, AE mà mọi thuộc tính đều phụ thuộc vào khóa nên Q đạt
chuẩn 2

Đề 2
1. Hãy phát biểu chặt chẽ ràng buộc toàn vẹn (nội dung, bối cảnh, bảng tầm ảnh hưởng): (1.5

điểm)

‘Các căn hộ có số phòng từ 3 trở xuống KHÔNG được trả góp với kỳ hạn trên 36 tháng.’ * Lưu ý: Không được sửa
khóa chính.

ch  CANHO

Nếu  ht  HINHTHUCTG,  tg  TRAGOP:

(ht.MAHT = tg.MAHT)  (ch.MACH = tg.MACH)  (ch.SOPHONG ≤ 3) thì


ht.KYHAN ≤ 36
 Bối cảnh: CANHO, HINHTHUCTG, TRAGOP
 Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


CANHO - - +(SOPHONG)
HINHTHUCTG - - +(KYHAN)
TRAGOP - - +(MACH, MAHT)

2. Thực hiện các câu truy vấn sau bằng ngôn ngữ SQL (6 điểm)

a. Tìm các căn hộ (MACH, TENCH) thuộc loại ‘shophouse’ (TENLCH) có giá bán (GIA) từ
1.500.000 đồng đến 2.000.000 đồng. (1đ)

Select CH.MaCh, CH.TenCH

From CanHo CH inner join LoaiCH LCH

on CH.MaLCH = LCH.MaLCH

Where LCH.TenLCH = 'shophouse' and Gia >= 1500000 and Gia < 2000000

b. Liệt kê những căn hộ (TENCH, MALCH) thực hiện trả góp trong kỳ hạn lớn hơn 120 tháng?

Kết quả trả về sắp xếp theo thứ tự kỳ hạn giảm dần. (1đ)

Select CH.TenCH, LCH.MaLCH

From CanHo CH, LoaiCH LCH, TraGop TG, HinhThucTG HT

Where CH.MaLCH = LCH.MaLCH and CH.MaCH = TG.MaCH and TG.MaHT = HT.MaHT

and HT.KyHan > 120

Ordered by HT.KyHan Desc

c. Liệt kê mã hình thức trả góp (MAHT), tên hình thức trả góp (TENHT) và số lượng căn hộ

trả góp trong từng hình thức trả góp. (1đ)

Select HT.MaHT, HT.TenHT, Count(CH.MaCH)

From HinhThucTG HT, CanHo CH, TraGop TG

Where HT.MaHT = TG.MaHT and TG.MaCH = CH.MaCH

Group by HT.MaHT, HT.TenHT

d. Cho biết khách hàng (MAKH, TENKH) đang trả góp tên loại căn hộ là (TENLCH)

‘penthouse’ và tên loại căn hộ là ‘duplex’. (1đ)

Select KH.MaKH, KH.TenKH

From KhachHang KH, TraGop TG, CanHo CH, LoaiCH LCH


Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.TenLCH = 'penhouse'

INTERSECT

Select KH.MaKH, KH.TenKH

From KhachHang KH, TraGop TG, CanHo CH, LoaiCH LCH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and LCH.TenLCH = 'duplex'

e. Tìm khách hàng (TENKH) đã mua trả góp tất cả các căn hộ loại duplex của nhóm chung cư

cao cấp. (1đ)

Select KH.TenKH

From KhachHang KH, TraGop TG, CanHo CH, LoaiCH LCH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH and CH.MaLCH = LCH.MaLCH

and NhomCC = 'cao cap' and TenLCH = 'duplex'

Group by KH.TenKH

Having Count(MaLCH) =

( Select Count(*) From LoaiCH

Where NhomCC = 'cao cap' and TenLCH = 'duplex' )

f. Trong năm 2019, khách hàng nào (MAKH, TENKH) có tổng tiền phải trả trước cho việc

mua trả góp căn hộ 4 phòng là lớn hơn 900.000.000. (1đ)

Select KH.MaKH, KH.TenKH

From KhachHang KH, TraGop TG, CanHo CH

Where KH.MaKH = TG.MaKH and TG.MaCH = CH.MaCH

and CH.SoPhong = 4 and TG.SoTienTT > 900000000 and Year(TG.NgayMua) = 2019

Câu 2: Cho lược đồ quan hệ R(ABCDEIK) với tập phụ thuộc hàm: (2,5 điểm)
F = {f1: A → I, f2: CI → AK, f3: IK → A, f4: AC → D, f5: ACK → BE}
4. CI → DE có là phụ thuộc hàm thành viên của F+ không? Giải thích?
Ta có CI → DE ∈ F+ ⇔ DE  CI+
CI+ = (C,I)
= (A,C,I,K) – (Do f2)
= (A,C,D,I,K) – (Do f4)
= (A,B,C,D,E,I,K) – (Do f5)
 DE  CI => CI → DE  F+
+

5. Tìm tất cả các khóa của lược đồ quan hệ trên? Giải thích. (1đ)

- Nguồn = {C} – Đích = {B,D,E} – Trung Gian = {A,I,K}


- Xét N = {C,I} → N+ = { A,C,I,K } (Do f2)
N+ = { A,C,D,I,K } (Do f4)
N+ = { A,B,C,D,E,I,K } (Do f5)
Mà N+ = Q+ => CI là khóa lược đồ quan hệ (Q,F)
Cmtt ta có CA là khóa lược đồ quan hệ (Q,F)

Đề cuối kỳ 1 2018 - 2019


Đề 1

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ổ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 đó.

dh  DONDH(dh.TONGTRIGIA = (ct  CHITIET: dh.MADH = ct.MADH)(ct.TRIGIA)


 Bối cảnh: DONDH, CHITIET
 Bảng tầm ảnh hưởng:

Thêm Xóa Sửa


DONDH + - +(TONGGIATRI)
CHITIET + + +(MADH, TRIGIA)

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 các đơn hàng (MADH, NGAYDH, TONGTRIGIA) của tên nhà cung
cấp ‘Vinamilk’ có tổng trị giá lớn hơn 1.000.000 đồng. (1 điểm)

Select DDH.MaDH, NgayDH, TongTriGia

From DonDH DDH, CungCap CC, NhaCC NCC

Where DDH.MaDH = CC.MaDH and CC.MaCC = NCC.MaCC

and NCC.TenCC = 'Vinamilk' and TongGiaTri > 1000000

b. Tính tổng số lượng sản phẩm có mã mặt hàng (MAMH) là ‘MH001’ đã đặt hàng trong

năm 2018. (1 điểm)

Select Count(CT.SoLuong)

From ChiTiet CT inner join DonDH DDH

on CT.MaDH = DDH.MaDH

Where MaMH = 'MH001' and Year(NgayDH) = 2018

c. Liệt kê những nhà cung cấp (MACC, TENCC) có thể cung cấp những mặt hàng do ‘Việt

Nam’ sản xuất mà không cung cấp những mặt hàng do ‘Trung Quốc’ sản xuất. (1 điểm)

Select NCC.MaCC, NCC.TenCC

From NhaCC NCC

Where NCC.MaCC not in

( Select NCC.MaCC

From NhaCC NCC, CungCap CC, MatHang MH

Where NCC.MaCC = CC.MaCC and CC.MaMH = MH.MaMH

and MH.NuocSX = 'Trung Quoc' )

d. Tính tổng số mặt hàng (SOMH) của tất cả các đơn đặt hàng theo từng năm. Thông tin hiển

thị: Năm đặt hàng, Tổng số mặt hàng. (1 điểm)


Select Year(NgayDH) as ‘Năm đặt hàng’, Count(MaDH) as ‘Tổng số mặt hàng’

From DonDH

Group by Year(NgayDH)

e. Tìm những mã đơn đặt hàng (MADH) đã đặt tất cả các mặt hàng của nhà cung cấp có tên

là ‘Vissan’ (TENCC). (1 điểm)

Select DH.MaDH

From DonDH DH, CungCap CC, NhaCC NCC, MatHang MH

Where DH.MaDH = CC.MaDH and CC.MaCC = NCC.MaCC and MH.MaMH = CC.MaMH

And NCC.TenCC = ‘Vissan’

Group by DH.MaDH

Having Count(MH.MaMH) =

( Select Count(*)

From MatHang MH inner join CungCap

On MH.MaMH = CC.MaMH

CC.TenCC = ‘Vissan’ )

f. Tìm những mặt hàng (MAMH, TENMH) có số lượng đặt hàng nhiều nhất trong năm

2018. (1 điểm)

Select MH.MaMH, MH.TenMH

From MatHang MH, ChiTiet CT, DonDH DH

Where MH.MaMH = CT.MaMH and CT.MaDH = DH.MaDH

and Year(NgayDH) = 2018

Group by MH.MaMH, MH.TenMH

Having Sum(CT.SoLuong) >= ALL

( Select Sum(CT.SoLuong)

From MatHang MH, ChiTiet CT, DonDH DH

Where MH.MaMH = CT.MaMH and CT.MaDH = DH.MaDH

and Year(NgayDH) = 2018


Group by MH.MaMH, MH.TenMH )

Câu 2: (2.5 điểm) Cho lược đồ quan hệ Q(ABCDEGH) có tập phụ thuộc hàm:

1. Chứng minh: BC→DG  F+ <=> DG  BC+


Ta có: BC+ = (B,C)
= (A,B,C,H) – (Do f3)
= (A,B,C,D,G,H) – (Do f2)
= (A,B,C,D,E,G,H) – (Do f4)
 DG  BC+ => BC → DG  F+
2. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích. (1.5 điểm)
Ta có: Lược đồ Q có 2 khóa BA, BC mà mọi thuộc tính đều phụ thuộc vào khóa nên Q
đạt chuẩn 2.

Đề 2:
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)

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 đó.

dh  DONDH(dh.SOMH = Count{ct.MAMH | ct  CHITIET(dh.MADH = ct.MADH)})


 Bối cảnh: DONDH, CHITIET
 Bảng tầm ảnh hưởng

Thêm Xóa Sửa


DONDH + - +(SOMH)
CHITIET + + +(MADH)

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 các nhà cung cấp (MACC, TENCC, TUNGAY) có thể cung cấp mã mặt

hàng ‘MH0001’ từ ngày ‘1/1/2018’ trở về sau. (1 điểm)

Select NCC.MaCC, NCC.TenCC, CC.TuNgay

From NhaCC NCC inner join CungCap CC

On NCC.MaCC = CC.MaCC

Where CC.TuNgay = ‘1-1-2018’


b. Tính tổng thành tiền của đơn đặt hàng có mã mặt hàng là ‘MH014’ từ nhà cung cấp có mã

là ‘NCC007’. (1 điểm)

Select Sum(CT.ThanhTien)

From MatHang MH, ChiTiet CT, CungCap CC, NhaCC NCC

Where MH.MaMH = CT.MaMH and CC.MaMH = MH.MaMH and CC.MaCC = NCC.MaCC

and MH.MaMH = ‘MH014’ and NCC.MaCC = ‘NCC007’

c. Liệt kê những nhà cung cấp (MACC, TENCC) có thể cung cấp những mặt hàng do ‘Mỹ’

sản xuất mà không cung cấp những mặt hàng do ‘Hàn Quốc’ sản xuất. (1 điểm)

Select NCC.MaCC, NCC.TenCC

From NhaCC NCC

Where NCC.MaCC not in

( Select NCC.MaCC

From NhaCC NCC, CungCap CC, MatHang MH

Where NCC.MaCC = CC.MaCC and CC.MaMH = MH.MaMH

and MH.NuocSX = 'Han Quoc' )

d. Tính tổng trị giá của tất cả các đơn đặt hàng theo từng năm. Thông tin hiển thị: Năm đặt

hàng, Tổng trị giá. (1 điểm)

Select Year(NgayDH) as ‘Năm đặt hàng’, Sum(TriGia) as ‘Tổng trị giá’

From DonDH

Group by Year(NgayDH)

e. Tìm những mã đơn đặt hàng (MADH) đã đặt tất cả các mặt hàng của nhà cung cấp có tên

‘Vinamilk’ (TENCC). (1 điểm)

Select DH.MaDH
From DonDH DH, CungCap CC, NhaCC NCC, MatHang MH

Where DH.MaDH = CC.MaDH and CC.MaCC = NCC.MaCC and MH.MaMH = CC.MaMH

And NCC.TenCC = ‘Vinamilk’

Group by DH.MaDH

Having Count(MH.MaMH) =

( Select Count(*)

From MatHang MH inner join CungCap

On MH.MaMH = CC.MaMH

CC.TenCC = ‘Vinamilk’ )

f. Tìm những mặt hàng (MAMH, TENMH) có số lượng đặt hàng ít nhất trong năm 2018. (1

điểm)

Select MH.MaMH, MH.TenMH

From MatHang MH, ChiTiet CT, DonDH DH

Where MH.MaMH = CT.MaMH and CT.MaDH = DH.MaDH

and Year(NgayDH) = 2018

Group by MH.MaMH, MH.TenMH

Having Sum(CT.SoLuong) <= ALL

( Select Sum(CT.SoLuong)

From MatHang MH, ChiTiet CT, DonDH DH

Where MH.MaMH = CT.MaMH and CT.MaDH = DH.MaDH

and Year(NgayDH) = 2018

Group by MH.MaMH, MH.TenMH )

Câu 2. (2.5 điểm) Cho lược đồ quan hệ Q(ABCDEGH) có tập phụ thuộc hàm:
F = {f1: CD→B; f2: D→G; f3: DE→AC; f4: CE→AB; f5: CG→H; f6: EG→DH}

1. Chứng minh: EG→AC  F+ <=> AC  EG+


Ta có: EG+ = (E,G)
= (D,E,G,H) – (Do f6)
= (A,C,D,E,G,H) – (Do f3)
= (A,B,C,D,E,G,H) – (Do f4)
 AC  EG+ => EG → AC  F+
2. Lược đồ quan hệ (Q, F) có đạt dạng chuẩn 2 không? Giải thích.
- Lược đồ Q có 2 khóa ED,EG mà mọi thuộc tính đều phụ thuộc vào khóa nên Q đạt chuẩn 2

You might also like