Bài tập cơ sở dữ liệu | Học viện Báo chí và Tuyên truyền

Hair Beauty Salon cần xây dựng hệ ống quản lý việc yêu cầu làm đẹp từ các khách hàng như cắt tóc, chăm sóc da, …). Dưới đây là một phần CSDL quản lý các yêu cầu sửa chữa. Tài liệu giúp bạn tham khảo, ôn tập và đạt kết quả cao. Mời đọc đón xem!

Lược đồ CSDL sau được sử dụng cho
Câu 1, 2 và 3.
Hair Beauty Salon cần xây dựng h ống quản lý việc yêu cầu làm đẹ ừ các khách ABC th p t
hàng như cắt tóc, chăm sóc da, …). Dưới đây là một phần CSDL quảncác yêu cầu sửa
chữa, trong đó mỗi ợc đồ quan hệ cho trước các khoá chính (là tập thuộc tính được gạch
ới) và các tập phụ thuộc hàm định nghĩa tương ứng cho từng lược đồ quan hệ.
PHIEU_YEU_CAU MaPhieu ( , MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền)
tả:
Mỗi phiếu yêu cầu có một mã phiếu ( ) duy nhất, thời gian lập phiếu ( ), thMaPhieu TGLập c
hiện cho một khách hàng nào đó. Mi khách hàng cần lưu mộtbao gồm khách hàng
(KH), họ tên ( ), địa chỉ ( ), điện thoại (HọTên ĐịaCh ĐiệnThoại).Mỗi phiếu yêu cầu có
tổng tiền ( ) thực hiện và mua sản phẩm của phiếu yêu cầu đó. Tập phụ thuộc hàm TổngTiền
được định nga
choợc đồ quan h như sau: PHIEU_YEU_CAU
F1 = { f11: MaPhieu → MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền;
f12: MãKH → HọTên, ĐiệnThoại, ĐịaChỉ
}
PHỤ_TRÁCH_DV (MaPhieu, MaDV, TênDV, MaNV, TênNV, TGBắ ầu, TGHoànTất,
GiaTienDV)
tả: Mỗi phiếu yêu cầu sẽ có nhiều dịch vụ, với mỗi mã dịch vụ có một tên dịch vụơng
ứng (TenDV), sẽ có một nhân viên phụ trách (mã nhân viên, tên nhân viên), có thi gian b t
đầu (TGBắ ầu) và thời gian hoàn tất (TGHoànTất). Một số tên dịch vụ ph ến như: “Cắ bi t
tóc”, “Gội Đầu” ,… Tập phụ thuộc hàm được định nghĩa cho lược đồ quan
hệ PHỤ_TRÁCH_DV như sau:
F2 = { f21: MaPhieu, MaDV → TênDV, MaNV, TênNV, TGB ầu, TGHoànTất,
GiaTienDV;
f22: MaDV → TenDV;
f23: MaNV → nNV
}
SAN_PHAM MaSP ( , TênSP, GiáTiền)
tả: Mỗi sản phẩm sẽ một mã sản phẩm (MaSP) duy nhất, tên và giá ti ặc định n m
tương ứng trên một đơn vị sản phẩm. Tập phụ thuộcm được định nghĩa choợc đồ quan
hệ SAN_PHAM như sau:
F3 = {f31: MaSP → TênSP, GiáTiền}
CT_SANPHAM (MaPhieu, MaSP, Số ợng, GiáTiền, ThànhTiền )
tả:
Danh sách sản phẩm được sử dụng mỗi phiếu dịch vcủa khách hàng. Mỗi phiếu yêu cầu có
th ể sử dụng nhiều sản phẩm với s ng (Số ợng), giá bán (GiáTiền) và thành tiềLư n
(ThànhTiền) tương ứng. Tập phụ thuộc hàm được định nghĩa cho lược đồ quan
hệ CT_SANPHAM như sau:
F4 = { f41: MaPhieu, MaSP→ S ợng, ĐơnGiá, ThànhTiề n}
CÂU HỎI:
Câu 1. Hãy biểu diễn các yêu cầu truy vấn sau bằng cả 2 ngôn ngữ đại số quan hệ và SQL
(3.0 điểm).
Cho biết danh sách những phiếu yêu cầu sử dụng dịch vụ tên “Cắt tóc” và mua sản
phẩm có tên “Dầu gội đầu Dove”. Xuất ra mã phiếu, ngày lập phiếu, họ tên và điện thoại của
khách hàng.
Cho biết số tổng thành tiền sử dụng sản phẩm của những phiếu yêu cầu sử dụng từ sản ph2 m
trở n, không sử dụng dịch vụ n “Cắt tóc”. Xuất ra mã phiếu, thời gian lập phiếu, họ tên,
tổng tiền sử dụng sản phẩm.
Câu 2. Hãy xác định bối cảnh, nội dung bằng ngôn ngữ hình thức và bảng tầ ảnh ởng củm a
RBTV sau (1.5 điểm):
“Thời gian bắ đầu thực hit n của các dịch vụ trong phiếu yêu cầu phải sau thời gian lập
phiếu và trước thời gian hoàn tất”
Câu 3. Đánh giá chất lượng lược đồ CSDL (1.5 điểm):
a) Hãy chỉ ra những điểm trùng lặp d u trên lược đồ CSDL trên.li
b) ng Hãy xác định d chuẩn của từng ợc đồ quan hệ? Giải thích và kết luận dạng chuẩn
củaợc đồ CSDL. Hãy chuẩn hóa cácợc đồ quan hệ đ c đồ CSDL đạt được dạng
chuẩn BCNF.
BÀI GIẢI
Lược đồ CSDL
PHIEU_YEU_CAU MaPhieu ( , MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền)
PHỤ_TRÁCH_DV ( , TênDV, MaNV, TênNV, TGBắ ầu, TGHoànTất, MaPhieu, MaDV
GiaTienDV)
SAN_PHAM MaSP ( , TênSP, GiáTiền)
CT_SANPHAM (MaPhieu, MaSP, Số ợng, GiáTiền, ThànhTiền )
Câu 1. Hãy biểu diễn các yêu cầu truy vấn sau bằng cả 2 ngôn ngữ đại số quan hệ SQL (3.0
điểm).
a. Cho biết danh sách những phiếu yêu cầu có sử dụng dịch vụ tên “Cắt tóc” và có mua sản phẩm
tên “Dầu gội đầu Dove”. Xuất ra mã phiếu, ngày lập phiếu, họ tên và điện thoại của khách hàng.
(1.5 đ)
ĐSQH (0.75 đ)
DV ← σ
TENDV=’Cắt tóc’
(PHỤ_TRÁCH_DV) 0.25
SP ← σ
TênSP=’Dầu gội đầu Dove’
(CT_SANPHAM SAN_PHAM * ) 0.25
PH ← PHIEU_YEU_CAU
KQ ← Π
MaPhieu, TGLap, HọTên, ĐIệnThoại
((PH
PH.MaPhieu=DV.MaPhieu PH.MaSP=SP.MaSP
DV)
SP) 0.25
SQL (0.75 đ)
SELECT PH.*
FROM PHỤ_TRÁCH_DV DV, CT_SANPHAM C, SAN_PHAM S, PHIEU_YEU_CAU
PH
WHERE C.MASP=S.MASP AND PH.MAPHIEU=DV.MAPHIEU AND
PH.MAPHIEU=C.MAPHIEU AND DV.TênDV=’Cắt tóc' AND S.TENSP=’Dầu gội đầu Dove'
b. ết số tổng thành tiền sử dụng sản phẩm của những phiếu yêu cầu sử dụng từ 2 sản Cho bi
phẩm trở lên, không sử dụng dịch vụ tên “Cắt tóc”. Xuất ra mã phiếu, thời gian lập phiếu, họ tên,
tổng tiền sử dụng sản phẩm.
ĐSQH (0.75 đ)
R1 ← Π
MaPhieu
PHIEU_YEU_CAU - Π
MaPhieu TENDV=’Cắt tóc’
PHỤ_TRÁCH_DV)
R2 R1) * ← (PHIEU_YEU_CAU * CT_SANPHAM
R3 (MaPhieu, TGLap, HoTen, TongTienSP, SoLuongSP)
MaPhieu, TGLap, HoTen SUM(ThànhTiền),
COUNT(MaSP)
R2
KQ Π
MaPhieu, TGLap, HoTen, TongTienSP SoLuongSP>=2
(R3))
SQL (0.75đ)
SELECT P.MaPhieu, P.TGLập, P.HọTên, SUM(C.ThanhTien) as TongTienSP
FROM P, PHIEU_YEU_CAU CT_SANPHAM C
WHERE P.MaPhieu = C.MaPhieu AND
P.MaPhieu NOT IN (SELECT MaPhieu FROM WHERE TenDV = ‘CắPHỤ_TRÁCH_DV t
tóc’)
GROUP BY P.MaPhieu, P.TGLập, P.HọTên
HAVING COUNT(C.MaSP) >= 2
Câu 2. Hãy xác định bối cảnh, nội dung bằng ngôn ngữ hình thức bảng tầ ảnh hưởng củm a
RBTV sau (1.5 điểm):
“Thời gian bắt đầu thực hiện của các dịch vụ trong phiếu yêu cầu phải sau thời gian lập phiếu và
trước thời gian hoàn tất”
Bối cảnh: , PHỤ_TRÁCH_DV PHIEU_YEU_CAU (0.25 đ)
Nội dung (0.75):
p PHIEU_YEU_CAU, q PHỤ_TRÁCH_DV (q.TGBatDau <= q.TGKThuc q.MaPhieu
= p.MaPhieu → q.TGBatDau <= p.TGLap)
Bảng tầ ảnh hưởng: (0.5 đ)m
T
X
S
PHIEU_YEU_CAU
-
-
+ (TGLap)
PHỤ_TRÁCH_DV
+
-
+ (TGBatDau, TGKThuc)
Câu 4. Chuẩn hoá lược đồ trên (1.5 điểm)
a) Hãy chỉ ra những điểm trùng lắp dữ liệu trên lược đồ CSDL trên. (0.5 đ)
(0.25) Quan hệ PHIEU_YEU_CAU và PHỤ_TRÁCH_DV có trùng lặp dữ liệu
PHIEU_YEU_CAU trùng lắp trên tập thuộc tính {MãKH,HọTên, ĐiệnThoại, ĐịaChỉ} do tồn tại
phụ thuộc hàm MãKH → HọTên, ĐiệnThoại, ĐịaChỉ
(0.25) Quan hệ Ụ_TRÁCH_DV trùng lặp trên tập thuộc tính { MaDV,TenDV} và PH
{ MaNV,TênNV} do tồn tại phụ thuộc hàm MaDV → TenDV, và MaNV → TênNV
b) Hãy xác định dạng chuẩn của từng lược đồ quan hệ ? Giải thích kết luận dạng chuẩn
của lược đồ CSDL? (0.5 đ)
1/ PHIEU_YEU_CAU: đạt dạng chuẩn 2, do phụ thuộc hàm bắc cầu vào khoá (f12: MãKH
→ HọTên, ĐiệnThoại, ĐịaChỉ) nên vi phạm dạng chuẩn 3, ngoài ra khoá chỉ là 1 thuộc tính
nên tấ ả các thuộc tính còn lại đều phụ thuộc đầy đủ vào khoá. (0.1đ)t c
2/ PHỤ_TRÁCH_DV: đạt dạng chuẩn 1, do vi phạm dạng chuẩn 2 tồn tại PTH không phụ
thuộc đầy đủ vào khoá (MaDV → TenDV). (0.1đ)
3/ SAN_PHAM (MaSP, TênSP, GiáTiền): Dạng chuẩn BCNF, giải thích: Theo định nghĩa, lược
đồ ỉ có 1 phụ thuộc hàm và vế trái là khoá/siêu khoá (0.1đ)ch
4/ CT_SANPHAM MaPhieu, MaSP ( , Số ợng, GiáTiền, ThànhTiền : Dạng chuẩn BCNF, giả ) i
thích: Theo định nghĩa, lược đồ ỉ có 1 phụ thuộc hàm và vế trái là khoá/siêu khoá (0.1đ)ch
Dạng chuẩn của lược đồ CSDL: Dạng chuẩn 1. Giải thích: Do dạng chuẩn thấp nhất là dạng chuẩn1
(0.1đ)
c) Hãy chuẩn hoá các lược đồ quan hệ để ợc đồ CSDL đạt dạng chuẩn BCNF.
Chuẩn hoá các lược đồ có dạng chuẩn thấp: (0.5 đ)
(0.2 đ) Chuẩn hoá : tách bảng dựa trên PTH gây ra dạng chuẩn thấp (f12: PHIEU_YEU_CAU
MãKH → HọTên, ĐiệnThoại, ĐịaChỉ) ta có các bảng sau khi tách:
PHIEU_YEU_CAU MaPhieu ( , MãKH, TGLập, TổngTiền)
KHÁCH_HANG (MãKH, HọTên, ĐiệnThoại, ĐịaChỉ)
(0.2 đ) Chuẩn hoá PHỤ_TRÁCH_DV: ch bảng dựa trên PTH gây ra vi phạm dạng chuẩn 2 (f22:
MaDV → TenDV) ta có các bảng sau khi tách. Sau khi tách ta thấy vẫn còn PTH bắc cầu gây ra
vi phạm dạng chuẩn 3 (f23: MaNV TênNV ) nên thực hiện tách tiếp. Kết quả ta có các bảng
sau:
SUDUNG_DV (MaPhieu, MaDV, MaNV, TGBắ ầu, TGHoànTất, GiaTienDV)
DICH_VU(MaDV, TênDV)
NHAN_VIEN (MaNV, TênNV)
Các quan hệ còn lại SAN_PHAM, CT_SAN_PHAM đã đạt DC BCNF
(0.1 đ) Sau khi tách, mỗi lược đồ quan hệ còn 1 PTH và thoả điều kiện của DC BCNF.
Lược đồ CSDL đạt BCNF vì tấ ợc đồ quan hệ đạt DC BCNF.t c lư
| 1/6

