Lời mở đầu Ngày nay, công nghệ thông tin có mặt trong hầu hết các lĩnh vực của đời sống kinh tế xã hội đặc biệt nó là công cụ hỗ trợ đắc lực trong công tác quản lý. Việc đưa tin học vào trong quản lý kinh doanh là một trong những ứng dụng quan trọng nhất trong nhiều ứng dụng của cơ sở dữ liệu. Nhờ vào việc tin học hoá mà công việc quản lý và điều hành doanh nghiệp tỏ ra nhanh chóng và hiệu quả hơn rất nhiều. Hiện nay, hầu hết các tổ chức, doanh nghiệp đều đã nhận thức được tầm quan trọng và tác dụng to lớn của việc áp dụng tin học hoá trong công tác quản lý của mình.
Vì vậy mà nhu cầu xây dựng những phần mềm quản lý của các doanh nghiệp rất lớn. Hầu hết các doanh nghiệp, tổ chức dù lớn hay nhỏ đều đang có xu hướng muốn áp dụng tin học trong công tác quản lý. Cùng với sự phát triển to lớn đó, song song với việc phát triển về chiều rộng thì phát triển về chiều sâu cũng được nhiều nhà phát triển quan tâm. Và một vấn đề đặt ra là Internet đang ngày càng bùng nổ và tiếp cận gẫn gũi với con người nên làm việc trên Internet là một nhu cầu bức thiết.
Vì thế dần dần các hệ thống phân bố hay các mô hình phân tán được áp dụng triệt để trong việc phát triển phần mềm và trong các ứng dụng CNTT nói chung để phục vụ tốt hơn nhu cầu của cá nhân cũng như doanh nghiệp trong đời sống và kinh doanh. Trong khi đời sống con người nâng cao, nhu cầu du lịch ngày càng phát triển thì nhu cầu tìm những khách sạn có phòng nghỉ chất lượng và dịch vụ tốt để nghỉ ngơi thư giãn ngày càng phổ biến. Trước kia khi chưa ứng dụng tin học vào công tác quản lý thì các công việc như cập nhật thông tin khách hàng, xem các thông tin về dịch vụ của khách sạn, thông tin về số phòng, và nhân viên, hoá đơn thanh toán, tất cả đều làm thủ công nên các cán bộ quản lý phải mất rất nhiều thời gian mới tổng hợp được những thông tin cần thiết. Mặt khác hiện nay trong các khách sạn, các cán bộ làm công tác quản lý thông tin của khách sạn phải quản lý một lượng lớn thông tin về cán bộ công nhân viên, tình trạng phòng… Việc này mất rất nhiều thời gian và công sức của con người nên việc ứng dụng tin học vào công tác quản lý khách sạn theo yêu cầu của người dùng ngày Trang 3 / 68 càng trở nên hết sức cần thiết, quan trọng.
***Mục tiêu và ý nghĩa của Đồ án hệ thống quản lý Khách sạn Đồ án hệ thống quản lý Khách sạn với mục đích cung cấp cho khách hàng các thông tin chính xác về các phòng tại có trong khách sạn và cách thức đặt phòng / hẹn phòng. Các thông tin được cập nhật thường xuyên và nhanh chóng. Vì vậy, rút ngắn được khoảng cách giữa khách hàng và các khách sạn cung cấp dịch vụ, đưa thông tin về các phòng tại các khách sạn nhanh chóng đến cho khách hàng. Mô tả hệ thống Sau khi khảo sát hiện trạng ở trên, một yêu cầu cấp thiết cần đặt ra là xây dựng và phát triển một phần mềm đáp ứng được nhu cầu tìm kiếm phòng, đặt phòng, các dịch vụ kèm theo phòng… Với việc xây dựng phần mềm thì ta có các yêu cầu về : Quản lý khách hàng: Mỗi khách hàng của khách sạn đều được khách sạn quản lý những thông tin sau: Họ tên, giới tính, Ngày sinh, điện thoại, số CMT,… Quản lý phòng: Các phòng của khách sạn được quản lý dựa vào mã phòng,tên phòng, loại phòng, mô tả phòng, số người ở tối đa của phòng, giá phòng, trạng thái,… Quản lý đặt phòng: Tất cả các thông tin đăng ký thuê phòng đều được quản lý dựa trên người đặt phòng, mã khách hàng, ngày đặt phòng, thời gian trả phòng,… Với mỗi phòng được đặt đều có mã đặt phòng do nhân viên thiết lập(mã nhân viên).
Quản lý 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: Mã nhân viên, Tên nhân viên, Ngày sinh, Giới tính, Chức vụ của nhân viên,… Quản lý dịch vụ: Khách sạn cung cấp một số dịch vụ: Dịch vụ đồ ăn, đồ uống. Phân tích dữ liệu 1. Thực thể: Nhân viên **Các thuộc tính: - Mã nhân viên - Tên nhân viên - Ngày sinh - Giới tính - CMT (Chứng minh thư nhân dân / thẻ căn cước công dân) - SDT (Số điện thoại) 2. Thực thể: Tài khoản **Các thuộc tính: - User (Tài khoản) - Pass (Mật khẩu) 3.
Thực thể: Loại phòng **Các thuộc tính: - Mã loại phòng - Mô tả - Giá 4. Thực thể: Phòng **Các thuộc tính: - Mã phòng - Tên phòng - Mô tả - Số người tối đa - Trạng thái phòng ( theo ngày ) 5. Thực thể: Khách hàng **Các thuộc tính: Trang 5 / 68 - Mã khách hàng - Tên khách hàng - Ngày sinh - Giới tính - CMT (Chứng minh thư nhân dân / Thẻ căn cước công dân) - SDT (Số điện thoại) 6. Thực thể: Đồ ăn **Các thuộc tính: - Mã đồ ăn - Tên đồ ăn - Giá 7.
Thực thể: Đồ uống **Các thuộc tính: - Mã đồ uống - Tên đồ uống - Giá Trang 6 / 68 III. Mô hình hóa các thực thể liên kết về dạng chuẩn 3 1. Quan hệ giữa thực thể “Nhân viên” và thực thể “Tài khoản” Mã nhân viên* SDT Tên nhân viên Tài khoản Ngày Sinh Nhân viên Là một Tài khoản Giới Tính Mật khẩu Chức vụ CMT Từ liên kết giữa 2 thực thể Nhân viên và Tài khoản thì xác định được: *Bảng Nhân viên Trang 7 / 68 Có: Khóa chính là maNV *Bảng Tài khoản: Có: Khóa chính là maNV và là khóa ngoại liên kết với maNV ở bảng nhân viên Mỗi một nhân viên chỉ có một tài khoản duy nhất 2. Thuộc tính đa trị trong thực thể “Phòng” Số người tối đa Mã phòng* Tên phòng Phòng Trạng thái Mô tả Trang 8 / 68 Ngày Trạng thái của phòng được tính theo ngày Trạng thái là đa trị nên ta tách ra thêm 1 bảng: *Bảng Trạng thái phòng: Có: Khóa chính là (maPhong, ngay) maPhong là khóa ngoại liên kết với bảng phòng 3.
Quan hệ giữa thực thể “Loại phòng” và thực thể “Phòng” Số người tối đa Mã phòng* Mã loại phòng* Tên phòng 1 N Loại phòng Thuộc Phòng Mô tả Mô tả Giá Trang 9 / 68 Từ liên kết giữa 2 thực thể Loại phòng và Phòng thì xác định được: *Bảng Loại phòng: Có: Khóa chính là maLoaiPhong *Bảng Phòng: Khóa chính là maPhong Khóa ngoại là maLoaiPhong liên kết với bảng loại phòng 4. Quan hệ giữa thực thể “Nhân viên”, “Khách hàng” và “Phòng” Ngày đặt SDT Số người tối đa Mã nhân viên* Ngày trả Mã phòng* Tên nhân viên = Ngày Sinh N Tên phòng N Đặt phòng Phòng Nhân viên Giới Tính N Mã loại phòng Trạng thái CHức vụ (hẹn/đặt ) CMT Khách hàng Mô tả SDT CMT Mã KH* Giới tính Trang 10 / 68 Tên KH Ngày Sinh Từ liên kết giữa thực thể Nhân viên, Khách hàng và Phòng thì xác định được: *Bảng khách hàng: Có: Khóa chính là maKH *Bảng Đặt phòng: Có: Khóa chính là (maKH, maNV, maPhong, ngayDat) maKH là khóa ngoại liên kết với bảng khách hàng maNV là khóa ngoại liên kết với bảng nhân viên Trang 11 / 68 maPhong là khóa ngoại liên kết với bảng phòng 5. Quan hệ giữa thực thể “Phòng” và thực thể “Đồ ăn” Mã đồ ăn* Mã phòng* Tên đồ ăn Số lượng Tên phòng Giá Phòng N N Đồ ăn Đăng ký Mã loại phòng Mô tả Số người tối đa Từ liên kết giữa thực thể Phòng và Đồ ăn thì xác định được: *Bảng Đồ ăn: Trang 12 / 68 Có: Khóa chính là maDA *Bảng đăng ký đồ ăn: Có: Khóa chính là (maPhong, maDA) maPhong là khóa ngoại liên kết của bảng Phòng maDA là khóa ngoại liên kết của bảng Đồ ăn 6. Quan hệ giữa thực thể “Phòng” và thực thể “Đồ uống” Mã phòng* Mã đồ uống* Tên đồ uống Số lượng Tên phòng Giá Phòng N N Đồ uống Đăng ký Mã loại phòng Mô tả Số người tối đa Từ liên kết giữa thực thể Phòng và Đồ uống thì xác định được: Trang 13 / 68 *Bảng Đồ uống: Có : Khóa chính là maDU *Bảng đăng ký đồ uống: Có: Khóa chính là (maPhong, maDU) maPhong là khóa ngoại liên kết của bảng Phòng maDU là khóa ngoại liên kết của bảng Đồ uống IV.
Mô hình dữ liệu quan hệ quản lý khách sạn - tbl_taikhoan(maNV, Taikhoan, maKhau) - tbl_nhanvien(maNV, tenNV, ngaySinh, gioiTinh, chucVu, cmt, sdt) - tbl_datphong(maKH, maNV, maPhong, ngayHenTra, giaHan) - tbl_khachhang(maKH, tenKH, ngaySinh, gioiTinh, cmt, sdt) - tbl_phong(maPhong, tenPhong, maLoaiPhong, mota, songuoitoida) - tbl_dangkydoan(maPhong,maDA,soLuong) - tbl_doAn(maDA, tenDA, gia) Trang 14 / 68 - tbl_trangthaiphong(maPhong, ngay, tinhTrang) - tbl_loaiPhong(maLoaiPhong, moTa, gia) - tbl_dangkyDoUong(maPhong, maDU, soLuong) - tbl_ doUong(maDU, tenDU, gia) Trang 15 / 68 V. Thiết kế cơ sở dữ liệu trong sql server 1. Tạo cơ sở dữ liệu -- Tạo database QLKS USE master; GO IF DB_ID('QLKS') IS NOT NULL DROP DATABASE QLKS GO CREATE DATABASE QLKS; GO USE QLKS; GO 2. Tạo hàm kiểm tra điều kiện đầu vào -- Tạo hàm kiể, m tra số.điện thoại nhập vào create function funcSDT ( @SoDT varchar(Max) ) returns bit as begin Declare @KQ bit; Set @KQ=0; Declare @So tinyint; Set @So=0; Declare @i tinyint; Set @i=0; While (@i<=len(@SoDT)) begin if (charindex(substring(@SoDT,@i,1),'0123456789')!=0) Set @So=@So+1; Set @i=@i+1; end if (@SoDT='' or @So=10 or @So=11) Set @KQ=1; return @KQ; END; GO Trang 16 / 68 3.
Tạo các bảng Nhân viên,Tài khoản, Loại phòng, Phòng, Trạng thái phòng, Khách hàng, Đồ ăn, Đăng ký đồ ăn, Đồ uống, Đặt phòng *Bảng Nhân viên gồm có: - Mã nhân viên: maNV - Tên nhân viên: tenNV - Ngày sinh: ngaySinh - Giới tính: gioiTinh - Chức vụ: chucVu - Chứng minh thư: cmt - Số điện thoại: sdt /* Tạo ba ,ng nhân viển (các trường khống được để,trố. ng) … - Trường giới tính (gioitinh) chỉ , cho phép là Nam hoặc Nữ - Trường chứng minh thư(cmt) là pha ,i là duy nhâ. t - Trường số.điện thoại (sdt: duy nhâ. t) sư,dụng hàm kiể, m tra số.điện thoại funcSDT(sdt) */ CREATE TABLE tbl_nhanvien ( maNV VARCHAR(30) CONSTRAINT kc_tbl_nhanvien PRIMARY KEY, tenNV VARCHAR(50) NOT NULL, ngaySinh DATE NOT NULL CONSTRAINT ck_tbl_nhanvien_ngaySinh CHECK(DATEDIFF(YEAR,ngaySinh,CAST(GETDATE() AS DATE)) >= 18), gioiTinh VARCHAR(5) NOT NULL CONSTRAINT ck_tbl_nhanvien_gioitinh CHECK(gioiTinh IN('Nam','Nu')), chucVu BIT NOT NULL, cmt VARCHAR(12) UNIQUE NOT NULL, sdt VARCHAR(11) UNIQUE NOT NULL CONSTRAINT ck_tbl_nhanvien_sdt CHECK(dbo.