Giáo trình Cơ sở dữ liệu - Trịnh Hoàng Nam (Phần 2)

Tóm tắt Giáo trình Cơ sở dữ liệu - Trịnh Hoàng Nam (Phần 2): ...t hiện ở vế phải của các phụ thuộc hàm và các thuộc tính không xuất hiện ở cả vế trái lẫn vế phải của các phụ thuộc hàm. + Tập thuộc tính đích (TD) chứa tất cả các thuộc tính có xuất hiện ở vế phải và không xuất hiện ở vế trái của các phụ thu... Q4(CDE) a1 b11 a3 a4 a5 Q4(CDE) a1 b11 a3 a4 a5 Q5(AE) a1 b12 a3 a4 a5 Q5(AE) a1 b12 a3 a4 a5 Giáo trình CƠ SỞ DỮ LIỆU Trang Bộ mơn CSDL Trường CĐCN 4 66 Dòng thứ Q3(BE) của bảng chứa toàn giá trị aj (j=1..n) nên phép phân rã trên là bảo toàn thông tin. (b) Định lý ...STR CTHRSG HSTR CTR HSCTR CTHRSG HSCTR + Q5 chứa khóa của Q nên Q1,Q2,Q3,Q4,Q5 là kết quả của phân rã. Định lý: Thuật toán trên tạo ra một phân rã ở dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm Chứng minh: 1. Nếu Ftt có phụ thuộc hàm...

pdf59 trang | Chia sẻ: havih72 | Lượt xem: 232 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Cơ sở dữ liệu - Trịnh Hoàng Nam (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ửa chữa cho một đầu xe chỉ ký hợp đồng một lần. TRIGIAHD 
là tổng trị giá của hợp đồng. NG_GIAO_DK là ngày dự kiến phải giao trả xe cho khách. 
NG_NGTHU là ngày nghiệm thu thật sự sau khi đã sửa chữa xong để thanh lý hợp đồng. 
Q4: Chitiet_HD(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO) 
Tân từ: Mỗi hợp đồng sửa xe có thể gồm nhiều công việc. MACV là mã số của từng công việc. 
TRIGIA_CV là chi phí về vật tư, phụ tùng, thiết bị, công thợ ... đã tính toán với khách. Mỗi 
công việc của hợp đồng sẽ giao cho một người thợ phụ trách (MATHO) và một người thợ 
có thể tham gia vào nhiều công việc của một hay nhiều hợp đồng khác nhau. KHOANTHO 
là số tiền giao khóan lại cho người thợ sửa chữa. 
Q5: Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU) 
Tân từ: Khách hàng (MAKH) có thể thanh toán tiền của một hợp đồng (SOHD) làm nhiều lần 
trước hoặc sau khi nghiệm thu (trong cùng ngày hoặc khác ngày). Mỗi lần thanh toán đều 
có số phiếu để phân biệt (SOPH), NGAYPH là ngày phát hành phiếu và SOTIENTHU là số 
tiền thanh toán. HOTEN là họ tên của người mang tiền đến thanh toán (có thể khác với tên 
của khách hàng đứng ra ký hợp đồng) 
Câu hỏi: 
1/ Xác định tập hợp F gồm tất cả các phụ thuộc ham suy ra từ tân từ của các lược đồ quan hệ (không 
cần liệt kê các phụ thuộc hàm hiển nhiên). Xác định khóa cho từng lược đồ quan hệ. 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
86
2/ Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu C. Lập bảng tầm ảnh hưởng tổng 
hợp. 
3/ Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau: 
a) Cho biết danh sách những người thợ hiện không tham gia vào một hợp đồng sửa chữa 
nào. 
b) Cho biết danh sách những hợp đồng hiện đã thanh lý (đã giao tra xe cho khách) nhưng 
chưa được thanh toán đầy đủ. 
c) Giả sử hôm nay là ngày 21/12/95 cho biết danh sách những hợp đồng cần phải hoàn tất 
trước ngày 31/12/95. 
d) Cho biết người thợ nào thực hiện nhiều công việc nhất. 
e) Cho biết người thợ nào thực hiện tổng giá trị công việc (tổng số tiền) cao nhất. 
4/ Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất). Hãy dùng thuật toán phân rã để nâng cấp 
lược đồ cơ sở dữ liệu trên. 
Lưu ý: Các thuộc tính đều được xem như thuộc tính đơn. 
Đáp án: 
Câu 1: 
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG} 
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG) 
F2={MACV→NOIDUNGCV} 
Q2:Congviec(MACV,NOIDUNGCV) 
F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU; 
MAKH→TENKH,DCHI} 
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU) 
F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO} 
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO) 
F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH} 
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU) 
Câu 2: mô tả tất cả các ràng buộc toàn vẹn: 
R11 ∀ t1,t2 ∈ rTho RBTV khóa chính 
 t1.MATHO ≠ t2.MATHO 
 cuối ∀ 
R12 rTho[NHOM_TRUONG] ⊆ rTho[MATHO] RBTV khóa ngoại 
R13 ∀ t ∈ rTho 
 t.TENTHO ≠ NULL RBTV miền giá trị 
 t.NHOM ≠ NULL RBTV miền giá trị 
 cuối ∀ 
R21 ∀ t1,t2 ∈ rCongviec RBTV khóa chính 
 t1.MACV ≠ t2.MACV 
 cuối ∀ 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
87
R22 ∀ t ∈ rCongviec RBTV miền giá trị. 
 t.NOIDUNGCV ≠ NULL 
 cuối ∀ 
R31 ∀ t1,t2 ∈ rHopdong RBTV khóa chính. 
 t1.SOHD ≠ t2.SOHD 
 cuối ∀ 
R32 ∀ t ∈ rHopdong 
 t.NGAYHD ≠ NULL RBTV miền giá trị. 
 t.MAKH ≠ NULL RBTV miền giá trị. 
 t.TENKH ≠ NULL RBTV miền giá trị. 
 t.SOXE ≠ NULL RBTV miền giá trị. 
 t.TRIGIAHD > 0 RBTV miền giá trị. 
 t.NGAYHD <= t.NG_NGTHU RBTV liên thuộc tính. 
 t.NG_NGTHU <= t.NG_GIAO_DK RBTV liên thuộc tính. 
 cuối ∀ 
R41 ∀ t1,t2 ∈ rChiTiet_hd RBTV khóa chính. 
 t1.{SOHD,MACV} ≠ t2.{SOHD,MACV} 
 cuối ∀ 
R42 rChitiet_HD[MATHO] ⊆ rTho[MATHO] RBTV khóa ngoại 
R43 rChitiet_HD[SOHD] ⊆ rHopdong[SOHD] RBTV khóa ngoại 
R44 rChitiet_HD[MACV] ⊆ rCongviec[MACV] RBTV khóa ngoại 
R45 ∀ t ∈ rChiTiet_hd 
 t.TRIGIA_CV > t.KHOANTHO RBTV liên thuộc tính. 
 t.KHOANTHO > 0 RBTV miền giá trị. 
 cuối ∀ 
R51 ∀ t1,t2 ∈ rPhieu_thu RBTV khóa chính 
 t1.SOPH ≠ t2.SOPH 
 cuối ∀ 
R52 rPhieu_thu[SOHD] ⊆ rHopdong[SOHD] RBTV khóa ngoại 
R53 ∀ t ∈ rPhieuthu 
 t.NGAYPH ≠ NULL RBTV miền giá trị 
 t.MAKH ≠ NULL RBTV miền giá trị 
 t.HOTEN ≠ NULL RBTV miền giá trị 
 t.SOTIENTHU > 0 RBTV miền giá trị 
 cuối ∀ 
R54 ∀t∈rPhieuthu ∃t’∈rHopdong RBTV liên thuộc tính liên quan hệ. 
 t.SOHD = t’.SOHD và 
 t.NGAYPH <= t’NGAYHD 
 cuối ∀ 
 Bảng tầm ảnh hưởng tổng hợp: 
 rTho rCongviec rHopdong rChiTiet_hd rPhieu_thu
 T S X T S X T S X T S X T S X 
R11 + + - 
R12 + + + 
R13 + + - 
R21 + + - 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
88
R22 + + - 
R31 + + - 
R32 + + - 
R41 + + - 
R42 - + + + + - 
R43 - + + + + - 
R44 - + + + + - 
R45 + + - 
R51 + + - 
R52 - + + + + - 
R53 + + - 
R54 - + + + + - 
Câu 3: 
a) SELECT matho,tentho 
FROM tho 
WHERE matho NOT IN 
 (SELECT matho 
 FROM hop_dong INNER JOIN chitiet_HD ON hop_dong.sohd = chitiet_HD.sohd 
 WHERE ng_ngthu > date() OR ISNULL(ng_ngthu)) 
