Bài tập lớn xây dựng cơ sở dữ liệu cho hệ thống quản lý khách sạn

Bài tập lớn xây dựng CSDL quản lý khách sạn chi tiết. Hướng dẫn từng bước, từ thiết kế đến triển khai, giúp bạn nắm vững kiến thức cơ sở dữ liệu.

Trường đại học

Học viện Ngân hàng

Người đăng

Ẩn danh

Thể loại

Bài tập lớn

2023

47
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Hướng dẫn xây dựng cơ sở dữ liệu quản lý khách sạn A Z

Việc xây dựng cơ sở dữ liệu cho hệ thống quản lý khách sạn là một nhiệm vụ nền tảng, quyết định hiệu quả vận hành và khả năng cạnh tranh của doanh nghiệp. Trong bối cảnh công nghệ 4.0, việc chuyển đổi từ phương pháp quản lý thủ công bằng sổ sách hay Excel sang một hệ thống cơ sở dữ liệu tập trung là xu thế tất yếu. Một hệ thống được thiết kế tốt không chỉ giúp lưu trữ thông tin một cách khoa học mà còn tạo ra trải nghiệm cá nhân hóa cho khách hàng, tối ưu hóa quy trình nghiệp vụ và cung cấp dữ liệu giá trị cho việc ra quyết định. Tài liệu nghiên cứu của nhóm sinh viên Học viện Ngân hàng đã chỉ ra rằng, áp dụng hệ quản trị cơ sở dữ liệu mang lại nhiều lợi ích vượt trội như tiết kiệm thời gian, tăng độ chính xác, và nâng cao bảo mật. Bài viết này sẽ cung cấp một lộ trình chi tiết, dựa trên các kết quả từ đồ án cơ sở dữ liệu thực tế, để xây dựng một hệ thống hoàn chỉnh. Lộ trình này bao gồm từ bước phân tích yêu cầu, thiết kế mô hình, triển khai vật lý đến việc thực thi các nghiệp vụ nâng cao. Mục tiêu cuối cùng là tạo ra một cơ sở dữ liệu hiệu quả, linh hoạt, có khả năng quản lý toàn diện các khía cạnh từ thông tin phòng, khách hàng, đặt phòng, dịch vụ cho đến nhân viên, đồng thời đảm bảo tính toàn vẹn và an toàn dữ liệu.

1.1. Tầm quan trọng của CSDL trong quản lý khách sạn hiện đại

Trong ngành khách sạn, dữ liệu là tài sản vô giá. Một cơ sở dữ liệu quản lý khách sạn hiệu quả đóng vai trò như xương sống của toàn bộ hệ thống vận hành. Nó cho phép lưu trữ tập trung và nhất quán thông tin về khách hàng, tình trạng phòng, lịch sử đặt phòng, và các dịch vụ đã sử dụng. Thay vì các phương pháp thủ công dễ gây sai sót và trùng lặp, CSDL đảm bảo dữ liệu luôn chính xác và sẵn sàng để truy xuất. Điều này giúp nhân viên lễ tân nhanh chóng kiểm tra phòng trống, nhân viên kinh doanh phân tích xu hướng đặt phòng, và ban quản lý đưa ra các chiến lược giá cả hợp lý. Hơn nữa, việc quản lý thông tin khách hàng chi tiết giúp tạo ra các chương trình khuyến mãi cá nhân hóa, nâng cao lòng trung thành và cải thiện trải nghiệm của khách. Báo cáo nghiên cứu nhấn mạnh rằng, việc tự động hóa các quy trình như nhận phòng, trả phòng và thanh toán thông qua CSDL giúp giảm tải công việc cho nhân viên và tăng cường sự hài lòng của khách hàng.

1.2. Mục tiêu chính của đồ án cơ sở dữ liệu quản lý khách sạn

Mục tiêu cốt lõi của đồ án cơ sở dữ liệu này là tạo ra một hệ thống quản lý thông tin toàn diện và hiệu quả. Cụ thể, hệ thống phải đáp ứng các yêu cầu nghiệp vụ chính: quản lý đặt phòng khách sạn, quản lý thông tin khách hàng, quản lý phòng, và quản lý dịch vụ khách sạn. Hệ thống cần đảm bảo tính chính xác và linh hoạt trong mọi thao tác. Một mục tiêu quan trọng khác là khả năng tạo ra các báo cáo và thống kê hữu ích, hỗ trợ ban quản lý trong việc phân tích hiệu quả kinh doanh. Theo tài liệu, các yêu cầu về bảo mật và phân quyền cũng được đặt lên hàng đầu. Hệ thống phải đảm bảo chỉ những nhân viên có thẩm quyền mới được truy cập vào các dữ liệu nhạy cảm. Cuối cùng, một kế hoạch sao lưu và phục hồi dữ liệu vững chắc là mục tiêu không thể thiếu, nhằm đảm bảo an toàn thông tin và khả năng khôi phục nhanh chóng sau sự cố.

