“MỌI SỰ CỐ GẮNG CHƯA CHẮC ĐÃ GẶT HÁI ĐƯỢC KẾT QUẢ NHƯNG MỖI KẾT QUẢ ĐẠT ĐƯỢC CHẮC CHẮN LÀ CẢ MỘT QUÁ TRÌNH CỐ GẮNG”

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ập36
  • Hôm nay1,555
  • Tháng hiện tại79,290
  • Tổng lượt truy cập9,170,833
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