Bài 1. CSDL Tour du lịch. Một công ty X chuyên tổ chức các Tour du lịch (Hà Nội, Huế, Nha Trang,...). Để quản lí dữ liệu trong cơ sở dữ liệu của công ty X có ba bảng như sau: Bảng KHACHHANG (Khách hàng)
MA_KH
HO_TEN
DIA_CHI
SO_DT
MS001
Lý Anh Du
Mỹ Xuyên
076845777
MS002
Hoàng Nam Lịch
My Long
076845888
MS003
Lê Đức An
My Long
076845999
MS004
Tử Văn Giang
Mỹ Bình
076845000
Bảng TOUR DU LICH (Tour du lịch)
MA_TOUR
TOUR
DON_GIA
T01
Hà Nội
700000
T02
Huế
500000
T03
Nha Trang
350000
Bảng DATHANG (Đặt hàng)
MA_KH
MA_TOUR
SO_LUONG
NGAY_DI
MS001
T03
20
20/11/2008
MS002
T02
30
15/12/2008
MS003
T01
25
20/12/2008
MS004
T01
30
08/12/2008
Câu 1: Em hãy chọn khóa chính cho mỗi bảng trong cơ sở dữ liệu trên và giải thích lí do lựa chọn đó. Câu2: Em hãy chỉ ra mối liên kết cần thiết giữa ba bảng Câu3: Hãy làm các việc sau: + Tạo lập cơ sở dữ liệu nói trên và lưu lưu với tên TOURDULICH trong thư mục KIEM TRA trong ổ đĩa D: + Tạo mẫu hỏi với tên: CHIPHIDULICH gồm các trưởng sau: HO_TEN; DIA_CHI; TOUR; DON_GIA SO_LUONG; THANH_TIEN (THANH TIEN – SO LUONG * DON GIA) và dữ liệu được sắp xếp trên trường DON_GIA theo chiều từ cao đến thấp. + Tạo báo cáo với tiêu đề BANGTHANHTOANCHIPHIDULICH gồm các trường trong mẫu hỏi. Bài làm: Câu 1: Bảng KHACHHANG: Khóa chính là trường MA_KH vì nó định danh duy nhất mỗi khách hàng trong hệ thống. Bảng TOUR DU LỊCH: Khóa chính là trường MA_TOUR vì nó định danh duy nhất mỗi tour du lịch trong hệ thống. Bảng ĐẶT HÀNG: Khóa chính là sự kết hợp giữa MA_KH và MA_TOUR vì mỗi đặt hàng cần phải liên kết với một khách hàng cụ thể và một tour du lịch cụ thể. Câu 2: Bảng ĐẶT HÀNG có mối liên kết với bảng KHACHHANG thông qua trường MA_KH. Bảng ĐẶT HÀNG cũng có mối liên kết với bảng TOUR DU LỊCH thông qua trường MA_TOUR. Câu 3: Sử dụng câu lệnh SQL Bước 1.Tạo cơ sở dữ liệu và các bảng CREATE DATABASE DBDULICH; USE DBDULICH; CREATE TABLE KHACHHANG ( MA_KH CHAR(5) PRIMARY KEY, HO_TEN VARCHAR(50), DIA_CHI VARCHAR(100), SO_DT VARCHAR(20)); CREATE TABLE TOUR_DU_LICH ( MA_TOUR CHAR(3) PRIMARY KEY, TOUR VARCHAR(50), DON_GIA INT); CREATE TABLE DAT_HANG ( MA_KH CHAR(5), MA_TOUR CHAR(3), SO_LUONG INT, NGAY_DI DATE, PRIMARY KEY (MA_KH, MA_TOUR), FOREIGN KEY (MA_KH) REFERENCES KHACHHANG(MA_KH), FOREIGN KEY (MA_TOUR) REFERENCES TOUR_DU_LICH(MA_TOUR)); 2. Đưa dữ liệu vào các bảng INSERT INTO KHACHHANG (MA_KH, HO_TEN, DIA_CHI, SO_DT) VALUES ('MS001', 'Lý Anh Du', 'Mỹ Xuyên', '076845777'), ('MS002', 'Hoàng Nam Lịch', 'My Long', '076845888'), ('MS003', 'Lê Đức An', 'My Long', '076845999'), ('MS004', 'Tử Văn Giang', 'Mỹ Bình', '076845000'); INSERT INTO TOUR_DU_LICH (MA_TOUR, TOUR, DON_GIA) VALUES ('T01', 'Hà Nội', 700000), ('T02', 'Huế', 500000), ('T03', 'Nha Trang', 350000); INSERT INTO DAT_HANG (MA_KH, MA_TOUR, SO_LUONG, NGAY_DI) VALUES ('MS001', 'T03', 20, '2008-11-20'), ('MS002', 'T02', 30, '2008-12-15'), ('MS003', 'T01', 25, '2008-12-20'), ('MS004', 'T01', 30, '2008-12-08'); Bước 3. Tạo view CHIPHIDULICH Lệnh SQL: SELECT KHACHHANG.HO_TEN, KHACHHANG.DIA_CHI, TOURDULICH.TOUR, TOURDULICH.DON_GIA, DATHANG.SO_LUONG, [DON_GIA]*[SO_LUONG] AS THANHTIEN FROM TOURDULICH INNER JOIN (KHACHHANG INNER JOIN DATHANG ON KHACHHANG.MA_KH = DATHANG.MA_KH) ON TOURDULICH.MA_TOUR = DATHANG.MA_TOUR ORDER BY TOURDULICH.DON_GIA DESC; Sơ đồ thiết kế:
Kết quả:
Bước 4. Report Bảng thanh toán chi phí du lịch. - Thiết kế:
+ Cột TT chọn Data Control Source =1
- Kết quả:
Cần file Cơ sở dữ liệu Access (liên hệ với tác giả)
Chúng tôi đang sử dụng cookie để cung cấp cho bạn những trải nghiệm tốt nhất trên trang web này. Bằng cách tiếp tục truy cập, bạn đồng ý với Chính sách thu thập và sử dụng cookie của chúng tôi.