Professional Documents
Culture Documents
Hinh 1 Cau Hinh He Thong Dat Cho Trong Khach San
Hinh 1 Cau Hinh He Thong Dat Cho Trong Khach San
Hãy đọc mô tả sau đây về hệ đặt chỗ trong khách sạn và trả lời các Câu
hỏi con từ 1 đến 5.
Công ty Du lịch A đã quyết định xây dựng một hệ đặt chỗ khách sạn. Như
được biểu diễn trên Hình 1, hệ này gồm một máy chủ đặt chỗ khách sạn
và các PC khách được thiết đặt tại các văn phòng khách hàng và các
khách sạn. Chúng được nối với nhau qua một mạng. Nhiệm vụ chủ yếu
của hệ thống này là nhận đặt chỗ từ các máy khách được cài đặt ở địa
điểm của những khách hàng đã được đăng kí như thành viên của hệ thống.
Việc đặt chỗ được gửi tới dịch vụ thông tin phòng khách sạn (sau đây
được coi như kiểm kê phòng), đã được đăng kí bởi các máy PC khách
trong các khách sạn đối với máy chủ đặt chỗ khách sạn.
Mang
3
Các nhiệm vụ được xử lí bởi hệ này được chỉ ra trong bảng dưới đây.
Bảng Các nhiệm vụ được xử lí bởi Hệ thống Đặt chỗ Khách sạn
Máy khách Nhiệm vụ Mô tả chức năng
Đăng kí/ Cập nhật Kiểm kê phòng đối với mỗi kiểu phòng được đăng kí bằng cách xác
định khách sạn và các ngày có thể dùng được. Đồng thời cũng có khả
kiểm kê phòng
năng cập nhật kiểm kê phòng.
Danh sách của các phòng đã được đặt, khách hàng và mức giá phòng
Ở khách sạn Đưa ra danh sách đặt
được hiển thị đối với một khách sạn cụ thể và ngày đăng kí ở khách
chỗ
sạn (check-in date).
Đăng kí mức giá Đối với một khách sạn cụ thể, mức giá cho mỗi mùa và mỗi kiểu
phòng phòng được thiết lập như đã định.
Vùng, quận, ngày đăng ký ở khách sạn, kiểu phòng và tổng số phòng
Tìm kiếm/đặt phòng được xác định và việc tìm kiếm được thực hiện đối với những khách
khách sạn sạn thoả mãn các điều kiện đã xác định. Cũng có khả năng chọn bất kỳ
một khách sạn tìm được và đặt một hay nhiều phòng.
Ở chỗ
Hiển thị các chi tiết của một việcđặt chỗ dược thực hiện bởi một khách
khách Yêu cầu/Huỷ chi tiết
hàng.
hàng đặt chỗ
Việc đặt chỗ cũng có thể bị hủy bỏ.
Đăng kí/cập nhật/ Khách hàng có thể đăng kí như thành viên của dịch vụ này bằng cách
xoá thông tin thành vào thông tin khách hàng được yêu cầu. Cũng có khả năng cập nhật và
viên xoá thông tin khách hàng này.
Điều kiện tiên quyết được giả thiết cho hệ này được trình bày dưới đây.
・ Hệ này quản lí tổng số các phòng trong kiểm kê phòng. Nói cách khác, việc
đặt chỗ khách sạn chỉ được phép khi tổng số phòng trống bằng hoặc lớn hơn
tổng số phòng yêu cầu. Tổng số phòng trống bị giảm đi hoặc tăng lên khi có việc
đặt chỗ hoặc hủy đặt chỗ.
・ Có bốn kiểu phòng: phòng đơn, phòng đôi, phòng ba và phòng tiện nghi.
・ Có ba kiểu mùa: ngoài mùa, giữa mùa và trong mùa. Điều này được xác định
dựa trên ngày đăng ký vào ở khách sạn.
・ Mức giá phòng được thiết đặt theo khách sạn, theo kiểu phòng và theo mùa.
Mức giá phòng được tính cho một đêm trong phòng.
・ Tổng số tiền được tính bằng cách nhân tổng số phòng với mức giá phòng.
Việc giảm giá không được xét tới.
・ Chỉ những khách hàng được đăng kí như thành viên mới có thể đặt chỗ
khách sạn. Không thể xoá tư cách thành viên của một khách hàng có đặt chỗ.
Lưu ý rằng mọi vấn đề như xác thực người thao tác máy khách, khoảng thời gian
cho mỗi nhiệm vụ, thay đổi mức giá phòng, ban hành phiếu vé và thanh toán nằm
ngoài phạm vi của bài toán này.
4
Những ví dụ về các màn hình hiển thị và các báo cáo đầu ra được sử dụng trong
quá trình hoạt động được chỉ ra trong các Hình 2 đến Hình 4. Chú giải sử dụng
trong Hình 2 cũng được áp dụng cho Hình 3.
Ngày: M 7 D 20 Y 2001
PhòngĐơn Phòng Đôi Phòng Ba P Tiện nghi
Hiện thời Những phòng được đặt − − − −
Những phòng được đ/kí − − − −
Đăng kí/ Cập nhật Tổng số phòng 120 60 5
Ve bang chon
hình phía trên đường kép , làm hiển thị phần màn hình phía
dưới vạch kép .
5
Tìm Khách sạn / đặt chỗ
Vùng: Hokkaido Quận: Wakkanai
Tổng số phòng: 2
Số hiệu đặt chỗ Kiểu phòng Tổng số phòng Số hiệu thành viên Tên Tổng số tiền
45678 Single 1 7890 Joe Smith $120
Mary
56789 Single 2 8901 $240
Diamond
67890 Twin 1 9012 John Lee $180
…
…
…
6
Hình 5 chỉ ra biểu đồ thực thể-quan hệ được xác định cho hệ này.
a Region_code
Address
Phone_no.
Rate
Calendar
Hotel_code
Check-in_date
Room_type
Room_inventory
Season
Season
Check-in_date
Room_charge
Hotel_code
Room_type
Reserved_rooms
b
Reservation
Reserv_no
Member_no
Member
Check-in_date
Member_no
Hotel_code
Name
Room_type
Address
Reserved_rooms
Phone_no
Legend:
Ghi chú: : 1 to 1
Entity_name
: 1 to many
Attribute_name
Attribute_name : many to many
7
Ở đây, máy chủ đặt chỗ khách sạn lưu giữ dữ liệu trong cơ sở dữ liệu quan hệ được
xác định bởi các bảng phản ánh biểu đồ thực thể-quan hệ. Để phù hợp với biểu đồ
thực thể-quan hệ, tên thực thể được sử dụng cho tên bảng và tên thuộc tính cho tên
cột, và các kiểu dữ liệu thích hợp cần phải được sử dụng cho các bảng. Dữ liệu
được xử lí khi sử dụng SQL nhúng trong ngôn ngữ lập trình máy chủ (host
programming language) được sử dụng để viết mã chương trình chính để xử lí
những yêu cầu nhiệm vụ khác nhau từ phía các máy khách.
RESERVATION.RESERVED_ROOMS, RESERVATION.MEMBER_NO,
MEMBER.NAME, g
8
AND RESERVATION.CHECKIN_DATE = :CHECKINDATE
AND h
AND i
Mặc dù nhiều thể nghiệm dữ liệu được cập nhật khi sử dụng chương trình này,
một hàm quản lí giao dịch được sử dụng cho cơ sở dữ liệu quan hệ để bảo vệ
tính toàn vẹn khi việc cập nhật được yêu cầu đồng thời bởi nhiều máy khách
(client PC), hoặc khi một lỗi hệ thống xảy ra giữa chừng xử lí.. Sử dụng hàm
9
này, các giao dịch được bắt đầu một cách tự động khi chương trình khởi động,
và được tách rời khi một khai báo SQL COMMIT hoặc ROLLBACK được
thực hiện. Dữ liệu xử lí trong thời gian đó hoặc được xác nhận hoặc bị hủy bỏ.
Do dữ liệu không bị khoá giữa thời điểm tìm kiếm một khách sạn và thời điểm
thực hiện đặt chỗ khách sạn, cho nên vẫn cần thiết phải xác minh rằng phòng
vẫn còn có tại thời điểm đặt chỗ, ngay cả khi khách sạn đó quả thực có những
phòng trống khi nó được tìm thấy. Việc xử lí CLOSE cho con trỏ (cursor)
được thực hiện tự động khi một khai báo COMMIT hoặc ROLLBACK được
thực hiện.
Trong trường hợp đặt chỗ nhiều đêm, những việc đặt chỗ được thực hiện chỉ
khi có phòng cho tất cả các đêm yêu cầu. Dữ liệu liên quan tới kiểm kê phòng
không bị tác động trong bất kì những trường hợp khác nào.
10
Bat dau
Nhan Reserv_no
0 →COUNTER
Khong
Co du lieu?
Co
Khong
Co cho trong?
Co
COUNTER + 1 → COUNTER
Khong
COUNTER = NO_OF_NIGHTS
Co
COMMIT ROLLBACK
Hinh 6 Luong tien trinh cap nhat du lieu khi nhan nut Dat cho
11
DECLARE ROOM_STOCK_CSR CURSOR
FOR SELECT *
o
WHERE HOTEL_CODE = :HOTELCODE
AND ROOM_TYPE = :ROOMTYPE
AND p
FOR UPDATE;
(1) Hãy đặt kí hiệu cho từ đúng (xuất hiện trong nhóm câu trả lời sau đây) trong
các hộp j đến n trong lưu đồ chỉ ra trong Hình 6 liên
quan đến việc cập nhật dữ liệu khi nút đặt chỗ (Reservation) được ấn.
(2) Hãy đặt từ hoặc biểu thức đúng vào các hộp o đến p
trong khai báo cursor chỉ ra trong Hình 7. Giả thiết rằng, tuy nhiên, các biến
máy chủ “:CHECKINDATE_F” và “:LASTNIGHT_T” có thể được sử dụng.
Chúng có cùng kiểu DATE như “CHECK_IN_DATE” trong cở sở dữ liệu.
Chúng đại diện cho đêm đầu tiên và đêm cuối cùng tương ứng của việc lưu lại
liên tục (ngày check-in + tổng số đêm − một ngày) như được xác định bởi
khách hàng.
12