李兆琪



摘 要:在科技飛速發展的今天,信息資源已經成為每個部門最重要的財富,隨著科學的進步,一些公司不斷發展壯大急需一套完整的工資管理系統幫助企業的財務主管部門提高工作效率。本系統實現對人員信息、薪資福利、員工社保信息的維護和查詢,并能迅速準確地完成考勤的分類匯總,生成工資報表等。無疑將給企業管理部門帶來很大的方便。真正實現企業高效、科學、現代化的員工管理。有利于財務部門對員工工資的管理,減輕人事部們的任務,提高公司效率,節約人力資源從而降低企業成本。
關鍵詞:數據;數據庫;函數;工資管理
中圖分類號:TP311.13? 文獻標識碼:A? 文章編號:1673-260X(2021)11-0010-02
0 引言
數據庫,顧名思義是存儲數據的倉庫。而這個倉庫是建立在計算機上的,人們把數據按照一定的格式保存在這個倉庫中。數據庫是數據管理的有效技術,是計算機科學的重要分支。而作為信息系統核心和基礎的數據庫技術得到越來越廣泛的應用,從小型單項事務處理系統到大型信息系統,從聯機事務處理(OLTP)到聯機分析系統(OLAP),越來越多的應用領域采用數據庫技術來存儲處理信息。數據庫在人們生活中的應用有很多,比如線上購買車票,查詢車次信息;通過網上銀行存款轉賬;查看修改個人信息等等。此時建立一個滿足部門信息處理要求的行之有效的系統則成為一個企業或組織生存的重要條件。
本系統實現了對員工各種信息的增加、刪除、修改、查詢。第一部分分析了系統的需求,第二部分分為幾小部分,分別介紹了實體的確定,邏輯圖的展示,和實現各種數據表的增刪改查,第三部分對本系統做出了總結。
1 系統需求分析
工資管理系統描述與要實現功能如下:
1.1 員工基本工資信息管理(不包含加班津貼和年終獎)
管理員可以根據員工的現任職務設定員工的基本工資。員工工種的不同,工資的標準也不同,員工基礎信息(包括領導)該信息包括員工編號,員工姓名,部門編號,性別,入職日期,職務編號,職務名稱。
1.2 加班津貼管理
管理員根據加班的時間給子予不同的加班津貼。按照員工的考勤情況和工作表現,生成員工工資。加班津貼信息(根據加班時間給予不同的加班津貼,每小時n元錢,所得加班津貼=n*加班時間)員工編號,加班時間,所得加班津貼。
1.3 員工年終獎金管理
年終獎金計算公式=((員工本年度的工資總和+津貼的總和)/12)。
管理員可以根據員工今年的工資和津貼為員工發放年終獎,信息包括員工編號,員工姓名,工資總和,津貼總和,年終獎金。
1.4 員工最終工資查詢管理
員工可以根據自己的員工編號或姓名查找核對自己已到賬的工資,并能查看津貼、獎金、實際工資、部門平均工資等信息。信息包括部門工資表編號(主鍵),部門編號,員工編號,員工姓名,月工資。企業工資報表部門編號,員工編號,員工姓名,月工資,部門總工資(部門總工資=sum(月工資))。
2 數據庫設計
2.1 創建概念數據模型實體以及屬性
員工相關信息可抽象為“員工基本信息實體”實體、職務相關信息可抽象為“職務實體”實體,部門相關信息可抽象為“部門信息實體”實體、員工工資相關信息可抽象為“員工工資實體”實體、員工基本工資相關信息可抽象為“基本工資實體”實體、加班相關信息可抽象為“加班管理實體”實體。
員工基本信息實體:員工編號、員工姓名、性別、入職日期;職務實體:職務編號、職務名稱;部門信息實體:部門編號、部門名稱、人數;員工工資實體:工資序號、日期、基本工資、加班日期、總工資;基本工資實體:基本工資;加班管理實體:加班日期、加班開始時間、加班結束時間。
2.2 數據實施與維護
數據的實施第一步就是要建立數據表,此系統最少要建立六個數據表,創建完成數據表后,就是要把員工的部門、編號、職位、工資等數據信息有組織的錄入到數據表中,隨后我們可以創建一個可查看員工信息的視圖,以查看男員工信息為例:
CREATE OR REPLACE VIEW customer_male(員工編號,部門編號,職位編號,員工姓名,性別,入職日期)
AS
SELECT empno,deptno,jobno,ename,sex,time
FROM emp
WHERE sex='男';
SELECT *
FROM customer_male;
其中,CREATE OR REPLACE VIEW的含義就是創建一個視圖,括號里就是要輸出的員工信息。SELECT含義為選擇,WHERE的含義是條件,sex則代表了性別,此語句就完成了在emp(員工表)中查詢性別為男的所有員工的信息。此外數據的查詢還可以使用存儲過程或存儲函數,一般來說,存儲過程實現的功能要復雜一點,而函數的實現的功能針對性比較強。存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用。我們可以通過創建函數來實現返回數據表上的對象,或者返回數據表中對象的值。以存儲函數為例,本系統中我們可以創建一個有參的存儲過程,其功能是根據給定員工編號修改職務編號,源代碼如下:
DROP PROCEDURE IF EXISTS into_job;
DELIMITER $$
CREATE PROCEDURE into_job(IN v_empno INT,IN v_jobno VARCHAR(20))
BEGIN
UPDATE emp SET jobno=v_jobno WHERE empno=v_empno;
END $$
DELIMITER ;
CALL into_job(1,2);
SELECT * FROM emp;
可以看到,我們可以利用創建并調用存儲過程篩選出想得到的數據,還可以更改員工信息。這種方法相較于來說更加穩定,速度更快,使SQL語言更加靈活了。而存儲過程返回的是參數,存儲函數查詢到的結果可以返回值,這就是函數與過程的區別,然而為了使表與表之間同步更新,我們可以創建一個觸發器,在一個數據表中添加或刪除數據的時候,將另一個數據表中的數據與之同步。可以用DROP TABLE觸發器名AFTER觸發時間ON表名FOR EACH ROW的語句來創建觸發器。
3 總結
本系統通過實現存儲過程、存儲函數和創建觸發器實現了用戶對工資信息的更改查詢,并能迅速準確地完成考勤的分類匯總,生成工資報表等。本系統的技術及開發環境如下:
數據庫服務器:Windows平臺下的MySQL數據庫;
數據庫客戶端:Navicat for MySQL;
數據庫設計工具:PowerDesigner。
參考文獻:
〔1〕數據庫系統原理及MySQL應用教程(第二版)[M].北京:機械工業出版社,2009.