Một trong những ngành dịch vụ đang phát triển mạnh đó là dịch vụ khách sạn.. Số lượng quy mô các khách sạn này càng tăng hứa hẹn rất nhiều cơ hội nghề nghiệp của nhà quản lý.. Tiềm năng
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN
HỌC PHẦN: CƠ SỞ DỮ LIỆU 2
TÊN BÀI TẬP LỚN: XÂY DỰNG CSDL QUẢN LÝ KHÁCH SẠN
Tên sinh viên thực hiện: Trần Văn Tâm
Lớp: CNTT 3
Khóa: K11
Khoa: Công nghệ thông tin
Giảng viên: Đặng Trần Long
Bắc Ninh, ngày 25 tháng 12 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN
HỌC PHẦN: CƠ SỞ DỮ LIỆU 2
Trần Văn Tâm
TÊN BÀI TẬP LỚN: XÂY DỰNG CSDL QUẢN LÝ KHÁCH SẠN
DANH MỤC THÀNH VIÊN
hiện
bằng số bằng chữ Điểm
1 Trần Văn Tâm K11 CNTT 3 20201125
CÁN BỘ CHẤM 1 CÁN BỘ CHẤM 2
(Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên)
Bắc Ninh, ngày 25 tháng 12 năm 2021
Trang 3KẾ HOẠCH THỰC HIỆN
kiến
Ngày hoàn thành
1 Làm báo cáo trên word 25/12/2021 25/12/2021
2 Thiết kế powerpoint 25/12/2021 25/12/2021
3 Thiết kế Database trên SQL 20/12/2021 25/12/2021
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 1
I Nội Dung 2
1 Lược đồ Thực thể-Quan hệ ( Entity-Relationship Diagram E-RD) 2
Các thuộc tính của thực thể: 2
2 Thiết Kế Database (Database Design) 5
Mối quan hệ giữa các bảng: 9
II Thực Hiện Câu Lệnh Truy Vấn 10
III Chạy thử và đánh giá kết quả 14
IV Tài Liệu Tham Khảo 14
Trang 51
LỜI NÓI ĐẦU
Hiện nay nền kinh tế đang chuyển dịch dần sang các ngành dịch vụ Một trong những ngành dịch vụ đang phát triển mạnh đó là dịch vụ khách sạn Số lượng quy mô các khách sạn này càng tăng hứa hẹn rất nhiều cơ hội nghề nghiệp của nhà quản lý
Tiềm năng của nghề quản lý khách sạn :
Theo ước tính của ngành du lịch, từ nay đến năm 2010, Việt Nam sẽ đón và phục vụ 5,5 đến 6 triệu lượt khách du lịch quốc tế và khoảng 25 đến 26 triệu lượt khách nội địa Như vậy, trong tương lai gần, số lượng khách sạn sẽ nhiều gấp ba lần hiện tại Cùng với đó, quản
lý khách sạn (QLKS) trở thành một trong những công việc hứa hẹn nhiều cơ hội
Cần phải khẳng định đây là nghề cao cấp Khi tham gia làm QLKS chắc chắn bạn sẽ có một môi trường làm việc lịch sự, văn minh, giao thiệp rộng, có nhiều cơ hội lý tưởng để phát triển nghề nghiệp Điều này không phải ai cũng có được trong cuộc sống
Nghề QLKS sẽ đem lại cho bạn một khoản thu nhập cao hơn rất nhiều so với mặt bằng chung của xã hội và hoàn toàn tương xứng với năng lực làm việc của bạn Khi làm nghề QLKS, bạn có nhiều cơ hội thăng tiến trong nghề nghiệp Không phải ai cũng ở vị trí của nhà quản lý ngay từ những ngày đầu tiên Nhưng nếu bạn quyết tâm, kiên trì và có khả năng thực sự thì bạn sẽ là một nhà quản lý thực thụ Nghề QLKS không bao giờ thiếu chỗ đứng trong xã hội mà ngày càng quan trọng hơn Chúng ta đều có thể nhìn ra tiềm năng của nó trong nền kinh tế hiện nay
Việc áp dụng công nghệ khoa học vào quản lý khách sạn có vai trò quan tr trong quản
lý và kinh doanh Dựa vào kiến thức đã học trên nhà trường, em xin trình bày thiết kế cơ
sở dữ liệu quản lý khách sạn trên SQL Sever
Tuy có nhiều cố gắng nhưng không thể tránh được sai sót, mong quý thầy cô đóng góp
ý kiến để bài được hoàn thiện hơn Em xin trân thành cảm ơn !!!
Trang 62
I.Nội Dung
Các thuộc tính của thực thể:
+Thực thể KhachHang:
Có
Trang 73
+ Thực thể NhanVien:
+ Thực thể Phong:
Trang 84
+ Thực thể DichVu:
+ Thực thể HoaDon:
Trang 95
2 Thiết Kế Database (Database Design)
+ Table KhachHang:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key MaKH int Mã Khách Hàng
Auto-Increment
TenKH varchar 50 Tên Khách Hàng
SoCCCD varchar 25 Số căn cước SDT varchar 20 Số điện thoại
+ Table NhanVien:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key MaNV int Mã Nhân Viên
Auto-Increment
TenNV varchar 50 Tên Nhân Viên
NgaySinh varchar 25 Ngày Sinh
ChucVu varchar 25 Chức vụ SDT varchar 20 Số điện thoại DiaChi varchar 150 Địa chỉ NV
Trang 106
+ Table Phong:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key MaPhong int Mã Khách Hàng
Auto-Increment
TenPhong varchar 30 Tên Khách Hàng
LoaiPhong varchar 25 Loại Phòng GiaPhong money Gia Phong
+ Table DichVu:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key MaDV int Mã Dịcg vụ
Auto-Increment
TenDV varchar 50 Tên Dịch vụ GiaTien money Giá dịch vụ
Trang 117
+ Table HoaDon:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key MaHD int Mã Khách Hàng
Auto-Increment
Foreign key MaKH int Tham chiếu đến KhachHang
ThanhTien money Thành tiền
TrangThai tinyint Trạng Thái 0-Chưa xử lý
1-Đang xử lý 2-Đã xử lý
+ Table ThanhToan:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Foreign MaHD int Tham chiếu dến
key Foreign MaNV int Tham chiếu đến
NgayLap date Ngày lập hóa đơn
HinhThucTT varchar 50 Hình thức thanh toán
Trang 128
+ Table SuDungDV:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Foreign MaDV int Tham chiếu dến
key Foreign MaKH int Tham chiếu đến
SoLuong int Số lượng SD DV
ThoiGianSDDV varchar 150 Thời Gian SDDV
+ Table ThuePhong:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Foreign MaPhong int Tham chiếu dến
key Foreign MaKH int Tham chiếu đến
NgayNhanPhong date Ngày nhận Phòng
NgayTraPhong date Ngày trả Phòng
Trang 139
+ Table QuanLyPhong:
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Foreign MaNV int Tham chiếu dến
key Foreign MaPhong int Tham chiếu đến
TinhTrangPhong tinyint Tình trạng phòng
1- Trống 2- Đã thuê 3- Đang sửa chữa
Mối quan hệ giữa các bảng:
Trang 1410
II.Thực Hiện Câu Lệnh Truy Vấn
1 Insert các bản ghi vào từng bảng
INSERT KhachHang Values
( 'Tran Van Tam' , '20201125' , '0344391591' ),
( 'Nguyen Lam Giang' , '20201134' , '0348291486' ),
( 'Nguyen Anh Dan' , '3912100123' , '0931494394' ),
( 'Ngoc Thi Chi' , '322313121' , '0143104102' ),
( 'Vi Thao Phuong' , '234011211' , '014141241' ),
( 'Ngoc Thi Thu Huyen' , '324934932' , '0313184123' ),
( 'Vu Thi Hien Ha' , '221319142' , '0231318132' ),
( 'Ngo Ba Kha' , '213191239' , '0812414141' ),
( 'Tran Thanh Tam' , '231312343' , '0919321332' ),
( 'Tran Manh Quang' , '212413113' , '02406297363' );
Insert NhanVien Values
( 'Pham Quynh Anh' , '09/03/2002' , 'phamqanh22@gmail.com' , 'Quan Ly' , '038491183' , 'Van Son-Son Dong-Bac Giang' ),
( 'Ngo Van Quan' , '03/22/2002' , 'ngoquan2203@gmail.com' , 'Nhan Vien Le
Tan' , '039138148' , 'Le Vien-Son Dong-Bac Giang' ),
( 'Vi Xuan Thao' , '11/29/2002' , 'thaokhoioccho@gmail.com' , 'Nhan Vien Dich
Vu' , '034414911' , 'Ha 2-Son Dong-Bac Giang' ),
( 'Nguyen Thi Ngoc Dieu' , '12/24/1999' , 'ngocdieu69@gmail.com' , 'Nhan Vien Le
Tan' , '023191403' , 'Reo-Luc Ngan-Bac Giang' ),
( 'Tran Van Chung' , '09/11/2001' , 'tranchung91@gmail.com' , 'Quan Ly
Phong' , '0920113213' , 'Ha 1-Son Dong-Bac Giang' ),
( 'Ngo Thuy Duong' , '03/30/2000' , 'thuyduong03@gmail.com' , 'Nhan Vien Thu
Ngan' , '031283343' , 'Bong Am-Son Dong-Bac Giang' ),
( 'Tran Van Tinh' , '09/01/1998' , 'trantinh09@gmail.com' , 'Nhan Vien Thu
Ngan' , '031039483' , 'Dong Chu-Son Dong-Bac Giang' ),
( 'Phan Thi Hoa Sen' , '11/29/2003' , 'hoaasenn11@gmail.com' , 'Nhan Vien Dich
Vu' , '0329392211' , 'Vinh An-Son Dong-Bac Giang' ),
( 'Nguyen Bao Nhi' , '02/23/2000' , 'baonhi96@gmail.com' , 'Quan Ly
Phong' , '091239411' , 'An Chau-Son Dong-Bac Giang' ),
( 'Phung Khanh Linh' , '07/24/2002' , 'khahlinh9@gmail.com' , 'Nhan Vien Ke
Toan' , '092213141' , 'Hoa Mai-Son Dong-Bac Giang' );
Insert Phong Values
( 'P101' , 'Phong Don' , '500000' ),
( 'P102' , 'Phong Doi' , '700000' ),
( 'P201' , 'Phong Don' , '400000' ),
( 'P202' , 'Phong Doi' , '600000' ),
( 'P301' , 'Phong Don' , '900000' ),
( 'P302' , 'Phong Doi' , '1000000' ),
( 'P401' , 'Phong Vip' , '1500000' ),
( 'P402' , 'Phong Don' , '450000' ),
( 'P2406' , 'Phong Don' , '100000' ),
( 'P4953' , 'Phong Doi' , '300000' );
Trang 1511
Insert DichVu Values
( 'Bua Sang' , '40000' ),
( 'Bua Trua' , '70000' ),
( 'Bua Toi' , '150000' ),
( 'Buffet' , '199999' ),
( 'Massage' , '150000' ),
( 'Thue Xe' , '30000' ),
( 'Giat La' , '20000' ),
( 'Dua Don San Bay' , '300000' ),
( 'KaraOke' , '150000' ),
( 'Fitness Center' , '250000' );
Insert SuDungDV Values
( , , , '25/12/2021: 7h30p va 26/12/2021: 7h' ),
( ,10, , '25/12/2021: 12h' ),
( , , , '24/12/2021: 19h va 25/12/2021: 20h' ),
( , , , '20/12/2021: 6h30p' ),
( , , , '24/12/2021: 6h->6h30p va 25/12/2021: 22h->23h' ),
( , , , '25/12/2021: 6h->10h30p va 26/12/2021: 18h->22h30p' ), ( , , , '24/12/2021: 5h30p, 12h30p va 25/12/2021: 5h40p' ), ( , , , '25/12/2021: 6h45p' ),
( , , , '25/12/2021: 20h30->22h11p va 26/12/2021: 20h->21h54p' ), (10, , , '25/12/2021: 6h->7h30p' );
Insert ThuePhong Values
( , , '12/25/2021' , '12/27/2021' ),
( ,10, '12/24/2021' , '12/25/2021' ),
( , , '12/23/2021' , '12/26/2021' ),
( , , '12/20/2021' , '12/20/2021' ),
( , , '12/24/2021' , '12/26/2021' ),
( , , '12/24/2021' , '12/26/2021' ),
( , , '12/24/2021' , '12/25/2021' ),
( , , '12/24/2021' , '12/25/2021' ),
( , , '12/24/2021' , '12/27/2021' ),
(10, , '12/25/2021' , '12/25/2021' );
Insert QuanLyPhong Values
( , , ),
( ,10, ),
( , , ),
( , , ),
( , , ),
( , , ),
( , , ),
( , , ),
( , , ),
(10, , );
Trang 1612
Insert HoaDon Values
( , '1080000' , ),
(10, '1540000' , ),
( , '1900000' , ),
( , '799999' , ),
( , '2100000' , ),
( , '2030000' , ),
( , '1560000' , ),
( , '750000' , ),
( , '400000' , ),
( , '550000' , );
Insert ThanhToan Values
( , , '12/27/2021' , 'Tien Mat' ),
( ,10, '12/25/2021' , 'Chuyen Khoan' ),
( , , '12/26/2021' , 'Quyet QR' ),
( , , '12/20/2021' , 'Tien Mat' ),
( , , '12/26/2021' , 'Cam Xe' ),
( , , '12/26/2021' , 'Chuyen Khoan' ),
( , , '12/25/2021' , 'Tien Mat' ),
( , , '12/25/2021' , 'Quyet QR' ),
( , , '12/27/2021' , 'Chuyen Khoan' ),
(10, , '12/25/2021' , 'Mai Tra' );
2 Câu lệnh truy vấn demo
1.Index:
CREATE NONCLUSTERED INDEX nonclus_TenKH ON KhachHang(TenKH);
CREATE UNIQUE NONCLUSTERED INDEX uninonclus_SoCCCD_SDT ON KhachHang(SoCCCD,SDT);
CREATE UNIQUE NONCLUSTERED INDEX uninonclus_Email ON NhanVien(Email);
EXEC sp_helpindex 'KhachHang' ;
2.View:
Create view vw_Thongtinkhachhang as select TenKH[Ten Khach Hang],TenPhong,
NgayNhanPhong,NgayTraPhong,TenDV[Da Su Dung
DV],SoLuong,ThoiGianSDDV[ThoiGianSuDungDV]
from KhachHang a join ThuePhong b on a.MaKH= MaKH join Phong c on
b MaPhong= MaPhong
join SuDungDV d on a.MaKH= MaKH join DichVu e on d.MaDV= MaDV;
Select from vw_Thongtinkhachhang;
3.SP:
CREATE PROC sp_TimkiemKhachHang(@Name VARCHAR (30)) AS
BEGIN
IF (EXISTS( SELECT TenKH FROM KhachHang WHERE TenKH like '%' +@Name+ '%' ))
select TenKH[Ten Khach Hang],TenPhong,NgayNhanPhong,NgayTraPhong,TenDV[Da Su Dung DV],SoLuong,ThoiGianSDDV[ThoiGianSuDungDV]
from KhachHang a join ThuePhong b on a.MaKH= MaKH join Phong c on
b MaPhong= MaPhong
join SuDungDV d on a.MaKH= MaKH join DichVu e on d.MaDV= MaDV Where TenKH like '%' +@Name+ '%' ;
ELSE IF (@Name = '*' )
select TenKH[Ten Khach Hang],TenPhong,NgayNhanPhong,NgayTraPhong,TenDV[Da Su Dung DV],SoLuong,ThoiGianSDDV[ThoiGianSuDungDV]
Trang 1713
from KhachHang a join ThuePhong b on a.MaKH= MaKH join Phong c on
b MaPhong= MaPhong
join SuDungDV d on a.MaKH= MaKH join DichVu e on d.MaDV= MaDV;
ELSE
print N'Khong tim thay san pham co ten tuong tu ' +@Name;
END ;
EXEC sp_TimkiemKhachHang 'Tam' ;
4.Trigger DML
Insert
CREATE TRIGGER Check_SoluongDV ON SuDungDV FOR INSERT AS
IF ( SELECT Soluong From inserted) >=10
BEGIN
PRINT 'Dich da vuot qua so luong dich vu co the phuc vu !!!'
ROLLBACK TRANSACTION
END
Insert SuDungDV Values
( , , , '25/12/2021: 7h30p va 26/12/2021: 7h' );
Update
CREATE TRIGGER Checkgiaphong ON Phong FOR UPDATE AS
IF ( SELECT GiaPhong From inserted) >1500000
BEGIN
PRINT 'Gia phong khong duoc vuot qua 1500000 !!!'
ROLLBACK
END
UPDATE Phong SET GiaPhong=1600000 WHERE MaPhong= ;
Delete
CREATE TRIGGER KhachHangVIP ON KhachHang FOR DELETE AS
IF '1' in( SELECT MaKH FROM deleted)
BEGIN
PRINT 'Khong the xoa khach VIP.'
ROLLBACK TRANSACTION
END ;
Alter Table SuDungDV Drop constraint Fk_Makhachhang;
Alter Table ThuePhong Drop constraint Fk_MaKHTP;
Alter Table HoaDon Drop constraint Fk_MaKHT;
DELETE FROM KhachHang WHERE MaKH = '1' ;
Trigger After:
CREATE TRIGGER SaThaiNhanVien
ON NhanVien
AFTER DELETE
AS
BEGIN
DECLARE @num nchar ;
SELECT @num = COUNT (*) FROM deleted
PRINT N'So luong nhan vien da xoa= ' @num
END ;
DELETE FROM NhanVien WHERE MaNV = '7' ;
Trigger Instead of
CREATE TRIGGER XoaKhachHang ON KhachHang
INSTEAD OF DELETE
AS
BEGIN
DELETE FROM ThuePhong WHERE MaPhong IN
( SELECT MaKH FROM deleted)
Trang 1814
DELETE FROM KhachHang WHERE MaKH IN
( SELECT MaKH FROM deleted)
END ;
III.Chạy thử và đánh giá kết quả
Cơ sở dữ liệu được cài đặt thành công Các câu lệnh truy vấn demo đều chạy ổn và đúng yêu cầu Tuy nhiên do đây là một project nhỏ và những chức năng trong cơ sở dữ liệu cũng chưa đáp úng được hết yêu cầu quản lý một khách sạn Do còn nhiều thiếu xót em kính mong quý thầy cô nhận xét và góp ý để project lần sau được hoàn thiện hơn Em xin trân thành cảm ơn!!
IV.Tài Liệu Tham Khảo
• V 1Study -> PHP: Documentation mẫu cho thiết kế Website (Phần 3 mục
3.1 và 3.2)
Link:
https://v1study.com/php-documentation-mau-cho-thiet-ke-website.html#system-design
• Free ebook
Link: http://www.cunghocit24.com/
• V 1Study -> SQL Sever: Lược đồ Thực thể-Quan hệ ( Entity-Relationship Diagram E-RD)
Link: https://v1study.com/sql-server-bai-hoc-luoc-do-thuc-the-quan-he-entity-relationship-diagram-e-r-d.html
➔ Đi lên đầu trang
END