Từ các vé ta có thể tím thấy thông tin khách hàng, thông tin Tour du lịch, thông tin đại lý bán vé, thông tin loại hình du lịch… Qua khảo sát thực tế, nhóm chúng em đã thu được một số d
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN CƠ SỞ DỮ LIỆU
Chủ đề:
XÂY DỰNG CƠ SỞ DỮ LIỆU QUẢN LÝ TOUR DU LỊCH
Giảng viên: Phan Thị Hà
Trang 2Mục Lục
I, Kịch bản thế giới thực 3
1, Giới thiệu chủ đề: 3
2, Mô tả hệ thống 3
3, Xác định các đối tượng thực thể 4
II, Mô hình E-R 7
1, Lược đồ E_R 7
2, Mô tả chi tiết lược đồ E-R 7
III, Chuẩn hóa và thiết kế logic 8
1, Lược đồ quan hệ 8
2, Chuẩn hóa 3NF 10
IV, Thể hiện lược đồ quan hệ bằng SQL sever 13
1, Lược đồ quan hệ trên SQL 13
2, Cài đặt bảng và nhập dữ liệu 13
3, Thực hiện truy vấn 25
2
Trang 3I, Kịch bản thế giới thực
1, Giới thiệu chủ đề:
Nhằm mục đích thực hành, luyện tập xây dựng cơ sở dữ liệu, cũng như xét tính phù hợp của chủ đề, nhóm em đã lựa chọn chủ đề xây dựng cơ sở dữ liệu quản lý tour du lịch
Quản lý tour du lịch là một hệ thống nhằm phục vụ cho các công ty quản lý du lịch, website đặt chuyến du lịch…, cơ sở dữ liệu này sẽ giúp các quản trị viên nắm bắt toàn bộ thông tin từ khách hàng, địa điểm du lịch,…
Từ đó có thể thống kê phân tích các số liệu phù hợp để phục vụ cho doanh nghiệp
- Phương tiện di chuyển
- Điểm tham quan
Qua đó chúng ta có thể tạo các biểu mẫu vé Từ các vé ta có thể tím thấy thông tin khách hàng, thông tin Tour du lịch, thông tin đại lý bán vé, thông tin loại hình du lịch…
Qua khảo sát thực tế, nhóm chúng em đã thu được một số dữ liệu sau đây:
- Phân tích thiết kế hệ thống thực hiện việc quản lí Tour du lịch trong nước nhằm giúp cho việc: tổ chức Tour, cũng như việc quản lý một số vấn đề liên quan như khách hàng, nhân viên,
3
Trang 4phương tiện,… được tốt hơn, đảm bảo tính chính xác nhanh chóng và thuận lợi
- Mỗi Tour du lịch thường lưu trữ các thông tin: Mã Tour, tên Tour, ngày bắt đầu, ngày kết thúc, giá …
- Mỗi khách hàng có thể đăng ký một hoặc nhiều Tour thông tin khách hàng lưu trữ gồm: Mã khách hàng, tên khách hàng, giới tính, địa chỉ, số điện thoại …
- Các công ty sẽ gồm nhiều đại lý, trong số đó có một đại lý làm
tụ sở chính các thông tin đại lý gồm: Mã đại lý, tên đại lý, địa chỉ, số điện thoại …
- Các đại lý sẽ thực hiện thống nhất việc tổ chức, quản lý và bán
vé cho khách hàng, thông tin vé gồm: Mã vé, tên vé, …
- Mỗi chuyến du lịch sẽ có một hướng dẫn viên (HDV) du lịch phụ trách hướng dẫn khách tham quan trong suốt Tour du lịch thông tin HDV gồm: Mã HDV, tên HDV, giới tính, địa chỉ, số điện thoại …
- Mỗi Tour đều có phương tiện di chuyển riêng để dảm bảo cho việc tham quan thông tin phương tiện gồm: Mã phương tiện, tên phương tiện, loại phương tiện, số chỗ ngồi, …
Ngay_bd Ngày kết thúc tour
Ngay_kt Ngày kết thúc tour
B Khách hàng:
4
Trang 5Thực thể Khách hàng dùng để lưu trữ thông tin khách hàng đăng ký tour, gồm các thuộc tính:
Tên thuộc tính Mô tả
C Điểm tham quan:
Thực thể điểm tham quan lưu trữ các địa điểm tham quan trong tour, bao gồm các thuộc tính:
Tên thuộc tính Mô tả
Tendiadanh Tên điểm tham quan
D Phương tiện:
Thực thể Phương tiện lưu trữ phương tiện tham quan, bao gồm các thuộc tính:
Tên thuộc tính Mô tả
Trang 6Thực thể đại lý lưu trữ thông tin các đại lý, gồm các thuộc tính:Tên thuộc tính Mô tả
G Hướng dẫn viên:
Thực thể Hướng dẫn viên lưu trữ thông tin hướng dẫn viên, bao gồm các thuộc tính:
Tên thuộc tính Mô tả
4, Các thao tác trên cơ sở dữ liệu
- Thêm, sửa, xóa, tra cứu thông tin tour
- Thêm, sửa, xóa, tra cứu thông tin khách hàng
- Tra cứu thông tin đăng kí, thông tin vé
- Cập nhật, tra cứu thông tin khách hàng
6
Trang 7Hệ quản
trị cơ sở… 100% (4)
41
Bài CT1 Phòng chống chiến lược “DBHB”,…
Hệ quản
trị cơ sở… 100% (3)
44
Trang 8II, Mô hình E-R
- Mỗi tour có thể có nhiều phương tiện đi lại
- Mỗi tour có nhiều điểm tham quan
- Mỗi điểm tham quan là điểm đến của nhiều tour khách nhau
- Mỗi hướng dẫn viên sẽ phuộc một đại lý, mỗi đại lý sẽ có nhiều hướng dẫn viên
7
BAI TAP CSDL - Bài tập cơ sở dữ liệu
Hệ quảntrị cơ sở… 100% (3)
Trang 9- Mỗi đại lý có thể bán ra nhiều vé
- Mỗi vé thuộc sở hữu của 1 khách hàng
III, Chuẩn hóa và thiết kế logic
Trang 112, Chuẩn hóa 3NF
- Tour(mã tour,tên tour,ngày bd, ngày kt, giá):
F1 = {mã tour -> tên tour, mã tour -> ngày bd, mã tour-> ngày kt,
Mã Tour là siêu khóa nên lược đồ ở chuẩn 3NF
- Khách Hàng(mã KH, tên Kh, soCCCD, diachi):
F2 = {mã KH -> tên KH, mã KH -> soCCCD, mã KH-> diachi}
Mọi giá trị của thuộc tính đều nguyên tố, không có thuộc tính đa trị, không có thuộc tính dẫn xuất => 1NF
Mã KH là một khóa dự bị, các thuộc tính không khóa phụ thuộc hàm đầy đủ vào Mã KH => 2NF
Mã KH là siêu khóa nên lược đồ ở chuẩn 3NF
Email là siêu khóa nên lược đồ ở chuẩn 3NF
- Điểm tham quan(mã DTQ, tên địa danh, địa chỉ):
F4={mã DTQ->tên địa danh, mã DTQ-> địa chỉ}
10
Mã vé Tên vé
Trang 12 Mọi giá trị của thuộc tính đều nguyên tố, không có thuộc tính đa trị, không có thuộc tính dẫn xuất => 1NF
Mã DTQ là một khóa dự bị, các thuộc tính không khóa phụ thuộc hàm đầy đủ vào mã DTQ => 2NF
Mã DTQ là siêu khóa nên lược đồ ở chuẩn 3NF
- Phương tiện(mã PT, tên PT, số chỗ):
Mã KS là siêu khóa nên lược đồ ở chuẩn 3NF
- Đại Lý(mã DL, tên DL, địa chỉ):
Trang 13 Số đt là một khóa dự bị, các thuộc tính không khóa phụ thuộc hàm đầy đủ vào số đt => 2NF
Số ĐT là siêu khóa nên lược đồ ở chuẩn 3NF
- Hướng dẫn viên(mã hdv,tên hdv,địa chỉ):
Trang 14 Mã Vé là siêu khóa nên lược đồ ở chuẩn 3NF
IV, Thể hiện lược đồ quan hệ bằng SQL sever
1, Lược đồ quan hệ trên SQL
2, Cài đặt bảng và nhập dữ liệu
Tạo bảng và nhập dự liệu vào bảng
Bảng daily:
13
Trang 15Bảng Khách Hàng:
14
Trang 16Bảng phuongtien:
15
Trang 17Bảng huongdanvien:
16
Trang 18Bảng khachsan:
17
Trang 19Bảng diemthamquan:
Bảng tour:
18
Trang 20Bảng ve:
19
Trang 21Bảng ve_khach:
20
Trang 22Bảng dangky:
21
Trang 23Bảng tour_diemthamquan:
22
Trang 24Bảng tour_khachsan:
23
Trang 25Bảng tour_phuongtien:
24
Trang 263, Thực hiện truy vấn
Liệt kê các địa điểm tham quan ở Hà Nội kèm theo mã của nóCâu lệnh:
select dbo diemthamquan id_dtq as [Dia Diem Tham Quan] ,
dbo diemthamquan tendiadanh as [Ten Dia Danh]
from dbo diemthamquan
where diemthamquan diachi = 'Ha Noi'
Kết quả
Liệt kê những Vé Thường kèm tên tour và tên đại lý
Câu lệnh:
select dbo tour ten AS [Ten Tour] ,
dbo ve tenve [Ten Ve] , dbo daily ten [Ten Dai Ly]
from dbo tour
join dbo ve on ve id_tour tour id_tour =
join dbo daily on daily id_daily = ve id_daily
where dbo ve tenve = 'Ve Thuong'
25
Trang 27Kết quả:
Liệt kê khách hàng thuê khách sạn ở Hà Nội kèm theo tên
Câu lệnh:
select dbo khachhang ten AS [Ten Khach Hang] , dbo khachsan ten AS [Ten Khach San]
from dbo tour
join dbo dangky on dangky id_tour tour id_tour =
join dbo khachhang on khachhang id_kh = dangky id_kh
join dbo tour_khachsan on tour_khachsan id_tour tour id_tour =
join dbo khachsan on khachsan id_ks = tour_khachsan id_ks
where dbo khachsan diachi = 'Ha Noi'
Kết quả:
Liệt kê số lần các phương tiện được sử dụng kèm theo số chỗ của phương tiện đó
Câu lệnh:
select dbo phuongtien ten AS [Ten Phuong Tien] ,
dbo phuongtien socho AS [So Cho] , COUNT ( dbo phuongtien id_pt ) AS [So Xe]
from dbo phuongtien
join dbo tour_phuongtien on tour_phuongtien id_pt = phuongtien id_pt
join dbo tour on tour id_tour tour_phuongtien = id_tour
join dbo dangky on dangky id_tour tour id_tour =
join dbo khachhang on khachhang id_kh = dangky id_kh
group by dbo phuongtien ten , dbo phuongtien socho
Kết quả:
26
Trang 28Liệt kê tên khách hàng kèm mã khách hàng và số điện thoại đến tham quan Đồ Sơnhoặc Nhà Thờ Đổ
Câu lệnh:
select dbo khachhang id_kh as [Ma Khach Hang] ,
dbo khachhang ten as [Ten Khach Hang] ,
dbo khachhang sodt as [So DT]
from dbo khachhang
join dbo dangky on dangky id_kh = khachhang id_kh
join dbo tour on tour id_tour dangky = id_tour
join dbo tour_diemthamquan on tour_diemthamquan id_tour tour id_tour =
join dbo diemthamquan on diemthamquan id_dtq tour_diemthamquan id_dtq =
where diemthamquan tendiadanh = 'Do Son' or diemthamquan tendiadanh = 'Nha Tho Do'
Kết quả:
Liệt kê khách hàng và email của khách hàng có lượt đăng ký mua
vé lớn hơn 1
Câu lệnh:
select dbo khachhang ten as [Ten KH] ,
dbo khachhang email as [Email KH]
from dbo khachhang
join dbo dangky on dangky id_kh = khachhang id_kh
where dangky soluongve 1 >
Kết quả:
27
Trang 29Liệt kê những khách hàng và số điện thoại đi từ khoảng thời gian 8h sáng ngày 15/10/2022 đến 8h tối ngày 18/10/2022(tên khách hàng sắp xếp theo thứ tự từ điển)
Câu lệnh:
select dbo khachhang ten as [Ten KH] ,
dbo khachhang sodt as [So DT] ,
dbo tour ngay_bd as [Ngay Di]
from dbo khachhang
join dbo dangky on dangky id_kh = khachhang id_kh
join dbo tour on tour id_tour dangky = id_tour
where tour ngay_bd between '2022-10-15 08:00:00' and '2022-10-18 20:00:00'
group by dbo khachhang ten , dbo khachhang sodt , dbo tour ngay_bd
order by [Ten KH] asc
Kết quả:
28