Muốn quản lý được nhân viên ta cần tìm hiểu các hoạt động chính và các chủ thể cần quản lý.Ta có:Để tiện theo dõi và quản lý nhân viên, mỗi nhân viên cần có các thông tin sau: mã nhân vi
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO BÀI TẬP LỚNMÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
<NHÓM 10>Đề tài: Quản Lý Nhân Viên
Giáo Viên Hướng dẫn: Nguyễn Thị Tâm Sinh Viên thực hiện: Đào Đức Lộc- 2010A02
Bùi Tuấn Anh-2010A02 Phí Minh Quân- 2010A02 Đặng Văn Công- 2010A02
Hà Nội, năm 2021
Trang 2PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
HỌ VÀ TÊN NỘI DUNGĐÁNH GIÁGHI CHÚ
Đào Đức Lộc Bùi Tuấn Anh Phí Minh Quân Đặng Văn Công
Trang 3MỤC LỤC
I.Phát biểu bài toán 2
1 Xây dựng mô hình thực thể liên kết 2
2.Xây dựng mô hình cơ sở dữ liệu quan hệ 2
3.Chuẩn hóa cơ sở dữ liệu của bài toán 2
II.Các bảng cơ sở dữ liệu của bài toán: 2
1 Xây dựng các bảng của bài toán 2
4 Tạo Trigger kiểm soát ràng buộc dữ liệu 2
5 Phân quyền cho các thành viên 2
6 Phân tán 2
Trang 4I.Phát biểu bài toán
Để quản lý nhân viên được diễn ra ổn định, ta cần xây dựng một hệ thống quản lý nhân viên tốt, hiệu quả Muốn quản lý được nhân viên ta cần tìm hiểu các hoạt động chính và các chủ thể cần quản lý.
Ta có:
Để tiện theo dõi và quản lý nhân viên, mỗi nhân viên cần có các thông tin sau: mã nhân viên, tên nhân viên, ngày sinh, địa chỉ,SĐT Quy định mỗi nhân viên có một mã nhân viên, ngày vào làm ,độ tuổi yêu cầu là trên 18 tuổi
Phòng ban cần có các thông tin: mã phòng ban để xác định cùng với tên phòng
ban và mã dự án mà phong ban phu trách
Thời gian công tác cần có các thông tin: Mã hợp đồng để phân biệt các hợp
đồng, HĐLĐ phải chứa nhân viên , ngày bắt đầu nhậm chức và chức vụ của nhân viên
Chức vụ cần có các thông tin: Mã chức vụ phân loại với tên chức vụ
Lương cần có các thông tin: Ngày hưởng,số ngày nghỉ, tạm ứng của nhân viên
và bậc lương mà nhân viên đó được hưởng
Hệ số lương: Hệ số lương là hệ số thể hiện sự chênh lệch tiền lương giữa các
mức lương theo ngạch, cần có các thông tin: Hệ số Lương, lương tương ứng
Tiền phụ cấp: Phụ cấp lương là khoản tiền trả cho người lao động ngoài tiền lương cơ bản nhằm trả đủ những hao phí lao động tăng thêm, cần có các thông tin: Mức phụ cấp, phụ cấp tương ứng
Trang 51 Xây dựng mô hình thực thể liên kết
Theo bài toán trên, chúng ta xác định được thực thể và thuộc tính:
Nhân Viên: sMaNV, sTenNV, dNgaySinh, dNgayVaoLam, sDiaChi,sSodienthoaiPhòng Ban: sMaPB, sTenPB, sDiaDiem.
Thời gian công tác: dNgayBDnhamchuc.Chức Vụ: sMaCV,sTenCV.
Lương: dNgayHuong, dSongaynghi, fTamungHệ số lương: iHesoluong, fLuongtuongungTiền Phụ Cấp: iMucpgucap, fTientuongung
Xác định liên kết giữa các thực thể:
Giữa 2 tập thực thể NhanVien và PhongBan có mối liên kết “thuộc” vì một PhongBanCó nhiều NhanVien và mỗi NhanVien chỉ thuộc một PhongBan
=> Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “ 1 – n ”.
Giữa 2 tập thực thể NhanVien và ThoiGianCongTac có mối liên kết “thỏa ước” vì một
NhanVien có các chức vụ vào các thời gian khác nhau => Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “ 1 – n ”.
Giữa 2 tập thực thể ChucVu và ThoiGianCongTac có mối liên kết “chứa” vì một chỉ có
một ChucVu của một nhân viên được nhận vào thời gian khác nhau => Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “1 – n”.
Giữa 2 tập thực thể NhanVien và ChucVu có mối liên kết “đảm nhiệm” vì 1 NhanVienchỉ đảm nhiệm 1 ChucVu
=> Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “1 – 1”
Giữa 2 tập thực thể NhanVien và Luongcó mối liên kết “hưởng” trong thời điểm khác
nhau
=> Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “1 – n”
Trang 6Giữa 2 tập thực thể Lương và Hệ số lương có mối liên kết “chứa” vì 1 mức Lương có nhiều hệ số lương
=> Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “1 – n”
Giữa 2 tập thực thể Lương và Tiền phụ cấp có mối liên kết “chứa” vì 1 mức Lương có
nhiều hệ số phụ cấp
=> Mối liên kết giữa 2 tập thực thể có kiểu liên kết là “1 – n”
Trang 7Mô hình ER:
2.Xây dựng mô hình cơ sở dữ liệu quan hệ * Quy tắc với thực thể mạnh
NhanVien (s MaNV , sTenNV, dNgaySinh, dNgayVaoLam, sDiaChi,sSodienthoai).
PhongBan (sMaPB, sTenPB, sDiaDiem).
Trang 8ThoiGianCongTac(sMaNV, sMaCV, dNgayBDnhamchuc)
Luong(sMaNV, iHesoluong, iMucphucap, dNgayhuong, fTamung, iSongaynghi)
* Quy tắc với liên kết 1-1:
NhanVien ( s MaNV , sMaCV,sTenNV, dNgaySinh,dNgayVaoLam ,sDiaChi, sSodienthoai, sMaPB,).
= > Cơ sở dữ liệu cuối cùng:
NhanVien ( s MaNV , sMaCV,sTenNV, dNgaySinh,dNgayVaoLam ,sDiaChi, sSodienthoai, sMaPB,).
ThoiGianCongTac(sMaNV, sMaCV, dNgayKT)
Luong(sMaNV, iHesoluong, iMucphucap, dNgayhuong, fTamung, iSongaynghi)ChucVu(sMaCV, sTenCV).
PhongBan (sMaPB, sTenPB).
TienPhuCap(iMucphucap, fTientuongung).HeSoLuong(iHesoluong, fLuongtuongung).
3.Chuẩn hóa cơ sở dữ liệu của bài toán
Từ mô hình quan hệ ta suy ra các phụ thuộc hàm:
MaNV TenNV, NgaySinh, ĐiaChi, ĐienThoai, sMaPB, sMaCV
Trang 9sMaNV, sMaCV dNgayBDnhamchuc
sMaNV iHesoluong, iMucphucap, dNgayhuong, fTamung, iSongaynghi Từ các phụ thuộc hàm trên ta thấy:
- Mọi thuộc tính đều là nguyên tố, giá trị các thuộc tính trên bộ là đơn trị, không có thuộc tính nào có giá trị được tính toán từ một số thuộc tính khác.
Lược đồ quan hệ trên đã ở dạng chuẩn 1NF.
- Mọi thuộc tính không khóa của quan hệ đều phụ thuộc hàm đầy đủ vào khóa chính.
Lược đồ quan hệ trên đã ở dạng chuẩn 2NF.
- Mọi thuộc tính không khóa của quan hệ đều không phụ thuộc bắc cầu vào bất kì khóa chính của quan hệ.
Lược đồ quan hệ trên đã ở dạng chuẩn 3NF.
Vậy lược đồ quan hệ đã được chuẩn hóa về dạng cao nhất – 3NF
Trang 10Mô hình LK Database Diagrams
Trang 11II.Các bảng cơ sở dữ liệu của bài toán:
1 Xây dựng các bảng của bài toán
- tblNhanVien: sMaNV, sTenNV, dNgaySinh, sDiaChi, dNgayvaolam, sMaCV,
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
- tblChucvu: sMaCV, sTenCV
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
- tblPhongban: sMaPB, sTenPB
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
- tblHesoLuong: iHesoluong, fLuongtuongung
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
Trang 12- tblTienPhuCap:iTMucphucap, fTientuongung
STT Tên thuộc tính Kiểu dữ liệu Ràng buộc Ghi chú
- tblThoiGianCongTac: sMaNV, sMaCV, dNgayBD
- tblLuong: sMaNV, iHesoluong, iMucphucap, dNgayhuong, fTamung, iSongaynghi
Trang 13Bang thoi gian cong tac CREATE TABLE thoigiancongtac(
ALTER TABLE dbo Luong ALTER COLUMN sMaNV NVARCHAR(20) Bang tien phu cap
CREATE TABLE TienPhuCap( iMucphucap INT NOT NULL,
Trang 14ALTER TABLE dbo NhanVien ADD CONSTRAINT FK_Nhanvien_chucvu FOREIGN KEY(sMaCV) REFERENCES dbo.ChucVu sMaCV( ),
CONSTRAINT FK_Nhanvien_PhongBan FOREIGN KEY(sMaPB) REFERENCES dbo PhongBan sMaPB ( )
ALTER TABLE dbo thoigiancongtac ADD CONSTRAINT
FK_thoigiancongtac_nhanvien FOREIGN KEY(sMaNV)REFERENCES dbo NhanVien sMaNV ( ),
Trang 38Sau khi:
Trang 39Câu 5.
Câu 5: Cập nhật tên phòng ban thì mã phòng ban của bảng nhân viên cũng thay đổi CREATE TRIGGER pd_phong
Trang 40DECLARE @MaPhgCu nvarchar( ),9 @MaPhgMoi nvarchar( )9 SELECT @MaPhgCu = sMaPB FROM DELETED
SELECT @MaPhgMoi = sMaPB FROM INSERTED
If ( EXISTS (select sMaPB from NhanVien Where sMaPB @MaPhgCu = ) ) UPDATE NHANVIEN SET sMaPB @MaPhgMoi=
WHERE sMaPB = @MaPhgCu END
END Dữ liệu ban đầu
Trang 41Dữ liệu sau khi update
Câu 6:
Câu 6: xóa Phòng ban thì nhân viên của phòng ban đó cũng bị xóa create trigger x_phongban PhongBanon
for delete as begin
declare @mapb nvarchar( )20 select @mapb sMaPB = from Deleted
if ( EXISTS (select sMaNV from NhanVien Where sMaPB @mapb= ) ) delete NhanVien where sMaPB @mapb =
end
Trang 42Dữ liệu ban đầu
Dữ liệu sau khi xóa
Trang 435 Phân quyền cho các thành viên
Tạo User cho các thành viên
create login daoducloc with password= '123456789' go
create login buituananh with password= '123456789'
Trang 44create user ducloc for login daoducloc create user tuananh for login buituananh create user minhquan for login phiminhquan create user vancong for login dangvancong grant select on [dbo].[NhanVien] to public grant select on [dbo].[PhongBan] to public grant select on [dbo].[ChucVu] to public
Quyền insert,update,delete khachhang User ducloc grant insert,update,delete on Nhanvien duclocto go
Quyền insert,update,delete nhanvien User tuananh grant insert,update,delete on [dbo].[ChucVu] tuananhto go
Quyền insert,update,delete Luong User minhquan grant insert,update,delete on [dbo].[Luong] minhquanto go
Quyền insert,update,delete phong ban User vancong grant insert,update,delete on [dbo].[PhongBan] vancongto go
Thu Hồi
Thu hồi quyền xóa Nhanvien revoke delete on Nhanvien from ducloc go
6 Phân tán
5.1 Thực hiện phân tán ngang bảng tblKhachHang sao cho khách hàng có địa chỉ tại Ha Noi vào trạm 1 còn địa chỉ khác vào trạm 2
Tạo bảng tblKhachHang bên PhanTan Tram1
Trang 45Create Table tblkhachhangtram1( sMaKH varchar(10) Not Null Primary Key,
Tạo bảng tblKhachHang bên PhanTan_Tram2 Create Table tblkhachhangtram2(
sMaKH varchar(10) Not Null Primary Key,
Gán Tên cho Link đến Trạm2
create synonym KHtram2 for Link.Quanlybanhang dbo tblkhachhangtram2 Insert dữ liệu vào bảng trạm 1
insert into btl.dbo tblkhachhangtram1 sMaKH sTenKH sGioiTinh sDiachi sDienThoai ( , , , , ) select from * tblKhachHang where sDiachi = N'Ha Noi'
- Insert dữ liệu vào bảng trạm 2
insert into KHtram2 select from * tblKhachHang where sDiachi != N'Ha Noi'
Trang 46Tạo bảng sản phẩm bên DB PhanTan_Tram1 Create Table tblSanPhamtram1(
sMaSP varchar(10) Not Null Primary key, sTenSP nvarchar(30),
sMaLoaiSP varchar( ),10 sMaNCC varchar(10), )
Tạo bảng tblKhachHang bên PhanTan_Tram2 Create Table tblSanPhamtram2(
sMaSP varchar(10) Not Null Primary key, iSoLuong int,
fGiaHang float )
Gán Tên cho Link đến Trạm2
create synonym KHtram2 for Link.Quanlybanhang dbo tblkhachhangtram2 insert dữ liệu vào trạm 1
insert into btl.dbo tblSanPhamtram1 smaSP stenSP smaloaiSP smancc ( , , , ) select smaSP stenSP smaloaiSP, , ,smancc from tblsanpham
insert dữ liệu vào trạm 2
insert into SPtram2 select smaSP,isoluong,fgiahang from tblsanpham Dữ liệu bên trạm 1
Dữ liệu bên trạm 2
Trang 47- 5.3 tạo thủ tục thực hiện phân tán ngang bảng tblKhachHang sao cho khách hàng có địa chỉ tại Bắc Giang vào trạm 1 còn lại vào trạm 2
create procedure ThutucKH
insert into KHtram2
values (@ma @ten @gioitinh, , ,@diachi @dienthoai, )
Trang 48Dữ liệu bên trạm 1
Dữ liệu bên trạm 2