b)SELECT 
sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu 
FROM hop_dong 
WHERE ng_giao_dk 
(SELECT SUM(SOTIENTHU) FROM phieu_thu 
WHERE phieu_thu.sohd = hop_dong.sohd) OR sohd Not In (Select sohd 
From phieu_thu)) 
c)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu 
FROM hop_dong 
WHERE ng_giao_dk > #12/21/95# AND ng_giao_dk <= #12/31/95# 
d)SELECT chitiet_hd.matho,tentho,COUNT(macv) AS soluongcv 
FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho 
GROUP BY chiTiet_hd.matho,tentho 
HAVING COUNT(macv) >= ALL (SELECT COUNT(macv) FROM chiTiet_hd GROUP 
BY matho) 
e)SELECT chiTiet_hd.matho,tentho,SUM(trigia_cv) AS congtrigia_cv 
FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho 
GROUP BY chiTiet_hd.matho,tentho 
HAVING SUM(trigia_cv) >= ALL (SELECT SUM(trigia_cv) FROM chiTiet_hd 
GROUP BY matho) 
Câu 4: 
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG} 
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG) 
K1 = MATHO 
⇒ Q1 ở dạng chuẩn BC 
F2={MACV→NOIDUNGCV} 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
89
Q2:Congviec(MACV,NOIDUNGCV) 
K2 = MACV 
⇒ Q2 ở dạng chuẩn BC 
F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU; 
MAKH→TENKH,DCHI} 
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU) 
K3 = SOHD 
⇒ Q3 ở dạng chuẩn 2 
F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO} 
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO) 
K4 = {SOHD,MACV} 
⇒ Q4 ở dạng chuẩn BC 
F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH} 
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU) 
K5 = SOPH 
⇒ Q5 ở dạng chuẩn 2 
Vậy lược đồ cơ sở dữ liệu C đạt dạng chuẩn 2. 
Để nâng cấp lược đồ cơ sở dữ liệu trên ta phải phân rã Q3 và Q5 thành: 
F31={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU} 
Q31: Hopdong(SOHD,NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU) 
K31 = SOHD 
⇒ Q31 đạt chuẩn BC 
F32={MAKH→TENKH,DCHI} 
Q32: Khachhang(MAKH,TENKH,DCHI) 
K32 = MAKH 
⇒ Q32 đạt chuẩn BC 
F51={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU} 
Q51:Phieu_thu(SOPH,NGAYPH,SOHD,HOTEN,SOTIENTHU) 
K51 = SOPH 
⇒ Q51 đạt chuẩn BC 
F52={SOHD→MAKH} 
Q52:Hopdong(SOHD,MAKH) 
K52 = SOHD ⇒ Q52 đạt chuẩn BC 
Lược đồ Q52 là lược đồ con của Q31 nên ta loại Q52 khỏi lược đồ cơ sở dữ liệu C. Vậy lược đồ cơ sở 
dữ liệu C được phân rã thành các lược đồ Q1,Q2,Q31,Q32,Q4,Q51 
----oOo----
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
90
Đề 3 
Cho một lược sơ đồ cơ sở dữ liệu C dùng để quản lý hoạt động kinh doanh kiều hối của một đơn vị. 
Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau : 
Q1: Nguyen_te(LOAINT,NGAY,TIGIA,TILE_HH) 
Tân từ : Mỗi nguyên tệ được nhận diện duy nhất qua LOAINT. Các loại nguyên tệ có thể là: USD, 
FF, DM, YEN, ...Thuộc tính TIGIA chỉ tỉ giá so với tiền đồng VN của mỗi nguyên tệ 
trong ngày ( do Ngân hàng Ngoại thương quyết định vào đầu mỗi ngày và cố định trong 
ngày). Thuộc tính TILE_HH là tỉ lệ % huê hồng mà công ty được hưởng trên giá trị chi trả 
của mỗi nguyên tệ (tỉ lệ này cố định trong năm). 
Lưu ý : Quan hệ này chỉ chứa các nguyên tệ mà công ty có chi trả kiều hối. Mỗi khi cần chi trả môt 
loại nguyên tệ mới, công ty bắt đầu lưu tỉ giá nguyên tệ mới kể từ ngày chi trả trở đi. 
Q2: Don_vi(MADV,NUOC) 
Tân từ : Công ty làm đại diện cho khoảng 50 đơn vị của nước ngoài để chi trả kiều hối cho khách 
hàng tại VN. Mỗi đơn vị có mã riêng để phân biệt (MADV)và đặt trụ sở chính tại 1 nước 
(NUOC). 
Q3: Danh_sach(MADV,SODS,NGAYDS) 
Tân từ : Mỗi danh sách liên quan đến 1 đơn vị, có một số thứ tự (SODS) để phân biệt với các danh 
sách khác của cùng đơn vị. Thuộc tính NGAYDS là ngày công ty nhận được danh sách, 
cũng là ngày mà đơn vị tại nước ngoài gởi danh sách cho công ty. Trong một ngày, một 
đơn vị tại nước ngoài chỉ gởi tối đa một danh sách. 
Q4: Ctiet_ds(MADV,SODS,HOTENKH,DIACHI,LOAINT,TIENNT) 
Tân từ : Mỗi danh sách chi trả của một đơn vị có thể gồm nhiều khách hàng. Giả sử rằng thuộc tính 
HOTENKH có thể thêm một số thông tin phụ đủ để phân biệt với các khách hàng khác trong 
cùng danh sách. Mỗi khách hàng chỉ có một địa chỉ (DIACHI) và nhiều khách hàng có thể 
có chung một địa chỉ. Trong một danh sách, mỗi khách hàng chỉ nhận một loại nguyên tệ 
với số tiền nguyên tệ là TIENNT 
Q5: Giay_bao(SOGB,MADV,SODS,HOTENKH,NGAYGB,LAN) 
Tân từ : Sau khi nhận danh sách của một đơn vị, công ty gởi giấy báo cho các khách hàng tại VN. 
Mỗi giấy báo có số thứ tự là SOGB (đánh số tăng dần) để phân biệt với các giấy báo khác 
(của cùng đơn vị hoặc khác đơn vị). Nếu sau 3 lần gởi giấy báo (mỗi lần cách nhau 1 tuần) 
mà khách hàng không đến nhận tiền, công ty sẽ gởi trả cho đơn vị tại nước ngoài). 
Q6:Chi_tra(SOPCHI,MADV,SODS,HOTENKH,NGAYCTRA,SOTIENVN) 
Tân từ : Mỗi khách hàng trong danh sach của 1 đơn vị, sau khi nhận giấy báo, sẽ đến nhận tiền 
đồng VN 1 lần tại công ty và mỗi phiếu chi tiền cho khách sẽ có số là SOPCHI để phân 
biệt với bất kỳ phiếu chi khác. Thuộc tính SOTIENVN chỉ số tiền ĐVN mà khách hàng 
nhận được tương đương với TIENNT ghi trong danh sách. Tỉ giá qui đổi được tính vào ngày 
chi trả (NGAYCTRA). Số tiền huê hồng mà công ty được hưởng sẽ được tính toán dựa trên 
số tiền thực chi (SOTIENVN) và tỉ lệ huê hồng của nguyên tệ. 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
91
Câu hỏi : 
1. Xác định tập F gồm tất cả các phụ thuộc hàm suy ra từ tân từ của các lược đồ quan hệ. Xác 
định khóa cho từng lược đồ quan hệ. 
2. Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu. Lập bảng tầm ảnh hưởng tổng 
hợp. 
3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau: 
a) Cho biết tỉ giá của các nguyên tệ trong ngày 21/12/95 
b) Cho biết những danh sách chi trả kiều hối của các đơn vị có trụ sở chính đặt tại nước Pháp. 
c) Cho biết những khách hàng không đến nhận tiền. 
d) Cho tổng số tiền huê hồng mà công ty được trong khoảng thời gian từ ngày d1 đến ngày d2. 
e) Cho biết đơn vị nước ngoài có tổng số tiền chi trả (tính theo tiền đồng VN) cao nhất. 
4. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ? Hãy dùng thuật toán phân rã để 
nâng cấp cơ sở dữ liệu trên. 
Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. 
----oOo----
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
92
Đề 4 
Cho một lược đồ cơ sở dữ liệu C dùng để quản lý việc thuê mướn phòng tại một khách sạn. Lược đồ 
cơ sở dữ liệu C gồm các lược đồ quan hệ nhu sau : 
Q1: Phong(MAPH,SO_NGUOI,DACDIEM,GIA_PHONG) 
Tân từ: Các phòng của khách sạn được phân biệt với nhau qua MAPH. SO_NGUOI là khả năng 
chứa tối đa của phòng. DACDIEM mô tả số đặc điểm của phòng. GIA_PHONG là giá cả 
thuê phòng trong 1 ngày. 
Q2: Tien_nghi(LOAI_TN,TEN_TN) 
Tân từ: Ngoài các vật dụng tối thiểu, khách sạn có thể trang bị thêm một số tiện nghi khác cho các 
phòng như : điện thoại, tivi, tủ lạnh,  LOAI_TN là mã số để phân biệt từng loại tiện 
nghi. TEN_TN là tên gọi của loại tiện nghi. 
Q3: Tai_san(LOAI_TN,STT,MAPH,NGAY_TB) 
Tân từ : Mỗi loại tiện nghi, khách sạn có thể mua một số lượng lớn và STT dùng để phân biệt các 
vật dụng trong cùng loại tiện nghi. Một vật dụng có thể được sắp xếp trang bị cho nhiều 
phòng khác nhau nhưng trong một ngày vật dụng chỉ trang bị cho một phòng. MAPH là 
phòng được trang bị và NGAY_TB là ngày bắt đầu trang bị. 
Lưu ý : Mỗi khi một vật dụng được thay đổi phòng thì cập nhật lại MAPH và NGAY_TB của vật dụng 
đó. 
Q4: Thue_phong(MAPH,HOTEN,NGAYBD,NGAYKT,NGAYTRA,LOAIDV,NGAYDV,TIENDV) 
Tân từ : HOTEN là họ tên của khách thuê phòng MAPH. Giả sử rằng hô tên các khách thuê phòng 
trong cùng một phòng trong một ngày luôn luôn khác nhau. NGAYBD và NGAYKT là ngày 
bắt đầu và ngày kết thúc (dự kiến) thuê phòng. NGAYTRA là ngày trả thật sự. Giả sử rằng 
không có trường hợp khách trả phòng và thuê lại chính phòng đó trong cùng một ngày. Số 
tiền thuê phòng được chia đều cho số khách thuê trong cùng phòng. 
 Khách thuê phòng có thể sử dụng thêm các dịch vụ (gọi điện thoại đường dài, thuê xe, thủ 
tục hành chính, ) LOAI_DV là mã số của loại dịch vụ sử dụng. NGAYDV ngày dịch vụ thực 
hiện. TIENDV là số tiền khách thuê phải trả cho dịch vụ. 
Nếu trong cùng một ngày khách thuê phòng sử dụng 1 dịch vụ nhiều lần thì tiền dịch vụ 
được cộng dồn lại thành một lần và tạo thành một bộ (ví dụ trong ngày gọi điện thoại 3 
cuộc với số tiền phải trả lần lượt là : 5000ĐVN, 4500ĐVN, 2000ĐVN thì sẽ được tính 
chung một lần là 11500ĐVN). Các dịch vụ được tính riêng đối với từng khách. Nếu là dịch 
vụ chung cho một số khách thì sẽ tính tiền cho một đơn vị khách đại diện nào đó. 
Câu hỏi : 
1. Xác định tập F gồm tất cả các phụ thuộc hàm suy ra từ tân từ của các lược đồ quan hệ. Xác 
định các khóa cho từng lược đồ quan hệ. 
2. Mô tả tất cả các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệu C. Lập bảng tầm ảnh hưởng 
tổng hợp của các ràng buộc toàn vẹn. 
3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau : 
a) Cho biết các thông tin của các phòng có khả năng chứa trên 3 người. 
b) Cho biết các thông tin của các phòng có trang bị máy lạnh (LOAITN=’ML’) 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
93
c) Cho biết các thông tin của các phòng hiện nay (02/01/96) có trang bị máy lạnh. 
d) Giả sử hôm nay là ngày 02/01/96. Tính tổng số tiền phải trả (tiền thuê phòng và tiền dịch 
vụ) của từng khách đã thuê phòng X từ ngày 21/12/95 và trả phòng vào hôm nay . 
e) Cho biết doanh số thu được của từng phòng (không tính tiền dịch vụ) 
1. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ?. Hãy dùng thuật toán phân rã để 
nâng cấp lược đồ cơ sở dữ liệu C. 
Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. 
----oOo---- 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
94
Đề 5 
Cho một lược đồ cơ sở dữ liệu C dùng để quản lý việc việc cho mượn sách tại một thư viện (xem tại 
chỗ hoặc mang về nhà). Lược đồ cơ sở dữ liệu C gồm các lược đồ quan hệ như sau : 
Q1 : The_loai(MATL,TENTL) 
Tân từ : Sách của thư viện được phân chia theo thể loại để bạn đọc dễ dàng tra cứu. MATL là mã số 
của từng thể loại và dùng để phân biệt giữa các thể loại. TENTL là tên gọi của thể loại. 
Q2 : Sach(MASH,TENSH,NGUYEN_TAC,TAC_GIA,MATL) 
Tân từ : MASH dùng để phân biệt các quyển sách. TENSH là tên (tựa) bằng tiếng Việt của sách và 
NGUYEN_TAC là tên nguyên tác (tiếng Việt hoặc tiếng nước ngoài). TAC_GIA là tên tác 
giả (hay nhóm các tác giả) của sách. Nếu sách có nhiều tập hay nhiều bản thì cũng xem 
như các đầu sách khác nhau và có mã số khác nhau. MATL là mã thể loại của sách. 
Q3 : phieu_muon(MADG,TENDG,DCHI,NGAYCAP,MASH,NGAYMUON,NGAYTRA,TAI_CHO) 
Tân từ : Mỗi độc giả chỉ có một phiếu mượn sách với mã số là MADG để phân biệt với các độc giả 
khác. Các thuộc tính TENDG, DCHI là tên và địa chỉ của độc giả. NGAYCAP là ngày cấp 
thẻ cho độc giả. MASH là mã số của sách mượn. Giả sử không có trường hợp mượn rồi trả 
lại cùng 1 quyển sách trong cùng 1 ngày. Nếu sách mượn đọc tại chỗ thì thuộc tính 
TAI_CHO có giá trị True và NGAYMUON=NGAYTRA. Nếu sách mượn về nhà thì thuộc tính 
TAI_CHO có giá trị False và NGAYTRA sẽ có giá trị trống cho đến khi sách được mang trả 
lại cho thư viện. Mỗi độc giả chỉ được giữ tại nhà tối đa 3 quyển sách và mỗi quyển sách 
chỉ được giữ tại nhà tối đa 30 ngày (không cần lưu ý đến biện pháp xử lý nếu khách vi 
phạm nội qui) 
Q4 : Le_phi(MADG,NAM,NGAY_NOP,SOTIEN) 
Tân từ: Độc giả phải đóng lệ phí hằng năm (NAM) để gia hạn thẻ mới được mượn sách. 
NGAY_NOP,SOTIEN là ngày và số tiền nôp lệ phí cho NAM. 
Câu hỏi : 
1. Xác định tập F gồm tất cả các phụ thuộc hàm suy ra từ tân từ của các lược đồ quan hệ. Xác định 
các khóa cho từng lược đồ quan hệ. 
2. Mô tả tất các ràng buộc toàn vẹn của lược đồ cơ sở dữ liệ C. Lập bảng tầm ảnh hưởng tổng hợp 
của các ràng buộc toàn vẹn. 
3. Dùng ngôn ngữ SQL để thực hiện những yêu cầu sau : 
 a) Cho biết danh sách độc giả và những quyển sách mượn quá 20 ngày (kể từ ngày 02/01/96). 
 b) Cho biết những quyển sách có tên thể loại là “Tin học” và có sự tham gia biên soạn của tác 
