Có các cấp chuẩn hoá dữ liệu sau:
a.Chuẩn hoá dữ liệu cấp 1 (1NF) : Quan hệ R đ−ợc gọi ở dạng chuẩn 1NF khi và chỉ khi toàn bộ các quan hệ có mặt trong R đều chỉ chứa các giá trị nguyên tố.
b.Chuẩn hoá dữ liệu cấp 2 (2NF) : Quan hệ R đ−ợc gọi là ở dạng chuẩn 2NF khi và chỉ khi nó đã ở dạng chuẩn 1NF và mọi thuộc tính không khoá đều phụ thuộc hàm đầy đủ vào khoá chính.
c.Chuẩn hoá dữ liệu cấp 3 (3NF) : Quan hệ R đ−ợc gọi ở dạng chuẩn 3NF khi và chỉ khi nó đã ở dạng chuẩn 2NF và các thuộc tính không khoá của R không phụ thuộc hàm bắc cầu vào khoá chính.
d.Chuẩn hoá dữ liệu cấp 4 (4NF) : Quan hệ R đ−ợc gọi ở dạng chuẩn 4NF khi và chỉ khi tại mọi thời điểm mỗi bộ R gồm khoá chính (dùng để nhận dạng duy nhất các bộ trong mỗi quan hệ ) cùng một tập các giá trị của các thuộc tính độc lập lẫn nhau để mô tả thực thể.
3.1.1.4 Quan hệ tổng quát trong hệ thống quản lý Nhân sự - L−ơng
Từ các bảng biểu đã có, loại bỏ các thuộc tính trùng lặp ta có quan hệ tổng quát nh− sau:
Các quan hệ tổng quát (đã chuẩn hóa và ch−a chuẩn hoá)
Các quan hệ đã chuẩn hoá 1NF Các quan hệ đã chuẩn hoá 2NF
Các quan hệ đã chuẩn hoá 3NF
Giải thích:
Đây là một phần của cách tiếp tận quan hệ của hệ thống, qua việc xây dựng mô hình dữ liệu quan hệ ng−ời ta tiếp cận với việc phân tích dữ liệu cho hệ thống. Ta đề cập hai vấn đề:
- Xác định các thuộc tính.
- Chuẩn hoá các dữ liệu.
• Xác định các thuộc tính:
Để phân tích dữ liệu cho hệ thống cần dựa vào ba nguồn cung cấp cơ bản để lấy đ−ợc chi tiết về những thuộc tính của các thực thể trong hệ thống:
- Từ tri thức của chính bản thân mình về thực tế công việc chung trong lĩnh vực mình đang nghiên cứu mà dự đoán các thuộc tính trong một thực thể.
- Từ những ng−ời tiếp xúc, phỏng vấn.
- Từ việc xem xét các bảng biểu, tài liệu liên quan đến lĩnh vực đang nghiên cứu.
• Chuẩn hoá dữ liệu:
Chuẩn hoá là quá trình phân tích chuyển hoá các thực thể thành một dạng mà tối thiểu việc lặp lại, không d− thừa nh−ng dữ liệu vẫn đầy đủ.
Có ba dạng chuẩn hoá dữ liệu:
Quy tắc chuẩn hoá 1:
Bảng không đ−ợc chứa những thuộc tính có thể xuất hiện nhiều lần. Giải pháp: Loại bỏ những thuộc tính lặp lại vào một bảng khác cùng với những thuộc tính khoá trong kiểu thực thể chứng kiến mà thuộc tính này lặp lại.
Quy tắc chuẩn hoá 2:
Giải pháp: Loại bỏ những thuộc tính không phụ thuộc hàm vào toàn bộ khoá vào một bảng khác cùng với những thuộc tính thành phần của khoá mà đã phụ thuộc vào.
Quy tắc chuẩn hoá 3:
Mỗi thuộc tính chỉ phụ thuộc hàm vào toàn bộ khoá mà không phụ thuộc hàm vào bất cứ thuộc tính nào khác trong bảng.
Giải pháp: Loại bỏ những thuộc tính không khoá vào một bảng khác cùng những thuộc tính mà nó phụ thuộc vào.
Từ những khái niệm trên và những mẫu biểu liên quan đến hệ thống ta tiến hành chuẩn hoá dữ liệu cho hệ thống. Các thực thể đ−ợc chuẩn hoá có cấu trúc nh− sau:
3.1.1.5 Chuẩn hóa dữ liệu hệ thống
Xem xét các phụ thuộc hàm của các tr−ờng dữ liệu trong hình 3.1 và tiến hành chuẩn hóa ta thu đ−ợc các bảng dữ liệu quan hệ sau:
StaffCode* StaffName IdentityCard Sex Birthday PlaceOfBirth NativeCountry Resident Phone Mobile JoinDate Image MANHANVIEN * HOTEN SOCMTND GIOITINH NGAYSINH NOISINH NGUYENQUAN TRUQUAN SODIENTHOAI SODIDONG NGAYVAOCONGTY ANHNHANVIEN NHANVIEN(Stf_Staff) Tờn tiếng Anh Tờn tiếng Việt Hình 3. 2 Bảng Nhân viên CardNumber Ondate StaffCode * SOTHETU NGAYSUDUNGTHE MANHANVIEN * THE TU(Stf_Staff_Card) Tờn tiếng Việt Tờn tiếng Anh Hình 3. 3 Bảng Thẻ từ
Hình 3. 5 Bảng thời gian vắng mặt của nhân viên InsuranceIDCode* StaffValue CompanyValue Note MABAOHIEM * GIATRI(%)NHANVIENPHAIDONG GIATRI(%)CONGTYPHAIDONG GHICHULOAIBAOHIEM BAOHIEM(Sal_Insurance) Tờn tiếng Anh Tờn tiếng Việt
Hình 3. 6 Bảng các loại bảo hiểm
InsuranceID* StaffID Ontime Account MABAOHIEM * MANHANVIEN * THOIGIANBATDAUDONGBAOHI EM SOSOBAOHIEM CHEDOBAOHIEMNHANVIEN(Stf_StaffInsurance) Tờn tiếng Anh Tờn tiếng Việt
Hình 3. 8 Bảng chi tiết bảo hiểm của nhân viên
Hình 3. 9 Bảng ngày nghỉ lễ
Hình 3. 11 Bảng thời gian vào ra của nhân viên
Hình 3. 12 Bảng thời gian quẹt thẻ của nhân viên
Hình 3. 13 Bảng tiền l−ơng đ−ợc cộng thêm
Hình 3. 15 Bảng tiền l−ơng thực lĩnh StaffID* StaffTimelineID BeginDate BasicSalaryID Coefficient CompanyID DepartmentID GroupID MANHANVIEN * TRANGTHAINHANVIEN NGAYBATDAULAMVIEC LUONGCOBAN HESOLUONG MACONGTY MAPHONGBAN MANHOMNHANVIEN TRANGTHAINHANVIEN(Stf_StaffTimeline) Tờn tiếng Anh Tờn tiếng Việt
Hình 3. 16 Bảng trạng thái nhân viên
3.1.2 Xây dựng các bảng dữ liệu cho hệ thống
3.1.3.1Nhóm bảng dữ liệu Quản trị hệ thống
1 Cfg_UserState
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StateID int PK Y Y Identity của bảng
2 StateName nvarchar UK Y Tên trạng thái
4 CreatedByUserID bigint FK Ng−ời khởi tạo
5 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về trạng thái ng−ời dùng.
- Trong ch−ơng trình mặc định có các trạng thái sau: i. 1: Active - Ng−ời dùng đang hoạt động. ii. 2: Lock - Ng−ời dùng bị khoá.
iii. 3: UnActive - Ng−ời dùng không hoạt động.
2 Cfg_User.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 UserID bigint PK Y Y Identity của bảng
2 UserName nvarchar UK Y Tên ng−ời dùng
3 FullName nvarchar Họ tên đầy đủ của
ng−ời dùng
4 Password nvarchar Y Mật khẩu
5 StateID int FK Y Xác định trạng thái
ng−ời dùng
6 CreatedByUserID bigint FK Ng−ời khởi tạo
7 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về thông tin ng−ời sử dụng ch−ơng trình.
- Trong ch−ơng trình mặc định có các ng−ời dùng sau:
i. 1: admin - Ng−ời dùng quản trị, có quyền cao nhất, có quyền truy cập vào mọi chức năng trong hệ thống.
3 Cfg_Group.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 GroupID int PK Y Y Identity của bảng
2 GroupName nvarchar UK Y Tên nhóm ng−ời dùng
3 Note nvarchar Ghi chú
4 CreatedByUserID bigint FK Ng−ời khởi tạo
5 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về nhóm ng−ời dùng.
- Trong ch−ơng trình mặc định có các nhóm ng−ời dùng sau: i. 1: Administrators – Nhóm ng−ời dùng quản trị. ii. 2: Guests – Nhóm ng−ời dùng khách.
iii. 3: Power – Nhóm ng−ời dùng có các chức năng đặc biệt.
4 Cfg_Group_User.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 GroupUserID bigint PK Y Y Identity của bảng
2 GroupID int FK Y Xác định nhóm ng−ời
dùng
3 UserID bigint FK Y Xác định ng−ời dùng
- Chứa dữ liệu về ng−ời dùng trong nhóm, giúp quản lý ng−ời dùng theo nhóm.
5 Cfg_NodeType.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 NodeTypeID int PK Y Y Identity của bảng
2 NodeTypeName nvarchar UK Y Tên kiểu chức năng
3 Note nvarchar Ghi chú
4 CreatedByUserID bigint FK Ng−ời khởi tạo
5 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về kiểu chức năng, giúp cho việc định nghĩa chức năng trong ch−ơng trình.
- Trong ch−ơng trình mặc định có các kiểu chức năng sau: i. 1: Sub menu – Nhóm chức năng (group of functions) ii. 2: Function - Chức năng cụ thể
6 Cfg_Node.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 NodeID bigint PK Y Y Identity của bảng
2 NodeName nvarchar UK Y Tên chức năng
3 NodeTypeID int FK Y Kiểu chức năng
4 ParentNodeID bigint FK Thuộc nhóm chức
năng
5 NodeIndex int Thứ tự (trên menu)
của chức năng
6 URL nvarchar Địa chỉ internet tham
7 ContentURL nvarchar Mô tả nội dung chức năng
8 CreatedByUserID bigint FK Ng−ời khởi tạo
9 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về các chức năng trong ch−ơng trình.
7 Cfg_Group_Node
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 GroupNodeID bigint PK Y Y Identity của bảng
2 NodeID bigint FK Y Xác định chức năng
3 GroupID int FK Y Xác định nhóm ng−ời
dùng
- Chứa dữ liệu về quyền truy cập các chức năng theo nhóm ng−ời dùng, giúp cho việc phân quyền cho nhóm ng−ời dùng.
3.1.3.2 Nhóm bảng dữ liệu Thông tin nhân viên
1 Stf_Staff
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
1 StaffID bigint PK Y Y Identity của bảng
2 StaffCode nvarchar UK Y Mã nhân viên
3 StaffName nvarchar Họ và tên nhân viên
4 IdentityCard nvarchar Số chứng minh th−
nhân dân
5 Sex bit Giới tính
6 Birthday datetime Ngày sinh
7 PlaceOfBirth nvarchar Nơi sinh
8 NativeCountry nvarchar Nguyên quán
9 Resident nvarchar Trú quán
10 Phone nvarchar Số điện thoại
11 Mobi nvarchar Số điện thoại di động
12 JoinDate datetime Ngày vào công ty
13 Image image ảnh nhân viên
14 Details ntext Thông tin chi tiết
15 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu thông tin nhân viên.
2 Stf_StaffState.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffStateID smallint PK Y Y Identity của bảng
2 StaffStateCode nvarchar UK Y Tên trạng thái
3 Note nvarchar Ghi chú
- Trong ch−ơng trình mặc định có các trạng thái sau: i. 0: All - Tất cả các trạng thái
ii. 1: Work - Đang làm việc ở công ty iii. 2: Out - Không còn làm việc ở công ty iv. 3: Pause - Tạm nghỉ
3 Stf_StaffTimeline.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffTimelineID int PK Y Y Identity của bảng
2 StaffID bigint FK Y Xác định nhân viên
3 StaffStateID smallint FK Y Xác định trạng thái
nhân viên
4 IsActivate bit Y Trạng thái sử dụng
hiện tại của nhân viên trong ch−ơng trình: + 0: Không sử dụng + 1: Vẫn đang sử dụng
5 BeginDate datetime Ngày bắt đầu (đối
trạng thái của nhân viên)
6 BasicSalaryID smallint FK Xác định mức l−ơng
cơ bản nhân viên đ−ợc nhận
7 Coefficient float Hệ số l−ơng
8 CompanyID int FK Xác định công ty của
9 DepartmentID int FK Xác định phòng ban nhân viên đang công tác
10 GroupID int FK Xác định nhóm của
nhân viên
11 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu nhân viên theo thời gian, giúp cho việc xác định đ−ợc thông tin về quá trình làm việc của nhân viên trong công ty.
3.1.3.3 Nhóm bảng dữ liệu Quản lý nhân sự - Tiền l−ơng
1 Stf_Staff_Card
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 CardNumber nvarchar Y Số thẻ từ
3 OnDate datetime Y Ngày bắt đầu sử dụng
thẻ từ
4 IsActivate bit Y Trạng thái sử dụng
thẻ từ hiện tại của nhân viên trong ch−ơng trình:
+ 0: Không sử dụng + 1: Vẫn đang sử dụng
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 Day datetime PK Y Ngày
2 DayTypeID smallint FK Y Xác định kiểu ngày
3 FromTime datetime Từ thời gian
4 ToTime datetime Đến thời gian
5 IsDeleted bit Trạng thái xoá
- Chứa dữ liệu về thông tin các ngày nghỉ, ngày lễ, ngày tết, giúp cho việc thiết lập lịch làm việc của công ty.
3 Stf_Attendance.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 OnTime datetime Y Thời gian quẹt thẻ
- Chứa dữ liệu quẹt thẻ từ của nhân viên.
4 Stf_StaffAttendance.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 OnTime datetime Y Ngày
3 CI datetime Y Thời gian vào (thời
việc)
4 CO datetime Y Thời gian ra (thời
gian kết thúc công việc)
- Chứa dữ liệu về thời gian vào ra của nhân viên viên trong ngày. Dữ liệu này đ−ợc thống kê lại từ bảng Stf_Attendance.
5 Stf_StaffAbsentation.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 OnTime datetime Y Ngày nghỉ làm việc
- Chứa dữ liệu ngày nghỉ làm việc của nhân viên.
6 Stf_StaffInsurance.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
bắt đầu đóng bảo hiểm
4 Account Số sổ bảo hiểm
5 IsActivate bit Trạng thái sử dụng
chế độ bảo hiểm hiện tại của nhân viên trong ch−ơng trình: + 0: Không sử dụng + 1: Vẫn đang sử dụng
- Chứa dữ liệu về chế độ bảo hiểm của nhân viên.
7 Stf_StaffInsuranceDetails.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 InsuranceID smallint FK Y Xác định loại bảo
hiểm
3 OnTime datetime Y Thời gian đóng bảo
hiểm (tháng)
4 Value float Số tiền đóng
- Chứa dữ liệu về thông tin chi tiết chế độ bảo hiểm của nhân viên.
8 Wag_AddWage.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
2 OnTime datetime Y Thời gian (tháng)
3 Value float Số tiền
4 Note nvarchar Ghi chú
- Chứa dữ liệu về các khoản thu nhập thêm đ−ợc cộng vào l−ơng (làm thêm giờ ...)
9 Wag_DockWage.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự tăng
Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 OnTime datetime Y Thời gian (tháng)
3 Value float Số tiền
4 Note nvarchar Ghi chú
- Chứa dữ liệu về các khoản nhân viên bị trừ tiền l−ơng (nghỉ làm ...)
10 Wag_Wage.
STT Tên tr−ờng Kiểu dữ liệu Khoá Bắt buộc
Tự
tăng Mô tả
1 StaffID bigint FK Y Xác định nhân viên
2 OnTime datetime Y Thời gian (tháng)
3 Wage float Số tiền
- Chứa dữ liệu về thông tin tiền nhân viên thực lĩnh.
3.1.3 Mô hình thực thê liên kết - ERD
• Một quan hệ tồn tại giữa hai thực thể khác nhau thuộc hai bảng khác nhau nếu cần phải giữ thông tin trong thực thể này về thực thể kia.
• Trong quan hệ Một - Nhiều, thực thể giữ thông tin kết nối theo định nghĩa là ở đầu nhiều.
Các quan hệ gián tiếp (Nhiều - Nhiều) đ−ợc bỏ qua.
Thông qua việc xác định các thực thể, quan hệ các thực thể ta xây dựng đ−ợc mô hình dữ liệu ban đầu của hệ thống nh− sau:
3.2 Thiết kế giao diện
Giao diện chính của ch−ơng trình bao gồm các module sau đây: 1 Module Hệ thống
2 Module Danh mục 3 Module Cơ cấu tổ chức 4 Module Quản lý nhân viên 5 Module Quản lý chấm công 6 Module Quản lý thu nhập
3.3 Thiết kế đầu vào
3.3.1 Module Quản lý nhân viên
- Module Quản lý nhân viên: Nhằm quản lý thông tin nhân viên, thiết lập lịch làm việc cho nhân viên, quản lý công tác của nhân viên. Ngoài ra còn có chức năng nhập số liệu sẵn có từ Excel.
- Các form của module Quản lý nhân viên:
Hình 3. 19 Form Quản lý thông tin nhân viên Form Nhập thông tin nhân viên từ Excel
3.3.2 Module Quản lý chấm công
- Module Quản lý chấm công: Lấy dữ liệu chấm công từ các file sẵn có, xử lý dữ liệu chấm công, sau đó đ−a ra kết quả về thông tin làm việc và thu nhập l−ơng của nhân viên.
- Các form của module Quản lý chấm công
Form Nhập dữ liệu chấm công từ file