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
Những tin cũ hơn
Phần mềm quản lý CCVC Lào Cai
Hướng dẫn thêm chữ ký số vnpt smarrca mới trên vnedu
Hướng dẫn cấu hình SSL trên localhost cho XAMPP
Sửa lỗi định dạng số khi dùng Mail Merge trong Microsoft Word/LibreOffice Writer
Sửa máy in bị đen mép giấy, đen lề trái và phải
TT32_2018_BGDDT_CT GDPT 2018
TT13_2022_BGDDT_sửa đổi, bổ sung CT GDPT 2018
Tài liệu C++ và CodeBlocks V2
Vì sao đánh giá học sinh chương trình mới không còn điểm trung bình cả năm?
Đề cương ôn tập Python
- Click vào nút hiển thị ngày trong tuần hoặc tháng âm lịch để xem chi tiết
- Màu đỏ: Ngày tốt
- Xanh lá: Đầu tháng âm lịch
- Màu vàng: Ngày hiện tại
Canon 2900, HP 1020 in ra giấy trắng
Bài 7: Lập trình robot giáo dục KCbot điều khiển động cơ servo kết hợp cảm biến siêu âm
Khai báo và Đăng ký Chữ ký số của Nhà trường trên vnEdu
Tập huấn CĐS ngày 08/11/2023
Tập huấn CĐS ngày 06/11/2023