II. Phân tích bài toán xây dựng CSDL quản lý khách sạn

Trước khi bắt tay vào thiết kế, việc phân tích thiết kế hệ thống quản lý khách sạn là bước cực kỳ quan trọng. Bài toán thực tế cho thấy nhiều khách sạn vẫn đang đối mặt với các vấn đề do quản lý thủ công gây ra. Việc ghi chép bằng sổ sách hoặc sử dụng Excel dẫn đến tình trạng dữ liệu phân mảnh, khó kiểm soát, và tốn nhiều thời gian tra cứu. Theo mô tả trong báo cáo bài tập lớn CNTT được cung cấp, các thách thức chính bao gồm: quản lý thông tin phòng (mã phòng, loại phòng, trạng thái), quản lý thông tin khách hàng (thông tin cá nhân, liên hệ), quản lý đơn đặt phòng (ngày đặt, ngày nhận, ngày trả), và quản lý dịch vụ (giặt là, đồ ăn trong phòng). Một yêu cầu phức tạp được đặt ra là xử lý trường hợp khách hàng đổi phòng, đòi hỏi hệ thống phải cập nhật đơn đặt phòng cũ và tạo một đơn mới một cách liền mạch. Hơn nữa, hệ thống cần có khả năng tổng hợp hóa đơn chính xác, bao gồm cả tiền phòng và các dịch vụ phát sinh. Việc đảm bảo an toàn thông tin cá nhân của khách hàng và dữ liệu kinh doanh của khách sạn cũng là một yêu cầu cấp thiết, đòi hỏi phải có cơ chế phân quyền và bảo mật chặt chẽ.

2.1. Yêu cầu nghiệp vụ cốt lõi của hệ thống quản lý khách sạn

Hệ thống phải đáp ứng đầy đủ các nghiệp vụ cơ bản. Thứ nhất, quản lý đặt phòng khách sạn yêu cầu lưu trữ thông tin chi tiết về ngày đặt, ngày nhận, ngày trả và loại phòng mong muốn. Thứ hai, quản lý khách hàng cần thu thập và bảo mật các thông tin cá nhân như CCCD, tên, ngày sinh, email, số điện thoại. Thứ ba, quản lý phòng phải cập nhật liên tục trạng thái phòng (trống, đang sử dụng, đang dọn dẹp). Thứ tư, quản lý dịch vụ khách sạn phải ghi nhận chính xác các dịch vụ và sản phẩm khách hàng đã sử dụng để tính vào hóa đơn. Cuối cùng, hệ thống phải có khả năng quản lý thông tin nhân viên, phân quyền truy cập theo chức vụ (quản lý, lễ tân) và hỗ trợ tạo báo cáo thống kê doanh thu.

2.2. Thách thức trong việc đảm bảo tính toàn vẹn dữ liệu

Tính toàn vẹn dữ liệu là một trong những thách thức lớn nhất. Hệ thống phải ngăn chặn được các lỗi phổ biến như nhập sai định dạng dữ liệu, đặt một phòng đã có người ở, hoặc xóa thông tin khách hàng vẫn còn liên kết với một hóa đơn chưa thanh toán. Để giải quyết vấn đề này, việc áp dụng các ràng buộc (constraints) trong cơ sở dữ liệu là bắt buộc. Ví dụ, sử dụng khóa chính (Primary Key) để đảm bảo mỗi thực thể là duy nhất, khóa ngoại (Foreign Key) để duy trì mối quan hệ logic giữa các bảng. Ngoài ra, việc chuẩn hóa cơ sở dữ liệu lên các dạng chuẩn (1NF, 2NF, 3NF) sẽ giúp loại bỏ sự dư thừa, ngăn ngừa các dị thường khi cập nhật, thêm, xóa dữ liệu, từ đó đảm bảo cấu trúc dữ liệu luôn nhất quán và ổn định.

III. Phương pháp thiết kế CSDL quản lý khách sạn ERD Logic

