MỤC LỤC LỜI CẢM ƠN 2 MỤC LỤC 3 NỘI DUNG THỰC HIỆN 5 1. Database diagram: 5 2. Contsraints (Ràng buộc) 6 2.1. Ràng buộc trên bảng KhachHang: 6 2.2. Ràng buộc trên bảng Phong: 6 2.3. Ràng buộc trên bảng PhieuThuePhong: 6 3. Triggers 6 3.1. Trigger trên bảng HoaDon 6 4. Stored procedures 8 4.1. Thêm khách hàng mới 8 4.2. Cập nhập thông tin khách hàng 8 4.3. Thêm phòng mới: 9 4.4. Cập nhập thông tin phòng: 9 4.5. Xoá thông tin phòng: 10 4.6. Thêm loại phòng: 10 4.7. Cập nhập loại phòng: 11 4.8. Xoá loại phòng: 11 4.9. Thêm phiếu thuê phòng: 12 4.10. Thêm chi tiết thuê phòng 12 4.11. Thêm sử dụng dịch vụ: 13 4.12. Xoá sử dụng dịch vụ: 13 4.13. Xác nhận trả phòng: 14 4.14. Thêm dịch vụ mới: 15 4.15. Cập nhật thông tin dịch vụ: 16 4.16. Xoá dịch vụ 16 4.17. Thống kê 17 5. Create Function 18 6. Create Transaction 19 7. Create View 20 7.1. View chi tiết thuê phòng 20 7.2. View chi tiết dịch vụ phòng 20 8. Create index 21 9. Phân quyền user: 22 10. Kết nối hai máy 23
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG QUẢN LÝ THUÊ TRẢ PHÒNG KHÁCH SẠN GVHD: TS. Nguyễn Thành Sơn Sinh viên thực hiện: Trần Nhật Tiền 11110143 Cáp Thị Hằng 11110039 1 LỜI CẢM ƠN Chúng em xin chân thành cảm ơn TS. Nguyễn Thành Sơn đã tận tình hướng dẫn chúng em qua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về các vấn đề liên quan đến môn học cũng như những hành trang cần thiết mà em cần phải trang bị cho con đường vào đời của mình. Nếu không có những lời hướng dẫn, dạy bảo của thầy thì em nghĩ bài thu hoạch này của em rất khó có thể hoàn thiện được. Một lần nữa, em xin chân thành cảm ơn thầy. Lời cuối cùng, chúng em xin kính chúc Thầy TS. Nguyễn Thành Sơn thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau. Trân trọng. TP.HCM, ngày 02 tháng 12 năm 2014 Nhóm sinh viên thực hiện Trần Nhật Tiền 111110143 Cáp Thị Hăng 11110039 2 MỤC LỤC 3 NỘI DUNG THỰC HIỆN 1. Database diagram: Cơ sở dữ liệu gồm có 8 bảng: KHACHHANG (khách hàng), PHIEUTHUEPHONG (phiếu thuê phòng), CHITIETTHUEPHONG (chi tiết thuê phòng), PHONG (phòng), LOAIPHONG (Loại phòng), DICHVU (dịch vụ), CHITIETSUDUNGDICHVU (chi tiết sử dụng dịch vụ), HOADON (Hoá đơn). Quan hệ giữa các bảng được thể hiện như hình trên. 4 2. Contsraints (Ràng buộc) 2.1. Ràng buộc trên bảng KhachHang: Câu lệnh CONSTRAINT "KHACHHANG_CHK_GIOITINH" CHECK ( GioiTinh ='Nam' or GioiTinh='Nu') Giải thích Ràng buộc này chỉ cho phép trường “GioiTinh” nhận hai giá trị là “Nam”, “Nu” 2.2. Ràng buộc trên bảng Phong: Câu lệnh CONSTRAINT PHONG_CHK1 CHECK (TinhTrang=1 or TinhTrang =0) Giải thích: Ràng buộc này chỉ cho phép trường “TinhTrang” nhận giá trị 1 hoặc 0. 2.3. Ràng buộc trên bảng PhieuThuePhong: Câu lệnh: CONSTRAINT "PHIEUTHUEPHONG_CHK_TRANGTHAI" CHECK (TrangThai=0 or TrangThai=1) Giải thích: (tương tự mục 2.1. và 2.2.); 3. Triggers 3.1. Trigger trên bảng HoaDon Tạo sequence: identity3_Seq create sequence IDENTITY3_SEQ start with 1 increment by 1 nomaxvalue; Tạo trigger: Giải thích: trigger tạo trường MaHoaDon tự tăng giá trị. Mỗi khi một thêm một hoá đơn mới, thì trigger sẽ thực hiện tạo một MaHoaDon mới tăng một đơn vị trước ghi câu lệnh insert được thực hiện. 5 CREATE OR REPLACE TRIGGER IDENTITY_HOADON BEFORE INSERT ON HOADON FOR EACH ROW BEGIN SELECT IDENTITY3_SEQ.nextval INTO :NEW.MAHOADON FROM DUAL; END; 4. Stored procedures 4.1. Thêm khách hàng mới 4.2. Cập nhập thông tin khách hàng 4.3. Thêm phòng mới: 6 CREATE OR REPLACE PROCEDURE SPTHEMKHACHHANG ( p_TenKH IN VARCHAR2, p_GioiTinh IN VARCHAR2, p_CMND IN VARCHAR2, p_SDT IN VARCHAR2 ) IS BEGIN insert into KhachHang(TenKH,GioiTinh,CMND,SDT) values (p_TenKH,p_GioiTinh,p_CMND,p_SDT); END SPTHEMKHACHHANG; CREATE OR REPLACE PROCEDURE spCapNhatKhachHang ( p_MaKH in NUMBER, p_TenKH in VARCHAR2, p_GioiTinh in VARCHAR2, p_CMND in CHAR, p_SDT in VARCHAR2) IS BEGIN Update KhachHang set TenKH=p_TenKH, GioiTinh=p_GioiTinh, CMND=p_CMND, SDT= p_SDT where MaKH=p_MaKH; COMMIT; END; CREATE OR REPLACE PROCEDURE spThemPhong ( p_MaPhong IN NUMBER, p_MaLoaiPhong IN NUMBER, p_TinhTrang IN NUMBER) IS BEGIN insert into Phong(MaPhong,MaLoaiPhong,TinhTrang) values (p_MaPhong,p_MaLoaiPhong,p_TinhTrang); COMMIT; END; 4.4. Cập nhập thông tin phòng: 7 CREATE OR REPLACE PROCEDURE spCapNhatPhong ( p_MaPhong IN NUMBER, p_MaLoaiPhong IN NUMBER, p_TinhTrang IN NUMBER) IS BEGIN Update Phong set MaLoaiPhong=p_MaLoaiPhong, TinhTrang=p_TinhTrang where MaPhong=p_MaPhong; COMMIT; END; 4.5. Xoá thông tin phòng: 4.6. Thêm loại phòng: 8 CREATE OR REPLACE PROCEDURE spXoaPhong ( p_MaPhong IN NUMBER ) IS BEGIN Delete From Phong where MaPhong=p_MaPhong; COMMIT; END; CREATE OR REPLACE PROCEDURE spThemLoaiPhong ( p_MaLoaiPhong in number, p_LoaiPhong in VARCHAR2, p_GiaPhong in FLOAT) IS BEGIN insert into LoaiPhong(maloaiphong,LoaiPhong, giaphong) values (p_MaLoaiPhong,p_LoaiPhong,p_GiaPhong); COMMIT; END; 4.7. Cập nhập loại phòng: 4.8. Xoá loại phòng: 9 CREATE OR REPLACE PROCEDURE spCapNhatLoaiPhong ( p_MaLoaiPhong in number, p_LoaiPhong in VARCHAR2, p_GiaPhong in FLOAT) IS BEGIN Update LoaiPhong set LoaiPhong=p_LoaiPhong, giaphong=p_GiaPhong where MaLoaiPhong=p_MaLoaiPhong; COMMIT; END; CREATE OR REPLACE PROCEDURE spXoaLoaiPhong ( p_MaLoaiPhong in number) IS BEGIN Delete From LoaiPhong where MaLoaiPhong=p_MaLoaiPhong; COMMIT; END; 4.9. Thêm phiếu thuê phòng: 4.10. Thêm chi tiết thuê phòng 10 CREATE OR REPLACE PROCEDURE SPThemPhieuThuePhong ( p_MaPhong in NUMBER, p_NgayThue in DATE, p_TinhTrang in NUMBER) IS BEGIN SAVEPOINT AA; INSERT INTO phieuthuephong(maphong, ngaythue, trangthai) VALUES (p_maphong, p_ngaythue, p_tinhtrang); UPDATE Phong SET TinhTrang= 1 WHERE MaPhong=p_MaPhong; EXCEPTION WHEN OTHERS THEN ROLLBACK TO AA; COMMIT; END; CREATE OR REPLACE PROCEDURE SPTHEMCHITIETTHUEPHONG ( p_MaSoPhieu in NUMBER, p_MaKH in NUMBER ) IS BEGIN insert into ChiTietThuePhong(masophieu,MaKH) values (p_MaSoPhieu,p_MaKH); COMMIT; END; [...]... các quyền select, update, insert, delete trên bảng khách hàng, cấp quyền select trên view ‘V_khachHang’ cho role ‘role_khachhang’ Gán role cho user: GRANT role_khachhang TO nhattien; 20 10 Kết nối hai máy Bước 1: Tiến hành đặt địa chỉ IP tĩnh cho hai máy và Ping kết nối để kiểm tra kết nối thành công hay không Bước 2: Oracle của máy client truy cập vào cơ sở dữ liệu của máy server, các bước được mô tả... PhieuThuePhong,DichVu and trangthai=0; where ChiTietSuDungDichVu.masophieu=PhieuThuePhong.masophieu and DichVu.MaDichVu=ChiTietSuDungDichVu.MaDichVu and trangthai=0; 18 8 Create index Tạo một index trên cột Tên khách hàng trong bảng khách hàng để tăng tốc độ truy vấn Câu lệnh: CREATE INDEX INDEX_TENKHACHHANG ON KHACHHANG (TENKH); Demo index vừa tạo: 19 9 Phân quyền user: Tạo user: CREATE USER nhattien IDENTIFIED... REPLACE PROCEDURE SPXacNhanTraPhong ( Trong stored procedure “spxacnhantraphong” ta thực hiện 3 câu lệnh truy vấn như p_MaSoPhieu in NUMBER, hình trên Ba câu lệnh này phải nằm trong một transaction Ta đặt một điểm p_MaPhong là “AA” Nếu tất cả các câu lệnh đều hoàn tất thì “commit” không thì ta “SavePoint” in NUMBER, sẽp_MaHoaDon in date, “AA” “Rollback” lại vị trí p_TienPhong in float, p_TienDichVu... DonGia=p_DonGia END; MaDichVu=p_MaDichVu; where COMMIT; END; 14 4.17 Thống kê Lưu ý: Trong stored procedure OR REPLACE PROCEDURE spThongKe ( CREATE này có gọi một function tên là “tinhtongngay(param)” ở mệnh đề select p_NgayLapHD in DATE, o_SoLuotKhach out Number, o_TongTienPhong out Number, o_TongTienDichVu out Number, o_TongDoachThu out Number) IS BEGIN SELECT COUNT(mahoadon) ,SUM(tienphong) ,SUM(tiendichvu),... V_CHITIETTHUEPHONG ("TENKH", "CMND", "MAPHONG", Tạo view có tên là V_CHITIETTHUEPHONG "MASOPHIEU", "NGAYTHUE", "GIAPHONG") View này sẽ hiển thị thông tin chi tiết về các phòng đang thuê gồm mã phòng, mã phiếu, tên khách hàng, số AS CMND, ngày thuê phòng, và giá phòng Select 7.2 View chi tiết dịch vụ phòng TenKH,CMND,PhieuThuePhong.MaPhong,ChiTietThuePhong.masophieu,NgayThue,GiaPhong Giải thích : from KhachHang,ChiTietThuePhong,PhieuThuePhong,Phong,LoaiPhong