giả “X”. 
 c) Cho biết tổng số lần mượn của từng quyển sách. 
 d) Cho biết tổng số lần mượn của từng thể loại sách. 
 e) Cho biết thể loại sách nào được mượn nhiều nhất. 
4. Lược đồ cơ sở dữ liệu C ở dạng chuẩn mấy (cao nhất) ? Hãy dùng thuật toán phân rã để nâng cấp 
lược đồ cơ sở dữ liệu C. 
Lưu ý : Các thuộc tính có miền giá trị là ngày dương lịch xem như thuộc tính đơn. 
Giáo trình CƠ SỞ DỮ LIỆU Trang 
Bộ mơn CSDL Trường CĐCN 4 
95
TÀI LIỆU THAM KHẢO 
[1].Nhập môn cơ sở dữ liệu 
Đồng Thị Bích Thủy - Nguyễn An Tế 
[2].Cơ sở dữ liệu – lý thuyết và thực hành 
Nguyễn Bá Tường 
[3].Cơ sở dữ liệu 
Đỗ Trung Tuấn 
[4].Mô hình dữ liệu và ngôn ngữ truy vấn 
JEFFREY D. ULLMAN 
[5].Lý thuyết thiết kế cơ sở dữ liệu 
JEFFREY D. ULLMAN 
[6].The Theory Of Relational Databases 
DAVID MAIER 
----oOo---- 

File đính kèm:

  • pdfgiao_trinh_co_so_du_lieu_trinh_hoang_nam_phan_2.pdf