Sau khi phân tích yêu cầu, giai đoạn thiết kế cơ sở dữ liệu quản lý khách sạn bắt đầu. Quá trình này được chia thành ba mức: khái niệm, logic và vật lý. Ở mức khái niệm, nhiệm vụ chính là xác định các thực thể, thuộc tính và mối quan hệ giữa chúng. Dựa trên tài liệu nghiên cứu, các thực thể chính bao gồm: Phòng, Khách Hàng, Nhân Viên, Dịch Vụ, Hóa Đơn, và Đặt Phòng. Mỗi thực thể được định nghĩa bằng các thuộc tính đặc trưng, ví dụ thực thể Phòng có Mã phòng, Loại phòng, Đơn giá, Trạng thái. Các mối quan hệ được xác định rõ ràng, chẳng hạn một khách hàng có thể có nhiều lần đặt phòng (quan hệ 1-n), và một hóa đơn tương ứng với một lần đặt phòng (quan hệ 1-1). Toàn bộ cấu trúc này được trực quan hóa thông qua mô hình ERD quản lý khách sạn. Sơ đồ này là công cụ giao tiếp hiệu quả giữa đội ngũ phát triển và người dùng cuối, đảm bảo mọi yêu cầu nghiệp vụ đều được thể hiện chính xác trong cấu trúc dữ liệu. Từ mô hình ERD, bước tiếp theo là chuyển đổi sang thiết kế mức logic, hay còn gọi là mô hình quan hệ, nơi các thực thể và mối quan hệ được ánh xạ thành các bảng và khóa ngoại.

3.1. Xây dựng sơ đồ thực thể liên kết khách sạn Mô hình ERD

Việc xây dựng sơ đồ thực thể liên kết khách sạn (ERD) là bước trực quan hóa cấu trúc dữ liệu. Trong mô hình này, các thực thể như KhachHang, Phong, NhanVien, DatPhong, HoaDon, DichVu được biểu diễn bằng các hình chữ nhật. Các thuộc tính của mỗi thực thể được liệt kê bên trong, với thuộc tính khóa chính được gạch chân. Các mối quan hệ (ví dụ: KhachHang "có" DatPhong, HoaDon "có" DichVu) được biểu diễn bằng các đường nối, kèm theo bản số để chỉ rõ loại quan hệ (1-1, 1-n, n-n). Ví dụ, mối quan hệ n-n giữa Hóa Đơn và Dịch Vụ được giải quyết bằng cách tạo ra một bảng trung gian là ChiTietHoaDon. Mô hình ERD quản lý khách sạn giúp đảm bảo tính logic, phát hiện các thiếu sót trong thiết kế trước khi đi vào triển khai vật lý, tiết kiệm thời gian và chi phí chỉnh sửa sau này.

3.2. Chuyển đổi sang mô hình quan hệ và chuẩn hóa dữ liệu

Từ mô hình ERD, các thực thể được chuyển đổi thành các bảng trong mô hình quan hệ. Mỗi thực thể trở thành một bảng, mỗi thuộc tính trở thành một cột. Các mối quan hệ 1-n được hiện thực hóa bằng cách thêm khóa ngoại vào bảng ở phía 'n'. Mối quan hệ n-n được chuyển thành một bảng liên kết mới chứa khóa chính của hai bảng tham gia. Sau khi có mô hình quan hệ, quá trình chuẩn hóa cơ sở dữ liệu được thực hiện. Mục đích là để loại bỏ dữ liệu trùng lặp và các phụ thuộc hàm không mong muốn. Các bảng như Phong, KhachHang, NhanVien được kiểm tra để đảm bảo chúng tuân thủ ít nhất Dạng chuẩn 3 (3NF). Việc chuẩn hóa giúp cơ sở dữ liệu trở nên linh hoạt, dễ bảo trì và tránh được các dị thường dữ liệu, đảm bảo hệ thống hoạt động ổn định và chính xác trong dài hạn.

IV. Cách triển khai CSDL SQL Server cho khách sạn tối ưu

Thiết kế mức vật lý là giai đoạn hiện thực hóa mô hình logic thành một cơ sở dữ liệu SQL Server cho khách sạn cụ thể. Giai đoạn này bao gồm việc lựa chọn hệ quản trị cơ sở dữ liệu (trong trường hợp này là Oracle, nhưng các nguyên tắc tương tự áp dụng cho SQL Server), định nghĩa chi tiết các bảng, kiểu dữ liệu, và các ràng buộc. Dựa trên tài liệu gốc, mỗi bảng như Phong, KhachHang, NhanVien được tạo ra với các cột tương ứng. Việc lựa chọn kiểu dữ liệu phù hợp (ví dụ: Char, Nvarchar2, Date, Number) là rất quan trọng để tối ưu hóa không gian lưu trữ và hiệu suất truy vấn. Các ràng buộc như Primary Key, Foreign Key, Not Null được áp dụng để đảm bảo tính toàn vẹn dữ liệu. Ví dụ, MaPhong trong bảng Phong là khóa chính, và nó cũng là khóa ngoại trong bảng DatPhong để liên kết hai bảng này. Sau khi tạo cấu trúc bảng, bước tiếp theo là chèn dữ liệu mẫu vào các bảng để kiểm thử các chức năng và truy vấn SQL. Quá trình này giúp xác minh rằng thiết kế vật lý đáp ứng đúng các yêu cầu nghiệp vụ đã đề ra.