Preview text:

Lược đồ CSDL sau được sử dụng cho Câu 1, 2 và 3.
Hair Beauty Salon ABC cần xây dựng hệ thống quản lý việc yêu cầu làm đẹp từ các khách
hàng như cắt tóc, chăm sóc da, …). Dưới đây là một phần CSDL quản lý các yêu cầu sửa
chữa, trong đó mỗi lược đồ quan hệ cho trước các khoá chính (là tập thuộc tính được gạch
dưới) và các tập phụ thuộc hàm định nghĩa tương ứng cho từng lược đồ quan hệ.
PHIEU_YEU_CAU (MaPhieu, MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền) Mô tả:
Mỗi phiếu yêu cầu có một mã phiếu (MaPhieu) duy nhất, thời gian lập phiếu (TGLập), thực
hiện cho một khách hàng nào đó. Mỗi khách hàng cần lưu một mã bao gồm mã khách hàng
(MãKH), họ tên (HọTên), địa chỉ (ĐịaChỉ), điện thoại (ĐiệnThoại).Mỗi phiếu yêu cầu có tổng tiền (TổngTi )
ền thực hiện và mua sản phẩm của phiếu yêu cầu đó. Tập phụ thuộc hàm được định nghĩa
cho lược đồ quan hệ PHIEU_YEU_CAU như sau:
F1 = { f11: MaPhieu → MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền;
f12: MãKH → HọTên, ĐiệnThoại, ĐịaChỉ }
PHỤ_TRÁCH_DV (MaPhieu, MaDV, TênDV, MaNV, TênNV, TGBắtĐầu, TGHoànTất, GiaTienDV)
Mô tả: Mỗi phiếu yêu cầu sẽ có nhiều dịch vụ, với mỗi mã dịch vụ có một tên dịch vụ tương
ứng (TenDV), sẽ có một nhân viên phụ trách (mã nhân viên, tên nhân viên), có thời gian bắt
đầu (TGBắtĐầu) và thời gian hoàn tất (TGHoànTất). Một số tên dịch vụ phổ biến như: “Cắt
tóc”, “Gội Đầu” ,… Tập phụ thuộc hàm được định nghĩa cho lược đồ quan
hệ PHỤ_TRÁCH_DV như sau:
F2 = { f21: MaPhieu, MaDV → TênDV, MaNV, TênNV, TGBắtĐầu, TGHoànTất, GiaTienDV; f22: MaDV → TenDV; f23: MaNV → TênNV }
SAN_PHAM (MaSP, TênSP, GiáTiền)
Mô tả: Mỗi sản phẩm sẽ có một mã sản phẩm (MaSP) duy nhất, tên và giá tiền mặc định
tương ứng trên một đơn vị sản phẩm. Tập phụ thuộc hàm được định nghĩa cho lược đồ quan hệ SAN_PHAM như sau:
F3 = {f31: MaSP → TênSP, GiáTiền}
CT_SANPHAM (MaPhieu, MaSP, SốLượng, GiáTiền, ThànhTiền) Mô tả:
Danh sách sản phẩm được sử dụng mỗi phiếu dịch vụ của khách hàng. Mỗi phiếu yêu cầu có
thể sử dụng nhiều sản phẩm với số lượng (SốLượng), giá bán (GiáTiền) và thành tiền
(ThànhTiền) tương ứng. Tập phụ thuộc hàm được định nghĩa cho lược đồ quan hệ CT_SANPHAM như sau:
F4 = { f41: MaPhieu, MaSP→ SốLượng, ĐơnGiá, ThànhTiền} CÂU HỎI:
Câu 1. Hãy biểu diễn các yêu cầu truy vấn sau bằng cả 2 ngôn ngữ đại số quan hệ và SQL (3.0 điểm).
Cho biết danh sách những phiếu yêu cầu có sử dụng dịch vụ tên “Cắt tóc” và có mua sản
phẩm có tên “Dầu gội đầu Dove”. Xuất ra mã phiếu, ngày lập phiếu, họ tên và điện thoại của khách hàng.
Cho biết số tổng thành tiền sử dụng sản phẩm của những phiếu yêu cầu sử dụng từ 2 sản phẩm
trở lên, không sử dụng dịch vụ tên “Cắt tóc”. Xuất ra mã phiếu, thời gian lập phiếu, họ tên,
tổng tiền sử dụng sản phẩm.
Câu 2. Hãy xác định bối cảnh, nội dung bằng ngôn ngữ hình thức và bảng tầm ảnh hưởng của RBTV sau (1.5 điểm):
“Thời gian bắt đầu thực hiện của các dịch vụ trong phiếu yêu cầu phải sau thời gian lập
phiếu và trước thời gian hoàn tất”
Câu 3. Đánh giá chất lượng lược đồ CSDL (1.5 điểm):
a) Hãy chỉ ra những điểm trùng lặp dữ liệu trên lược đồ CSDL trê n.
b) Hãy xác định dạng chuẩn của từng lược đồ quan hệ? Giải thích và kết luận dạng chuẩn
của lược đồ CSDL. Hãy chuẩn hóa các lược đồ quan hệ để lược đồ CSDL đạt được dạng chuẩn BCNF. BÀI GIẢI Lược đồ CSDL PHIEU_YEU_CAU MaPhieu (
, MãKH, HọTên, ĐiệnThoại, ĐịaChỉ, TGLập, TổngTiền)
PHỤ_TRÁCH_DV (MaPhieu, MaDV, TênDV, MaNV, TênNV, TGBắtĐầu, TGHoànTất, GiaTienDV)
SAN_PHAM (MaSP, TênSP, GiáTiền)
CT_SANPHAM (MaPhieu, MaSP, SốLượng, GiáTiền, ThànhTiền)
Câu 1. Hãy biểu diễn các yêu cầu truy vấn sau bằng cả 2 ngôn ngữ đại số quan hệ và SQL (3.0 điểm).
a. Cho biết danh sách những phiếu yêu cầu có sử dụng dịch vụ tên “Cắt tóc” và có mua sản phẩm
có tên “Dầu gội đầu Dove”. Xuất ra mã phiếu, ngày lập phiếu, họ tên và điện thoại của khách hàng. (1.5 đ) ĐSQH (0.75 đ)
DV ← σTENDV=’Cắt tóc’ (PHỤ_TRÁCH_DV) 0.25
SP ← σTênSP=’Dầu gội đầu Dove’ (CT_SANPHAM SAN_PH * AM) 0.25 PH ← PHIEU_YEU_CAU
KQ ← Π MaPhieu, TGLap, HọTên, ĐIệnThoại ((PH ⋈PH.MaPhieu=DV.MaPhieu DV) ⋈PH.MaSP=SP.MaSP SP) 0.25 SQL (0.75 đ) SELECT PH.* FROM PHỤ_TRÁCH_DV DV, C
T_SANPHAM C, SAN_PHAM S, PHIEU_YEU_CAU PH
WHERE C.MASP=S.MASP AND PH.MAPHIEU=DV.MAPHIEU AND
PH.MAPHIEU=C.MAPHIEU AND DV.TênDV=’Cắt tóc' AND S.TENSP=’Dầu gội đầu Dove' b. Cho b ết số tổng t i
hành tiền sử dụng sản phẩm của những phiếu yêu cầu sử dụng từ 2 sản
phẩm trở lên, không sử dụng dịch vụ tên “Cắt tóc”. Xuất ra mã phiếu, thời gian lập phiếu, họ tên,
tổng tiền sử dụng sản phẩm. ĐSQH (0.75 đ)
R1 ← Π MaPhieu PHIEU_YEU_CAU - Π MaPhieu (σ TENDV=’Cắt tóc’PHỤ_TRÁCH_DV)
R2 ← (PHIEU_YEU_CAU * R1) * CT_SANPHAM
R3 (MaPhieu, TGLap, HoTen, TongTienSP, SoLuongSP) ← MaPhieu, TGLap, HoTen ℑ SUM(ThànhTiền), COUNT(MaSP) R2 KQ Π
← MaPhieu, TGLap, HoTen, TongTienSP (σ SoLuongSP>=2 (R3)) SQL (0.75đ)
SELECT P.MaPhieu, P.TGLập, P.HọTên, SUM(C.ThanhTien) as TongTienSP FROM PHIEU_YEU_CAU P, CT_SANPHAM C
WHERE P.MaPhieu = C.MaPhieu AND
P.MaPhieu NOT IN (SELECT MaPhieu FROM PHỤ_TRÁCH_DV WHERE TenDV = ‘Cắt tóc’)
GROUP BY P.MaPhieu, P.TGLập, P.HọTên HAVING COUNT(C.MaSP) >= 2
Câu 2. Hãy xác định bối cảnh, nội dung bằng ngôn ngữ hình thức và bảng tầm ảnh hưởng của RBTV sau (1.5 điểm):
“Thời gian bắt đầu thực hiện của các dịch vụ trong phiếu yêu cầu phải sau thời gian lập phiếu và
trước thời gian hoàn tất”
Bối cảnh: PHỤ_TRÁCH_DV , PHIEU_YEU_CAU (0.25 đ) Nội dung (0.75):
∀ p∈ PHIEU_YEU_CAU, ∀ q∈ PHỤ_TRÁCH_DV (q.TGBatDau <= q.TGKThuc ∧ q.MaPhieu
= p.MaPhieu → q.TGBatDau <= p.TGLap)
Bảng tầm ảnh hưởng: (0.5 đ) T X S PHIEU_YEU_CAU - - + (TGLap) PHỤ_TRÁCH_DV + - + (TGBatDau, TGKThuc)
Câu 4. Chuẩn hoá lược đồ trên (1.5 điểm) a)
Hãy chỉ ra những điểm trùng lắp dữ liệu trên lược đồ CSDL trên. (0.5 đ)
(0.25) Quan hệ PHIEU_YEU_CAU và PHỤ_TRÁCH_DV có trùng lặp dữ liệu
PHIEU_YEU_CAU trùng lắp trên tập thuộc tính {MãKH,HọTên, ĐiệnThoại, ĐịaChỉ} do tồn tại
phụ thuộc hàm MãKH → HọTên, ĐiệnThoại, ĐịaChỉ
(0.25) Quan hệ PHỤ_TRÁCH_DV trùng lặp trên tập thuộc tính { MaDV,TenDV} và
{ MaNV,TênNV} do tồn tại phụ thuộc hàm MaDV → TenDV, và MaNV → TênNV b)
Hãy xác định dạng chuẩn của từng lược đồ quan hệ ? Giải thích và kết luận dạng chuẩn
của lược đồ CSDL? (0.5 đ)
1/ PHIEU_YEU_CAU: đạt dạng chuẩn 2, do có phụ thuộc hàm bắc cầu vào khoá (f12: MãKH
→ HọTên, ĐiệnThoại, ĐịaChỉ) nên vi phạm dạng chuẩn 3, ngoài ra khoá chỉ là có 1 thuộc tính
nên tất cả các thuộc tính còn lại đều phụ thuộc đầy đủ vào khoá. (0.1đ)
2/ PHỤ_TRÁCH_DV: đạt dạng chuẩn 1, do vi phạm dạng chuẩn 2 vì tồn tại PTH không phụ
thuộc đầy đủ vào khoá (MaDV → TenDV). (0.1đ)
3/ SAN_PHAM (MaSP, TênSP, GiáTiền): Dạng chuẩn BCNF, giải thích: Theo định nghĩa, lược
đồ c ỉ có 1 phụ thuộc hàm và vế trái là khoá/siêu khoá (0.1đ) h 4/ CT_SANPHAM MaPhieu, MaSP ( , SốL ợng, G ư
iáTiền, ThànhTiền): Dạng chuẩn BCNF, giải
thích: Theo định nghĩa, lược đồ c ỉ có 1 phụ thuộ h
c hàm và vế trái là khoá/siêu khoá (0.1đ)
Dạng chuẩn của lược đồ CSDL: Dạng chuẩn 1. Giải thích: Do dạng chuẩn thấp nhất là dạng chuẩn1 (0.1đ) c)
Hãy chuẩn hoá các lược đồ quan hệ để l ợc đồ CSD ư L đạt dạng chuẩn BCNF.
Chuẩn hoá các lược đồ có dạng chuẩn thấp: (0.5 đ)
(0.2 đ) Chuẩn hoá PHIEU_YEU_CAU: tách bảng dựa trên PTH gây ra dạng chuẩn thấp (f12:
MãKH → HọTên, ĐiệnThoại, ĐịaChỉ) ta có các bảng sau khi tách: PHIEU_YEU_CAU MaPhieu (
, MãKH, TGLập, TổngTiền)
KHÁCH_HANG (MãKH, HọTên, ĐiệnThoại, ĐịaChỉ)
(0.2 đ) Chuẩn hoá PHỤ_TRÁCH_DV: tách bảng dựa trên PTH gây ra vi phạm dạng chuẩn 2 (f22:
MaDV → TenDV) ta có các bảng sau khi tách. Sau khi tách ta thấy vẫn còn PTH bắc cầu gây ra
vi phạm dạng chuẩn 3 (f23: MaNV → TênNV )
nên thực hiện tách tiếp. Kết quả ta có các bảng sau:
SUDUNG_DV (MaPhieu, MaDV, MaNV, TGBắt ầ
Đ u, TGHoànTất, GiaTienDV) DICH_VU(MaDV, TênDV) NHAN_VIEN (MaNV, TênNV)
Các quan hệ còn lại SAN_PHAM, CT_SAN_PHAM đã đạt DC BCNF
(0.1 đ) Sau khi tách, mỗi lược đồ quan hệ còn 1 PTH và thoả điều kiện của DC BCNF.
Lược đồ CSDL đạt BCNF vì tất cả l ợc đồ quan ư hệ đạt DC BCNF.