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
Trang 1BỘ 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
Trần Nhật Tiền 11110143
Trang 2LỜ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
Trang 3MỤ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
Trang 47.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
Trang 5NỘ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.
Trang 62 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')
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:
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.
FOR EACH ROW
BEGIN
SELECT IDENTITY3_SEQ.nextval INTO :NEW.MAHOADON FROM DUAL; END ;
Trang 7p_SDT in VARCHAR2) IS
Trang 94.5 Xoá thông tin phòng:
Trang 114.9 Thêm phiếu thuê phòng:
4.10 Thêm chi tiết thuê phòng
CREATE OR REPLACE PROCEDURE SPThemPhieuThuePhong (
INSERT INTO phieuthuephong(maphong, ngaythue, trangthai)
VALUES (p_maphong, p_ngaythue, p_tinhtrang);
UPDATE Phong SET TinhTrang= 1 WHERE
Trang 17o_SoLuotKhach out Number,
o_TongTienPhong out Number,
o_TongTienDichVu out Number,
o_TongDoachThu out Number)
Trang 196 Create Transaction
Giải thích:
Trong stored procedure “spxacnhantraphong” ta thực hiện 3 câu lệnh truy vấn như 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
“SavePoint” là “AA” Nếu tất cả các câu lệnh đều hoàn tất thì “commit” không thì ta
sẽ “Rollback” lại vị trí “AA”.
CREATE OR REPLACE PROCEDURE SPXacNhanTraPhong (
Trang 207 Create View
7.1 View chi tiết thuê phòng
Giải thích:
Tạo view có tên là V_CHITIETTHUEPHONG 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ố
CMND, ngày thuê phòng, và giá phòng.
7.2 View chi tiết dịch vụ phòng
Giải thích :
Tạo view có tên là V_CHITIETDICHVUPHONG View này sẽ hiển thị chi tiết
thông tin sử dụng dịch vụ của các phòng đang thuê.
CREATE VIEW V_CHITIETTHUEPHONG ("TENKH", "CMND", "MAPHONG",
"MASOPHIEU", "NGAYTHUE", "GIAPHONG")
AS
Select
TenKH,CMND,PhieuThuePhong.MaPhong,ChiTietThuePhong.masophieu,NgayThue,GiaPhong from KhachHang,ChiTietThuePhong,PhieuThuePhong,Phong,LoaiPhong
CREATE VIEW V_CHITIETDICHVUPHONG ("MAPHONG", "MASOPHIEU",
"TENDICHVU", "NGAYSUDUNG", "SOLUONG", "DONGIA")
AS
select MaPhong,PhieuThuePhong.masophieu,TenDichVu,NgaySuDung,SoLuong,DonGia from ChiTietSuDungDichVu, PhieuThuePhong,DichVu
where ChiTietSuDungDichVu.masophieu=PhieuThuePhong.masophieu
and DichVu.MaDichVu=ChiTietSuDungDichVu.MaDichVu
and trangthai=0;
Trang 229 Phân quyền user:
Tạo user:
CREATE USER nhattien IDENTIFIED BY 123456 ;
Cấp quyền cho user:
- GRANT create session to nhattien;
Giải thích: cấp quyền này để user ‘nhattien’ có thể truy cập vào database
Tạo role:
CREATE ROLE role_khachhang;
Cấp quyền cho role:
GRANT SELECT, UPDATE, INSERT, DELETE ON KhachHang To
role_khachhang;
GRANT SELECT ON V_KHACHHANG To role_khachhang;
Giải thích: cấp 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;
Trang 2310 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ả trong hình bên dưới
Trang 24Mặt khác: Khi ta muốn kết nối máy client đến database của máy server thông qua ứng
dụng đã xây dưng Ta chỉ cần gán địa chỉ IP máy server, tên user, mật khẩu bên server
đã cấp cho vào chuỗi kết nối như sau:
(HOST= 192.168.1.3 )(PORT=1521))) (CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=orcl)));" + "User Id= Hang1 ;Password= capthihang ;”