Báo cáo bài tập lớn môn hệ quản trị csdl đềtài quản lý tiền lương doanh nghiệp

62 0 0
Báo cáo bài tập lớn môn hệ quản trị csdl đềtài quản lý tiền lương doanh nghiệp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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Ị CSDL ĐỀTÀI: QUẢN LÝ TIỀN LƯƠNG DOANH NGHIỆP Giảng viên hướng dẫn: Th.S Bùi Đức Tiến Sinh viên thực hiện: Đặng Thị Loan Lê Đức Thắng - 2010A02 - 2010A02 Nguyễn Duy Khánh - 2010A02 Trần Huy Hoàng - 2010A02 Hà Nội – 2021 Bảng phân công công việc Người Thực Hiện I II III Đặc tả toán, Xác định tác nhân ngồi Mơ tả chức Thiết kế sở liệu 1.Xác định thuộc tính phân tích thuộc tính Cả nhóm Cả nhóm Đặng Thị Loan, 2.Xây dựng mơ hình thực thể liên kết 3.Xác định liên kết kiểu liên kết IV 4.Mơ hình ER 5.Mơ hình CSDL quan hệ 6.Cơ Sở liệu vật lý Tạo CSDL Lê Đức Thắng Nguyễn Duy Khánh Trần Huy Hoàng Tạo database bảng -BNhanVien,BChucVu Lê Đức Thắng -BThanhToanLuong,BphongBan Đặng Thị Loan -Bluong Nguyễn Duy Khánh -BChamCong 2.Thêm ràng buộc -BNhanVien Trần Huy Hoàng Lê Đức Thắng -BThanhToanLuong, Thiết lập ràng buộc Check, Đặng Thị Loan Unique, Deflaut -Bluong Nguyễn Duy Khánh -BChamCong Trần Huy Hoàng 3.Nhập liệu cho Bảng V -BNhanVien,BChucVu Lê Đức Thắng -BThanhToanLuong,BphongBan Đặng Thị Loan -Bluong Nguyễn Duy Khánh -BChamCong Trần Huy Hoàng Thực thao tác CSDL: Thực truy vấn -Truy vấn liệu từ bảng(5 truy vấn) câu1→ câu Nguyễn Duy Khánh câu 4→ câu Trần Huy Hoàng -Truy vấn liệu từ nhiều bảng(5 truy vấn) câu 6→ câu Lê Đức Thắng câu 9→ câu 10 Đặng Thị Loan Xây dựng view cho CSDL(10 câu) câu → câu Nguyễn Duy Khánh câu 4→ câu Trần Huy Hoàng câu 6→ câu Lê Đức Thắng câu 9→ câu 10 Đặng Thị Loan Tạo produce(20 câu) câu → câu Nguyễn Duy Khánh câu → câu 10 Trần Huy Hoàng câu 11 → câu 15 Lê Đức Thắng câu 16 → câu 20 Đặng Thị Loan Xây dựng trigger cho CSDL(10 câu) câu → câu Nguyễn Duy Khánh câu → câu Trần Huy Hoàng câu → câu Lê Đức Thắng câu → câu 10 Đặng Thị Loan Phân quyền bảo mật CSDL -Tài Khoản 1: Lê Đức Thắng -Tài Khoản 2: Đặng Thị Loan -Tài Khoản 3: Trần Huy Hoàng -Tài Khoản 4: Nguyễn Duy Khánh *Tạo Role phân quyền chung: Lê Đức Thắng Phân tán CSDL Cả Nhóm Mục Lục I ĐẶC TẢ BÀI TOÁN 1 Xác định tác nhân 2 Biểu đồ ngữ cảnh II MÔ TẢ CHỨC NĂNG Nhóm chức 1.1 Bảng chức 1.2 Sơ đồ phân rã chức 2.Mô tả chi tiết chức .4 3.Sơ đồ luồng liệu .5 III 3.1 Biểu đồ luồng liệu mức 0: 3.2 Biểu đồ luồng liệu mức 1: Quản lý nhân 3.3 Biểu đồ luồng liệu mức 1: Quản lý lương 3.4 Biểu đồ luồng liệu mức 1: Báo cáo .7 THIẾT KẾ CƠ SỞ DỮ LIỆU .8 1.Xác định thuộc tính phân tích thuộc tính 2.Xây dựng mô hình thực thể liên kết 3.Xác định liên kết kiểu liên kết .9 4.Mơ hình liên kết thực thể (ER) 10 5.Mơ hình CSDL quan hệ 11 a.Mơ hình CSDL quan hệ 11 b.Chuẩn hóa 3NF .11 6.Thiết kế CSDL vật lý 13 IV.Tạo CSDL .16 1.Tạo Database Bảng CSDL 16 2.Thêm ràng buộc 18 3.Nhập liệu cho Bảng .19 V Thực thao tác CSDL: 23 1.Thực truy vấn .23 2.Tạo View 27 Tạo Produce .31 4.Tạo Trigger 42 Phân quyền bảo mật CSDL 48 Phân Tán CSDL .54 I ĐẶC TẢ BÀI TOÁN - Khi công ty thiếu lao động tiến hành tuyển lao động Khi tuyển dụng người lao động phải thử việu từ đến tháng tùy theo công việc Sau ký hợp đồng dài hạn tùy theo u cầu cơng ty Khi thử việc tốt kí hợp đồng, hồ sơ người lao động lưa vào hệ thống Khi người lao động hưởng đầy đủ sách nhà nước phụ cấp tiền lương - Khi nhân viên trúng tuyển vào cơng ty người quản lý có trách nhiệm tạo danh sách nhân viên từ thông tin đơn xin việc nhân viên cộng với thông tin mã nhân viên,chức vụ công tác ,phịng ban,mức lương,… nhân viên Mỗi nhân viên có mã nhân viên - Khi người lao động muốn thăng cấp bậc muốn tang mức lương phận quản lý cập nhật báo cáo lên Giám đốc công ty - Mỗi nhân viên có mức lương tùy theo cấp bậc, hợp đồng Cuối tháng phận quản lý tính lương báo cáo lương lên Giám đốc công ty - Giám đốc kiểm tra xét duyệt báo cáo lương từ quản lý gửi lên để toán lương cho nhân viên cuối tháng Hoặc yêu cầu báo cáo nhân viên từ quản lý.Từ cập nhật quản lý yêu cầu thăng cấp bậc tăng lương nhân viên tùy vào đối tượng mà Giám đốc xem xét thăng cấp hay tăng lương tùy theo người - Hiện nay, công việc quản lý tiền lương cho nhân viên doanh nghiệp sử dụng bảo tính Excel để hỗ trợ quản lí nhiên khơng đem lại nhiều lợi ích cho người sử dụng Bởi Excel cơng cụ tính tốn xác nhanh chóng khơng có khả quản lý hệ thống Cơ Sở Dữ Liệu giúp nhà quản lí nắm tồn thơng tin đầy đủ toàn hệ thống  Từ thực trạng nên có hệ thống quản lý hồ sơ tính lương cho nhân viên Đưa tin học vào quản lý nhân tiền lương giúp đáp ứng việc cung cấp thông tin nhân viên,tiền lương cách xác, kịp thời, giảm bớt thời gian tra cứu,đáp ứng yêu cầu lãnh đạo nhanh Xác định tác nhân Ban lãnh đạo Các phòng ban Nhân viên Biểu đồ ngữ cảnh Bảng thuật ngữ từ viết tắt: Thứ tự Chữ viết tắt tài liệu Ý nghĩa CSDL TT Cơ sở liệu Thông tin Y/C PTHT DM PK FK Yêu cầu Phân tích hệ thống Danh mục Khóa Khóa ngoại II MƠ TẢ CHỨC NĂNG Nhóm chức 1.1 Bảng chức Các chức Nhóm lần Nhóm lần Cập nhật hồ sơ nhân viên Cập nhật phòng ban Quản lý nhân Cập nhật chức vụ Cập nhật bảng chấm công Quản lý nhân tiền lương Quản lý tiền lương Tính lương Thống kê nhân viên Báo cáo Bảng lương 1.2 Sơ đồ phân rã chức Mô tả chi tiết chức 2.1 Quản lý nhân sự: cập nhật hồ sơ nhân viên( nhân viên quản lý nhân cập nhật, thêm tìm kiếm hồ sơ nhân viên), cập nhật phòng ban (nhân viên quản lý nhân cập nhật, thêm danh sách phòng ban) 2.2 Quản lý lương: cập nhật bảng công (cập nhật bảng chấm công cho nhân viên) , tính lương (tính lương cho nhân viên dựa vào bảng chấm công) 2.3 Báo cáo: thống kê nhân viên, bảng lương Sơ đồ luồng liệu 3.1 Biểu đồ luồng liệu mức 0: SELECT NV.MaPB,SUM(TroCap) AS 'tổng trợ cấp' FROM dbo.BNhanVien NV inner join dbo.BThanhToanLuong TTL on TTL.MaNV=NV.MaNV GROUP BY NV.MaPB HAVING SUM(TroCap)>@trocap END GỌI EXEC TongTC 5000000 EXEC TongTC 3000000 4.Tạo Trigger Cau :tạo trigger cập nhật Mức Lương cho nhân viên dịng thơng báo mức lương thay đổi CREATE TRIGGER CapNhatMLuong ON BLuong FOR Update AS If Update(MucLuong) Print N'Mức lương thay đổi' Kiểm tra: UPDATE BLuong SET MucLuong=8500000 WHERE MaNV='NV1' Cau 2: khơng cho phép xóa nhân viên lớn 40 tuổi create trigger Khongchophepxoa on dbo.BNhanVien for delete as begin declare @dem int=0 select @dem = count(*) from deleted where year(getdate())-Year(deleted.NgaySinh) > 40 if (@dem >0) begin print N'khơng phép xóa người 40 tuổi' rollback tran end end Thêm Nhân Viên 40 tuổi: INSERT INTO BNhanVien VALUES ('NV11', 'NPB1','MCV121', N'Trần Văn A', '1900/08/04', 'Nam', N'Cà Mau', '098765490') kiểm tra: Delete from BNhanVien WHERE MaNV='NV11' Câu 3:Tạo Trigger không cho phép thêm nhân viên có tuổi lớn 60 create trigger khongthemqua60 on BNhanVien after insert as begin declare @tuoi_nvmoi SMALLDATETIME select @tuoi_nvmoi=NgaySinh from inserted if( year(getdate())-year(@tuoi_nvmoi)>60) begin print (N'Không thêm Nhân Viên 60 tuổi') ROLLBACK TRANSACTION end end go Kiểm Tra: INSERT INTO BNhanVien(MaNV,MaPB, MaCV, HoTen, NgaySinh, GioiTinh, DiaChi, DienThoai) VALUES ('NV12', 'NPB1','MCV121', N'Trần Văn Tuấn', '1950/08/04', 'Nam', N'Cà Mau', '0987384274') câu 4:tạo trigger không cho phép giảm Trợ Cấp CREATE TRIGGER KhonGgiamPC ON BThanhToanLuong AFTER UPDATE AS begin IF EXISTS(SELECT * FROM inserted i JOIN deleted d ON i.MaNV = d.MaNV WHERE d.TroCap > i.TroCap) begin print(N'Chỉ có tăng phụ cấp!') rollback end END GO Kiểm tra UPDATE BThanhToanLuong SET TroCap = TroCap - 100 WHERE MaNV ='NV1' Câu 5: Tạo trigger không cho phép xóa liệu bảng BThanhToanLuong CREATE TRIGGER khongxoaBThanhToanLuong ON BThanhToanLuong FOR Delete AS ROLLBACK TRANSACTION Kiểm Tra: DELETE FROM BThanhToanLuong WHERE MaNV='NV1' Câu 6: Tạo trigeer khơng xóa ghi lập năm bảng Bluong CREATE TRIGGER trg_KhongxoaBLduoi1nam ON BLuong FOR DELETE AS BEGIN DECLARE @dem INT = SELECT @dem = COUNT(*) FROM deleted WHERE YEAR(GETDATE())- YEAR(deleted.NgayLap) 0) BEGIN PRINT N'Khơng phép xóa ghi lập năm' ROLLBACK TRANSACTION END END GO Kiểm tra: delete from BLuong where MaNV='NV1' Câu 7: Tạo trigger không tăng mức trợ cấp 1000000 lần CREATE TRIGGER KhongTangTroCapqua1tr ON BThanhToanLuong AFTER UPDATE AS begin IF EXISTS(SELECT * FROM inserted i JOIN deleted d ON i.MaNV = d.MaNV WHERE i.TroCap - d.TroCap > 1000000) begin print(N'Không tăng Trợ Cấp triệu đồng lần') rollback end END GO Kiểm tra UPDATE BThanhToanLuong SET TroCap = TroCap + 1000001 WHERE MaNV ='NV1' Câu 8: Tạo trigger thêm ghi sửa bảng BChamCong phải đảm bảo số ngày công không 26 ngày CREATE TRIGGER DKChamCong ON BChamCong FOR insert , update AS BEGIN IF EXISTS (SELECT * FROM inserted I WHERE I.SoNgayCong > 26) BEGIN PRINT 'So cong khong đuoc vuot qua 26 ngay' ROLLBACK TRAN END END Kiểm Tra: update BChamCong set SoNgayCong = 29 where MaNV='NV1' /* Câu 9: Tạo trigger thêm ghi vào bảng chấm cơng tổng ngày làm ngày nghỉ phải 26 */ CREATE TRIGGER TongNgay ON BChamCong FOR INSERT AS BEGIN DECLARE @ngaylam int ,@ngaynghi int SELECT @ngaylam=SoNgayCong FROM inserted SELECT @ngaynghi=SoNgayNghi FROM inserted IF(@ngaylam+@ngaynghi!=26) BEGIN PRINT('Tong so lam va nghi phai bang 26!') ROLLBACK END END GO KIỂM TRA: INSERT INTO BChamCong VALUES ('MC15', 'NV3',20,2) /* Câu 10: Tạo trigger hiển thị tổng số nhân viên nam, nhân viên nữ thêm ghi vào */ CREATE TRIGGER SumUpdateNew ON BNhanVien AFTER INSERT AS DECLARE @gtNam int, @gtnu int SELECT @gtNam = COUNT(MaNV) FROM BNhanVien WHERE GioiTinh = 'Nam' SELECT @gtNu = COUNT(MaNV) FROM BNhanVien WHERE GioiTinh = N'Nữ' PRINT N'TỔNG SỐ NHÂN VIÊN NAM: ' +CAST(@gtNam AS VARCHAR) PRINT N'TỔNG SỐ NHÂN VIÊN NỮ: ' +CAST(@gtNu AS VARCHAR) GO Kiểm Tra: INSERT INTO BNhanVien(MaNV,MaPB, MaCV, HoTen, NgaySinh, GioiTinh, DiaChi, DienThoai) VALUES ('NV48', 'NPB1','MCV121', N'Trần Văn A', '1997/08/04', 'Nam', N'Cà Mau', '098765423') SELECT * FROM BNhanVien Phân quyền bảo mật CSDL 1.Tạo tài khoản 1(Lê Đức Thắng) USE QLyTienLuongDoanhNghiep CREATE LOGIN LeThang WITH PASSWORD = '123456' GO Tạo người dùng tương ứng:USE QLyTienLuongDoanhNghiep CREATE USER USER_LeThang FOR LOGIN LeThang GO Cấp Quyền: GRANT Select,Insert, Update, Delete ON BNhanVien TO USER_LeThang GO Cấm quyền: USE QLyTienLuongDoanhNghiep Deny Update On BNhanVien To USER_LeThang 2.Tạo tài khoản 2(Đặng Thị Loan) USE QLyTienLuongDoanhNghiep CREATE LOGIN DangLoan WITH PASSWORD = '123456' GO Tạo người dùng tương ứng: USE QLyTienLuongDoanhNghiep CREATE USER USER_DangLoan FOR LOGIN DangLoan GO Cấp Quyền: USE QLyTienLuongDoanhNghiep GRANT Select,Insert, Update, Delete ON BThanhToanLuong TO USER_DangLoan GO Cấm quyền: USE QLyTienLuongDoanhNghiep Deny Delete On BThanhToanLuong To USER_DangLoan 3.Tạo tài khoản 3(Trần Huy Hoàng) USE QLyTienLuongDoanhNghiep CREATE LOGIN HuyHoang WITH PASSWORD = '123456' GO Tạo người dùng tương ứng: USE QLyTienLuongDoanhNghiep CREATE USER USER_HuyHoang FOR LOGIN HuyHoang GO Cấp Quyền: USE QLyTienLuongDoanhNghiep GRANT Select,Insert, Update, Delete ON BChamCong TO USER_HuyHoang GO Thu hồi quyền: USE QLyTienLuongDoanhNghiep REVOKE Delete,update On BChamCong To USER_HuyHoang 4.Tạo tài khoản 4(Nguyễn Duy Khánh) USE QLyTienLuongDoanhNghiep CREATE LOGIN DuyKhanh WITH PASSWORD = '123456' GO Tạo người dùng tương ứng: USE QLyTienLuongDoanhNghiep CREATE USER USER_DuyKhanh FOR LOGIN DuyKhanh GO Cấp Quyền: USE QLyTienLuongDoanhNghiep GRANT Select,Insert, Update, Delete ON BLuong TO USER_DuyKhanh GO Thu hồi/Cấm quyền: USE QLyTienLuongDoanhNghiep REVOKE insert On BLuong To USER_DuyKhanh USE QLyTienLuongDoanhNghiep deny Delete On BLuong To USER_DuyKhanh *Tạo Role Cấp quyền chung: 1.Tạo Role Cập Nhật bảng BNhanVien(Thêm Sửa Xóa Dịng bảng)để tất User cập nhật Create Role CapNhatBNhanVien Gán Quyền cho Role Grant Insert, Delete, Update on BNhanVien to CapNhatBNhanVien thêm Các USER vào Role Alter Role CapNhatBNhanVien add member USER_LeThang Alter Role CapNhatBNhanVien add member USER_DangLoan Alter Role CapNhatBNhanVien add member USER_HuyHoang Alter Role CapNhatBNhanVien add member USER_DuyKhanh 2.Tạo Role Xem liệu bảng BLuong để tất User xem Create Role XemBLuong Gán Quyền cho Role Grant Select on BLuong to XemBLuong thêm Các USER vào Role Alter Role XemBLuong add member USER_LeThang Alter Role XemBLuong add member USER_DangLoan Alter Role XemBLuong add member USER_HuyHoang Alter Role XemBLuong add member USER_DuyKhanh Thu hồi quyền xóa dịng Role CapNhatBNhanVien USE QLyTienLuongDoanhNghiep REVOKE delete On BNhanVien To CapNhatBNhanVien 3.Tạo Role Chỉnh sửa liệu bảng BChamCong để User thêm vào chỉnh sửa Create Role UpdateBChamCong Gán Quyền cho Role Grant Update on BChamCong to UpdateBChamCong thêm Các USER vào Role Alter Role XemBLuong add member USER_LeThang Alter Role XemBLuong add member USER_DangLoan Phân Tán CSDL - Tạo linked server - Tiến hành phân tán ngang  Phân tán bảng nhân viên, nhân viên nữ để server 1, lại server tạo BNhanVien CREATE TABLE BNhanVien ( MaNV NVARCHAR(50) NOT NULL PRIMARY KEY, MaPB VARCHAR(20) NOT NULL, FK MaCV VARCHAR(20) NOT NULL, FK HoTen NVARCHAR(255), NgaySinh DATE, GioiTinh NVARCHAR(20), DiaChi NVARCHAR(255), DienThoai NVARCHAR(20), ) - Thử truy vấn  Tạo view xem nhân viên server

Ngày đăng: 20/09/2023, 15:42

Tài liệu cùng người dùng

Tài liệu liên quan