Biều đồ 3.3 So sánh thời gian thực hiện truy vấn 3
3.2. Bài toán quản lý nhân sự
Nhân sự là một yếu tố quan trọng quyết định đến sự họat động tồn tại của bất kì một cơ quan, một tổ chức hay doanh nghiệp. Vì thế bài toán quản lí nhân sự là một bài toán quan trọng mà các cơ quan, tổ chức đều đề cập đến bởi nó quyết định đến sự họat động có hiệu quả hay không của cơ quan, tổ chức đó. Giải quyết bài toán quản lý nhân sự trong công ty, giúp công ty sẽ có kế hoạch cho sự hoạt động và phát triển.
Phân tích bài toán:
Trong vấn đề quản lí nhân sự cần có những ngƣời đóng vai trò là ngƣời quản lí và điều chỉnh các thông tin cần liên quan tới nhân viên. Ta có thực thể QuanLy để đƣa ra danh sách những ngƣời quản lí. Thực thể bao gồm các thuộc tính: chức vụ, phụ cấp chức vụ, phòng ban, …
Quản lí nhân sự là ta cần quản lí các vấn đề liên quan tới các thông tin cần thiết của nhân viên. Ta có thực thể NhanSu để đƣa ra các thông tin liên quan tới nhân viên.Thực thể này bao gồm các thuộc tính: mã nhân sự, họ tên, giới tính, địa chỉ, ngày sinh, số năm công tác, hệ số lƣơng, lƣơng cơ bản, …
Để quản lí nhân sự một cách tốt nhất ta cần có thêm việc quản lí về công tác của nhân viên đó tại công ty. Ta đƣa ra thực thể NhanVien. Thực thể này xác định các vấn đề về thuộc phòng, chức vụ, trình độ, và có tham gia các dự án của công ty… . Thực thể bao gồm các thuộc tính: mã nhân sự, họ tên, giới tính, địa chỉ, phòng ban, dự án, ngƣời quản lý
Ta cần biết rõ xem nhân viên đó thuộc phòng ban nào? Do vậy ta đƣa ra thực thể PhongBan để tra cứu tìm hiểu về phòng mà nhân viên đó công tác. Thực thể PhongBan bao gồm các thuộc tính: mã phòng, tên phòng, số nhân viên,…
Để biết đƣợc công ty đang quản lý có tham gia những dự án nào? Do đó, ta đƣa thực thể DuAn để quản lý các dự án của công ty. Thực thể bao gồm các thuộc tính: mã dự án, tên dự án, số nhân viên tham gia dự án, chi phí cho dự án,…
Yêu cầu của bài toán.
- Cập nhật hồ sơ của nhân viên. Khi tuyển nhân viên vào cần phải cập nhật về sơ yếu lí lịch của nhân viên.
- Cập nhật về quá trình công tác. Khi một cán bộ đƣợc tăng lƣơng hay thăng chức hoặc đi học thì thông tin cần đƣợc cập nhật.
- Quản lí các vấn đề của nhân viên: quản lí tiền lƣơng, quản lí chức vụ, quản lí trình độ, quản lí về công tác của nhân viên, quản lí sơ yếu lí lịch.
- Tìm kiếm và tra cứu thông tin về một đối tƣợng theo một cơ sở hay tiêu chí nào đó.
- Phân tích và báo cáo về nhân sự. Đƣa ra các thông tin về sự thay đổi nhân sự trong đơn vị. VD: nghỉ hƣu, chuyển công tác…
Các vấn đề trên sẽ đƣợc đƣa vào chuyên sâu khi chúng ta làm về bài toán Quản lý nhân sƣ. Còn trong phạm vi luận văn của tôi chỉ nghiên cứu về vấn đề tối ƣu hóa truy vấn, nên trong bài toán quản lý nhân sự chỉ tập trung vào mục tìm kiếm và tra cứu thông tin về một đối tƣợng theo một cơ sở hay tiêu chí nào đó. Và ta tiến hành xử lý các câu truy vấn đó tối ƣu hơn.
Lƣợc đồ cơ sở dữ liệu hƣớng đối tƣợng:
+manhansu : string +hoten : string +gioitinh : string +diachi : string +ngaysinh : string +soNCT : int +luongcoban : float NhanSu +nql : QuanLy +phongban : PhongBan +duan : DuAn NhanVien +maphongban : string +tenphongban : string +truongphong : QuanLy +soNV : int PhongBan +maduan : string +tenduan : string +phong : PhongBan +soNV : int +kinhphi : float DuAn +chucvu : string +PCCV : float +phongban : PhongBan +ngayBD : string +ngayKT : string QuanLy
Mô hình hƣớng đối tƣợng:
publicclassNhanSu
{ string _MaNhanSu; string _HoTen; string _GioiTinh; string _SoDT; string _DiaChi; DateTime _NgaySinh; int _SoNCT; double _HeSo; double _LuongCB; public NhanSu() { } }
publicclassNhanVien : NhanSu
{
string _nql; string _Du_An; string _Phong_Ban;
public NhanVien(string nql, string duan, string phongban)
: base(ma, hoten, gioitinh, sodt, diachi, ngaysinh, soNCT, heso, luongcb) { _nql = nql; _ Du_An = duan; _Phong_Ban = phongban; } }
publicclassQuanLy : NhanSu
{
string _Chucvu; double_Phucap; string _Phong;
public QuanLy(string chucvu, doublephucap, string phong)
: base(ma, hoten, gioitinh, sodt, diachi, ngaysinh, soNCT, heso, luongcb) {
_Chucvu = chucvu; _ Phucap = phucap;
_Phong = phong; }
}
publicclassPhongBan
{
string _MaPhongBan; string _TenPhongBan; string _Truongphong; int _SoNV;
public PhongBan(string maPhongBan, string tenPhongBan, string truongphong,
int soNV) { _MaPhongBan = maPhongBan; _TenPhongBan = tenPhongBan; _Truongphong = truongphong; _SoNV = soNV } }
publicclassDuAn
{ double _KinhPhi; string _Phong_Ban; string _MaDuAn; string _TenDuAn; DateTime _NgayBatDau; DateTime _NgayKetThuc; int _SoNguoiThamGia;
publicint SoNguoiThamGia {
get { return _SoNguoiThamGia; } set { _SoNguoiThamGia = value; } }
}