Tổng quan về chương trình học lớp 11
Chương trình lớp 11 tập trung vào các khái niệm quan trọng về Cơ sở dữ liệu, MySQL và kỹ thuật lập trình nâng cao.
Nội dung chính:
- Giới thiệu về cơ sở dữ liệu và SQL
- Làm việc với MySQL: Truy vấn, cập nhật, quản lý dữ liệu
- Ứng dụng lập trình với Python và SQL
Các Bước Phân Tích Bài Toán Quản Lý CSDL
- Xác định yêu cầu bài toán: Xác định mục đích của hệ thống và thông tin cần quản lý.
- Xác định thực thể và thuộc tính: Xác định các bảng dữ liệu chính như Khách Hàng, Tour Du Lịch, Nhân Viên, Đặt Tour, Địa Điểm.
- Xác định khóa chính, khóa ngoại: Mỗi bảng cần một khóa chính và thiết lập quan hệ giữa các bảng thông qua khóa ngoại.
- Thiết kế bảng dữ liệu: Định nghĩa các bảng với các cột dữ liệu phù hợp.
- Xây dựng quan hệ giữa các bảng: Sử dụng khóa ngoại để liên kết dữ liệu giữa các bảng.
- Viết các truy vấn SQL cơ bản: Tạo bảng, thêm dữ liệu, truy vấn thông tin.
Khóa Chính và Khóa Ngoại
Khóa chính (Primary Key): Là cột hoặc tập hợp cột dùng để xác định duy nhất một bản ghi trong bảng.
Khóa ngoại (Foreign Key): Là cột hoặc tập hợp cột trong bảng dùng để tạo mối quan hệ với khóa chính của một bảng khác.
BÀI TOÁN: HỆ THỐNG QUẢN LÝ DU LỊCH
Mô tả bài toán
Ngành du lịch ngày càng phát triển, kéo theo nhu cầu quản lý thông tin khách hàng, dịch vụ tour, nhân sự và quy trình đặt tour một cách hiệu quả. Việc quản lý thủ công dễ dẫn đến sai sót, mất thời gian và khó tối ưu hóa trải nghiệm khách hàng.
Hệ thống Quản lý Du lịch được thiết kế nhằm số hóa dữ liệu, tự động hóa quy trình và giúp doanh nghiệp dễ dàng theo dõi, cập nhật thông tin về:
- Khách hàng: Thông tin cá nhân, liên hệ và lịch sử đặt tour.
- Tour du lịch: Chi tiết các tour, điểm đến, giá cả và lịch trình.
- Nhân viên: Danh sách nhân viên cùng chức vụ và thông tin liên hệ.
- Đặt tour: Ghi nhận các giao dịch đặt tour, trạng thái thanh toán.
- Địa điểm du lịch: Danh sách điểm đến hấp dẫn với mô tả chi tiết.
Mục đích hệ thống
- Tối ưu hóa quy trình quản lý: Giảm thiểu công việc thủ công, giúp nhân viên thao tác nhanh chóng và chính xác.
- Nâng cao trải nghiệm khách hàng: Dễ dàng tra cứu thông tin, đặt tour và theo dõi trạng thái đặt chỗ.
- Hỗ trợ ra quyết định: Cung cấp dữ liệu phân tích về xu hướng du lịch, số lượng khách đặt tour theo thời gian.
- Đảm bảo tính bảo mật và toàn vẹn dữ liệu: Hạn chế rủi ro mất mát thông tin, truy xuất dữ liệu nhanh chóng và chính xác.
Hệ thống sử dụng cơ sở dữ liệu quan hệ (MySQL) để tổ chức dữ liệu một cách khoa học, hỗ trợ các truy vấn giúp khai thác và quản lý thông tin hiệu quả.
Bảng Khách Hàng
Mã KH | Tên KH | SĐT | Địa chỉ | |
---|---|---|---|---|
KH01 | Duong Thi Thu Hien | 0353036999 | Phu Yen, Viet Nam | thuhien@example.com |
KH02 | Nguyen Van An | 0123456789 | Ha Noi, Viet Nam | vana@example.com |
KH03 | Tran Thi B | 0987654321 | Ho Chi Minh, Viet Nam | tranb@example.com |
Bảng Tour Du Lịch
Mã Tour | Tên Tour | Mô Tả | Giá (VND) | Ngày Khởi Hành |
---|---|---|---|---|
TOUR01 | Tour Phú Yên | Khám phá vùng đất hoa vàng trên cỏ xanh | 1.800.000 | 2023-08-20 |
TOUR02 | Tour Ha Long | Du lịch biển đảo | 1.500.000 | 2023-06-01 |
TOUR03 | Tour Da Lat | Khám phá cao nguyên | 2.000.000 | 2023-07-15 |
Bảng Nhân Viên
Mã NV | Tên NV | Chức vụ | SĐT | |
---|---|---|---|---|
NV01 | Le Van C | Hướng dẫn viên | 0912345678 | levanc@example.com |
NV02 | Pham D | Điều hành tour | 0923456789 | phamd@example.com |
Bảng Địa Điểm Du Lịch
Mã Địa Điểm | Tên Địa Điểm | Địa Chỉ | Mô Tả |
---|---|---|---|
DD01 | Gành Đá Đĩa | Phú Yên | Kỳ quan thiên nhiên với các cột đá xếp chồng độc đáo |
DD02 | Tháp Nghinh Phong | Phú Yên | Biểu tượng du lịch mới của Phú Yên, kiến trúc độc đáo ven biển |
DD03 | Vịnh Hạ Long | Quảng Ninh | Danh thắng thiên nhiên thế giới |
DD04 | Thác Datanla | Đà Lạt | Thác nước nổi tiếng với cảnh đẹp hùng vĩ |
Bảng Đặt Tour
Mã Đặt Tour | Mã KH | Mã Tour | Ngày Đặt | Trạng Thái |
---|---|---|---|---|
DT01 | KH01 | TOUR01 | 2023-05-20 | Đã xác nhận |
DT02 | KH02 | TOUR02 | 2023-06-10 | Chưa thanh toán |
DT03 | KH03 | TOUR03 | 2023-07-30 | Đã thanh toán |
Câu Lệnh Truy Vấn SQL
1. Tạo bảng Khách Hàng:
CREATE TABLE KhachHang ( MaKH VARCHAR(10) PRIMARY KEY, TenKH VARCHAR(50), SDT VARCHAR(15), DiaChi TEXT, Email VARCHAR(50) );
2. Tạo bảng Đặt Tour với khóa ngoại:
CREATE TABLE DatTour ( MaDatTour VARCHAR(10) PRIMARY KEY, MaKH VARCHAR(10), MaTour VARCHAR(10), NgayDat DATE, TrangThai VARCHAR(20), FOREIGN KEY (MaKH) REFERENCES KhachHang(MaKH), FOREIGN KEY (MaTour) REFERENCES Tour(MaTour) );
3. Truy vấn danh sách khách hàng đã đặt tour:
SELECT KhachHang.TenKH, Tour.TenTour, DatTour.NgayDat, DatTour.TrangThai FROM DatTour JOIN KhachHang ON DatTour.MaKH = KhachHang.MaKH JOIN Tour ON DatTour.MaTour = Tour.MaTour;
4. Truy vấn danh sách tour du lịch có giá trên 1.500.000 VND:
SELECT * FROM Tour WHERE Gia > 1500000;
5. Đếm số lượng khách hàng đã đặt tour:
SELECT COUNT(*) FROM DatTour;
6. Truy vấn nhân viên có chức vụ là "Hướng dẫn viên":
SELECT * FROM NhanVien WHERE ChucVu = 'Hướng dẫn viên';
7. Truy vấn các địa điểm du lịch có mô tả chứa "biển":
SELECT * FROM DiaDiem WHERE MoTa LIKE '%biển%';
8. Cập nhật trạng thái đặt tour thành "Đã thanh toán" cho một khách hàng:
UPDATE DatTour SET TrangThai = 'Đã thanh toán' WHERE MaDatTour = 'DT01';
9. Xóa một khách hàng có mã KH01 khỏi hệ thống:
DELETE FROM KhachHang WHERE MaKH = 'KH01';
10. Truy vấn danh sách các tour và số lượng khách đã đặt mỗi tour:
SELECT Tour.TenTour, COUNT(DatTour.MaDatTour) AS SoLuongDat FROM Tour LEFT JOIN DatTour ON Tour.MaTour = DatTour.MaTour GROUP BY Tour.TenTour;
Một số bài toán quản lý khác
Dưới đây là tài liệu PDF về một số bài toán quản lý khác: