You are on page 1of 36

ĐẠ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


LỜ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 Thanh
Nhã. 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àn
thà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ông
trá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ững
gó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 sau
nà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ôn
nhiề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!


MỤ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
CHƯƠ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ợp
tạ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 duy
nhấ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ân
sá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ân
viê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ông
tin 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ập
nhậ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 hay
chư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
Chú thích: Màu đỏ: Khoá chính

Màu vàng: Khoá ngoại

1. Bảng NHAN_VIEN

STT Thuộc tính Kiểu dữ liệu Diễn giải

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 HOTEN_NV NVARCHAR Họ và tên nhân viên là chuỗi ký tự có dấu,


(100) 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ùng
nhau.

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.

5 DIA_CHI NVARCHAR Địa chỉ là chuỗi ký tự có dấu, giới hạn ở


(200) 200 ký tự và có thể trùng nhau.

6 SDT VARCHAR (10) Số điện thoại là chuỗi ký tự được nhập


bằng số, với đủ số lượng là 10 ký tự số. Số
điện thoại không 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 ở


(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

STT Thuộc tính Kiểu dữ liệu Diễn giải

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

3. Bảng PHONG_BAN (Phòng ban)

ST Thuộc tính Kiểu dữ liệu Diễn giải


T
1 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

STT Thuộc tính Kiểu dữ liệu Diễn giải

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)

STT Thuộc tính Kiểu dữ liệu Diễn giải

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
là 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)

STT Thuộc tính Kiểu dữ liệu Diễn giải

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)

STT Thuộc tính Kiểu dữ liệu Diễn giải

1 MA_NV VARCHAR Mã nhân viên là chuỗi ký tự bắt buộc


(6) đủ 6 ký tự. Mỗi mã nhân viên là duy
nhất.

2 HOTEN_TN NVARCHAR Họ và tên thân nhân là chuỗi ký tự có


(100) dấu, giới hạn ở 100 ký tự. Họ tên thân
nhân có thể trùng nhau

3 GT_TN NVARCHAR Giới tính thân nhân được ràng buộc


(3) trong 2 lựa chọn là “Nam” hoặc “Nữ”.
Giới tính có thể trùng nhau.

4 NGSINH_TN NVARCHAR Ngày sinh được nhập theo định dạng


(30) dd/mm/yy. Ngày sinh có thể trùng nhau

5 QUAN_HE NVARCHAR Quan hệ (giữa nhân viên và thân nhân)


(30) 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

STT Thuộc tính Kiểu dữ liệu Diễn giải

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

STT Thuộc tính Kiểu dữ liệu Diễn giải


1 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 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ẢN


LÝ.

6. NHAN_VIEN và DU_AN có quan hệ (n,n) và mối quan hệ giữa chúng là THỰC


HIỆN.

7. PHONG_BAN và DU_AN có quan hệ (n,n) và mối quan hệ giữa chúng là QUẢN


LÝ.

8. NHAN_VIEN và THAN_NHAN có quan hệ (1,n) và mối quan hệ giữa chúng là


CÓ.
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

Hình: Mô hình thực thể kết hợp ER


II. Mô hình ERD
Hình: Mô hình ERD
III. Mô hình quan hệ

IV. Chuẩn hóa dữ liệu


Hì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”


Hì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”


Hì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”


Hình: Chuẩn hóa dữ liệu của Bảng “QUAN_LY”

a. Dữ liệu các Bảng


1. Bảng NHAN_VIEN

2. Bảng PHONG_BAN

3. Bảng HOP_DONG

4. Bảng CHAM_CONG
5. Bảng LUONG

6. Bảng DU_AN

7. Bảng THAN_NHAN
8. Bảng THUC_HIEN

9. Bảng QUAN_LY

CHƯƠNG 3: PHÉP TOÁN ĐẠI SỐ QUAN HỆ


a) Phép chọn
1. Cho biết danh sách nhân viên có giấy khám sức khỏe
π 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(getDate())-year(NGAY_SINH)( ϭ year(getDate())-
year(NGAY_SINH) > 20 and year(getDate())-year(NGAY_SINH) < 30
( 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,
HOTEN_NV(CHAM_CONG)

2. Cho biết danh sách nhân viên vừa làm dự án có mã D001 vừa làm dự án có mã
D012
π MA_NV, HOTEN_NV (ϭMA_DA= ‘D001’
(THUC_HIEN))∩πMA_NV,HOTEN_NV(ϭMA_DA= ‘D012’(THUC_HIEN))

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)
d) 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
π 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
II. Lệnh thao tác dữ liệu
III. 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ả:
b. Truy vấn nhiều bảng

Kết quả:

Kết quả

Kết quả

c. Truy vấn có điều kiện

Kết quả
Kết quả

Kết quả

d. Truy vấn tính toán

Kết quả
Kết quả

Kết quả
e. Truy vấn gom nhóm

Kết quả

Kết quả

Kết quả
f. Truy vấn gom nhóm có điều kiện

Kết quả:

Kết quả:

Kết quả:

g. Truy vấn sử dụng phép giao, hội, trừ


Kết quả:

Kết quả:
Kết quả:

h. Truy vấn con

Kết quả:

i. Truy vấn chéo

IV. Store procedure & function


V. Trigger ràng buộc dữ liệu cho các bảng
VI. Phân quyền

VII. Sao lưu dữ liệu

-Hết-

You might also like