资源描述
数据库课程设计——
企业人事管理系统
一、 系统概述
1.1 系统开发背景和意义
随着计算机技术的飞速发展,计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。人事管理是很多厂矿、公司、个体事业单位所须的,人事信息管理系统包括对人事信息的统计、查询、更新、打印输出等,如果靠人,工作量将很大,若公司人数有几万甚至更多,人工统计将变得不可想象,仅一些简单的操作便可及时、准确地通过计算机获得需要的信息。计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。
经过分析,我们使用SQL Server 2005 和C#开发工具。系统能够提供对人事信息输入、查询、编辑以及工资设定、查询、修改、算出工资发放各项合计数据;可自主设定条件从而达到对工资数据的多角度查询功能;方便导入、导出数据及输出报表。财务部门人员以管理员身份登录,对本系统的可登录人员进行管理;实现了财务部门对本单位工资发放系统的集中管理,保证了系统的安全性。1.2 开发环境
开发环境的选择会影响到数据库的设计,所以在这里给出人事管理系统开发环境的选择如下:
开发环境:Windows 7
数据库管理系统:MS SQL SERVER数据库
二、系统分析
2.1可行性分析
可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调查,判断它是在对系统目标和环境精心分析的基础上,由于本系统知识面向机关和事业单位内人事信息管理人员和在职人员开发的信息管理系统,尽管这些人员可能没有使用过类似的系统,但是以Windows的友好界面和本系统良好的安全性设置,可以是人事信息管理员在专业人员的指导帮助下迅速掌握系统的操作方法。本系统对计算机的硬件环境有一定的要求,对计算机的操作系统、内存、主频、外设等都有最低要求,如果低于这个要求将影响到本系统的正常运行。
机关和事业单位的人事信息管理目前还完全以传统的人工管理方式进行管理,耗时多,效率低下并且极容易出现错误。由于认为失误而造成有形和无形的经济损失时间层出不穷,我们也无法估算出所造成损失的总额。而利用计算机来实现人事管理以成为适应当今人事管理的方式。开发一套能满足人事信息管理的软件是十分必要的,实现人事管理的自动化,在减少由于认为失误而造成损失的同时,也可以是认识信息管理部门减少许多费用支出,如实现自动化管理后可以精简人员,减少工资支出等。由上述三方面的分析可以看出,本系统的开发时机已经成熟,从多种角度考虑开发此系统都是可行的,并且也是十分必要的。
2.2安全性、完整性分析
数据库的安全性是指保护数据库,以防止非法使用所造成的数据泄露、更改或破坏。安全性问题有许多方面,在法律、社会、伦理方面,例如请求查询信息的人是否有合法的权利;法律控制方面,例如计算机机房或者中断是否应该加锁或用其他方法保护;政策方面,确定存取原则允许哪些用户存取哪些数据;运行于技术方面,使用口令时,如何使口令保持秘密;操作系统安全性方面,在主存储器和数据文件用过后,操作系统是否把它们的内容清除掉。
安全性控制的方法有用户的标识和鉴定,存取控制,定义视图,数据加密和审计等,在本系统中的安全性体现在用户的标识和鉴定,例如在登陆界面时,首先会输入账户名称,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器上对数据库的使用权。当你不是该系统的合法用户时,则账号是错误的就无法进入该系统。就用户存取权限控制而言,在系统登陆界面时会选择是一般用户登陆还是管理员登陆,当为一般用户登陆时,只能查询员工信息和部门信息,而不能对其进行管理。当以管理员身份登陆时不仅仅可以查询部门和员工的基本信息,也可以对其进行添加、删除、修改等操作。
数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止错误的数据进入数据库造成无效操作。在本系统中对数据类型的约束,包括数据的类型、长度、单位和精度等。例如规定员工性别的数据类型应为字符型,长度为2.对数据格式的约束例如规定出生日期的数据格式为XXXX.XX.XX。对取值范围的约束,例如月份的取值范围为1-12月,日期为1-31号。对空格的约束,例如员工姓名和编号不能为空,但是员工学历即可为空。实体完整性约 白斑病束说明了关系主键(主码)的属性列必须唯一,其职不能为全空或部分为空。
2.3需求分析
调查本地的企业,根据企业的具体情况分析、设计和实现企业人事管理系统。其主要功如下:
1、 人事档案管理:户口状况、政治面貌、生理状况、合同管理等。
2、 考勤、加班、出差管理。
3、 人事变动:新进员工登记、员工离职登记、人事变更记录。
4、 考核奖惩。
5、 职称管理:职称评聘信息管理。
6、 系统维护:操作员管理、权限设置等。
2.4系统模块设计
三、数据库设计
3.1系统数据流图
3.2数据库概念设计
数据库E—R图:
员工编号
姓名
政治面貌
员工
性别
出生年月
职位
部门
加班编号
员工编号
加班结束
加班
加班开始
出差编号
员工编号
出差结束
出差
出差开始
考勤编号
员工编号
考勤结束
考勤
考勤开始
奖惩编号
员工编号
奖惩原因
奖惩
奖惩方式
奖惩日期
员工编号
调动编号
调往部门
职务调动
调动日期
调往职务
合同编号
员工编号
合同到期
合同
合同起始
登记编号
员工编号
部门
新员工
到岗日期
职位
离职编号
员工编号
职位
员工离职
所在部门
员工编号
薪资编号
基本工资
薪资
发薪日期
总工资
管理员编号
管理员姓名
管理员密码
管理员
3.3数据库逻辑设计
由数据库E-R图,可得以下关系:
员工(员工编号,员工姓名,性别,政治面貌,出生年月,部门,职位)
加班(加班编号,员工编号,加班开始,加班结束)
出差(出差编号,员工姓名,出差开始,出差结束)
考勤(考勤编号,员工编号,考勤开始,考勤结束)
奖惩(奖惩编号,员工编号,奖惩方式,奖惩原因,奖惩日期)
职务调动(调动编号,员工编号,调往部门,调往职务,调动日期)
合同(合同编号,员工编号,合同起始,合同到期)
新员工(登记编号,员工编号,到港日期,部门,职位)
员工离职(离职编号,员工编号,部门,职位,离职日期)
薪资管理(薪资编号,员工编号,基本工资,总工资,发薪日期)
管理员(管理员编号,管理员姓名,管理员密码)
3.4数据库物理设计
数据库具体关系图(包括主外键,数据类型等):
四、数据库源码
5.1建立人事管理系统数据库,并确定数据库的存储结构及日志备份文件等
create database mm
on
(name=mmdat,
filename='E:\Study\SQL\mydata\mmdat.mdf',
size=100,
maxsize=300,
filegrowth=10)
log on
(name=mmlog,
filename='E:\Study\SQL\mydata\mmdat.ldf',
size=50,
maxsize=150,
filegrowth=10%)
5.2建立了数据库的各基本表及各表的完整性设置
建立员工表:
create table 员工表(
员工编号 char(4) primary key,
姓名 char(10) not null,
性别 char(2) check(性别 in('男','女')),
出生日期 datetime,
身份证号 VarChar(32) not null,
民族 VarChar(16) default '汉',
职位 Char(4),
部门 char(4),
政治面貌 char(10)
)
建立新员工表:
create table 新员工表(
登记编号 char(4) primary key,
员工编号 char(4),
部门 char(4),
职位 char(4),
入职日期 datetime,
foreign key(员工编号) references 员工表(员工编号)
)
建立离职表:
create table 离职表(
离职编号 char(4) primary key,
员工编号 char(4),
部门 char(4),
职位 char(4),
离职日期 datetime,
foreign key(员工编号) references 员工表(员工编号)
)
建立人事表:
create table 人事表(
调动编号 char(4) primary key,
员工编号 char(4),
调后部门 char(4),
调后职位 char(4),
调动日期 datetime,
foreign key(员工编号) references 员工表(员工编号))
建立合同表:
create table 合同表(
合同编号 char(4) primary key,
员工编号 char(4),
合同起始 datetime,
合同到期 datetime,
foreign key(员工编号) references 员工表(员工编号))
建立奖惩表:
create table 奖惩表(
奖惩编号 char(4) primary key,
员工编号 char(4),
奖惩原因 varchar(50),
奖惩方式 char(10),
奖惩日期 datetime,
foreign key(员工编号) references 员工表(员工编号))
建立加班表:
create table 加班表(
加班编号 char(4) primary key,
员工编号 char(4),
加班起始 smalldatetime,
加班结束 smalldatetime,
foreign key(员工编号) references 员工表(员工编号))
建立出差表:
create table 出差表(
出差编号 char(4) primary key,
员工编号 char(4),
出差起始 smalldatetime,
出差结束 smalldatetime,
foreign key(员工编号) references 员工表(员工编号))
建立考勤表:
create table 考勤表(
考勤编号 char(4) primary key,
员工编号 char(4),
考勤日期 datetime,
上班时间 smalldatetime,
下班时间 smalldatetime,
foreign key(员工编号) references 员工表(员工编号))
建立薪资表:
create table 薪资表(
薪资编号 char(4) primary key,
员工编号 char(4),
基本工资 char(10),
总工资 char(10),
发薪日期 datetime,
foreign key(员工编号) references 员工表(员工编号))
建立管理员表:
create table 管理员(
管理员编号 char(4) primary key,
管理员姓名 char(10),
管理员密码 char(8))
建立索引:
create index 员工表_姓名_index on 员工表(姓名)
create index 合同管理表_合同时长_index on 合同表(合同到期)
create index 奖惩管理表_奖惩方式_index on 奖惩表(奖惩方式)
create index 薪资表_总工资_index on 薪资表(总工资)
建立触发器:(当更新员工的政治面貌时,该触发器启动)
create trigger tr_update on 员工表
for update
as
if update(政治面貌)
print'数据已更新'
else
print'数据没有更新'
五、运行环境
SQL SERVER 2010 个人版
Windows 7 操作系统
Transact_SQL 语言
具体操作如下:
首先进入SQL Server 2010 ,打开服务管理器,查询分析器,弹出一窗口,然后输入T-SQL语句,执行即可!
六、思考与总结
通过此次人事资源管理系统的数据库的课程设计,真正达到了学与用的结合,增强了我们对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,这次的课程设计,让我明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。2周的设计使我和同学的关系更进一步了,有什么不懂的大家在一起商量,听听不同的看法,从中更好的理解知识,我觉得这样的课程设计特别有价值和实践意义。
在实验过程中,从建立数据开始,对于据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据流图的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,增强了自己在数据库中应用SQL语言的灵活性,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的人事资源管理信息系统的设计报告,学以致用,完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。
展开阅读全文