Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
70,41 KB
Nội dung
Trường Đại học xây dựng Hà Nội Khoa: Công nghệ thông tin ĐỒ ÁN CƠ SỞ DỮ LIỆU Lớp 63IT3 Đề tài: Quản lí dự án cơng nghệ thơng tin Sinh viên thực Nguyễn Anh Đức_51363 Nguyễn Trọng Huấn_87063 Đồng Xuân Luyện_1530263 GV hướng dẫn: Nguyễn Đình Anh Báo cáo phân tích đồ án buổi Phân cơng cơng việc Tên MSSV Công việc Nguyễn Anh Đức 51363 Dự án, đối tác, cung cấp Nguyễn Trọng Huấn Đồng Xuân Luyện 87063 Nhân Viên, phân việc, cơng việc Nhóm, Phịng ban, Điểm đánh 1530263 giá Thay đổi csdl Thêm bảng phân việc để thể mối quan hệ nhân viên công việc đồng thời sở để đánh giá mức độ nhân viên Loại bỏ tiêu chí nhiệt tình đánh giá nhân viên thơng qua hai tiêu chí: tiến độ hồn thành chất lượng công việc Loại bỏ bảng đánh giá tất đánh giá sử dụng thông qua bảng phân việc Ở bảng công việc thêm trường trangthai để xác định công việc dành cho dev hay tester Mô tả mqh nhân viên công việc dự án Các Procedure Trigger sử dụng project Thêm dự án Stored Procedure Create Procedure sp_insert_duan(in idDuan int, in ngayBatdau DATE, in ngayKetthuc DATE, in hanHoanthanh DATE, in moTa VARCHAR, in ghiChu VARCHAR, in idnhanvienLead int, in idDoitac int) Begin If Exists(Select iddoitac from doitac where iddoitac = idDoitac) Then If Exists(Select idnhanvien from nhavien where idnhanvien = idnhanvienlead) Then Begin Insert into duan (idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu, idnhanvienlead) values (idDuan,ngayBatdau,ngayKetthuc,hanHoanthanh,moTa, ghiChu , idnhanvienLead ); Insert into cungcap (iddoitac,idduan) values (idDoitac,idDuan); End Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã NV không hợp lệ !'; End if; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã ĐT không hợp lệ !'; End if; Cập nhập dự án Stored Procedure Create Procedure sp_update_duan(in idDuan int, in ngayBatdau DATE, in ngayKetthuc DATE, in hanHoanthanh DATE, in moTa VARCHAR, in ghiChu VARCHAR, in idnhanvienLead int) Begin If Exists(Select idnhanvien from nhavien where idnhanvien = idnhanvienlead) Then Begin Update doitac Set idduan=idDuan,ngaybatdau=ngayBatdau,ngayketthuc=ngayK etthuc,ngayhoanthanh=hanHoanthanh,mota=moTa,ghichu=gh iChu ,idnhanvienlead=idnhanvienLead where idduan = idDuan; End; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Mã NV không hợp lệ !'; End if; Xóa dự án Stored Procedure Create Procedure sp_delete_duan(in idDuan int) Begin Delete from doitac where idduan=idDuan; Delete from cung cap where idduan = idDuan; End; Lấy Stored Procedure thông tin dự án theo mã dự án Create Procedure sp_duan_maduan(in idDuan int) Begin If Exists(Select idduan from duan where idduan=idDuan) Then Select idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu,i dnhanvienlead,iddoitac From duan inner join cungcap on duan.idduan = cungcap.idduan Where duan.idduan=idDuan ; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Unknown idduan!!!'; End if; End; Lấy Stored Procedure thông tin dự án theo mã đối tác Create Procedure sp_duan_madoitac(in idDoitac int) Begin If Exists(Select iddoitac from doitac where iddoitac=idDoitac) Then Select idduan,ngaybatdau,ngayketthuc,ngayhoanthanh,mota,ghichu,i dnhanvienlead,iddoitac From duan inner join cungcap on duan.idduan = cungcap.idduan Where iddoitac=idDoitac ; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Unknown idoitac!!!'; End if; End; Lấy tồn Stored Procedure thơng tin dự án Create Procedure sp_duan_getAll() Begin Select * From duan inner join cungcap on duan.idduan = cungcap.idduan End; Thêm đối tác vào bảng Create Procedure sp_add_dotac(in idDoiTac int, in tennguoilienhe varchar, in sdt varchar, in diachi char) Begin Insert into doitac (iddoitac, tennguoilienhe, diachi, sdt) values (idDoiTac ,tennguoilienhe ,sdt, diachi); End Stored Procedure Lấy toàn Stored Procedure bảng đối tác Create Procedure sp_doitac_getAll() Begin Select iddoitac, tennguoilienhe, diachi, sdt from doitac; End Cập nhập đối tác Stored Procedure Create Procedure sp_update_doitac(in idDoiTac int, in tenNguoilienhe varchar, in sDt varchar, in diaChi char) Begin Update doitac Set tennguoilienhe=tenNguoilienhe ,sdt=sDt, diachi=diaChi where iddoitac=idDoiTac; End Xóa đối tác Stored Procedure Create Procedure sp_delete_doitac(in idDoiTac int) Begin Delete from doitac wherer iddoitac=idDoiTac; End Hiển thị danh sách theo mã đối tác Stored Procedure Create Procedure sp_doitac_byid(in idDoiTac int) Begin If Exists(Select iddoitac from nhdoitac where iddoitac=idDoiTac) Then Select iddoitac, tennguoilienhe,sdt,diachi From doitac Where iddoitac=idDoiTac; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Unknown iddoitac!!!'; End if; End; Phân việc cho Dev Stored Procedure DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_phanviec_dev_byIdNhanVienIdViec`(in idnv int,in idcv int) BEGIN If exists(Select idcv From phanviec where idnhanvien = idnv and idcongviec = idcv) Then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Da ton tai'; Else Begin INSERT INTO phanviec(idcongviec,idnhanvien,totaltest,totalpassed,_role) VALUES(idcv,idnv,0,0,0); End; End if; END ;; DELIMITER ; Phân việc cho test Stored Procedure DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_phanviec_test_byIdNhanVienIdViec`(in idnv int,in idcv int, in numTest int) BEGIN If exists(Select idcv From phanviec where idnhanvien = idnv and idcongviec = idcv) Then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Da ton tai'; Else Begin INSERT INTO phanviec(idcongviec,idnhanvien,totaltest,totalpassed,_role) VALUES(idcv,idnv,numTest,0,1); End; End if; END ;; Lấy danh Stored sách công Procedure việc theo dự án DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_select_congviec_byduan`(in idda int) BEGIN If exists(select idduan from DuAn where idduan = idda) Then Begin Select * FROM CongViec where idduan = idda; end; Else SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Du an khong ton tai'; end if; END ;; DELIMITER ; Lấy danh Stored sách công Procedure việc theo nhân viên lead DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_select_congviec_byidnhanvienlead`(in idnvlead int) BEGIN (Có thể trưởng nhóm hơn) Declare maduan int; if (idnvlead numTest) Then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'khong hop le'; else update phanviec set totalpassed = testpass where idcongviec = idcv and _role = 1; end if; END ;; DELIMITER ; Trigger phân việc cho nhân viên để tự động chuyển trạng thái công việc từ chưa làm sang làm Trigger CREATE DEFINER=`root`@`localhost` TRIGGER `tg_after_insert_congviec` AFTER INSERT ON `phanviec` FOR EACH ROW BEGIN Declare idcv int; set idcv = (Select idcongviec From phanviec where idcongviec = new.idcongviec and _role=0); Update congviec set trangthai = where idcongviec = idcv; END Trigger Trigger việc test hoàn thành, công việc tự động chuyển từ làm sàng hoàn thành CREATE DEFINER=`root`@`localhost` TRIGGER `tg_after_insert_congviec` AFTER INSERT ON `phanviec` FOR EACH ROW BEGIN Declare idcv int; set idcv = (Select idcongviec From phanviec where idcongviec = new.idcongviec and _role=0); Update congviec set trangthai = where idcongviec = idcv; END Tính điểm chất lượng cho nhân viên Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_diem_chatluong`(in idNV int, in startDate date, in endDate date) begin declare passed, total int; set passed = (select sum(totalpassed) from phanviec where LastSubmitTime between startDate and endDate and idnhanvien = idNV); set total = (select sum(totaltest) from phanviec where LastSubmitTime between startDate and endDate and idnhanvien = idNV ); select ((passed / total) * 100) as result; end Login Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_login`(in user_id char(50), in pass_hash char(128)) begin select nhanvien.* from nhanvien inner join login on nhanvien.idnhanvien = login.idnhanvien where login.user_name = user_id and login.hashed_code = pass_hash; end Tạo nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_create_nhom`(in idNVLEAD int, in idDuAn int, in ten_nhom char(100)) begin if (select count(idduan) from duan where idduan = idNVLEAD) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select count(idnhanvien) from nhanvien where idnhanvien = idNVLEAD) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; insert into nhom (tennhom, idnhanvienlead, idduan, delete_flag, is_locked) values (ten_nhom, idNVLEAD, idDuAn, 0, 0); end Khóa nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_lock_nhom`(in idNhom int) begin if isnull((select idnhom from nhom where idnhom = idNhom)) then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select is_locked from nhom where idnhom = idNhom) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'nhom_locked_already'; end if; update nhom set is_locked = where idnhom =idNhom; end Mở khóa nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_unlock_nhom`(in idNhom int) begin if (select count(idnhom) from nhom where idnhom = idNhom) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select is_locked from nhom where idnhom = idNhom) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'nhom_unlocked_already'; end if; update nhom set is_locked = where idnhom = idNhom; end Thêm nhân viên vào nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_add_nhanvien_to_nhom`(in idNV int, in idNhom int) begin if (select count(idnhom) from nhom where idnhom = idNhom) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select count(idnhanvien) from nhanvien where idnhanvien = idNV) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select delete_flag from chitiet_nhom where idnhanvien = idNV) = then update chitiet_nhom set delete_flag = where idnhanvien = idNV; end if; if (select count(idnhanvien) from chitiet_nhom where idnhanvien = idNV) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_nv_exist'; end if; insert into chitiet_nhom (idnhom, idnhanvien, delete_flag) values (idNhom, idNV, 0); end Xóa nhân viên khỏi nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_delete_nhanvien_from_nhom`(in idNV int, in idNhom int) begin if (select count(idnhom) from nhom where idnhom = idNhom) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select count(idnhanvien) from nhanvien where idnhanvien = idNV) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'id_not_found_error'; end if; if (select delete_flag from chitiet_nhom where idnhanvien = idNV) = then update chitiet_nhom set delete_flag = where idnhanvien = idNV; end if; if (select count(idnhanvien) from chitiet_nhom where idnhanvien = idNV) = then update chitiet_nhom set delete_flag = where idnhanvien = idNV; end if; if (select delete_flag from chitiet_nhom where idnhanvien = idNV) = then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'deleted_before'; end if; insert into chitiet_nhom (idnhom, idnhanvien, delete_flag) values (idNhom, idNV, 0); end Xóa hẳn nhân viên khỏi nhóm, bảng chitiet nhóm Stored Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_hard_delete_nhom_by_duan`(in idDuan int) begin delete from chitiet nhom where idnhom in (select idnhom from nhom where idduan = idDuan); delete from nhom where udnhom in (select idnhom from nhom where idduan = idDuan); end Đổi tên nhóm Stored Procedure delimiter $$ create procedure sp_change_name_nhom (in idNhom int, in NewName char(100)) begin update nhom set tennhom = NewName where idnhom = idNhom; end $$ Đổi trưởng nhóm Stored cho nhóm Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_change_idnvlead_phongban`(in idphongban_change int, in idnhanvien_new int) stage_1: BEGIN DECLARE idnhanvien_temp INT DEFAULT 0; IF (SELECT idnhanvien FROM nhanvien WHERE idnhanvien = idnhanvien_new) IS NULL THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'can not find idnhanvien'; LEAVE stage_1; END IF; SET FOREIGN_KEY_CHECKS = 0; UPDATE phongban SET idnhanvienlead = idnhanvien_new; SET FOREIGN_KEY_CHECKS = 1; END Tạo phòng ban Stored Procedure delimiter $$ create procedure sp_create_phongban (in idNV int, in NewName char(100)) begin IF (SELECT idnhanvien FROM nhanvien WHERE idnhanvien = idNV) IS NULL THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error'; END IF; insert into phongban (idnhanvienlead, tenphongban, delete_flag) values (idNV, NewName, 0); end $$ Xóa phịng ban Stored Procedure delimiter $$ create procedure sp_delete_phongban (in idPhongBan int) begin IF (SELECT idphongban FROM phongban WHERE idphongban = idPhongBan) IS NULL THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error'; END IF; delete from phongban where idphongban = idPhongBan; end $$ Đổi tên phòng ban Stored Procedure delimiter $$ create procedure sp_change_name_phongban (in idPhongBan int, in NewName char(100)) begin IF (SELECT idphongban FROM phongban WHERE idphongban = idPhongBan) IS NULL THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'con_not_find_id_error'; END IF; update phongban set tenphongban = NewName where idphongban = idPhongBan; end $$ ... tích đồ án buổi Phân cơng công việc Tên MSSV Công việc Nguyễn Anh Đức 51363 Dự án, đối tác, cung cấp Nguyễn Trọng Huấn Đồng Xn Luyện 87063 Nhân Viên, phân việc, cơng việc Nhóm, Phòng ban, Điểm đánh... viên công việc đồng thời sở để đánh giá mức độ nhân viên Loại bỏ tiêu chí nhiệt tình đánh giá nhân viên thơng qua hai tiêu chí: tiến độ hồn thành chất lượng cơng việc Loại bỏ bảng đánh giá tất đánh... giá tất đánh giá sử dụng thông qua bảng phân việc Ở bảng công việc thêm trường trangthai để xác định công việc dành cho dev hay tester Mô tả mqh nhân viên công việc dự án Các Procedure Trigger