4.1. Thiết kế vật lý Tạo bảng và định nghĩa ràng buộc

Trong thiết kế vật lý, mỗi quan hệ trong mô hình logic được chuyển thành một câu lệnh CREATE TABLE. Ví dụ, bảng HoaDon sẽ có các cột như MaHoaDon (Primary Key), MaDatPhong (Foreign Key tham chiếu đến bảng DatPhong), MaNV (Foreign Key tham chiếu đến bảng NhanVien), NgayLapHDTongTien. Việc sử dụng ràng buộc NOT NULL cho các trường quan trọng như NgayLapHD đảm bảo dữ liệu không bị thiếu sót. Các ràng buộc khóa ngoại giúp duy trì mối liên kết chặt chẽ giữa các bảng, ví dụ, không thể tạo một hóa đơn cho một đơn đặt phòng không tồn tại. Thiết kế vật lý chi tiết và chính xác là nền tảng cho một cơ sở dữ liệu mạnh mẽ và đáng tin cậy.

4.2. Chèn dữ liệu và kiểm thử cơ sở dữ liệu ban đầu

Sau khi tạo xong cấu trúc các bảng, việc chèn dữ liệu mẫu (seeding data) là cần thiết. Dữ liệu này bao gồm thông tin giả định về khách hàng, nhân viên, các loại phòng, dịch vụ, và một vài giao dịch đặt phòng, hóa đơn. Quá trình này không chỉ giúp điền đầy dữ liệu vào hệ thống mà còn là bước quan trọng để kiểm thử. Các lập trình viên sẽ thực hiện các truy vấn SQL đơn giản để kiểm tra xem dữ liệu có được lưu trữ đúng cách hay không, và các mối quan hệ giữa các bảng có hoạt động như mong đợi. Việc phát hiện sớm các lỗi logic hoặc sai sót trong thiết kế ở giai đoạn này sẽ dễ dàng và ít tốn kém hơn nhiều so với khi hệ thống đã đi vào hoạt động chính thức.

V. Bí quyết truy vấn SQL Stored Procedure quản lý khách sạn

Sau khi cơ sở dữ liệu được xây dựng và có dữ liệu, việc khai thác thông tin thông qua các truy vấn SQL trở nên thiết yếu. Đây là công cụ mạnh mẽ để trích xuất dữ liệu, tạo báo cáo và hỗ trợ các nghiệp vụ hàng ngày. Tài liệu nghiên cứu đã đưa ra nhiều ví dụ truy vấn nghiệp vụ quan trọng. Chẳng hạn, truy vấn thống kê loại phòng có số lượng đặt cao nhất giúp ban quản lý đưa ra chiến lược kinh doanh phù hợp. Truy vấn tính tổng doanh thu dịch vụ của từng hóa đơn cung cấp cái nhìn chi tiết về nguồn thu. Để tự động hóa các tác vụ phức tạp và lặp đi lặp lại, stored procedure quản lý khách sạn được sử dụng. Ví dụ, một thủ tục để thêm khách hàng mới, hoặc một thủ tục để đổi phòng cho khách, sẽ gói gọn nhiều câu lệnh SQL vào một khối mã duy nhất, dễ dàng gọi lại và bảo trì. Hơn nữa, việc sử dụng trigger trong SQL cho phép tự động thực thi một hành động khi có sự kiện thay đổi dữ liệu xảy ra, ví dụ như tự động cập nhật trạng thái phòng thành 'Đang sử dụng' ngay khi một đơn đặt phòng mới được xác nhận.

5.1. Các yêu cầu truy vấn SQL nghiệp vụ phổ biến nhất

Các truy vấn SQL phổ biến bao gồm: thống kê số lượng đặt phòng theo tháng để phân tích mùa cao điểm; tính tổng chi phí dịch vụ cho một đơn đặt phòng cụ thể; liệt kê danh sách khách hàng đã đặt phòng trong một khoảng thời gian; và tính tổng tiền phòng của các hóa đơn. Các truy vấn này thường sử dụng các mệnh đề SELECT, FROM, WHERE, GROUP BY, và các hàm tổng hợp như COUNT(), SUM(), MAX(). Việc tối ưu hóa các truy vấn này, chẳng hạn bằng cách tạo chỉ mục (index) trên các cột thường được sử dụng trong mệnh đề WHERE, là rất quan trọng để đảm bảo hiệu suất hệ thống khi lượng dữ liệu tăng lên.

