CHƯƠNG I: TỔNG QUANCơ sở dữ liệu CSDL quản lý khách sạn là một hệ thống thông tin được thiết kế để lưutrữ, tổ chức và quản lý một lượng lớn dữ liệu liên quan đến hoạt động của một khách
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
BÁO CÁO BÀI TẬP LỚN
ĐỀ TÀI: HỆ THỐNG QUẢN LÝ ĐẶT PHÒNG
KHÁCH SẠN
Giảng viên : Nguyễn Thị Thu Hiên
Nhóm Báo Cáo : 03
Thành Viên : Nguyễn Đức Duy – B21DCVT
Nguyễn Quốc Anh– B21DCVT Trần Đại Minh – B21DCVT Nguyễn Gia Bảo – B21DCVT Nguyễn Đức Trọng – B21DCVT
Hà Nội 2024
Trang 2Lời Nói Đầu
Trong xu thế phát triển hiện nay trên thế giới khoa học và công nghệ luôn có những thay đổi mạnh mẽ Một phần trong đó là việc ứng dụng Công Nghệ Thông Tin vào đời sống hàng ngày của con người Loài người chúng ta đang hướng tới thiết lập một hành tinh thông minh Ngày nay với sự phát triển mạnh mẽ của CNTT kết hợp với sự phát triển của mạng Internet đã kết nối được toàn thế giới lại với nhau thành một thể thống nhất Nó
đã trở thành công cụ đắc lực cho nhiều ngành nghề: giao thông, quân sự, y học … và đặc biệt là trong công tác xây dựng Cơ sở dữ liệu.
Trước đây khi máy tính chưa được ứng dụng rộng rãi, các công việc quản lý đều được thực hiện một cách thủ công nên rất tốn thời gian, nhân lực cũng như tài chính Ngày nay với sự phát triển mạnh mẽ của CNTT đã giúp cho việc lưu trữ, quản lý, tính toán công việc được thực hiện một cách dễ dàng hơn, giảm chi phí, thời gian … Qua quá trình tham khảo những vấn đề thực tế của đời sống, cả nhóm đã xây dựng lên đề tài Xây dựng cơ sở dữ liệu trong việc quản lý kinh doanh khách sạn với mong muốn giúp cho việc quản lý kinh doanh được thực hiện một cách dễ dàng hơn, thuận tiện và giảm thiểu được các sai xót.
Nhờ sự quan tâm, hướng dẫn của Cô Nguyễn Thị Thu Hiên cả nhóm mong muốn tạo
ra một hệ thống cơ sở dữ liệu khách sạn hiệu quả, linh hoạt và bảo mật Cả nhóm đã phấn đấu hết mình để có một bài báo cáo thật cụ thể và chi tiết, tuy vậy vẫn không thể tránh khỏi những thiếu sót Nhóm rất mong nhận được sự góp ý của cô để báo cáo được hoàn thiện hơn.
Trang 3Mục Lục
CHƯƠNG I: TỔNG QUAN 4
1.1 Quản lý danh sách thông tin chi tiết của khách sạn 4
1.2 Quản lý danh sách khách hàng 4
1.3 Quản lý danh sách đặt phòng khách sạn 4
CHƯƠNG II: THIẾT KẾ CSDL MỨC QUAN NIỆM 4
2.1 Xác định các thực thể ,thuộc tính và các mối quan hệ 4
2.1.1 Thực thể (Entities) 4
2.1.2 Mối quan hệ (Relationships) 4
CHƯƠNG III: THIẾT KẾ CSDL MỨC LOGIC VÀ CHUẨN HÓA 4
3.1 Biểu diễn các thực thể và các mối quan hệ thành các quan hệ 4
3.2 Mô hình quan hệ 4
3.2.1 Chuẩn 1NF 4
3.1.2 2NF 4
3.1.3 3NF 5
CHƯƠNG IV: CÀI ĐẶT HỆ THỐNG CƠ SỞ DỮ LIỆU 5
4.1 Chi tiết các bảng quan hệ 5
4.2 Tạo database bằng ứng dụng MySQL 7
4.3 Các kịch bản truy vấn dữ liệu 11
Trang 4CHƯƠNG I: TỔNG QUAN
Cơ sở dữ liệu (CSDL) quản lý khách sạn là một hệ thống thông tin được thiết kế để lưutrữ, tổ chức và quản lý một lượng lớn dữ liệu liên quan đến hoạt động của một khách sạn.CSDL này đóng vai trò trung tâm, cung cấp thông tin cần thiết cho các hoạt động quản lý,
từ việc đặt phòng, quản lý khách hàng, đến quản lý phòng ốc, dịch vụ ăn uống và tài chính Sau đây là một số chức năng mà đề tài quản lý cơ sở dữ liệu khách sạn của nhóm thựchiện:
1.1 Quản lý danh sách thông tin chi tiết của khách sạn.
1.2 Quản lý danh sách khách hàng
1.3 Quản lý danh sách đặt phòng khách sạn
CHƯƠNG II: THIẾT KẾ CSDL MỨC QUAN NIỆM
2.1 Xác định các thực thể ,thuộc tính và các mối quan hệ
Dưới đây là mô tả thực thể và các mối quan hệ cơ bản trong hệ thống quản lý kháchsạn và bảng
2.1.1 Thực thể (Entities)
2.1.2 Mối quan hệ (Relationships)
2.2 Mô hình E-R
Hình 1: Mô hình E – R
CHƯƠNG III: THIẾT KẾ CSDL MỨC LOGIC VÀ CHUẨN HÓA
( Chú thích: Khóa chính , Khóa ngoại )
3.1 Biểu diễn các thực thể và các mối quan hệ thành các quan hệ
3.2 Mô hình quan hệ
3.2.1 Chuẩn 1NF
Nguyên tắc:
1NF yêu cầu mỗi bảng có các cột chứa các giá trị nguyên tử (atomic values), nghĩa
là không có cột nào chứa nhiều giá trị trong cùng một hàng
Mỗi ô trong bảng phải chứa một giá trị duy nhất, không phải danh sách, mảng, hay tập hợp các giá trị
Áp dụng vào các bảng:
3.1.2 2NF
Trang 5 2NF yêu cầu bảng phải thỏa mãn 1NF và tất cả các thuộc tính không khóa phải phụ thuộc hoàn toàn vào khóa chính Nghĩa là không có phụ thuộc bộ phận
(partial dependency), trong đó một thuộc tính không phải khóa chỉ phụ thuộc vào một phần của khóa chính (áp dụng với bảng có khóa chính phức hợp)
Áp dụng vào các bảng:
Bảng có khóa chính đơn giản (một cột làm khóa chính):
Bảng có khóa chính phức hợp (nhiều cột làm khóa chính):
3.1.3 3NF
Nguyên tắc:
3NF yêu cầu bảng phải thuộc 2NF và không có phụ thuộc bắc cầu (transitive
dependency), nghĩa là không có thuộc tính không phải khóa nào phụ thuộc vào thuộc tính không phải khóa khác
Áp dụng vào các bảng:
Vậy ta có lược đồ quan hệ sau khi chuẩn hóa là:
CHƯƠNG IV: CÀI ĐẶT HỆ THỐNG CƠ SỞ DỮ LIỆU
4.1 Chi tiết các bảng quan hệ
- Bảng 1: NHANVIEN (nhân viên)
STT Tên thuộc tính Diễn giải Kiểu dữ liệu Độ dài Ghi chú
2 CCCD Số căn cước nhân viên INT
- Bảng 2: CHAM_CONG (chấm công)
STT Tên thuộc tính Diễn giải Kiểu dữ liệu Độ dài Ghi chú
3 NGAY_CC Ngày chấm công datetime
Trang 6- Bảng 3: BANG_LUONG (bảng lương)
STT Tên thuộc tính Diễn giải Kiểu dữ liệu Độ dài Ghi chú
2 TIEN_LUONG Số căn cước công dân INT
- Bảng 4: KHACH_HANG (khách hàng)
liệu
Độ dài Ghi chú
1 CCCD Số căn cước khách hàng INT Khóa chính
2 HO_TEN Họ tên khách hàng VARCHAR 50
5 EMAIL Địa chỉ hộp thư số VARCHAR 255
3 CHIETKHAU Chiết khấu thẻ FLOAT
4 CCCD Số căn cước khách hàng INT Khóa ngoại
- Bảng 6: VOUCHER (phiếu giảm giá)
STT Tên thuộc tính Diễn giải Kiểu dữ liệu Độ dài Ghi chú
1 TEN_VOUCHE
R
Tên nhân viên VARCHAR 30 Khóa chính
2 CHIETKHAU Chiếu khấu của
Ghi chú
Trang 7phục vụ
VARCHAR 30 Khóa ngoại
4.2 Tạo database bằng ứng dụng MySQL
Tạo database
create database QL_KHACHSAN;
USE QL_KHACHSAN;
Tạo bảng ‘NHANVIEN’
CREATE TABLE NHANVIEN(
MANV VARCHAR(30) NOT NULL PRIMARY KEY ,
CCCD INT NOT NULL ,
TenNV VARCHAR(50) NOT NULL,
NGAYSINH DATETIME NOT NULL,
GIOITINH VARCHAR(30) NOT NULL,
DIACHI VARCHAR (255) NOT NULL ,
BOPHAN VARCHAR (30) NOT NULL
);
Tạo bảng ‘CHAM_CONG’
CREATE TABLE CHAM_CONG(
MA_CC INT NOT NULL PRIMARY KEY,
TEN_CA VARCHAR (10) NOT NULL,
NGAY_CC datetime NOT NULL,
MANV VARCHAR(30) NOT NULL,
CONSTRAINT FK_PHIEUCC FOREIGN KEY(MANV) REFERENCESNHANVIEN(MANV)
Trang 8 Tạo bảng ‘BANG_LUONG’
CREATE TABLE BANG_LUONG(
MABL VARCHAR(10) NOT NULL PRIMARY KEY,
TIEN_LUONG INT NOT NULL,
MA_CC INT NOT NULL,
CONSTRAINT FK_BANGLUONG FOREIGN KEY(MA_CC) REFERENCESCHAM_CONG(MA_CC)
);
Tạo bảng ‘KHACHHANG’
CREATE TABLE KHACHHANG(
CCCD int NOT NULL PRIMARY KEY,
HO_TEN VARCHAR(50) NOT NULL,
SDT int NOT NULL,
DIACHI VARCHAR(255) NOT NULL,
EMAIL VARCHAR (255),
HANGTHE VARCHAR (30) NOT NULL
);
Tạo bảng ‘MEMBERCARD’
CREATE TABLE MEMBERCARD(
ID_THE INT NOT NULL primary KEY,
HANGTHE VARCHAR (30) NOT NULL,
CHIETKHAU FLOAT NOT NULL,
CCCD INT NOT NULL,
CONSTRAINT FK_MEMBERCARD FOREIGN KEY(CCCD) REFERENCESKHACHHANG(CCCD)
);
Tạo bảng ‘VOUCHER’
CREATE TABLE VOUCHER(
TEN_VOUCHER VARCHAR(50) NOT NULL,
CHIETKHAU FLOAT NOT NULL,
CCCD INT NOT NULL primary key,
CONSTRAINT FK_VOUCHER FOREIGN KEY(CCCD) REFERENCESKHACHHANG(CCCD)
);
Tạo bảng ‘PHIEU_DATPHONG’
Trang 9CREATE TABLE PHIEU_DATPHONG(
MAPD VARCHAR(10) NOT NULL PRIMARY KEY,
NGAY_DEN DATETIME NOT NULL,
NGAY_DI DATETIME NOT NULL,
TIENCOC INT NOT NULL,
PHUTHU INT ,
SO_LUONG_PHONG SMALLINT NOT NULL ,
CCCD INT NOT NULL,
MANV VARCHAR(30) NOT NULL,
CONSTRAINT FK_PDP1 FOREIGN KEY(CCCD) REFERENCESKHACHHANG(CCCD),
CONSTRAINT FK_PDP2 FOREIGN KEY(MANV) REFERENCESNHANVIEN(MANV)
);
Tạo bảng ‘LOAIPHONG’
CREATE TABLE LOAIPHONG(
MALP VARCHAR(10) NOT NULL PRIMARY KEY,
TENLP VARCHAR(30) NOT NULL,
CHITIET VARCHAR (255) NOT NULL
);
Tạo bảng ‘PHONG’
CREATE TABLE PHONG(
MAPHONG VARCHAR(20) NOT NULL PRIMARY KEY,
TRANGTHAI varchar (255) NOT NULL,
GIAPHONG INT NOT NULL,
HANGPHONG VARCHAR (255) NOT NULL,
MAPD VARCHAR(10) NOT NULL,
MALP VARCHAR(10) NOT NULL,
CONSTRAINT FK_PHONG foreign key(MAPD) REFERENCESPHIEU_DATPHONG(MAPD),
CONSTRAINT FK_PHONG2 FOREIGN KEY(MALP) REFERENCESLOAIPHONG(MALP)
);
Tạo bảng ‘DICHVU’
CREATE TABLE DICHVU(
MADV VARCHAR(20) NOT NULL PRIMARY KEY,
TENDV VARCHAR(50) NOT NULL,
Trang 10SOLUONG INT NOT NULL,
GIATIEN INT NOT NULL,
MAPHONG VARCHAR(20) NOT NULL,
CONSTRAINT FK_DV FOREIGN KEY (MAPHONG) REFERENCESPHONG(MAPHONG)
);
Tạo bảng ‘PHIEU_DV’
CREATE TABLE PHIEU_DV(
MAPDV VARCHAR(20) NOT NULL PRIMARY KEY,
NGAY_SD DATETIME NOT NULL,
SOLUONG INT NOT NULL,
TONGTIEN FLOAT NOT NULL,
MANV VARCHAR(30) NOT NULL,
MAPT VARCHAR(10) NOT NULL,
CONSTRAINT FK_PHIEUDV1 FOREIGN KEY(MANV) REFERENCESNHANVIEN(MANV)
);
Tạo bảng ‘PHIEU_THUEPHONG’
CREATE TABLE PHIEU_THUEPHONG(
MAPT VARCHAR(10) NOT NULL PRIMARY KEY,
NGAY_NHAN DATETIME NOT NULL,
NGAY_TRA DATETIME NOT NULL,
TIENCOC INT ,
CCCD int NOT NULL,
MANV VARCHAR(30) NOT NULL,
MABBVP VARCHAR(10) ,
MAPDV VARCHAR(20) NOT NULL,
CONSTRAINT FK_PTP1 FOREIGN KEY(CCCD) REFERENCESKHACHHANG(CCCD),
CONSTRAINT FK_PTP2 FOREIGN KEY(MANV) REFERENCESNHANVIEN(MANV),
CONSTRAINT FK_PTP3 FOREIGN KEY(MAPDV) REFERENCESPHIEU_DV(MAPDV)
Trang 11NGAY_LAP DATETIME NOT NULL,
TIEN_DENBU INT,
MAPT VARCHAR(10) NOT NULL,
MANV VARCHAR(30) NOT NULL,
CONSTRAINT FK_BBVP1 FOREIGN KEY(MANV) REFERENCESNHANVIEN(MANV)
CREATE TABLE HANHVIVP(
MABBVP VARCHAR(10) NOT NULL primary key,
HVVP VARCHAR (255) NOT NULL,
CONSTRAINT FK_HVVP FOREIGN KEY (MABBVP) REFERENCESBBVP(MABBVP)
);
Tạo bảng ‘THUE’
CREATE TABLE THUE(
MAPT VARCHAR(10) NOT NULL,
MAPHONG VARCHAR(20) NOT NULL,
CONSTRAINT PK_THUE PRIMARY KEY(MAPT,MAPHONG),
CONSTRAINT FK_THUE1 FOREIGN KEY(MAPT) REFERENCESPHIEU_THUEPHONG(MAPT),
CONSTRAINT FK_THUE2 FOREIGN KEY(MAPHONG) REFERENCESPHONG(MAPHONG)
);
4.3 Các kịch bản truy vấn dữ liệu
Dưới đây là danh sách tên của 30 kịch bản truy vấn SQL đã được cung cấp trong cáccâu trả lời trên:
Trang 121 Lấy thông tin nhân viên và phòng họ đã phụ trách trong phiếu thuê phòng
Trang 132 Lấy thông tin khách hàng cùng với các phòng họ đã đặt
3 Thống kê số lượng phòng đã được đặt bởi mỗi khách hàng
Trang 144 Thống kê số lượng phiếu thuê phòng do mỗi nhân viên phụ trách
Trang 155 Lấy danh sách khách hàng vi phạm với hành vi vi phạm của họ
Trang 177 Lấy thông tin khách hàng và thông tin thẻ thành viên của họ
Trang 199 Tìm thông tin khách hàng sử dụng voucher
Trang 2010 Lấy thông tin khách hàng cùng nhân viên đã hỗ trợ họ trong việc thuê
Trang 2111 Tính tổng doanh thu từ việc thuê phòng theo từng tháng
12 Tìm danh sách các phòng có giá trên 2000 và tình trạng hiện tại
Trang 2213 Lấy thông tin khách hàng cùng số lượng phòng họ đã đặt trong 3 tháng gần nhất
14 Tính tổng tiền phải trả của khách hàng Lê Thị T
Trang 2315 Tính tiền lương trong ngày của nhân viên bộ phận “Lễ Tân”