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ỚN MÔ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
2 Tạo bảng 2
3 Khóa 2
4 Nhập dữ liệu 2
III Thực hiện các yêu cầu sau: 2
1 Truy Vấn Dữ Liệu 2
2 Tạo view 2
3 Tạo thủ tục 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ânviê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ủanhâ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àitiền lương cơ bản nhằm trả đủ những hao phí lao động tăng thêm, cần có cácthô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,sSodienthoai
Phòng Ban: sMaPB, sTenPB, sDiaDiem.
Thời gian công tác: dNgayBDnhamchuc.
Chức Vụ: sMaCV,sTenCV.
Lương: dNgayHuong, dSongaynghi, fTamung
Hệ số lương: iHesoluong, fLuongtuongung
Tiề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 PhongBan
Có 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 NhanVien chỉ đả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,
sSoDienThoai,sMaPB
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(
CREATE TABLE TienPhuCap(
iMucphucap INT NOT NULL,
Trang 14ALTER TABLE dbo thoigiancongtac ADD CONSTRAINT
FK_thoigiancongtac_nhanvien FOREIGN KEY(sMaNV)REFERENCES
dbo NhanVien sMaNV ( ),
Trang 38Sau khi:
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 41declare @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' Dữ liệu bên trạm 1
Dữ liệu bên trạm 2
5.2 Thực hiện phân tán dọc bảng sản phẩm
5.2 Thực hiện phân tán dọc bảng sản phẩm sao cho Tram 1 [sMaSP][sTenSP][smaloaiSP][smancc] Trạm 2 [sMaSP][isoluong][fgiahang]
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 47insert 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