“MỌI SỰ CỐ GẮNG CHƯA CHẮC ĐÃ GẶT GÁ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_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ả)

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ập126
  • Hôm nay2,677
  • Tháng hiện tại92,380
  • Tổng lượt truy cập1,918,125
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