Bài 1. CSDL Tour du lịch

Thứ sáu - 08/03/2024 10:39

Bài 1. CSDL Tour du lịch

Bài 1. CSDL Tour du lịch

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_KHHO_TENDIA_CHISO_DT
MS001Lý Anh DuMỹ Xuyên076845777
MS002Hoàng Nam LịchMy Long076845888
MS003Lê Đức AnMy Long076845999
MS004Tử Văn GiangMỹ Bình076845000


Bảng TOUR DU LICH (Tour du lịch)

MA_TOURTOURDON_GIA
T01Hà Nội700000
T02Huế500000
T03Nha Trang350000

Bảng DATHANG (Đặt hàng)

MA_KHMA_TOURSO_LUONGNGAY_DI
MS001T032020/11/2008
MS002T023015/12/2008
MS003T012520/12/2008
MS004T013008/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ả)

Tác giả: Vàng Văn Quyn

Chú ý: Việc đăng lại bài viết trên ở website hoặc các phương tiện truyền thông khác mà không ghi rõ nguồn https://365.io.vn là vi phạm bản quyền

Tổng số điểm của bài viết là: 1 trong 1 đánh giá

Xếp hạng: 1 - 1 phiếu bầu
Click để đánh giá bài viết
Thống kê
  • Đang truy cập6
  • Hôm nay1,781
  • Tháng hiện tại34,375
  • Tổng lượt truy cập9,225,858
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây