Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
4,77 MB
Nội dung
TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO BÀI TẬP LỚN MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐỀ TÀI BÀI TOÁN QUẢN LÝ DU LỊCH THEO TOUR Giảng viên hướng dẫn: Sinh viên thực hiện: Lớp: Lê Hữu Dũng Đinh Trung Hiếu 16A5 Hà Nội – 2019 Mục Lục I PHÁT BIỂU BÀI TOÁN: II MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ: Xác định thực thể thuộc tính: Xác định liên kết thực thể: .5 Mơ hình E-R: Ràng buộc quan hệ: .7 Xây dựng mơ hình quan hệ: CSDL Quản lý Tour Du lịch gồm bảng: III TẠO CƠ SỞ DỮ LIỆU: 10 Khởi tạo table từ mơ hình quan hệ .10 Liên kết bảng: 12 Thực nhập ghi cho bảng: 12 Thực SELECT: 16 IV KHAI THÁC CƠ SỞ DỮ LIỆU (VIEW) 18 1.Tạo View xuất thông tin nhân viên 18 Tạo View cho biết số Tour loại Tour .18 Tạo view cho biết số Tour đặt loại năm 2019 19 4.Tạo view tính tổng tiền tất mã đặt tour năm 2019 19 5.Tạo view lấy danh sách khách hàng nữ tổng tiền đặt tour người 20 Tạo View cho biết nhân viên công ty chưa lập hoá đơn 21 8.Tạo View thống kê số lượng khách hàng theo giới tính 21 9.Tạo View tính tổng tiền thu mã đặt tour 22 10.Tạo view xem thông tin nhân viên, tính Số hóa đơn lập tuổi 22 V KHAI THÁC CƠ SỞ DỮ LIỆU (STORED PROCEDURE): 23 Tham số: mã khách hàng Thực xóa khách hàng đặt Tour 23 2.Tham số truyền vào : Ngày tháng năm .24 Thực giảm giá Tour du lịch vào thời gian .24 Sửa giá Tour với tham số mã Tour: .25 Sửa thông tin khách hàng 25 Xem thông tin khách hàng đặt tour (tham số mã khách) 26 6.Kiểm tra loại tour từ mã tour 27 8.Thêm thông tin cho bảng Tour 28 9.Thêm thông tin đầy đủ cho bảng dattour 28 10.Xem thông tin bảng tblChiTietDatTour 29 11 Xem thông tin bảng tblKHACHHANG 29 12 Xem thông tin bảng tblLOAITOUR 29 13 Xem thông tin bảng tblNhanVien 29 14 Xem thông tin bảng tblTOUR .29 VI ĐẢM BẢO TÍNH LOGIC CỦA CSDL (TRIGGER): 30 2.Trigger không cho phép lương CB nhân viên nhỏ 1000000(tblNHANVIEN) 31 Trigger không cho phép giá Tour nhỏ 500000(tblTOUR) 32 Trigger thêm ghi ngày đặt tour phải trước ngày khởi hành(tblChiTietDatTour) .32 Trigger không cho phép khách hàng lớn 100 tuổi đặt tour(tblKHACHHANG) .33 Xóa khách hàng view xóa khách hàng bảng khách hàng 34 Trigger đảm bảo khơng có tên loại Tour bị trùng nhau(tblLOAITOUR) 35 VII PHÂN QUYỀN CÁC ĐỐI TƯỢNG SỬ DỤNG: 37 Tạo tài khoản đăng nhập có tên DinhHieu 37 2.Tạo tài khoản đăng nhập DB có tên Hieu2: 38 3.Tạo User Trưởng phòng thực Procedure 38 Tạo Role có tên DBnewrole cấp quyền 39 I PHÁT BIỂU BÀI TOÁN: Khảo sát hoạt động quản lý tour du lịch ta có : - Mỗi nhân viên quản lý tour du lịch bao gồm thông tin : mã nhân viên, tên nhân viên, giới tính , địa chỉ, số điện thoại, lương bản, ngày sinh Quy định nhân viên có số điện thoại, nhân viên phân biệt mã nhân viên - Mỗi loại tour quản lý tour du lịch bao gồm thông tin: mã loại tour, tên loại tour Mỗi loại tour phân biệt mã loại tour Mỗi loại tour bao gồm nhiều tour khác - Mỗi nhân viên phụ trách nhiều tour khác Mỗi tour quản lý tour du lịch bao gồm thông tin : mã tour, tên tour, ngày khởi hành, ngày kết thúc, giá Mỗi tour phân biệt mã tour Mỗi tour phụ trách nhân viên tour thuộc loại tour - Mỗi khách hàng bao gồm thông tin :mã khách hàng, tên khách hàng, giới tính , chứng minh nhân dân, địa , số điện thoại, ngày sinh Quy định khách hàng có chứng minh thư nhân dân, số điện thoại Mỗi khách hàng phân biệt mã khách hàng - Trong tour có nhiều khách hàng đặt khách hàng đặt nhiều tour khác kê chi tiết chi tiết đặt tour Mỗi chi tiết đặt tour quản lý tour du lịch bao gồm thông tin: mã tour, mã khách hàng, ngày đặt, phương tiện, khách sạn Mỗi chi tiết đặt tour phân biệt mã tour mã khách hàng II MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ: Xác định thực thể thuộc tính: Thực thể: NHANVIEN, LOAITOUR,KHACHHANG,TOUR Các thuộc tính thực thể: NHANVIEN(MaNV (mã nhân viên), Ten NV(tên nhân viên), GioiTinh(giới tính), DiaChi(địa chỉ), SDT(số điện thoại), LuongCB(lương bản), NgaySinh(ngày sinh) KHACHHANG(MaKH(mã khách hàng), TenKH(tên khách hàng), GT(giới tính), CMND(Chứng minh nhân dân), DiaChi(địa chỉ), SDT(số điện thoại), NgaySinh(ngày sinh) TOUR(MaTour(mã tour), TenTour(tên tour), NgayKH(ngày khởi hành), NgayKT(ngày kết thúc), Gia(giá) LOAITOUR(MaLoai(mã loại tour), TenLoai(tên loại tour) Xác định liên kết thực thể: Liên kết 1-n: (NHANVIEN) – (TOUR) Một NHANVIEN phụ trách nhiều TOUR Một TOUR nhân viên phụ trách (LOAITOUR) – (TOUR) Một loại tour gồm nhiều tour Mỗi tour thuộc loại tour Liên kết m-n (KHACHHANG) – (TOUR) Mỗi khách hàng đặt nhiều tour du lịch Mỗi tour du lịch đặt nhiều khách hàng Mơ hình E-R: TenKH NgaySinh DiaChi DiaChi MaKH SDT LuongCB NgaySinh GT NHANVIEN KHACHHANG MaNV SDT SD SDT n CMND GT Phụ trách Đặt n m MaLoai TenLoai LOAITOUR MaTour TOUR n Gồm NgayKH KhachSan NgayDat Ten NgayKT Gia PhuongTien Ràng buộc quan hệ: R1: “Mã nhân viên không giống nhau” Bối cảnh: NHANVIEN Hình thức: nv1.MaNV nv2.MaNV R2: “LuongCB nhân viên tăng không giảm” Bối cảnh: NHANVIEN Hình thức: lg.luongCB(cũ) < lg.luongCB(mới) R3: “Giới tính khách hàng nhận nam nữ” Bối cảnh: KHACHHANG Hình thức: kh.gioitinh = “nam” or kh.gioitinh = “nữ” R4: “Giá tour phải lớn 0” Bối cảnh: TOUR Hình thức: tour.gia > R5: “Mã tour khơng giống nhau” Bối cảnh: TOUR Hình thức: tour1.matour tour2.matour R6: “Với tour ngày khởi hành phải nhỏ ngày kết thúc” Bối cảnh: TOUR Hình thức: NgayKH.MaTour = Ngay KT.MaTour or NgayKH.MaTour < NgayKT.MaTour R7: “Mã loại tour không giống nhau” Bối cảnh: TOUR Hình thức: ltour1.maloaiTour ltour2.maloaiTour R8: “Mã khách hàng khơng giống nhau” Bối cảnh: KHACHHANG Hình thức: kh1.MaKH kh2.MaKH R9: “Độ tuổi nhân viên phải từ 18 tuổi trở lên” Bối cảnh: NHANVIEN Hình thức: year.getdate() – year.ngaysinh >18 tuổi R10: “Giới tính nhân viên nhận nam nữ” Bối cảnh: NHANVIEN Hình thức: nv.gioitinh = “nam” or nv.gioitinh = “nữ” Xây dựng mơ hình quan hệ: Quy tắc với liên kết – n Liên kết NHANVIEN TOUR (4.1)TOUR (MaTour, MaNV, TenTour, NgayKH, NgayKT, Gia) Liên kết LOAIHANG TOUR (4.2)TOUR (MaTour, MaNV, MaLoai, TenTour, NgayKH, NgayKT, Gia) Quy tắc với liên kết m – n Liên kết TOUR KHACHHANG (5)CTDATTOUR (MaTour, MaKH, NgayDat, PhuongTien, KhachSan) Cơ sở liệu: (1) NHANVIEN (MaNV, TenNV, GT,DiaChi, SDT, LuongCB, NgaySinh) (2) LOAITOUR (MaLoai, TenLoai) (3) KHACHHANG (MaKH, TenKH, GT, CMND, DiaChi, SDT, NgaySinh) (4) TOUR (MaTour, MaNV, MaLoai, TenTour, NgayKH, NgayKT, Gia) (5) CTDATTOUR (MaTour, MaKH, NgayDat, PhuongTien, KhachSan) CSDL Quản lý Tour Du lịch gồm bảng: tblNHANVIEN TT Tên trường iMaNV sTenNV dNgaySinh sDiaChi sDienThoai fLuongCB bGioiTinh tblKHACHHANG TT Tên trường Kiểu liệu Số nguyên Kí tự Datetime Kí tự Kí tự Số thực Bit Kích thước Kiểu liệu Kích thước Mô tả PK 20 30 10 Mô tả iMaKH sTenKH bGioiTinh sCMND sDiaChi sDienThoai dNgaySinh Số nguyên Kí tự Bit Kí tự Kí tự Kí tự Datetime PK 20 10 30 10 tblTOUR TT Tên Trường iMaTour iMaNV iMaLoai sTenTour dNgayKH dNgayKT fGia Kiểu liệu Số nguyên Số nguyên Số Nguyên Kí Tự Datetime Datetime Số thực Kích thước Kiểu liệu Số nguyên Kí tự Kích thước Mơ tả PK FK FK 30 tblLOAITOUR TT Tên trường iMaLoai sTenLoai Mô tả PK 20 tblChiTietDatTour TT Tên trường iMaTour iMaKH dNgayDat sPhuongTien sKhachSan Kiểu liệu Số nguyên Số nguyên Datetime Kí tự Kí tự Kích thước 20 20 Mô tả PK , FK PK , FK TẠO CƠ SỞ DỮ LIỆU: Khởi tạo table từ mơ hình quan hệ III CREATE TABLE tblNHANVIEN ( iMaNV INT NOT NULL, sTenNV NVARCHAR(20), dNgaySinh DATETIME, sDiaChi NVARCHAR(30), sDienThoai NVARCHAR(11), fLuongCB FLOAT, bGioiTinh BIT ); ALTER TABLE tblNHANVIEN ADD CONSTRAINT PK_MaNV PRIMARY KEY (iMaNV) CREATE TABLE tblLOAITOUR ( iMaLoai INT NOT NULL, sTenLoai NVARCHAR(20) ); ALTER TABLE tblLOAITOUR ADD CONSTRAINT PK_MaLoai PRIMARY KEY (iMaLoai); CREATE TABLE tblTOUR ( iMaTour INT NOT NULL, iMaNV INT NOT NULL, iMaLoai INT NOT NULL, sTenTour NVARCHAR(30), dNgayKhoiHanh DATETIME, dNgayKetThuc DATETIME, fGia FLOAT ); ALTER TABLE tblTOUR ADD CONSTRAINT PK_MaTour PRIMARY KEY (iMaTour) ALTER TABLE tblTOUR ADD CONSTRAINT FK_MaNV FOREIGN KEY (iMaNV) REFERENCES tblNHANVIEN (iMaNV) ALTER TABLE tblTOUR ADD CONSTRAINT FK_MaLoai FOREIGN KEY (iMaLoai) REFERENCES tblLOAITOUR (iMaLoai) 10 8.Thêm thông tin cho bảng Tour CREATE PROC sp_InsertTour @ma INT, @manv INT, @makh INT, @ten NVARCHAR(30), @nkh DATETIME, @nkt DATETIME, @gia INT AS BEGIN INSERT INTO tblTOUR values(@ma,@manv,@makh,@ten,@nkh,@nkt,@gia) END EXEC sp_InsertTour 13,3,2,N'Du lịch nhà','2019-11-11','201911-14',1690000 SELECT * FROM tblTOUR 9.Thêm thông tin đầy đủ cho bảng dattour CREATE PROC sp_InsertDatTour @ma INT, @makh INT, @nd DATETIME, @pt NVARCHAR(20), @ks NVARCHAR(20) AS BEGIN INSERT INTO tblChiTietDatTour VALUES(@ma,@makh,@nd,@pt,@ks) END 28 EXEC sp_InsertDatTour 13,4,'2019-11-11',N'Tàu bay',N'Con Bìm Bịp' SELECT * FROM tblChiTietDatTour 10.Xem thơng tin bảng tblChiTietDatTour CREATE PROC sp_GIDatTour AS BEGIN SELECT * FROM tblChiTietDatTour END EXEC sp_GIDatTour 11 Xem thông tin bảng tblKHACHHANG CREATE PROC sp_GIKhachHang AS BEGIN SELECT * FROM tblKHACHHANG END EXEC sp_GIKhachHang 12 Xem thông tin bảng tblLOAITOUR CREATE PROC sp_GILoaiTour AS BEGIN SELECT * FROM tblLOAITOUR END EXEC sp_GILoaiTour 13 Xem thông tin bảng tblNhanVien CREATE PROC GINhanVien AS BEGIN SELECT * FROM tblNHANVIEN END EXEC GINhanVien 14 Xem thông tin bảng tblTOUR CREATE PROC sp_GITour 29 AS BEGIN SELECT * FROM tblTOUR END EXEC sp_GITour Danh sách Store Procedure khởi tạo: VI ĐẢM BẢO TÍNH LOGIC CỦA CSDL (TRIGGER): CREATE TRIGGER tg_18trolen ON tblNHANVIEN AFTER INSERT,UPDATE AS BEGIN DECLARE @tuoi DATETIME SET @tuoi=(SELECT YEAR(GETDATE())-YEAR(dNgaySinh) FROM inserted) IF(@tuoi1) BEGIN RAISERROR(N'Bạn nhập tên loại Tour tồầ n tại',16,10) ROLLBACK TRAN END END Test INSERT INTO tblLOAITOUR(iMaLoai,sTenLoai) VALUES (11,N'Du lịch gia') SELECT *FROM tblLOAITOUR - Trigger bảng tblNHANVIEN 35 - Trigger bảng tblChiTietDatTour - Trigger bảng tblKHACHANG 36 - Trigger bảng tblLOAITOUR - Trigger bảng tblTOUR VII PHÂN QUYỀN CÁC ĐỐI TƯỢNG SỬ DỤNG: Tạo tài khoản đăng nhập có tên DinhHieu CREATE LOGIN DinhHieu WITH PASSWORD = '1234' GO Tạo user DB tương ứng với login DinhHieu thực cấp quyền Insert, Update, Delete CREATE USER User1 FOR LOGIN DinhHieu Cấp quyền Insert, Update, Delete cho User1 GRANT INSERT, UPDATE, DELETE TO User1 Kiểm tra kết phân quyền: Select, Insert tblKHACHHANG INSERT INTO tblKHACHHANG VALUES('20',N'Nguyễn Trung Kiên',1,01234789,N'Hà Nội','0962204377','1997-4-16') SELECT *FROM tblKHACHHANG 37 2.Tạo tài khoản đăng nhập DB có tên Hieu2: Thực cấp quyền Insert bảng tblTOUR tblChiTietDatTour CREATE LOGIN Hieu2 WITH PASSWORD = '1234' GO CREATE USER User2 FOR LOGIN Hieu2 Cấp quyền Insert bảng GRANT INSERT ON tblTOUR TO User2 GRANT INSERT ON tblChiTietDatTour TO User2 Test SELECT *FROM tblTOUR SELECT *FROM tblChiTietDatTour INSERT INTO tblTOUR VALUES(11,5,5,N'Du lịch Nha Trang','2019-11-01','2019-1109',5790000) INSERT INTO tblChiTietDatTour 38 VALUES(11,5,'2019-11-01',N'Máy Bay',N'Hotel') 3.Tạo User Trưởng phòng thực Procedure CREATE LOGIN TRUONGPHONG WITH PASSWORD = '1234' GO CREATE USER User3 FOR LOGIN TRUONGPHONG GRANT EXECUTE ON GINhanVien TO User3 EXEC GINhanVien GRANT EXECUTE ON sp_CamKhachHang TO User3 EXECUTE sp_CamKhachHang '1' SELECT *FROM tblKHACHHANG GRANT EXECUTE ON sp_fixTour TO User3 EXEC sp_fixTour 13,3000000 SELECT *FROM tblTOUR GRANT EXECUTE ON sp_fixKH TO User3 EXEC sp_fixKH 20,N'Đinh Mai Hương',0,'0123456789',N'Cao Bằng','0936251478','2002-01-01' SELECT *FROM tblKHACHHANG GRANT INSERT ON tblNHANVIEN TO User3 39 Tạo Role có tên DBnewrole cấp quyền CREATE ROLE DBnewrole GRANT INSERT, SELECT ON tblTOUR TO DBnewrole GRANT INSERT, SELECT ON tblChiTietDatTour TO DBnewrole GRANT SELECT ON tblNHANVIEN TO DBnewrole Cam them sua xoa tren tblNHANVIEN DENY INSERT, DELETE, ALTER ON tblNHANVIEN TO DBnewrole REVOKE INSERT, DELETE, ALTER ON tblNHANVIEN TO DBnewrole Test: Đặt tài khoản TestRole làm thành viên Role exec sp_addrolemember 'DBnewrole','User4' SELECT*FROM tblNHANVIEN INSERT INTO tblNHANVIEN(iMaNV,sTenNV,dNgaySinh,bGioiTinh,sDiaChi,sDienThoai,f LuongCB) VALUES (14,N'Nguyễn Bá Minh An','1998-02-09',1,N'Lạng Sơn','0869943888',2000000) 40 Danh sách Login khởi tạo: Danh sách User khởi tạo: 41 Role có tên DBnewrole 42