5.2. Ứng dụng Stored Procedure và Trigger để tự động hóa

Stored Procedure và Trigger là những công cụ nâng cao giúp tăng cường tính tự động và bảo mật. Một stored procedure quản lý khách sạn điển hình là thủ tục xác nhận thanh toán, không chỉ cập nhật trạng thái hóa đơn mà còn tự động đổi trạng thái phòng thành 'Trống' hoặc 'Đang dọn dẹp'. Trong khi đó, trigger trong SQL có thể được dùng để tự động cập nhật số lượng tồn kho của một dịch vụ (ví dụ: đồ uống trong minibar) mỗi khi nó được thêm vào chi tiết hóa đơn. Sử dụng các cơ chế này giúp giảm thiểu sai sót do con người, đảm bảo các quy tắc nghiệp vụ luôn được tuân thủ một cách nhất quán, và tăng hiệu quả vận hành tổng thể của khách sạn.

5.3. Phân quyền người dùng và kế hoạch sao lưu phục hồi

Bảo mật là yếu tố sống còn. Hệ thống phân quyền truy cập cho phép tạo ra các vai trò người dùng khác nhau như 'QuanLy', 'LeTan'. Mỗi vai trò chỉ được cấp những quyền hạn cần thiết cho công việc của họ, ví dụ, Lễ tân có thể thêm đơn đặt phòng nhưng không thể xem báo cáo lương của nhân viên. Bên cạnh đó, một kế hoạch sao lưu và phục hồi dữ liệu là bắt buộc. Tài liệu đã đề xuất việc sao lưu toàn bộ cơ sở dữ liệu hàng tuần và sử dụng các công nghệ như Flashback hoặc RMAN (trong Oracle) để có thể phục hồi hệ thống về một thời điểm trước khi sự cố xảy ra. Điều này đảm bảo an toàn dữ liệu và giảm thiểu thời gian gián đoạn hoạt động kinh doanh.

VI. Báo cáo bài tập lớn CNTT Hướng phát triển CSDL khách sạn

Bản báo cáo bài tập lớn CNTT về xây dựng cơ sở dữ liệu cho hệ thống quản lý khách sạn đã hoàn thành xuất sắc mục tiêu đề ra: tạo một hệ thống CSDL toàn diện, đáp ứng các yêu cầu nghiệp vụ phức tạp của ngành. Hệ thống không chỉ giải quyết các vấn đề của phương pháp quản lý thủ công mà còn mở ra nhiều cơ hội tối ưu hóa vận hành. Việc tự động hóa quy trình từ đặt phòng đến thanh toán giúp nâng cao trải nghiệm khách hàng và giảm áp lực cho nhân viên. Các chức năng báo cáo, thống kê cung cấp dữ liệu quý giá cho các nhà quản lý để đưa ra quyết định chiến lược. Tuy nhiên, đây chỉ là nền tảng ban đầu. Hướng phát triển trong tương lai có thể bao gồm việc tích hợp với các hệ thống đặt phòng trực tuyến (OTA), phát triển ứng dụng di động cho khách hàng để tự check-in, hoặc ứng dụng phân tích dữ liệu lớn (Big Data) để dự báo xu hướng và cá nhân hóa dịch vụ ở mức độ sâu hơn. Việc liên tục cập nhật và cải tiến hệ thống sẽ giúp khách sạn duy trì lợi thế cạnh tranh trong một thị trường không ngừng biến đổi.

6.1. Đánh giá kết quả và ưu điểm của hệ thống đã xây dựng

Hệ thống cơ sở dữ liệu đã xây dựng thành công trong việc cung cấp một nền tảng quản lý thông tin chính xác, linh hoạt và an toàn. Ưu điểm lớn nhất là khả năng tự động hóa và tối ưu hóa các quy trình nghiệp vụ cốt lõi, từ đó tăng hiệu suất làm việc và giảm thiểu sai sót. Mô hình quan hệ được chuẩn hóa tốt giúp đảm bảo tính nhất quán và toàn vẹn của dữ liệu. Việc sử dụng các thủ tục và trigger giúp thực thi các quy tắc nghiệp vụ một cách chặt chẽ. Hơn nữa, hệ thống có khả năng mở rộng, sẵn sàng cho việc tích hợp thêm các tính năng mới trong tương lai. Đây là một sản phẩm hoàn chỉnh, thể hiện sự áp dụng hiệu quả kiến thức lý thuyết vào giải quyết một bài toán thực tế.

6.2. Hướng phát triển và tích hợp công nghệ mới trong tương lai

