Mô tả hệ thống trong một đoạn văn như sau:
Hệ thống quản lí thông tin về phòng của khách sạn, thông tin về khách hàng đặt phòng. Hệ thống cho phép người quản lí có thể quản lí thông tin về phòng và khách sạn, xem các loại báo cáo thống kê về phòng theo doanh thu, thống kê khách hàng theo doanh thu, thống kê dịch vụ theo doanh thu, thống kê doanh thu theo thời gian (năm/tháng/quý). Hệ thống cũng cho phép khách hàng đặt phòng qua điện thoại thông qua nhân viên bán hàng, hoặc đặt phòng trực tiếp tại quầy thông qua nhân viên lễ tân. Hệ thống cũng cho phép nhân viên lễ tân thực hiện các hoạt động như nhận phòng, trả phòng, thanh toán khi có yêu cầu từ khách hàng. Mỗi khi thanh toán, hóa đơn sẽ được in ra cho khách hàng, bao gồm cả phí các dịch vụ mà khách hàng đã sử dụng khi nghỉ tại khách sạn.
Như vậy, ta có các danh từ và các phân tích như sau: • Hệ thống: danh từ chung chung --> loại. • Thông tin: danh từ chung chung --> loại.
• Phòng: là đối tượng xử lí của hệ thống --> là 1 lớp thực thể: Room • Khách sạn: là đối tượng xử lí của hệ thống --> là 1 lớp thực thể: Hotel
• Khách hàng: là đối tượng xử lí của hệ thống --> là 1 lớp thực thể: Client
• Người quản lí: không phải là đối tượng xử lí trực tiếp của hệ thống, nhưng cũng bị quản lí cùng với nhân viên lễ tân và nhân viên bán hàng theo kiểu người dùng trực tiếp của phần mềm --> đề xuất là 1 lớp thực thể chung: User
• Điện thoại: không thuộc phạm vi xử lí của phần mềm --> loại
• Nhân viên bán hàng: không phải là đối tượng xử lí trực tiếp của hệ thống, nhưng cũng bị quản lí cùng với người quản lí và nhân viên lễ tân theo kiểu người dùng trực tiếp của phần mềm --> đề xuất là 1 lớp thực thể chung: User
• Quầy: không thuộc phạm vi xử lí của phần mềm --> loại
• Nhân viên lễ tân: không phải là đối tượng xử lí trực tiếp của hệ thống, nhưng cũng bị quản lí cùng với người quản lí và nhân viên bán hàng theo kiểu người dùng trực tiếp của phần mềm --> đề xuất là 1 lớp thực thể chung: User
• Hóa đơn: là đối tượng xử lí của hệ thống --> là 1 lớp thực thể: Bill
• Phí, lệ phí, tiền: trừu tượng, chung chung --> loại (có thể làm thuộc tính của hóa đơn) • Dịch vụ: là đối tượng xử lí của hệ thống --> là 1 lớp thực thể: Service
• Các thông tin thống kê: thống kê phòng --> RoomStat; thống kê khách hàng --> ClientStat; thống kê dịch vụ --> ServiceStat; thống kê khách sạn --> HotelStat; thống kê doanh thu --> IncomeStat.
Vậy chúng ta thu được các lớp thực thể ban đầu là: Room, Hotel, Client, User, Bill, Service và các lớp thực thể thống kê: RoomStat, HotelStat, ClientStat, ServiceStat, IncomeStat.
Quan hệ giữa các lớp thực thể được xác định như sau:
• Một Hotel có nhiều Room, một Room chỉ thuộc vào một Hotel. Vậy quan hệ giữa Hotel và Room là 1-n.
• Một Client có thể đặt nhiều Room, một Room có thể bị đặt trước bởi nhiều Client ở nhiều thời điểm khác nhau: quan hệ giữa Client và Room là n-n. Do đó có thể bổ sung một lớp thực thể liên kết giữa hai đối tượng này là Booking (thông tin đặt phòng).
• Một Client có thể có nhiều Booking. Một phòng cũng có thể có nhiều Booking. Tuy nhiên, một lần Booking, khách hàng có thể đặt nhiều phòng (đại diện khách đoàn). Do đó, quan hệ giữa Booking và Room vẫn còn là n-n. Chúng ta cần tách thành một lớp trung gian ở giữa nữa là BookedRoom (thông tin phòng được đặt). Một Boooking và một Room
xác định duy nhất một BookedRoom. Liên kết này xác định thêm các thông tin: ngày đến, ngày đi, giá thực.
• Một Booking có thể được thanh toán nhiều lần khác nhau. Do đó có nhiều hóa đơn khác nhau. Vậy quan hệ giữa Booking và Bill là 1-n.
• Một nhân viên lễ tân có thể lập nhiều hóa đơn khác nhau cho các Booking khác nhau. Do đó quan hệ giữa User và Bill cũng là 1-n.
• Một Service có thể dùng bởi nhiều Client khác nhau, tại nhiều phòng đặt BookedRoom khác nhau. Nhưng một Service chỉ được thanh toán 1 lần (có thể với nhiều đơn vị) tại một BookedRoom. Một BookedRoom có thể dùng nhiều Service khác nhau: Quan hệ giữa BookedRoom và Service là n-n. Do đó đề xuất bổ sung lớp UsedService làm cầu nối 1-n giữa lớp BookedRoom và Service.
• Đối với các lớp thống kê, do chúng phải dùng lại một số thuộc tính của lớp thực thể tương ứng nên có quan hệ kế thừa từ các lớp thực thể tương ứng ấy: HotelStat kế thừa từ Hotel; RoomStat kế thừa từ Room; ServiceStat kế thừa từ Service; ClientStat kế thừ từ Client. • Riêng lớp IncomeStat không dùng lại thuộc tính của lớp nào nên không có quan hệ kế
thừa với lớp nào. Nó chỉ có quan lệ với lớp Bill vì có thể liên quan đến chi phí trong các hóa đơn.
Như vậy, ta thu được sơ đồ các lớp thực thể của hệ thống như Hình 7.10.