企业员工考勤管理子系统
企業員工考勤管理子系統
一.需求分析
1.系統背景分析
現在不論哪個企業,都要進行考勤,一些企業在考勤管理方面用了大量的人力和財力,不說準確度和可信度如何,其效率很低,而且容易出錯,不利于管理。所以人工考勤已經很難再滿足企業規范化管理的要求,隨著數據庫技術的發展和企業信息化建設的進行,使用計算機管理考勤成為一種主流趨勢,它不僅為企業減少了人力財力的付出,而且也大大減輕了考勤工作人員的工作量。
本文系統的闡述了企業考勤管理設計開發的全過程。包括系統需求調查分析,概念結構設計,邏輯結構設計等部分。
?
2.數據流程圖:
?
????????????????????????????????????????????記錄出差情況
???????????????????出差數據 ??????????????????????????????????????????????????????????統
????????基本信息 ????請假數據 ????????????????????記錄請假情況 ?????????????????????統 ?計
???????????????????加班數據 ????????????????????記錄加班情況 ??????????????????????計 ?出
???????????????????出勤數據 ??????????????????????????????????????????????????統 ??請 ?差
當前工作 ??????????????????????????????????????????記錄出勤情況 ?????????????????計 ??假 ?記
?????????員工新工作 ???????????????????????????????????????????????????????????加 ??記 ?錄
?????????????????更新后的部門信息 ???????已分 ????????????????????????????????班 ??錄
??????????????????????????????????????配好???????????????????????????記錄
員工信息 ????部門基本信息 ?????????????????的工資 ???????????????統計出勤記錄
?
??????????????????????????????????????????????????????????????????????已統計信息
?
?
??????????????????????????????????????????????????????????????調整
????????????????????????????????????????工資記錄
??????????????????????????????????????????????結算
?
?
?
3.數據字典:
(1),數據項描述
| 編號 | 數據項名稱 | 別名 | 數據類型 | 長度 | 說明部分 |
| 1 | 員工編號 | yno | bigint | 10 | 前五位為部門編號,后五位為順序編號 |
| 2 | 員工姓名 | yname | nchar | 10 | 登記信息,查詢直接、方便 |
| 3 | 員工性別 | ysex | nchar | 5 | 性別是區分員工的一個大致范圍 |
| 4 | 出生日期 | birth | nchar | 15 | 可以得出員工的工齡 |
| 5 | 部門編號 | bno | bigint | 5 | 劃分不同的部門 |
| 6 | 職務 | duty | nchar | 20 | 對應不同的部門,區分員工 |
| 7 | 部門名稱 | bname | nchar | 20 | 參照部門編號 |
| ? | 部門經理職工號 | bmanagerno | ? | ? | 參照員工編號 |
| 8 | 日期 | time | nchar | 15 | 記載發生變化的時期 |
| ? | 出勤編號 | workno | bigint | 20 | 前八位為當天日期,中間兩位設為00,后十位為員工編號 |
| 9 | 上班時間 | ondutytime | nchar | 10 | 上班時間為8:00 |
| 10 | 下班時間 | offdutytime | nchar | 10 | 下班時間為17:30 |
| ? | 加班編號 | overtimeno | bigint | 20 | 前八位為當天日期,中間兩位設為11,后十位為員工編號 |
| 11 | 加班時間長度 | overtimelength | int | 5 | 清楚加班了多長時間 |
| 12 | 加班費 | overtimefee | int | 5 | 根據加班時間來算加班費,一小時20元來計算。 |
| ? | 出差編號 | travelno | bigint | 20 | 前八位為當天日期,中間兩位設為22,后十位為員工編號 |
| 13 | 出差起始時間 | tstarttime | nchar | 10 | 記載出差時間長度 |
| 14 | 出差結束時間 | tendtime | nchar | 10 | 記載出差時間長度 |
| 15 | 出差過程描述 | process | nchar | 25 | 具體描述出差路程及相關信息 |
| 16 | 出差補助 | allowance | int | 5 | 根據出差描述來給予相應的補助,要據路程、時間及住宿來判斷,根據發票來報銷費用 |
| ? | 請假編號 | leaveno | bigint | 20 | 前八位為當天日期,中間兩位設為33,后十位為員工編號 |
| 17 | 請假起始時間 | lstarttime | nchar | 10 | 記載請假時間長度 |
| 18 | 請假結束時間 | lendtime | nchar | 10 | 記載請假時間長度 |
| 19 | 請假原因 | reason | nchar | 25 | 說明請假原因 |
| 20 | 扣除獎金 | reducemoney | int | 5 | 由于沒有上班,當天的工資還是要照常扣除,但是若工作若出現差錯,不會擔負責任 |
| ? | 月度考勤編號 | mattendno | nchar | 20 | 前八位為當天日期,中間兩位設為44,后十位為員工編號 |
| 21 | 累計正常工作時間 | ljworktime | nchar | 10 | 算出正常工作時間,是評定基本工資的參考 |
| 22 | 累計加班時間 | ljovertime | nchar | 10 | 算出加班時間,評定獎金 |
| 23 | 累計請假時間 | ljleavetime | nchar | 10 | 算出請假時間,扣除當天的工資 |
| 24 | 累計出差時間 | ljtraveltime | nchar | 10 | 算出出差時間,并報銷出差的費用 |
| 25 | 遲到次數 | latetimes | int | 5 | 讓員工及領導清楚考勤情況 |
| 26 | 早退次數 | leavetimes | int | 5 | 讓員工及領導清楚考勤情況 |
| 27 | 曠工次數 | absenttimes | int | 5 | 讓員工及領導清楚考勤情況,并進行相應的罰款措施,曠工一次罰款50元 |
| 28 | 基本工資 | basicwage | int | 10 | 讓員工清楚基本工資 |
| 29 | 獎金 | bonus | int | 10 | 讓員工清楚獎金 |
| 30 | 實際工資 | realwage | int | 10 | 讓員工清楚實際工資 |
?
(2)數據結構描述
| 編號 | 數據結構名 | 組成屬性 |
| 1 | 員工信息 | 員工編號,員工姓名,員工性別,出生日期,職務,部門編號 |
| 2 | 部門信息 | 部門編號,部門名稱,部門經理職工號 |
| 3 | 出勤記錄 | 出勤編號,日期,上班時間,下班時間 |
| 4 | 加班記錄 | 加班編號,日期,加班時間長度,加班費 |
| 5 | 出差記錄 | 出差編號,出差起始時間,出差結束時間,出差過程描述,出差補助 |
| 6 | 請假記錄 | 請假編號,請假起始時間,請假結束時間,請假原因,扣除獎金 |
| 8 | 月度考勤統計 | 月度考勤編號,員工編號,日期,累計正常工作時間,累計加班天數,累計出差天數,累計請假天數,遲到次數,早退次數,曠工次數 |
| 9 | 工資表 | 工資編號,基本工資,獎金,實際工資 |
(3)數據流描述
| 編號 | 數據流名 | 數據流來源 | 數據流去向 |
| 1 | 基本信息 | 招新員工 | 調配工作 |
| 2 | 當前工作 | 員工 | 調配工作 |
| 19 | 已統計信息 | 統計信息 | 月度考勤信息 |
| 20 | 調整 | 月度考勤信息 | 工資評估 |
| 21 | 結算 | 工資 | 工資評估 |
| 22 | 工資記錄 | 工資 | 處理工資 |
| 23 | 已分配好的工資 | 處理工資 | 員工 |
(4)數據存儲
| 數據存儲名 | 輸入數據流 | 輸出數據流 | 說明 |
| 員工信息 | 招新的員工 | 當前工作 | ? |
| 部門信息 | 更新后的部門信息 | 部門的基本信息 | ? |
| 月度考勤統計 | 已統計的信息 | 再調整信息 | 對統計的信息進行調整 |
(5)處理過程
| 處理過程名 | 輸入數據流 | 輸出數據流 | 說明 |
| 調配工作 | 當前的工作和部門的基本信息 | 員工的新工作,更新后的部門信息 | ? |
| 導入數據 | 出差,請假,加班,出勤的數據 | 記錄出差,請假,加班,出勤的情況 | ? |
| 工資評估 | 考勤信息的調整 | 根據工資評估進行結算 | 根據相應的評估方法來算基本工資,獎金和實際工資 |
二.概念結構設計
經過調查、信息流程分析、數據收集,并結合需求分析,明確了該子系統的功能:
A.?給員工編號,登記其基本信息。
B.?給各部門編號、命名,確定其職責范圍,并任命部門經理。
C.?對員工的考勤數據進行登記,并進行月度考勤統計。
D.?對員工的月度考勤統計的結果來核算員工工資。
?
實體和屬性的聯系
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
系統基本的E-R圖
?
???????????????????????1 ??????????????????????n
?
??????????????????????????????????????????????????????????????????????????????1
????????????????????????????????????????n ??????????????n ???????????????1
??????????1
??????????????????1 ????????????????????n ??????????????n ??????????????1
???????????????????????1
????????????????????????????????????????
?????????????????????1 ?????????????????????????????????n ?????????????1
????????????????????????????????????????n ??????????
?n ???????????1 ??????1
????????????????????????????????????????n ??????????????n ?????????????1
?
?
?
??1 ??????????1
?
?
?
對E-R圖調整的準則:
現實世界中的事物能作為屬性對待的盡量作為屬性對待;
屬性和實體的劃分:屬性中不具有需要描述的信息,即屬性是不可分的數據項,不再包含其他信息。
?
實體屬性定義:
員工(員工編號、員工姓名、員工性別、出生日期、職務、部門編號);
部門(部門編號、部門名稱、部門經理職工號);
出勤記錄 (出勤編號、日期、上班時間、下班時間);
請假記錄(請假編號、請假起始時間、請假結束時間、請假原因、扣除獎金);
加班記錄(加班編號、加班時間長度、日期、加班費);
出差記錄(出差編號、出差起始時間、出差結束時間、出差描述、補助資金);
月度考勤統計(月度考勤編號、員工編號、日期、累計正常工作時間、累計請假、累計出差、累計加班、遲到次數、早退次數、曠工次數);
工資(工資編號、基本工資、獎金、實際工資);
?
具體調整如下:
1.出勤記錄,請假記錄,加班記錄,出差記錄本應作為員工的一個屬性,但是其中還涉及到相關的獎金待遇及具體描述,則單獨作為一個實體;
2.工資單獨作為一個實體,因為此處強調的是員工的出勤工資,則分開來寫。
三.邏輯結構設計
1、實體所對應的關系表:
員工表(employee)
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 員工編號 | yno | bigint | 10 | 設為主碼 |
| 員工姓名 | yname | nchar | 10 | ? |
| 員工性別 | ysex | nchar | 5 | ? |
| 出生日期 | birth | nchar | 15 | ? |
| 職務 | duty | nchar | 20 | ? |
| 部門編號 | bno | bigint | 20 | 外碼,參照部門表 |
?
部門表:(branch)
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 部門編號 | bno | bigint | 5 | 設為主碼 |
| 部門名稱 | bname | nchar | 20 | ? |
| 部門經理職工號 | bmanagerno | nchar | 5 | 外碼,參照職工表 |
?
出勤記錄表(work_register):
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 出勤編號 | workno | bigint | 20 | 設為主碼 |
| 日期 | time | nchar | 15 | ? |
| 上班時間 | ontudytime | nchar | 10 | ? |
| 下班時間 | offdutytime | nchar | 10 | ? |
?
請假記錄表:(leave_register):
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 請假編號 | leaveno | bigint | 20 | 設為主碼 |
| 請假起始時間 | lstarttime | nchar | 10 | ? |
| 請假結束時間 | lendtime | nchar | 10 | ? |
| 請假原因 | reason | nchar | 25 | ? |
| 扣除獎金 | reducemoney | int | 5 | ? |
?
加班記錄表:(overtime_register):
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 加班編號 | overtimeno | bigint | 20 | 設為主碼 |
| 加班時間長度 | overtimelength | int | 5 | ? |
| 日期 | time | nchar | 15 | ? |
| 加班費 | overtimefee | int | 5 | ? |
?
出差記錄表:(travel_register):
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 出差編號 | travelno | bigint | 20 | 設為主碼 |
| 出差起始時間 | tstarttime | nchar | 10 | ? |
| 出差結束時間 | tendtime | nchar | 10 | ? |
| 出差描述 | process | nchar | 25 | ? |
| 補助資金 | allowance | int | 5 | ? |
?
月度考勤統計表(month_attend):
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 月度考勤編號 | mattendno | ? | ? | 設為主碼 |
| 員工編號 | yno | bigint | 20 | ? |
| 日期 | time | nchar | 15 | ? |
| 累計正常工作時間 | ljworktime | nchar | 10 | ? |
| 累計請假 | ljleavetime | nchar | 10 | ? |
| 累計出差 | ljtraveltime | nchar | 10 | ? |
| 累計加班 | ljovertime | nchar | 10 | ? |
| 遲到次數 | latetimes | int | 5 | ? |
| 早退次數 | leavetimes | int | 5 | ? |
| 曠工次數 | absenttimes | int | 5 | ? |
?
工資表
| 列名 | 別名 | 類型 | 長度 | 備注 |
| 工資編號 | workno | bigint | 20 | 設為主碼 |
| 基本工資 | basicwage | int | 10 | ? |
| 獎金 | bonus | int | 10 | ? |
| 實際工資 | realwage | int | 10 | ? |
?
具體調整如下:
1).出勤記錄,請假記錄,加班記錄,出差記錄本應作為員工的一個屬性,但是其中還涉及到相關的獎金待遇及具體描述,則單獨作為一個實體;
2).工資單獨作為一個實體,因為此處強調的是員工的出勤工資,則分開來寫。
2、用戶子模式設計
考勤(員工編號、員工姓名、部門名稱、日期、累計正常工作時間、累計請假、累計出差、累計加班、遲到次數、早退次數、曠工次數);
工資(員工編號、員工姓名、部門名稱、職務、基本工資、獎金、實際工資);
因為員工對于其他情況不會經常關注,經常使用的以上各項,所以設立考勤和工資關系。
?
四、物理結構設計
1、關系模式存取方法分析:
對于該系統的各個關系最經常使用的操作就是查找,則采用B+樹作為索引:
1)、對以下經常在查詢中出現的關系的碼建立索引:
A 對員工的員工編號建立索引,使其按照員工編號的升序存放。
B 對部門的部門編號建立索引,使其按照部門編號的升序存放。
?
?????2)、由于下面幾個關系模式的更新頻率較高,系統為維護索引要付出較大的代價,因此沒有定義索引:
月度考勤統計(月度考勤編號、員工編號、日期、累計正常工作時間、累計請假、累計出差、累計加班、遲到次數、早退次數、曠工次數);
工資(工資編號、基本工資、獎金、實際工資);
?
?
2、存儲結構設計
經過分析得出本考勤管理子系統信息處理的特點是員工考勤和工資的數據不僅經常需要查詢,而且更新速度快,每月就要更新一次。
針對以上特點,設計如下:
(1)?確定數據庫的存放位置
為了提高系統性能,現根據應用情況將數據按照易變部分和穩定部分、經常存取部分和存取頻率較低的部分分別在兩個磁盤上存放。
1)、經常存取部分:員工,出勤記錄,請假記錄,加班記錄,出差記錄,月度考勤統計,工資。
2)、存取頻率較低的部分:部門
(2)?確定系統配置
此管理子系統需要的微機數量和規模都不必太大,但在系統設計時應考慮到今后的發展需求,在選擇硬件設備、服務器操作系統、數據庫時都考慮到能夠逐步的增加和擴展。
1)、硬件配置要求:
CPU:PII200以上。
內存:32MB以上。
硬盤:2.1GB以上(可用空間最好在160MB以上)。
打印機:推薦EPSON ?LQ-1600KII
??????2)、軟件配置要求:
??????????WINDOWS95、98、2000中文版操作系統。
?
五、數據庫完整性設計
1、主鍵及唯一性索引建立:
A 將員工employee表中的yno屬性定義為碼。參照員工表。
B 將部門branch表中bno屬性定義為碼。參照部門表。
C 將出差記錄travel_register表中的travelno 屬性定義為碼。參照出差記錄表。
D 將請假記錄leave_register表中的leaveno屬性定義為碼。參照請假記錄表。
E 將加班記錄overtime_register表中的overtimeno屬性定義為碼。參照加班記錄表。
F 將出勤記錄work_register表中的workno屬性定義為碼。參照出勤記錄表。
G 將月度考勤統計month_attend表中的monthno屬性定義為碼。參照月度考勤表。
???H 將工資wage表中的wageno屬性定義為碼。 參照工資表。
?
?
2.對以下經常在查詢中出現的關系的碼建立索引:
1)、在employ表的yno(員工編號)列上建立一個聚簇索引,而且employ表中的記錄將按照yno升序存放。
Create cluster index employno on employ(yno);
2)、在branch表的bno(部門編號)列上建立一個聚簇索引,而且branch表中的記錄將按照bno升序存放。
Create cluster index branchno on branch(bno);
?
2、參照完整性設計
關系模型的參照完整性在create table 中用foreign key短語定義哪些列為外碼,用references短語指明這些外碼參照哪些表的主碼。
A 定義出差Travel表中的參照完整性,將travelno,yno設為主碼,travelno參照travel_register表的ravelno,yno參照employee表的yno。
B 定義請假Leave表中的參照完整性,將leaveno,yno設為主碼,leaveno參照leave_register表的leaveno,yno參照employee表的yno。
C定義加班Overtime表中的參照完整性, 將overtimeno,yno設為主碼,overtimeno參照overtime_register表的overtimeno,yno參照employee表的yno。
D 定義出勤Work表中的參照完整性,將workno,yno設為主碼,workno參照work _register表的workno,yno參照employee表的yno。
3、check約束的定義
員工表中的ysex只能取“男”或“女”。
alter table employ
add constraint c1 check(value in(‘男’,’女’));
?
4、觸發器設計
A 在刪除員工之后,顯示員工的基本信息
B 不準刪除部門的信息。
C 員工的信息更改之后,相應的月度考勤統計表員工編號也要跟著變化。
六、數據庫視圖設計
視圖是從一個或幾個基本表導出的表,一經定義,就可以和基本表一樣被查詢、被刪除。
1)、定義一個反映員工的年齡的視圖。
create view y_age(yno,yname,age)
as
select yno,yname,2010-birth
from employee;
2)、建立反映員工工資情況的視圖。
create view y_wage(yno,yname,basicwage,bonus,realwage)
as
select yno,yname,basicwage,bonus,realwage
from employ and wage;
?
3)、建立員工考勤情況的視圖。
create view y_attend(yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime)
as
select yno,yname,ljworktime,ljleavetime,ljtraveltime,ljovertime
from employee and monthattend;
?
七、數據庫存儲過程設計
為方便查詢,設計以下存儲過程:
查詢員工信息:員工(員工編號、員工姓名、員工性別、出生日期、職務、部門編號);
查詢員工工資信息:工資(員工編號、員工姓名、部門名稱、職務、基本工資、獎金、實際工資);
查詢員工考勤信息:考勤(員工編號、員工姓名、部門名稱、日期、累計正常工作時間、累計請假、累計出差、累計加班、遲到次數、早退次數、曠工次數);
?
八、權限設計
此考勤子系統對于員工都是開放的,方便員工查詢考勤,工資等信息。
九、總結
通過以上數據庫的設計,我深刻了解了每個階段的設計內容:系統需求分析、概念結構設、邏輯結構設計、物理結構設計、數據庫的實施和維護。
分析該企業考勤子系統的功能是首先能提供查詢員工的信息,其次讓員工能清楚自己的考勤情況,并相應的查詢到工資的變化。考勤情況由請假記錄,加班記錄,出勤記錄,出差記錄來統計出的,詳細的結果統計在月度考勤表中。員工都可以很詳細的查詢自己的情況,經理也可以根據此情況來考核員工。由于工資是隨著考勤數據來變化的,因此工資要單獨作為一個實體,這樣很容易就能查到相應的詳細情況。
在做此子系統時,剛開始還不知道大概的格式,只是在盲目的做,這樣到最后自己都不知道下一步該做什么了,所以凡事都要嚴格按照規則做,然后再發揮下,這樣子就不會半途而廢了。之后我嚴格按照書上的過程做,發現其實做該子系統并沒有我想象中難,柳暗花明又一村,攻克一個難題之后,心中大悅,只要細心,慢慢來,一步一步做,一樣可以做的出色,不過前提是要對制作子系統的過程熟悉,并且靈活運用。
所以做此子系統最大的收獲就是制作過程我已經很熟悉了,然后再做其他系統應該就會得心應手了。
參考文獻:《數據庫系統概論》王珊 薩師煊 高等教育出版社(第四版)2006.5
總結
以上是生活随笔為你收集整理的企业员工考勤管理子系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 考勤统计,一张表查询每月的员工考勤数据
- 下一篇: 台式计算机 评标细则,计算机评标系统流程