Để nâng cao hơn nữa giá trị của hệ thống, các hướng phát triển trong tương lai cần được xem xét. Thứ nhất, tích hợp với các kênh đặt phòng trực tuyến như Agoda, Booking.com để đồng bộ hóa tình trạng phòng theo thời gian thực. Thứ hai, phát triển các API (Application Programming Interface) để kết nối với các hệ thống khác như quản lý nhà hàng, spa, hoặc hệ thống khóa từ thông minh. Thứ ba, ứng dụng công nghệ điện toán đám mây (Cloud Computing) để tăng tính linh hoạt, giảm chi phí phần cứng và cho phép truy cập hệ thống từ bất cứ đâu. Cuối cùng, khai thác Trí tuệ nhân tạo (AI) và Học máy (Machine Learning) để phân tích hành vi khách hàng, cá nhân hóa trải nghiệm và tối ưu hóa chiến lược giá động là một hướng đi đầy hứa hẹn.

20/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: PHÁT BIỂU BÀI TOÁN 1. Mô tả bài toán Quản lý khách sạn yêu cầu phải xây dựng một cơ sở dữ liệu, khách sạn hoạt động như sau: Khi đặt phòng, khách hàng sẽ được yêu cầu nhập thông tin cá nhân và thông tin liên hệ của mình lại, khách hàng cũng sẽ phải nhập ngày nhận phòng, ngày trả phòng khách sạn và yêu cầu của mình về loại phòng mong muốn, ngày đặt phòng và những yêu cầu trên sẽ được nhân viên xử lý, lưu lại và sử dụng để chuẩn bị phòng cho khách hàng. Nếu trong khoảng thời gian sử dụng, phòng gặp vấn đề, khách sạn sẽ thực hiện thay đổi phòng cho khách hàng như sau: thay đổi thông tin về ngày trả phòng trong đơn đặt phòng cũ của khách hàng, sau đó, tạo đơn đặt hàng mới với ngày nhận phòng tiếp tục từ ngày trả phòng trước. Khách hàng cũng sẽ nhận được hóa đơn thanh toán tương ứng với các phòng đã sử dụng.

Khách sạn có các dịch vụ thu tiền và đồ ăn trong tủ lạnh tại mỗi phòng, sẽ có nhân viên kiểm tra các phòng mỗi ngày và lưu lại các sản phẩm, số lượng các sản phẩm đã được tiêu thụ cũng như các dịch vụ và khách hàng sử dụng để về sau thanh toán. Sau khi trả phòng, khách hàng sẽ nhận được hóa đơn, từ hóa đơn, khách hàng có thể kiểm tra, xác nhận các thông tin về bản thân, phòng, các dịch vụ đã sử dụng là chính xác để tiến hành thanh toán. Ngoài ra, khách sạn cũng cần phải quản lý thông tin của nhân viên và các dịch vụ, đồ ăn hiện có. Yêu cầu của bài toán - Cơ sở dữ liệu được thiết kế cần phải đáp ứng được các yêu cầu sau: - Quản lý thông tin phòng: Lưu trữ thông tin về mã phòng, loại phòng, đơn giá, trạng thái và các mô tả đi kèm của phòng.

1 - Quản lý thông tin khách hàng: Lưu trữ thông tin của khách hàng như thông tin cá nhân và thông tin liên hệ cần thiết. - Quản lý thông tin đặt phòng: Lưu trữ thông tin về các đơn đặt phòng bao gồm ngày đặt, ngày nhận, ngày trả phòng. - Quản lý các dịch vụ của khách sạn: Lưu trữ thông tin về các dịch vụ của khách sạn như giặt đồ, spa, … và cả các sản phẩm dùng thêm như đồ ăn, đồ uống cũng được lưu trữ ở đây. - Quản lý nhân viên: Lưu trữ thông tin cá nhân, thông tin liên hệ của nhân viên và chức vụ của họ trong doanh nghiệp.

- Đảm bảo bảo mật: Đảm bảo an toàn và bảo vệ thông tin cá nhân của khách hàng cũng như của doanh nghiệp trước các mối đe dọa. - Tạo báo cáo và thống kê: Cơ sở dữ liệu cần phải có khả năng truy vấn các dữ liệu hữu ích để cho việc tạo báo cáo và thống kê, giúp doanh nghiệp thực hiện các nghiệp vụ liên quan. - Quản lý phân quyền: Quản lý quyền truy cập sao cho quản lý và các nhân viên khách sạn với các chức vụ khác nhau có thể và chỉ có thể truy cập và thao tác với những phần cần thiết cho công việc của họ, tránh gây mất mát. - Sao lưu và phục hồi: Có kế hoạch sao lưu và có thể phục hồi cơ sở dữ liệu để đảm bảo an toàn dữ liệu và khả năng khôi phục sau sự cố.

