BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG ÁKHOA: CÔNG NGHỆ THÔNG TIN BÀI TẬP LỚN HỌC PHẦN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU VỚI ORACLE TÊN ĐỀ TÀI: XÂY DỰNG CƠ SỞ DỮ LIỆU HỆ THỐNG QUẢ
GIỚI THIỆU TỔNG QUAN ĐỀ TÀI
Giới thiệu đề tài
Hầu hết khách sạn hiện nay vẫn sử dụng phương pháp quản lý truyền thống như sổ sách và Microsoft Excel, dẫn đến nhiều hạn chế như tốn thời gian, thất thoát doanh thu và khó khăn trong quản lý nhân viên Trên thị trường có nhiều phần mềm quản lý khách sạn với tính năng đa dạng và giá cả khác nhau, nhưng việc chọn lựa hệ thống tối ưu phù hợp với nhu cầu quản lý vẫn là một thách thức lớn cho các nhà quản lý Việc áp dụng công nghệ vào quản lý khách sạn ngày càng trở nên phổ biến và đã trở thành một lợi thế cạnh tranh quan trọng.
Các thực thể
Mỗi khách hàng tại khách sạn đều được quản lý thông tin cá nhân bao gồm họ tên, giới tính, địa chỉ, số điện thoại, và số CMND hoặc Passport, cũng như các văn bằng khác có hình.
Các phòng khách sạn được tổ chức và quản lý theo số phòng, loại phòng, trạng thái và giá cơ bản Mỗi loại phòng trong khách sạn đều tương ứng với mức giá khác nhau, giúp khách hàng dễ dàng lựa chọn phù hợp với nhu cầu và ngân sách của mình.
Quản lý đăng ký – thuê phòng:
Tất cả thông tin về việc đăng ký thuê phòng được quản lý theo từng người đặt phòng, bao gồm họ tên khách, thời gian đặt phòng, thời gian trả phòng, số tiền thanh toán và trạng thái thanh toán.
Quản lý tài khoản nhân viên:
Tất cả những nhân viên làm việc tại khách sạn đều được quản lý các thông tin sau: Họ nhân viên, Tên nhân viên, Chức vụ của nhân viên.
Khách sạn cung cấp và quản lý thông tin chi tiết về các dịch vụ, bao gồm tên dịch vụ, giá cả và đơn vị cung cấp Tại đây, khách hàng có thể tận hưởng nhiều loại dịch vụ đa dạng như điện thoại, ăn uống, giặt ủi, đưa đón khách, và chuyên chở đồ đạc theo yêu cầu.
Mối quan hệ thực thể
Khi khách hàng muốn đặt phòng tại khách sạn, họ có thể liên hệ trực tiếp với khách sạn để thực hiện thủ tục đăng ký Nếu phòng còn trống, khách hàng cũng có thể làm thủ tục thuê và nhận phòng ngay tại chỗ Có hai cách để liên hệ với khách sạn: đến trực tiếp hoặc gọi điện thoại.
Khi thực hiện thủ tục đăng ký, khách hàng cần cung cấp đầy đủ thông tin cá nhân và thông tin về cơ quan (nếu có) theo yêu cầu của Bộ phận Lễ tân Ngoài ra, hầu hết khách hàng sẽ phải đặt cọc một khoản tiền nhất định tùy thuộc vào loại phòng đã đăng ký.
Trường hợp các tổ chức thuê phòng thì tổ chức sẽ cử đại diện đến khách sạn làm thủ tục đăng ký.
Để đảm bảo việc phân bố phòng hợp lý, khách hàng đăng ký theo đoàn cần gửi danh sách các thành viên cho khách sạn ít nhất 1 tuần trước ngày nhận phòng.
XÂY DỰNG CƠ SỞ DỮ LIỆU
Thiết kế các bảng
MaNhanVien VARCHAR2(50) PRIMARY KEY, HoTen VARCHAR2(255),
MaKhachHang VARCHAR2(50) PRIMARY KEY, HoTen VARCHAR2(255),
MaKhachHang VARCHAR2(50) REFERENCES KhachHang(MaKhachHang), MaNhanVien VARCHAR2(50) REFERENCES NhanVien(MaNhanVien), NgayThanhToan VARCHAR2(255),
MaPhong VARCHAR2(50) REFERENCES Phong(MaPhong)
MaHoaDon VARCHAR2(50) REFERENCES HoaDon(MaHoaDon),
MaDichVu VARCHAR2(50) REFERENCES DichVu(MaDichVu),
MaKhachHang VARCHAR2(50) REFERENCES KhachHang(MaKhachHang), MaPhong VARCHAR2(50) REFERENCES Phong(MaPhong),
Xây dựng các ràng buộc, liên kết
Nhập dữ liệu
2.3.1 Nhập dữ liệu cho bảng nhân viên
The SQL commands provided insert employee data into the "NhanVien" table, with the first entry for 'NV01' detailing Nguyen Van A, a male born on January 15, 1990, residing at 123 ABC Street, District 1, Ho Chi Minh City, with a contact number of 0123456789, holding the position of manager and earning a salary of 8000 The second entry for 'NV02' includes Tran Thi B, a female born on February 20, 1985, living at 456 XYZ Street, District 2, Hanoi, with a contact number of 0987654321, working as a receptionist with a salary of 4000.
INSERT INTO NhanVien VALUES ('NV03', 'Le Van C', 'nam', '10/03/1996', '789 duong DEF, Qu?n 3, NGHE AN', '0123998877', 'Phuc vu', 3200);
INSERT INTO NhanVien VALUES ('NV04', 'Pham Van D', 'nam', '05/12/2002', '321 duong GHI, Quan 4, THANH HOA', '0932123456', 'Ke toan', 4500);
INSERT INTO NhanVien VALUES ('NV05', 'Hoang Van E', 'nam', '25/07/2003', '567 duong KLM, Qu?n 5, TP.HCM', '0909123456', 'Bao ve', 2800); SELECT * FROM NhanVien;
2.3.2 Nhập dữ liệu cho bảng khách hàng
INSERT INTO KhachHang VALUES ('KH01', 'Nguyen Van X', 'nam', '12/06/1980', '123 duong ABC, Quan 1, TP.HCM', '0123456780', 'vanx@example.com');
INSERT INTO KhachHang VALUES ('KH02', 'Tran Thi Y', 'nu', '28/02/1990', '456 duong XYZ, Quan 2, VINH PHUC', '0987654322', 'thiy@example.com');
INSERT INTO KhachHang VALUES ('KH03', 'Le Van Z', 'nam', '15/09/2002', '789 duong DEF, Quan 3, HA NOI', '0123998888', 'vanz@example.com');
INSERT INTO KhachHang VALUES ('KH04', 'Pham Van M', 'nam', '03/11/1996', '321 duong GHI, Quan 4, HA NOI', '0932123455', 'vanm@example.com');
INSERT INTO KhachHang VALUES ('KH05', 'Hoang Van N', 'nam', '08/01/2002', '567 duong KLM, Quan 5, HAI DUONG', '0909123455', 'vann@example.com');
2.3.3 Nhập dữ liệu cho bảng phòng
INSERT INTO Phong VALUES ('P03', 'Phong gia dinh', 200, 'Trong'); INSERT INTO Phong VALUES ('P04', 'Phong Vip', 250, 'Trong');
INSERT INTO Phong VALUES ('P05', 'Suite', 300, 'Trong');
2.3.4 Nhập dữ liệu cho bảng hóa đơn
INSERT INTO HoaDon VALUES ('HD01', 'KH01', 'NV01', '01/10/2023', 150); INSERT INTO HoaDon VALUES ('HD02', 'KH02', 'NV02', '02/10/2023', 200);
INSERT INTO HoaDon VALUES ('HD03', 'KH03', 'NV03', '03/10/2023', 250);
INSERT INTO HoaDon VALUES ('HD04', 'KH04', 'NV04', '04/10/2023', 300);
INSERT INTO HoaDon VALUES ('HD05', 'KH05', 'NV05', '05/10/2023', 350);
2.3.5 Nhập dữ liệu cho bảng dịch vụ
INSERT INTO DichVu VALUES ('DV1', 'Dich vu 1', 100, 'P01');
INSERT INTO DichVu VALUES ('DV2', 'Dich vu 2', 200, 'P02');
INSERT INTO DichVu VALUES ('DV3', 'Dich vu 3', 300, 'P03');
INSERT INTO DichVu VALUES ('DV4', 'Dich vu 4', 400, 'P04');
INSERT INTO DichVu VALUES ('DV5', 'Dich vu 5', 500, 'P05');
2.3.6 Nhập dữ liệu cho bảng thanh toán
INSERT INTO Thanhtoan VALUES ('TT01', 'HD01', 'DV1', 2, 1000);
INSERT INTO Thanhtoan VALUES ('TT02', 'HD02', 'DV2', 3, 2000);INSERT INTO Thanhtoan VALUES ('TT03', 'HD03', 'DV3', 1, 2500);INSERT INTO Thanhtoan VALUES ('TT04', 'HD04', 'DV4', 2, 1200);
2.3.7 Nhập dữ liệu cho bảng đặt phòng
INSERT INTO DatPhong VALUES ('DP01', 'KH01', 'P01', '10/09/2023', '15/09/2023', '01/10/2023');
INSERT INTO DatPhong VALUES ('DP02', 'KH02', 'P02', '11/09/2023', '16/09/2023', '02/10/2023');
INSERT INTO DatPhong VALUES ('DP03', 'KH03', 'P03', '12/09/2023', '17/09/2023', '03/10/2023');
INSERT INTO DatPhong VALUES ('DP04', 'KH04', 'P04', '14/09/2023', '18/09/2023', '04/10/2023');
INSERT INTO DatPhong VALUES ('DP05', 'KH05', 'P05', '15/09/2023', '19/09/2023', '05/10/2023');
THIẾT KẾ CÁC CÂU TRUY VẤN (SQL)
Truy vấn cơ bản
3.1.1 Lấy thông tin tất cả các phòng đang trống
SELECT * FROM Phong WHERE TrangThai = 'Trong'; Kết quả:
3.1.2 Lấy thông tin tất cả các dịch vụ có giá dưới 5000
SELECT * FROM DichVu WHERE GiaDichVu < 5000; Kết quả:
LẬP TRÌNH PLSQL
Lập trình một số lệnh IF, for, while
4.1.1 Hàm kiểm tra hóa đơn khách hàng
KiemTraHoaDonKhachHang(p_MaKhachHang VARCHAR2) RETURN VARCHAR2 IS tonTai NUMBER;
RETURN 0; Khong cc hoa don
SELECT kiemtrahoadonkhachhang('HD01') FROM dual;
4.1.2 Thủ tục xóa đặt phòng
CREATE OR REPLACE PROCEDURE XoaDatPhong( p_MaDatPhong VARCHAR2
FOR rec IN (SELECT MaHoaDon FROM HoaDon WHERE MaKhachHang DELETE FROM HoaDon WHERE MaHoaDon = rec.MaHoaDon;
DELETE FROM DatPhong WHERE MaDatPhong = p_MaDatPhong;
Một số thủ tục
4.2.1 Hàm kiểm tra trạng thái phòng
CREATE OR REPLACE FUNCTION KiemTraTrangThaiPhong( p_MaPhong VARCHAR2
SELECT TrangThai INTO TrangThai FROM Phong WHERE MaPhong p_MaPhong;
4.2.2 Thủ tục cập nhật trạng thái phòng
CREATE OR REPLACE PROCEDURE CapNhatTrangThaiPhong( p_MaPhong VARCHAR2, p_TrangThai VARCHAR2
UPDATE Phong SET TrangThai = p_TrangThai WHERE MaPhong p_MaPhong;
Một số hàm
4.3.1 Hàm kiểm tra khách hàng đã thanh toán hay chưa
KiemTraKhachHangDaThanhToan(p_MaKhachHang VARCHAR2) RETURN VARCHAR2 IS tonTai NUMBER;
SELECT KiemTraKhachHangDaThanhToan('HD01') FROM dual;
QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE
PHÁT TRIỂN ỨNG DỤNG ORACLE VỚI CÔNG CỤ
Giới thiệu công cụ
Oracle là một trong những nhà cung cấp hàng đầu về phần mềm, hệ thống và công nghệ cơ sở dữ liệu trên thị trường công nghệ hiện nay Tên gọi Oracle được rút gọn từ sản phẩm chủ lực của công ty, hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) mang tên Oracle Database Phần mềm cơ sở dữ liệu này đóng vai trò quan trọng trong hạ tầng IT của doanh nghiệp, hỗ trợ nhiều nhiệm vụ như xử lý giao dịch, phân tích dữ liệu kinh doanh (BI) và các ứng dụng phân tích khác.
Sao lưu và phục hồi
Hỗ trợ nhiều cơ sở dữ liệu
Với tính bảo mật cao và nhiều ưu điểm nổi bật, Oracle là lựa chọn tối ưu cho hệ quản trị cơ sở dữ liệu trong việc phát triển phần mềm quản lý khách sạn cho dự án lớn của nhóm chúng tôi.
Thiết kế giao diện
Ứng dụng quản lý được xây dựng sử dụng công nghệ PHP LaravelFamework và hệ quản trị cơ sở dữ liệu Oracle.
6.2.2 Giao diện thông báo cập nhật dữ liệu thành công