Công ty có rất nhiều phòng ban, mỗi phòng ban đặc trưng một mã phòng duynhất, tên phòng ban, mã số nhân viên trưởng phòng,… Mỗi phòng có thể quản lý một dự án, mỗi dự án có mã dự án, tên
Trang 1ĐẠI HỌC UEH TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ KHOA CÔNG NGHỆ THÔNG TIN KINH DOANH
BÁO CÁO CUỐI KỲ MÔN CƠ SỞ DỮ LIỆU
ĐỀ TÀI XÂY DỰNG MÔ HÌNH CƠ SỞ DỮ LIỆU VỀ QUẢN LÝ NHÂN
SỰ CỦA 1 CÔNG TY
Giảng viên: Th.S Viên Thanh Nhã
Mã lớp học phần: 22C1INF50900603
Họ và tên sinh viên 1: Phan Lê Nhật Hằng MSSV: 31201023830
Họ và tên sinh viên 2: Châu Yến Linh MSSV: 31211022112
TP Hồ Chí Minh, ngày 11 tháng 11 năm 2022
Trang 2LỜI CẢM ƠN
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành nhất đến thầy Viên ThanhNhã Trong suốt quá trình học tập và tìm hiểu bộ môn “Cơ sở dữ liệu”, chúng em đãnhận được rất nhiều sự quan tâm giúp đỡ, hướng dẫn tận tình từ thầy Để có thể hoànthành dự án này, không chỉ có công sức và sự cố gắng của các thành viên trong nhóm
mà còn nhờ sự giúp đỡ của thầy
Do kiến thức còn nhiều hạn chế nên bài dự án này của chúng em có thể sẽ khôngtránh khỏi được những thiếu sót Bản thân chúng em rất mong nhận được nhận nhữnggóp ý đến từ thầy để bài luận này có thể hoàn thiện hơn
Chúng em tin rằng đây sẽ là những hành trang vô cùng bổ ích trên con đường saunày Một lần nữa nhóm xin gửi lời cảm ơn chân thành đến thầy, xin chúc thầy luônnhiều sức khỏe, hạnh phúc và thành công trên con đường sự nghiệp
Chúng em xin chân thành cảm ơn!
Trang 3MỤC LỤC LỜI CẢM ƠN
CHƯƠNG 1: MÔ TẢ BÀI TOÁN
I Mô tả bài toán
II Mô tả dữ liệu
III Quy tắc mô tả, ràng buộc bản số
CHƯƠNG 2: MÔ HÌNH THỰC THỂ KẾT HỢP (ERD) & MÔ HÌNH MỨC QUAN NIỆM
I Mô hình thực thể kết hợp ER
II Mô hình ERD
III Lược đồ quan hệ
IV Chuẩn hóa
CHƯƠNG 3: PHÉP TOÁN ĐẠI SỐ QUAN HỆ
CHƯƠNG 4: THỰC HIỆN TRÊN MICROSOFT SQL SERVER
Trang 4CHƯƠNG 1: MÔ TẢ BÀI TOÁN
I Mô tả bài toán
Bài toán đặt ra cho cơ sở quản lý nhân sự là xây dựng các chức năng thích hợptạo điều kiện thuận lợi cho công tác quản lý nhân viên và các hoạt động liên quan đểđảm bảo quyền lợi từng nhân viên
Công ty có rất nhiều phòng ban, mỗi phòng ban đặc trưng một mã phòng duynhất, tên phòng ban, mã số nhân viên trưởng phòng,…
Mỗi phòng có thể quản lý một dự án, mỗi dự án có mã dự án, tên dự án, ngânsách
Khi tuyển dụng nhân viên, phòng quản lý nhân sự sẽ thu thập và lưu hồ sơ nhânviên Định kỳ xem xét, cập nhật dữ liệu, nếu có sai sót cập nhật, sửa chữa, bổ sung.Thông tin cơ bản nhân viên gồm có mã nhân viên, họ và tên, vị trí công việc,phòng ban, các thông tin sơ yếu lý lịch nhân giới tính, ngày tháng năm sinh, CCCD, sốđiện thoại, trình độ học vấn, giấy khám sức khỏe
Nhân viên ký hợp đồng lao động với công ty Hợp đồng lao động gồm có mã hợpđồng, loại hợp đồng, ngày bắt đầu, ngày kết thúc
Thông tin thân nhân của mỗi nhân viên để hưởng những ưu đãi (nếu có) Thôngtin thân nhân gồm có quan hệ với nhân viên, họ tên, giới tính, ngày tháng năm sinh.Chấm công thống kê rõ ràng ngày nghỉ, đi làm chuyên cần giúp nhân viên cậpnhật đúng bảng lương, thưởng định kỳ, phù hợp với công sức và năng lực làm việc haychưa
Mỗi nhân viên nhận một mức lương Lương của nhân viên gồm: mã lương, lương
cơ bản, lương tăng ca, thưởng- phạt Lương nhân viên = Lương cơ bản + Lương dự án
- Nghỉ phép có trừ lương Trong đó Lương dự án = số giờ tham gia dự án x 100000.Nghỉ phép có trừ lương = Số ngày nghỉ x 400000
II Mô tả dữ liệu
Trang 5Chú thích: Màu đỏ: Khoá chính
Màu vàng: Khoá ngoại
1 Bảng NHAN_VIEN
1 MA_NV VARCHAR (6) Mã nhân viên là chuỗi ký tự bắt buộc đủ 6
ký tự Mỗi mã nhân viên là duy nhất
(100)
Họ và tên nhân viên là chuỗi ký tự có dấu, giới hạn ở 100 ký tự Họ tên nhân viên có thể trùng nhau
3 GIOI_TINH NVARCHAR (3) Giới tính được ràng buộc trong 2 lựa chọn
là “Nam” hoặc “Nữ” Giới tính có thể trùngnhau
4 NGAY_SINH DATETIME Ngày sinh được nhập theo định dạng
dd/mm/yy Ngày sinh có thể trùng nhau
7 CCCD CHAR (12) CCCD (Căn Cước Công Dân) là chuỗi ký
tự được nhập bằng số với đủ số lượng là 12
ký tự số CCCD không được trùng nhau
8 GKSK NVARCHAR(3) Giấy khám sức khỏe được ràng buộc 2 lựa
chọn “Có” hoặc “Không” Giấy khám sức khỏe có thể trùng
9 CHUC_VU NVARCHAR Chức vụ là chuỗi ký tự có dấu, giới hạn ở
Trang 6(30) 30 ký tự Chức vụ có thể trùng nhau.
10 PHG VARCHAR(4) Mã phòng ban là chuỗi ký tự bắt buộc đủ 4
ký tự Mỗi mã phòng ban là duy nhất
11 SO_HD VARCHAR (4) Số hợp đồng là mã hợp đồng tuyển dụng
của nhân viên đó, là chuỗi ký tự bắt buộc
đủ 4 ký tự Mỗi số hợp đồng là duy nhất
2 Bảng HOP_DONG
1 MA_HD VARCHAR (4) Mã hợp đồng là chuỗi ký tự bắt buộc
đủ 4 ký tự Mỗi mã hợp đồng là duy nhất
2 LOAI_HD VARCHAR (30) Loại hợp đồng là phân loại của số
hợp đồng đó, loại hợp đồng có thể trùng nhau
3 NGAYBATDAU DATETIME Ngày bắt đầu hợp đồng được nhập
theo định dạng dd/mm/yy Ngày bắt đầu hợp đồng có thể trùng nhau
4 NGAYKETTHUC DATETIME Ngày kết thúc hợp đồng được nhập
theo định dạng dd/mm/yy Ngày kết thúc hợp đồng có thể trùng nhau
Trang 71 MA_PB VARCHAR (4) Mã phòng ban là chuỗi ký tự bắt buộc đủ 4
ký tự Mỗi mã phòng ban là duy nhất
2 TEN_PB NVARCHAR (100) Tên phòng ban là chuỗi ký tự có dấu, giới
hạn ở 50 ký tự
3 MA_TPB VARCHAR (6) Mã trưởng phòng là chuỗi ký tự bắt buộc
đủ 6 ký tự Mã trưởng phòng là duy nhất
4 Bảng CHAM_CONG
1 MA_CHAMCONG NVARCHAR (4) Mã chấm công là chuỗi ký tự bắt
buộc đủ 4 ký tự Mỗi mã chấm công
là duy nhất
2 MA_NV VARCHAR (6) Mã nhân viên là chuỗi ký tự bắt
buộc đủ 6 ký tự Mỗi mã nhân viên
là duy nhất
3 NGAY_NGHI INT Ngày nghỉ là số lượng ngày nghỉ
của nhân viên, có kiểu dữ liệu là số nguyên
5 Bảng LUONG (Lương)
1 MA_LUONG NVARCHAR(4) Mã lương là chuỗi ký tự bắt buộc đủ
4 ký tự Mỗi mã lương là duy nhất
2 MA_NV VARCHAR (6) Mã nhân viên là chuỗi ký tự bắt
buộc đủ 6 ký tự Mỗi mã nhân viên
Trang 8là duy nhất.
3 MA_CHAMCONG NVARCHAR (4) Mã chấm công là chuỗi ký tự bắt
buộc đủ 4 ký tự Mỗi mã chấm công
là duy nhất
4 LUONG_CB INT Lương cơ bản là được nhập theo
kiểu dữ liệu số nguyên, có thể trùng nhau
5 LUONG_DA INT Lương dự án là được nhập theo kiểu
dữ liệu số nguyên, có thể trùng nhau
6 LUONG_TRU INT Lương trừ là được nhập theo kiểu dữ
liệu số nguyên, có thể trùng nhau
6 Bảng DU_AN (Dự án)
1 MA_DA VARCHAR (4) Mã dự án là chuỗi ký tự bắt buộc đủ 4 ký
tự Mỗi mã dự án là duy nhất
2 TEN_DA NVARCHAR (200) Tên dự án là chuỗi ký tự có dấu, giới hạn
ở 200 ký tự
3 NG_SACH INT Ngân sách là số tiền đầu tư cho dự án,
kiểu dữ liệu là số nguyên
7 Bảng THAN_NHAN (Thân nhân)
(6)
Mã nhân viên là chuỗi ký tự bắt buộc
đủ 6 ký tự Mỗi mã nhân viên là duy
Trang 9Giới tính thân nhân được ràng buộc trong 2 lựa chọn là “Nam” hoặc “Nữ” Giới tính có thể trùng nhau
Quan hệ (giữa nhân viên và thân nhân)
là chuỗi ký tự có dấu, giới hạn ở 30 ký
tự Quan hệ có thể trùng nhau
8 Bảng THUC_HIEN
1 MA_NV VARCHAR (6) Mã nhân viên là chuỗi ký tự bắt buộc đủ 6
ký tự Mỗi mã nhân viên là duy nhất
2 MA_DA VARCHAR (4) Mã dự án là chuỗi ký tự bắt buộc đủ 4 ký
tự Mỗi mã dự án là duy nhất
3 SO_GIO Float Số giờ được nhập theo kiểu dữ liệu số thực
Số giờ có thể trùng nhau
9 Bảng QUAN_LY
tự bắt buộc đủ 4 ký tự Mỗi
Trang 10mã phòng ban là duy nhất.
2 MA_DA VARCHAR (4) Mã dự án là chuỗi ký tự bắt
buộc đủ 4 ký tự Mỗi mã
dự án là duy nhất
III Quy tắc mô tả, ràng buộc về bản số
1 NHAN_VIEN và HOP_DONG có quan hệ (1,1) và mối quan hệ giữa chúng là KÝ
2 NHAN_VIEN và LUONG có quan hệ (1,1) và mối quan hệ giữa chúng là NHẬN
3 NHAN_VIEN và CHAM_CONG có quan hệ (1,n) và quan hệ giữa chúng làCHẤM CÔNG
4 NHAN_VIEN và PHONG_BAN có quan hệ (1,n) và quan hệ giữa chúng làTHUỘC
5 NHAN_VIEN và PHONG_BAN có quan hệ (1,1) và quan hệ giữa chúng là QUẢNLÝ
6 NHAN_VIEN và DU_AN có quan hệ (n,n) và mối quan hệ giữa chúng là THỰCHIỆN
7 PHONG_BAN và DU_AN có quan hệ (n,n) và mối quan hệ giữa chúng là QUẢNLÝ
8 NHAN_VIEN và THAN_NHAN có quan hệ (1,n) và mối quan hệ giữa chúng làCÓ
Trang 11CHƯƠNG 2: MÔ HÌNH THỰC THỂ KẾT HỢP (ERD) & MÔ HÌNH MỨC
Trang 12Hình: Mô hình ERD
III Mô hình quan hệ
IV Chuẩn hóa dữ liệu
Trang 13Hình: Chuẩn hóa dữ liệu của Bảng “NHAN_VIEN”
Hình: Chuẩn hóa dữ liệu của Bảng “HOP_DONG”
Hình: Chuẩn hóa dữ liệu của Bảng “PHONG_BAN”
Trang 14Hình: Chuẩn hóa dữ liệu của Bảng “CHAM_CONG”
Hình: Chuẩn hóa dữ liệu của Bảng “LUONG”
Trang 15Hình: Chuẩn hóa dữ liệu của Bảng “DU_AN”
Hình: Chuẩn hóa dữ liệu của Bảng “THAN_NHAN”
Hình: Chuẩn hóa dữ liệu của Bảng “THUC_HIEN”
Trang 16Hình: Chuẩn hóa dữ liệu của Bảng “QUAN_LY”
Trang 175 Bảng LUONG
6 Bảng DU_AN
7 Bảng THAN_NHAN
Trang 19π MA_NV, HOTEN_NV ( ϭ GIOI_TINH=’Nữ’ and GKSK=’ Có ’(NHAN_VIEN))
2 Cho biết danh sách dự án ngân sách lớn hơn 30000000
π MA_DA, TEN_DA, NGAN_SACH ( ϭ NGAN_SACH >30000000 ( DU_AN)
3 Cho biết danh sách nhân viên có tuổi từ 20 đến 30
π MA_NV, HOTEN_NV, year(NGAY_SINH)( ϭ year(NGAY_SINH) > 20 and year(getDate())-year(NGAY_SINH) < 30
year(getDate())-( NHAN_VIEN)
b) Phép chiếu
1 Cho biết danh sách nhân viên
π MA_NV, HOTEN_NV, GIOI_TINH ,NGAY_SINH, DIA_CHI, CCCD,SDT ( NHAN_VIEN)
2 Cho biết danh sách dự án
π MA_DA, TEN_DA, NGAN_SACH ( DU_AN)
3.Cho biết danh sách thân nhân
π MA_NV, HOTEN_TN,QUAN_HE, NGSINH_TN ( THAN_NHAN)
c) Phép giao
1 Cho biết danh sách nhân viên có nghỉ phép
π MA_NV, HOTEN_NV(NHAN_VIEN) ∩ π MA_NV,
3 Cho biết danh sách nhân viên có tham gia dự án bất kỳ
π MA_NV, HOTEN_NV (NHAN_VIEN) ∩ π MA_NV (THUC_HIEN)
Trang 20d) Phép hội ∪
1 Cho biết danh sách nhân viên phòng 0001 và 002
π MA_NV (ϭPHG=’0001 ’ (NHAN_VIEN) ∪ π PHG=’0002 ’( NHAN_VIEN )
2 Cho biết danh sách dự án do phòng Tài Chính và phòng Kế hoạch quản lý
π MA_DA (ϭ MA_PB =’0002 ’ (QUAN_LY) ∪ π MA_PB=’0003’ ( QUAN_LY)
3 Cho biết danh sách nhân viên vừa thực hiện dự án D001 hoặc thực hiện dự án D022
π MA_NV (ϭ MA_DA=’D001 ’ (THUC_HIEN) ∪ π MA_DA=’ D002’
( THUC_HIEN )
e) Phép trừ
1 Nhân viên không tham gia dự án
πMA_NV, HOTEN_NV, GIOI_TINH ( NHAN_VIEN \ THUC_HIEN)
2 Danh sách nhân viên không có thân nhân
πMA_NV, HOTEN_NV, GIOI_TINH ( NHAN_VIEN \ THAN_NHAN)
3 Danh sách nhân viên chưa nghỉ phép
πMA_NV, HOTEN_NV, GIOI_TINH ( NHAN_VIEN \ CHAM_CONG)
f) Phép tích Đề-các
1 Cho biết Thông tin trưởng phòng ban
πMA_NV, HOTEN_NV,TEN_PB (ϭMA_TPB=MA_NV ( PHONG_BAN x NHAN_VIEN)
2 Cho biết Danh sách nhân viên phòng Tài chính
πMA_NV, HOTEN_NV,GIOI_TINH,TEN_PB (ϭPHG=MA_PB and TEN_PB=’Tài Chính’
(PHONG_BAN x NHAN_VIEN)
3 Cho biết Danh sách nhân viên có hợp đồng lao động
πMA_NV, HOTEN_NV,,GIOI_TINH,SO_HD, LOAI_HD (ϭhd.MA_NV=nv.MA_NV ( HOP_DONG x NHAN_VIEN)
g) Phép kết nối
1 Cho biết danh sách nhân viên nhân lương
πMA_NV, HOTEN_NV, LUONG (NHAN_VIEN |><| nv.MA_NV=tn.MA_NVLUONG)
2 Cho biết danh sách nhân viên có hoặc không có thân nhân
Trang 21πMA_NV, HOTEN_NV, HOTEN_TN, QUAN_HE ( NHAN_VIEN |>< nv.MA_NV=tn.MA_NV
THAN_NHAN)
3 Danh sách nhân viên phòng Tài chính
πMA_NV, HOTEN_NV,GIOI_TINH, TEN_PB (ϭ TEN_PB= ‘Tài Chính’(NHAN_VIEN |><|
nv.PHG=pb.MA_NV PHONG_BAN))
CHƯƠNG 4: THỰC HIỆN TRÊN MICROSOFT SQL SERVER
I Lệnh mô tả dữ liệu
a Tạo database & các table
File code data: Link
Trang 23II Lệnh thao tác dữ liệu
Trang 26III Lệnh truy vấn dữ liệu
a Truy vấn một bảng
Kết quả
Kết quả:
Kết quả:
Trang 28Kết quả
Kết quả
d Truy vấn tính toán
Kết quả
Trang 29Kết quả
Kết quả
Trang 30e Truy vấn gom nhóm
Kết quả
Kết quả
Kết quả
Trang 31f Truy vấn gom nhóm có điều kiện
Trang 32Kết quả:
Kết quả:
Trang 34V Trigger ràng buộc dữ liệu cho các bảng
Trang 36VI Phân quyền
VII Sao lưu dữ liệu
-Hết-