Mục tiêu của bài toán Tạo ra một cơ sở dữ liệu hiệu quả để quản lý và điều phối thông tin liên quan đến việc đặt, sử dụng phòng trong một khách sạn và quản lý khách sạn nói chung. Hệ thống này cung cấp khả năng quản lý thông tin về phòng, khách hàng, đặt phòng, các phòng và các dịch vụ đi kèm, quản lý thông tin nhân viên, nhằm đảm bảo tính linh hoạt, chính xác và hiệu quả trong quá trình quản lý khách sạn. 2 CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU 2. Thiết kế mức khái niệm 2.

Các thực thể và thuộc tính - Phòng: Mã phòng, Số phòng, Loại phòng, Đơn giá, Trạng thái, Mô tả. - Khách hàng: Mã khách hàng, Số CCCD, Tên khách hàng, Ngày sinh, Giới tính, Email, Số điện thoại, Địa chỉ. - Nhân viên: Mã nhân viên, Số CCCD, Tên nhân viên, Ngày sinh, Giới tính, Email, Số điện thoại, Địa chỉ, Chức vụ, Lương. - Dịch vụ: Mã dịch vụ, Tên dịch vụ, Đơn giá, Số lượng tồn kho.

- Hóa đơn: Mã hóa đơn, Ngày lập hóa đơn, Tổng tiền. - Đặt phòng: Mã đặt phòng, Ngày đặt phòng, Ngày trả phòng. Các mối quan hệ - Phòng <Trong> Đặt phòng (1 : n) - Khách hàng <Có> Đặt phòng (1 : n) - Nhân viên <Quản lý> Hóa đơn (1 : n) - Hóa đơn <Có> Đặt phòng (1 : 1) - Hóa đơn <Có> Dịch vụ (n : n) (Số lượng, Đơn giá, Thành tiền) 3 2. Mô hình thực thể liên kết (ERD) Hình 2.1: Mô hình thực thể liên kết 4 2.

Thiết kế mức Logic 2. Các quan hệ - Phòng (Mã phòng, loại phòng, đơn giá, trạng thái, mô tả) - Khách hàng (Mã khách hàng, tên khách, Ngày Sinh, CMT, email, giới tinh, SĐT, địa chỉ) - Đặt phòng (Mã đặt phòng, Ngày nhận phòng, Ngày trả phòng, Mã khách hàng, Mã phòng) - Hóa đơn (Mã hóa đơn, tổng tiền, Ngày thanh toán, Mã đặt phòng) - Chi tiết hóa đơn(Mã hóa đơn, Mã dịch vụ, số lượng, đơn giá, thành tiền) - Nhân viên(Mã nhân viên, tên, chức vụ, lương, giới tính, địa chỉ, số điện thoại, email) - Dịch vụ (Mã dịch vụ, Tên dịch vụ, Mô tả, Đơn giá dịch vụ) 2. Mô hình dữ liệu quan hệ Hình 2.2: Mô hình dữ liệu quan hệ 5 2. Thiết kế mức vật lý Bảng “Phong” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaPhong Char 3 Primary Key 2 LoaiPhong Nvarchar2 20 Not Null 3 DonGia Int Not Null 4 TrangThai Nvarchar2 30 Not Null 5 MoTa Nvarchar2 30 Bảng “KhachHang” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaKH Char 10 Primary Key 2 CCCD Char 12 Not Null 3 TenKH Nvarchar2 30 Not Null 4 NgaySinh Date Not Null 5 GioiTinh Int 1 Not Null 6 DiaChi Nvarchar2 50 Not Null 6 7 SDT Char 10 Not Null 8 Email Nvarchar2 50 Bảng “NhanVien” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaNV Char 10 Primary Key 2 CCCD Char 12 Not Null 3 TenNV Nvarchar2 30 Not Null 4 NgaySinh Date Not Null 5 GioiTinh Int 1 Not Null 6 DiaChi Nvarchar2 50 Not Null 7 SDT Char 10 Not Null 8 Email Nvarchar2 50 9 ChucVu Nvarchar2 20 Not Null 10 Luong Number Not Null 7 Bảng “DichVu” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaDV Char 5 Primary Key 2 TenDV Char 20 Not Null 3 DonGia Number Not Null 4 SoLuongTonKho Int Bảng “HoaDon” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaHoaDon Char 10 Primary Key 2 MaDatPhong Char 10 Foreign Key 3 MaNV Char 10 Foreign Key 4 NgayLapHD Date Not Null 5 TongTien Number Not Null 8 Bảng “ChiTietHoaDon” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaDV Char 5 Foreign Key 2 MaHoaDon Char 10 Foreign Key 3 SoLuong Int Not Null Bảng “DatPhong” STT Tên thuộc tính Kiểu dữ liệu Kích thước Ràng buộc 1 MaDatPhong Char 10 Primary Key 2 NgayDatPhong Date Not Null 3 NgayTraPhong Date Not Null 4 MaKH Char 10 Foreign Key 5 MaPhong Char 10 Foreign Key 9 CHƯƠNG 3: CÁC YÊU CẦU TRUY VẤN VÀ NGHIỆP VỤ 3.

