工资管理系统.docx
- 文档编号:27251504
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:27
- 大小:174.08KB
工资管理系统.docx
《工资管理系统.docx》由会员分享,可在线阅读,更多相关《工资管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
工资管理系统
江西理工大学应用科学学院信息工程系课程设计
课程名称:
数据库原理与技术
课题名称:
工资管理系统
姓名:
孙晓辉班级:
通信092学号:
3号
姓名:
杜宇班级:
通信092学号:
4号
姓名:
邓林坤班级:
通信092学号:
9号
姓名:
彭凯华班级:
通信092学号:
32号
完成时间:
2011-6-28
指导老师:
毛伊敏
指导老师评语:
得分:
一、系统概述3
1.1现状分析3
1.2系统目标3
二、系统数据库分析2
2.1数据库需求分析2
2.2数据库概念结构分析2
2.3数据库逻辑结构分析3
2.4数据字典3
三、数据库操作部分5
3.1数据库创建5
3.2数据库的更新操作5
3.3数据库的查询操作5
3.4数据库的备份和还原操作5
四、系统规范化设计6
4.1数据库表的规范化设计6
4.2数据库的完整性设计6
4.3数据库的维护和安全性设计6
五、总结7
5.1收获7
5.2不足和改进7
参考文献8
致谢9
一、系统概述
1.1现状分析
现在的工资管理系统多半采用人工管理模式。
每个月企业统计个人的工作时间,休假状况,加班情况,奖金,保险等多方面的因素,类别繁多且复杂。
人员在统计信息的时候经常出现各式各样的错误,使得企业的工资发放状况一直处于欠佳状态,不仅给企业带来了诸多不便,也使得个人也要为自己工资的差错而忙碌奔波。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
工资管理系统是一个单位不可缺少的部分,它的内容对于公司的决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。
使其公司工资管理初步实行计算机化,让计算机在工资管理中得到初步应用。
使工资管理者总是根据准确、及时的工资管理信息来进行决策,实现管理。
只有计算机才能将现代化社会中,成倍增长的工资管理信息量,进行及时收集、加工、整理、贮存、检索、传递、反馈给决策者。
而一个企业工资管理系统在企业对工资管理已不可或缺。
由计算机管理的工资系统解决了所有的不便。
高效与正确性不仅方便了大家,也为企业节省了很多成本,使得人力资源可以得到更加广泛的应用,响应现在的低碳经济。
因此,建立计算机工资管理信息系统是一种客观发展必然趋势。
尽管在工资管理方面还不可能普遍使用计算机,但从长远来说,工资管理现代化和计算机是不分割的。
轻视或者拒绝利用计算机技术,就不可能真正地、全面地实现工资管理现代化。
1.2系统目标
开发这个系统的目的就是帮助企业的财务主管部门提高工作效率,实现企业工资信息管理的系统化、规范化和自动化。
实现企业高效、科学、现代化的员工管理。
系统最终实现的主要功能如下:
(1)、对输入的工资管理数据,进行数值运算和逻辑运算,求解各种问题。
对工资信息设置和管理部分:
包括设置员工的基本工资和其他项目的金额,员工信息、部门信息和发放工资(工资信息)。
(2)、对工资管理信息进行加工来解决各种数据处理问题,为人事决策者在决策时提供依据。
对工资管理系统部分:
包括添加用户、修改用户信息。
(3)、对工资管理的各种资料数据进等统计计算,并将处理后的信息存贮起来。
对员工工资查询部分:
包括按员工奖金和福利补贴查询以及按部门的查询。
当前,不少单位的工资管理部门对于计算机的应用还仅限于简单的单机应用,随着时间的推移、任务的复杂、用户的需求,其应用还会扩大。
随着计算机的广泛应用,计算机工资管理信息系统的建立,适应了社会经济发的客观要求,是工资管理现代化的一大进步。
今天我们运用计算机进行了工资管理档案管理的初步现代化的开发和使用,它大大提高了工资管理工作者的工作效率,它把工资管理(档案、工资)从繁重的手工操作中解脱出来,用更多精力从事创造性的管理活动;它能使决策、计划和其它管理活动更加科学、精确、灵活。
该系统的运行环境需要windows2000以上的版本,需要CPU为P41.8GHz以上;内存为256MB以上;分辨率为最佳效果1024×768像素;
开发工具采用的是eclipse,所使用的开发语言是C语言/C++,基于MicrosoftSQLServer2000作为数据库支持。
二、系统数据库分析
2.1数据库需求分析
工资管理信息系统对企业加强工资管理有着极其重要的作用,就一般的大型企业来说,它的设计内容非常复杂而且繁多,比如拥有工资计算功能,工资统计功能,报表输出功能,而且设计的模块也很多,比如工资管理模块、工资统计模块、用户管理模块、系统维护模块、报表设计模块、打印输出模块、员工信息及模糊查询模块等等。
具备以下基本功能:
1、支持企业实现规范化的管理。
2、支持企业高效率完成人事管理的日常业务,包括新员工加入时人事档案的建立,老员工转出、辞职、退休等。
3、支持企业进行人事管理及其相关方面的科学决策,如企业领导根据现有的员工合同期限决定是否继续聘用等。
系统功能结构图(如图2.1)所示:
图2.1系统功能结构图
(1)、员工信息模块
员工基本信息模块具有员工信息输入、员工增删和员工信息查询三个功能。
员工基本信息包括员工号、员工姓名、员工性别、所在部门、所在岗位、工龄和工资等级等信息。
员工增删实现了对数据库中员工信息的增加和删除。
员工信息查询可以通过员工号或员工姓名对员工信息进行查询。
(2)、工资设置模块
根据该公司的工资管理实际情况,本系统将工资结构分为基本工资、福利、津贴、奖金以及扣发。
该模块可以对这几个个工资类型设置工资等级,并对每个等级设置工资标准。
(3)、月度工资计算模块
用户在员工信息管理模块对该员工的月工资等级进行输入以后,在月工资汇总模块会自动对员工的月工资进行统计计算。
用户可以输出并打印出工资汇总表,打印之前可以通过打印预览功能进行打印预览。
(4)、用户管理模块
用户登录时有权限的设定(如图2.2)。
查看或者修改系统只有管理员才有权限,而个人用户只能查看关于个人信息、工资等内容,无权查看其它信息。
图2.2用户管理模块
(5)、系统维护模块
系统在使用的过程中,由于使用不善,避免不了会出现一些问题。
从而导致系统数据丢失,损坏,对企业是很不利的。
因此,在日常的使用过程中,我们需要对系统进行维护,以保证即使出错也不会有问题(如图2.3)。
图2.3系统维护模块
“数据备份与还原”就是在日常使用中,管理员要经常对系统中的数据进行备份,这样在有需要的时候,只要还原数据库就可以了。
“数据导入与导出”在工作中,会有各种各样的不同的数据需要系统操作员进行录入,然而大量的工作量将大大耗费时间与精力。
数据的导入与导出就可以解决这一问题,只需将原有镖客导入或导出数据库就可以了,大大节省了人力资源。
2.2数据库概念结构分析
概念模型设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,是各种数据模型的共同基础。
本系统的概念模型图如图2.4~图2.7所示:
员工分E-R图(图2.4):
图2.4员工分E-R图
部门分E-R图(图2.5):
图2.5部门分E-R图
工资分E-R图(如图2.6):
图2.6工资分E-R图
各实体之间关系的E-R图(如图2.7):
n1
1n
1n
1
1
n1
图2.7各实体之间关系的E-R图
2.3数据库逻辑结构分析
●员工(员工号,姓名,性别,年龄,所在岗位,部门编号,工龄,工资等级,身份证号,民族,籍贯,婚否,职务,联系方式,出生年月,文化程度,职称,工种,职务等级,通讯地址)。
●部门(部门编号,部门人数,部门负责人,部门名称,部门位置,部门类型)。
●工资(员工号,基本工资,实发工资,技能工资,奖金,福利,工龄工资,岗位工资,工资级别,岗位津贴,出勤天数,加班工时,加班天数,加班类别,加班工资,病假扣款,事假扣款,其他扣款,应发工资,三险一金,缴纳税)。
带波浪下划线的属性为各关系模式的主键,带下划线的属性为各关系模式的外键。
2.4数据字典
1、表名:
员工(员工号,姓名,性别,年龄,所在岗位,部门编号,工龄,工资等级,身份证号,民族,籍贯,婚否,职务,联系方式,出生年月,文化程度,职称,工种,职务等级,通讯地址),其含义:
员工信息表,储存员工的基本信息。
其结构如表2.8所示:
表2.11员工信息结构
字段名
字段类型
是否为空
说明
备注
number
int
NOTNULL
员工号
主键
name
char(10)
NULL
姓名
sex
char(10)
NULL
性别
age
int
NULL
年龄
Inpost
char(10)
NULL
所在岗位
DepartmentNO.
int
NOTNULL
部门编号
外键
seniority
int
NULL
工龄
Paygrade
char(10)
NULL
工资等级
int
NULL
身份证号
nation
char(10)
NULL
民族
Nativeplace
char(10)
NULL
籍贯
marriage
char(10)
NULL
婚否
job
char(10)
NULL
职务
contact
char(10)
NULL
联系方式
birthday
date
NULL
出生年月
education
char(10)
NULL
文化程度
Jobtitle
char(10)
NULL
职称
Typeofjob
char(10)
NULL
工种
Jobgrade
char(10)
NULL
职务等级
Addr.
char(50)
NULL
通讯地址
2、表名:
部门(部门编号,部门人数,部门负责人,部门名称,部门位置,部门类型),其含义:
储存部门的基本信息。
其结构如表2.12所示:
表2.12部门信息结构
字段名
字段类型
是否为空
说明
备注
DepartmentNO.
int
NOTNULL
编号
主键
population
int
NULL
人数
principal
char(10)
NULL
负责人
definition
char(10)
NULL
名称
site
char(10)
NULL
位置
type
char(10)
NULL
类型
3、表名:
工资(员工号,基本工资,实发工资,技能工资,奖金,福利,工龄工资,岗位工资,工资级别,岗位津贴,出勤天数,加班工时,加班天数,加班类别,加班工资,病假扣款,事假扣款,其他扣款,应发工资,三险一金,缴纳税),其含义:
工资的基本构成,存储工资的基本信息。
其结构如表2.13所示:
表2.13工资基本结构
字段名
字段类型
是否为空
说明
备注
number
int
NOTNULL
员工号
主键
Basepay
int
NULL
基本工资
Salariopay
int
NULL
实发工资
Skillpay
int
NULL
技能工资
bonus
int
NULL
奖金
weal
int
NULL
福利
Senioritypay
int
NULL
工龄工资
Jobpay
int
NULL
岗位工资
Paygrade
char(10)
NULL
工资级别
Jobbenefit
int
NULL
岗位津贴
Attendancedays
int
NULL
出勤天数
Addedhuors
int
NULL
加班工时
Addeddays
int
NULL
加班天数
Addedtype
char(10)
NULL
加班类别
Addedpay
int
NULL
加班工资
Sickleavepay
int
NULL
病假扣款
deductionspay
int
NULL
事假扣款
Otherspay
int
NULL
其他扣款
Wagesbe
int
NULL
应发工资
insurance
int
NULL
三险一金
tax
int
NULL
缴纳税
三、数据库操作部分
3.1数据库创建
1、建员工表:
CREATETABLE员工表
(Numberchar(10)PRIMARYKEY,
Namechar(10),
Sexint,
Ageint,
Inpostchar(10),
DepartmentNO.IntUNIQUE,
Seniorityint,
Paygradechar(10),
Nationchar(10),
Marriagechar(10),
Jobchar(10),
Contactchar(10),
Birthdaydate,
Educationchar(10),
Jobtitlechar(10),
Typeofjobchar(10),
Jobgradechar(10),
Addr.char(50));
2、建部门表:
CREATETABLE部门表
(DepartmentNO.intPRIMARYKEY,
Populationchar(10),
Principalchar(10),
Definitionchar(10),
Sitechar(10),
Typechar(10));
3、建工资表:
CREATETABLE工资表
(NumberintPRIMARYKEY,
Basepayint,
Salariopayint,
Skillpayint,
Bonusint,
Wealint,
Senioritypayint,
Jobpayint,
Paygradechar(10),
Jobbenefitint,
Attendancedaysint,
Addedhuorsint,
Addeddaysint,
Addedtypechar(10),
Addedpayint,
Sickleavepayint,
Deductionspayint,
Otherspayint,
Wagesbeint,
Insuranceint,
Taxint));
以上表的相应属性约束如图3.6:
图3.6表的相应属性约束
3.2数据库的更新操作
1、插入数据
如:
要新建一个新的部门,要将这个新建的部门元组(部门编号:
89757;人数:
50;负责人:
杜拉拉;名称:
人事部;位置:
1栋202;类型:
调剂)插入到部门表中。
INSERT
INTO部门(DepartmentNO.,population,principal,definition,site,type)
VALUES('89757','50','杜拉拉','人事部','1栋202','调剂')
2、修改数据
UPDATE员工
SETSage=22
3、删除数据
DELECT
FROM员工
3.3数据库的查询操作
单表查询:
如:
查询所有员工的员工号和姓名.
SELECTnumber,name
FROM员工;
多表查询:
如:
查询部门编号89757的部门工资金额。
SELECTsalary
FROM报表,部门
WHERE部门.DepartmentNO.=报表.DepartmentNO.;
3.4数据库的备份和还原操作
1、备份数据库
当需要将数据库保存在其他存储介质或其他文件下,应使用数据库备份操作,数据库一旦备份后,连同其中的数据表等信息均被自动备份。
对于已经备份的数据库,可使用“还原”操作,使备份的数据库还原在当前服务器下。
数据库“备份”的方法可直接通过菜单实现。
具体步骤如下:
(1)右键单击欲“备份”的数据库,在弹出的快捷菜单中选择“所在任务”,执行“数据库备份”功能,弹出所示的界面。
(2)在“数据库”列表框中选择要备份的数据库;在“名称”文本框中输入备份后的数据库名称;在“备份”选项栏下选择备份操作类型,共有以下4种选择。
数据库—完全:
完整备份数据库的所以内容。
数据库—差异:
只创建数据库中自上一次数据库备份之后修改过的所以页的副本。
事务日志:
事务日志备份。
文件和文件组:
数据库文件和文件组备份。
在“目的”选项栏中指定备份设备或文件名。
1)单击“添加”按钮,添加备份设备或文件。
2)单击“删除”按钮,用来删除备份设备或文件。
3)单击“内容”按钮,则可以查看已经存储在备份或文件中的备份信息,如备份集,服务器和数据库名称备份类型备份日志备份数据有效期以及备份数据长度等。
(3)单击“添加”按钮,弹出“选择备份目的”的对话框,如图1-18所示。
在“文件名”文本框中选择备份后是数据库的位置和名称,单击“确定”按钮,返回。
在“重写”选项栏中选择“重写”方式。
·追加到媒体:
需要保存备份设备或文件中以前的备份数据,则选择“重写”选项栏中的“追加到媒体”选项。
·重写现有媒体:
要求本备份数据覆盖以前的备份数据,从而节省存储空间。
“调度”选项栏用来安排数据库备份操作的执行时间。
SQLSever代理服务可将数据库备份作为一个任务进行安排,使它在将来某个时刻执行一次或在指定时间段内重复执行。
(4)单击“确定”按钮,系统开始备份指定的数据库。
2.还原数据库
数据库“还原”的方法可直接通过菜单实现。
具体的步骤如下:
3.右键单击数据库名称,在弹出的快捷菜单中,选择“所以任务”选项,弹出“还原数据库
”对话框。
在“常规”选项卡中,选择或输入还原后数据库名,在还原位置上选择“还原”方式,如“从设备”。
(1)单击“从设备”单选按钮,弹出“选择还原设备”对话框。
(2)单击“添加”按钮,弹出“选择还原目的”窗口。
(3)在“文件名”单选按钮下的文本框中选择备份的数据库位置和名称。
(4)单击“确定”按钮开始还原。
四、系统规范化设计
4.1数据库表的规范化设计
员工(员工号,姓名,性别,年龄,所在岗位,部门编号,工龄,工资等级,身份证号,民族,籍贯,婚否,职务,联系方式,出生年月,文化程度,职称,工种,职务等级,通讯地址)。
部门(部门编号,部门人数,部门负责人,部门名称,部门位置,部门类型)。
工资(员工号,基本工资,实发工资,技能工资,奖金,福利,工龄工资,岗位工资,工资级别,岗位津贴,出勤天数,加班工时,加班天数,加班类别,加班工资,病假扣款,事假扣款,其他扣款,应发工资,三险一金,缴纳税)。
参照范式的定义,考察员工、工资、部门表,我们发现,这张表已经满足了第一范式的要求。
1、因为这张表中字段都是单一属性的,不可再分;
2、而且每一行的记录都是没有重复的;
3、存在主属性,而且所有的属性都是依赖于主属性;
4、所有的主属性都已经定义
事实上在当前所有的关系数据库管理系统中,都已经在建表的时候强制满足第一范式。
根据第二范式的定义,转化为二范式就是消除部分依赖。
4.2数据库的完整性设计
1、关键操作,在工资表里添加一条新纪录,实发工资会自动更新数据。
定义这个触发器名称为insert_工资。
代码如下:
Createtriggerinsert_工资on工资forinsert
As
Declare@ichar(20)
Declare@bbint
Set@i=case
When@bb=0001then'实发工资'
When@bb=0002then'实发工资'
End
Print@i
2、员工新调入
进行员工新调入操作时在员工信息表中添加一条新的记录,可以为员工信息表设计一个insert触发器,当员工信息表执行insert操作后自动更改出部门信息表相应记录的数据。
定义这个触发器名称为staff_insert。
其代码如下:
Createtriggerstaff_inserton员工
Forinsert
Asif(selectcount(*)
From部门,inserted,工资
Where部门,部门人数=inserted.部门人数and工资.工号=inserted.工号)=0
Rollbacktransaction
Go
3、员工调出
进行员工调出操作时是在员工信息表中删除该员工的记录,可以为员工信息表设计一个delete触发器,当员工信息表执行delete操作后,工资表、部门表中的记录也将全部删除。
定义这个触发器名称为staff_delete。
其实现代码如下:
Createtriggerstaff_deleteon员工
Fordelete
Asselectcount(*)
From部门,工资,deleted
Where部门,部门人数=deleted.部门人数and工资工号=deleted.工号
GO
(4)、员工内部调动
为员工表设计一个名为staff_update的UPDATE的触发器,当系统对员工表进行UPDATE操作后,将会自动触发它。
该触发器将相应记录的部门人数、部门名称、工资更新。
下面是client_update触发器的定义代码:
Createtriggerstaff_updateON员工
Forupdate
Asselectcount(*)
Fromupdated,部门
Where部门,部门名称=updated.部门名称
Go
4.3数据库的维护和安全性设计
1、SQLSEVER的安全体系结构
(1)、客户机操作系统的安全性:
在使用客户计算机通过网络实现对SQLSEVER服务器的访问时,用户首先要获得客户计算机操作系统的使用权。
操作系统安全性是操作系统管理员或网络管理员的任务。
(2)、SQLSEVER的登录安全性:
SQLSEVER服务器的安全,建立在控制服务器登录帐号和密码的基础上。
两种登录方式,无论是使用哪种登录方式,通过登录时提供的密码和账号,决定了用户能否获得SQLSEVER访问权,并确定获得访问权限后,用户使用SQLSEVER进程时就可以拥有的权利。
管理和设计合理的登录是数据库管理员(DBA)的重要任务。
(3)、数据库的使用安全性:
设置访问数据库用户
(4)、数据库对象的使用安全性:
设置对数据库对象操作权限
2、SQLSERVER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工资管理 系统