Phân quyền cho đối tượng sử dụng -Thủ kho:Chịu trách nhiệm quản lý sách trong kho -Thủ thư :Tiếp nhận các yêu cầu của độc giả và cho phép mượn sách nếu được yêu cầu và đầy đủ các thông
Trang 1I Mô tả chức năng của hệ thống
I.1 Phân quyền cho đối tượng sử dụng
-Thủ kho:Chịu trách nhiệm quản lý sách trong kho -Thủ thư :Tiếp nhận các yêu cầu của độc giả và cho phép
mượn sách nếu được yêu cầu và đầy đủ các thông tin
-Thủ quỹ:Nhận tiền phạt từ độc giả nếu trả sách quá hạn hoặc
làm mất sách
1.2 Chức năng của hệ thống
-Quản lý độc giả về thời hạn sử dụng,cho phép mượn sách -Quản lý sách,lưu giữ đầy đủ các thông tin về sách,tác giả,nhà
xuất bản trong kho sách
-Nếu trường hợp độc giả trả sách quá hạn quy định thì phải bị
phạt tiền,số tiền phạt được tính là 1 nghìn đồng trên 1 ngày quá hạn
II Thiết kế cơ sở dữ liệu
II.1 BảngDocGia.PhieuYeuCau
Colum Name Description Datatype Length Allow Null
II.2 BảngQuanTri.Nhanvien
viên
Trang 2NgaySinh Ngày sinh Datetime null
II.3 BảngThuKho.LoaiSach
Colum Name Description Datatype Length Allow Null
II.4 BảngThuKho.NhaXuatBan
Trang 3MaTG MaTG Ma:varchar 10 Null
II.6 BảngThuKho.TacGia
II.7 BảngThuQuy.ThuTienPhat
Colum name description Datatype length Allow null
Trang 4ConLai Int Null
II.8 BảngThuThu.TheDocGia
Colum name description Datatype length Allow null
II.9 BảngThuThu.TheoDoiMuonTra
Trang 5HoTen HoTen:varchar(50) 50 Null
Sơ đồ quan hệ giữa các bảng
III Mô tả các thủ tục, hàm và triggers theo mẫu:
Trang 6III.1 Thủ tục
III.1.1 Thêm độc giả
-Tên: ThuThu.insertDOCGIA
-Kết quả thực hiện:Nhập thông tin vào bảng ThuThu.TheoDocGia
-Các bước thực hiện:
+) Nhập thông tin về độc giả
+) Chèn vào bảng ThuThu.TheoDocGia
III.1.2 Tính số người mượn sách trong cùng 1 ngày
-Tên: thuthu.so_nguoi_muon_cung_ngay
-Kết quả thực hiện:Kiểm tra số lượt mượn trong ngày
III.2.1 Hiển thị nhân viên cấp dưới
-Tên: Quantri.Nhanviencapduoi
-Kết quả thực hiện : Tìm kiếm tất cả nhân viên cấp dưới của một nhân viên nàođó
-Các bước thực hiện :
+ Nhập mã nhân viên cần tìm kiếm
+ Tạo một bảng tạm có cấu trúc giống với bảng gốc ([QuanTri].[NHANVIEN])
Trang 7+ Chèn thông tin các nhân viên có cấp trên là mã nhân viên nhập vào
+ Tìm kiếm các nhân viên có cấp trên là mã nhân viên vừa chèn vào
+ SELECT bảng tạm
III.2.2 Tính tổng tiền nợ của 1 độc giả
-Tên: thuquy.tongno
-Kết quả thực hiện: Tính tổng tiền nợ của độc giả
Trang 8+Kiểm tra điều kiện:Nếu ngày trả chính thức < ngày hẹn trả thì bỏ quatrigger,nếu ngày trả chính thức > ngày hẹn trả thì thực hiện phạt tiền theocông thức tính là 1000 đồng / 1 ngày quá hạn
III.3.2 Khóa thẻ nếu quá hạn
-Tên: thuthu.TRGkhoathe
-Kết quả:Khóa thẻ nếu độc ngày quá hạn
-Các bước thực hiện
+So sánh ngày hết hạn với thời gian hiện tại.Nếu ngày hết hạn > thời gianhiện tại thì thông báo thẻ đã hết hạn sử dụng và ngược lại
III.3.3 Không cho mượn sách nếu độc giả đã bị khóa thẻ
-Tên: thuthu.KiemSoatDocGiaMuonSach
-Kết quả:Không cho độc giả đã bị khóa thẻ mượn sách
-Các bước thực hiện
+Thực hiện kiểm tra các dữ liệu trong bảng tạm
+So sánh kết quả đó với bảng ThuThu.TheDocGia theo mã và khóa thẻ+Thực hiện rollback nếu có kết quả trả về
IV Mô tả các View
IV.1 Hiển thị danh sách các thành viên có cùng MaDV
-Tên: ds_lopTH44-Kết quả thực hiện:Hiển thị tất cả các thành viên có mã đơn vị là
‘TH4’
V Quản trị CSDL
1 Tạo các Login
Trang 96 loginDocGia CONNECT SQL, VIEW ANY DATABASE
2 Tạo các User
1 userQuanTri - Cập nhật bảng [QuanTri].[NHANVIEN]- Cấp quyền cho người sử dụng
- Có quyền SELECT đối với các bảng khác
5 userDocGia Có mọi quyền trong các bảng thuộc schema DocGia(Phieuyeucau)
6 userKhach Có quyền SELECT bảng ThuKho.Sach
3 Tạo các role
1 db_QuanTri - Cập nhật bảng [QuanTri].[NHANVIEN]- Cấp quyền cho người sử dụng
2 db_NhanVien - Có quyền SELECT trên các schema ThuThu,ThuKho,ThuQuy
Trang 13-db_NhanVien
Trang 18-db_DocGia
Trang 225 Cấp phát quyền cho role và user sử dụng các câu lệnh T-SQL
5.1 Cấp phát quyền cho role
-db_QuanTri
GRANT SELECT ,UPDATE ,DELETE, INSERT ON SCHEMA :: [QuanTri] TO
[db_QuanTri]
DENY DELETE,INSERT,UPDATE ON SCHEMA :: [ThuKho] TO [db_QuanTri]
DENY DELETE,INSERT,UPDATE ON SCHEMA :: [ThuThu] TO [db_QuanTri]
DENY DELETE,INSERT,UPDATE ON SCHEMA :: [ThuQuy] TO [db_QuanTri]
Trang 23GRANT SELECT ON SCHEMA :: [ThuThu] TO [db_NhanVien]
GRANT SELECT ON SCHEMA :: [ThuQuy] TO [db_NhanVien]
GRANT SELECT ON SCHEMA :: [ThuKho] TO [db_NhanVien]
GRANT SELECT ON SCHEMA :: [DocGia] TO [db_NhanVien]
-db_DocGia
GRANT SELECT ON [ThuKho] [TacGia] TO [db_DocGia]
GRANT SELECT ON [ThuKho] [NhaXuatBan] TO [db_DocGia]
GRANT SELECT ON [ThuKho] [Sach] TO [db_DocGia]
GRANT SELECT ON [ThuKho] [Loaisach] TO [db_DocGia]
6 Mã nguồn một số thủ tục,hàm,trigger
6.1 Thủ tục
@ngaymuon varchar ( 10 ), @songuoi int output
AS
BEGIN
END
@Mathe varchar ( 10 ), @Hoten varchar ( 50 ), @Ngaycap datetime , @Ngayhethan
VALUES ( @Mathe , @Hoten , @Ngaycap , @Ngayhethan , @Diachi , @MaNV , @MaDV , @khoa )
11 ( MaNV varchar ( 10 ) primary key ,
12 Hoten nvarchar ( 50 )not null,
Trang 2421 MaNV varchar ( 10 ) primary key ,
22 Hoten nvarchar ( 50 )not null,
Hoten , Ngaysinh , bophan , chucvu , captren ,
e MaNV , hoten , Ngaysinh , bophan , chucvu , captren ,
Trang 25Em xin chân thành cảm ơn!