Các yêu cầu truy vấn nghiệp vụ 3. Tạo TableSpace Việc tạo tablespace mang ý nghĩa quản lý dữ liệu theo tính chất của chúng. Tùy thuộc vào loại dữ liệu, thông tin nào sẽ được phân vào các tablespace khác nhau. Đối với các thông tin, dữ liệu không có sự thay đổi thường xuyên như nhân viên, phòng, dịch vụ.

Các bảng còn lại như đặt phòng, khách hàng, chi tiết hoá đơn, hoá đơn được phân vào tablespace còn lại. Tạo 2 tablespace, QuanLyKhachSan2 có ít sự thay đổi vì vậy dung lượng sẽ bé hơn so với QuanLyKhachSan1. - Truy xuất đường dẫn - Tạo TableSpace 10 - Tạo TableSpace 3. Tạo các bảng - Tạo bảng Phòng - Tạo bảng Đặt Phòng 11 - Tạo bảng Khách Hàng - Tạo bảng Nhân Viên 12 - Tạo bảng Dịch Vụ - Tạo bảng Hóa Đơn - Tạo bảng Chi Tiết Hóa Đơn - 13 3.

Chèn dữ liệu vào bảng - Chèn dữ liệu Khách Hàng - Chèn dữ liệu bảng Dịch Vụ - Chèn dữ liệu bảng Phòng 14 - Chèn dữ liệu bảng Nhân Viên - Chèn dữ liệu bảng Đặt Phòng 15 - Chèn dữ liệu bảng Hóa Đơn - Chèn dữ liệu bảng Chi Tiết Hóa Đơn 16 3. Truy vấn bằng SQL 1. Thống kê loại phòng nào có số lượng đặt cao nhất 2. Thống kê số lượng đặt phòng theo từng tháng 17 3.

Tổng chi phí dịch vụ cho 1 đơn đặt phòng 4. Doanh thu dịch vụ của từng hóa đơn 18 5. Danh sách các loại phòng có tỷ lệ sử dụng cao nhất 6. Tính số lượng dịch vụ được sử dụng cho mỗi hóa đơn 19 7.

Thống kê số lượng dịch vụ đã được sử dụng 8. Hiển thị khách hàng đã đặt phòng 20 9. Lấy thông tin hoá đơn của khách hàng 10. Tổng tiền phòng của các hóa đơn 21 3.

Nghiệp vụ thực hiện bằng PL/SQL 1. Thủ tục thêm khách hàng 22 2. Tính doanh thu của dịch vụ theo mã dịch vụ 23 3. Trigger cập nhật trạng thái phòng 4.

Thủ tục đổi phòng 24 5. Thủ tục cập nhật giá phòng 25 6. Package gồm 1 thủ tục nhập đặt phòng mới và hàm kiểm tra phòng 26 7. Hàm kiểm tra số lượng phòng trống trong 1 khoảng thời gian 8.

Tạo thủ tục để xác nhận thanh toán và cập nhật trạng thái phòng 28 9. Tính Doanh thu theo loại phòng 10. Hàm trả về danh sách các phòng theo từng loại 29 3. Phân quyền sử dụng và quản lý người dùng Việc truy cập vào cơ sở dữ liệu của cửa hàng dựa trên mỗi nhiệm vụ khác nhau, đối với người quản trị cơ dữ liệu cần tạo một user với toàn quyền hệ thống tuy nhiên hạn chế các quyền về sửa đổi database như sau: Hình 3.1: Tạo user NhanVienIT và cấp các quyền 30 1.

Người quản lý cũng sẽ có toàn quyền dba và truy cập đến cơ sở dữ liệu của hệ thống Hình 3.2: Tạo user QuanLy và cấp các quyền 2. Đối với công việc lễ tân sẽ tiếp đón khách hàng, nhận thông tin đặt phòng, quản lý các hóa đơn và cũng như update thông tin dịch vụ của khách sạn Hình 3.3: Tạo user LeTan và cấp các quyền 31 3. Sao lưu phục hồi 3. Kế hoạch sao lưu phục hồi Việc sao lưu dữ liệu là một khía cạnh cực kỳ quan trọng và không thể phủ nhận trong quản lý thông tin của mọi tổ chức và cá nhân.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