人事管理系统 数据库课程设计剖析.docx
《人事管理系统 数据库课程设计剖析.docx》由会员分享,可在线阅读,更多相关《人事管理系统 数据库课程设计剖析.docx(27页珍藏版)》请在冰豆网上搜索。
人事管理系统数据库课程设计剖析
数据库系统原理
课程设计报告
设计题目人事管理系统
学号************
姓名田飞飞
成绩
评语:
二零一六年十二月
1系统开发概述
1.1系统开发背景
在知识经济大环境下,技术的竞争、市场的竞争、服务的竞争最后归结于人才的竞争,企业的内部管理与运营措施由此发生了巨大的变化,以人为本理念深入人心,人事管理在各个单位中的功效日益突出,被置于企业管理中的首要位置。
随着科学技术的逐步发展与计算机科学的日益成熟,人事工作者非常希望把人事管理中比较繁琐的工作交给计算机处理,降低人工管理的压力并提升工作效率,于是各种形式的人事管理系统应运而生。
目前国内的人事管理系统基本还处在人事信息方面的管理系统阶段,对于“人力资源”的研发尚没有实质启动,主要是根据人员的信息及考勤方面管理等功能,过分强调“人”的管理,缺少人事相关信息的整体性、系统性。
人事管理的整体框架体系仍没有创建起来,仍有许多的功能需要进一步研发与优化。
现有的人事管理系统模块间相矛盾或不协同,很难有效发挥人力资源管理系统预期效能。
人事信息的一个明显特征就是数据量大、关系复杂,利用传统人工的措施管理文件档案,效率低、保密性差,查找、修改、维护也极为困难,人事工作者因为缺乏适用软件支持,工作上存在诸多不便。
国外企业关于人事信息的管理,企业的人事管理部门或者劳动保障部门也创建了自己的人力资源管理系统,用于实现企业内部的人力资源或者劳动管理。
无论人才流动到哪里,在人们进行求职、贷款以及办理保险之时,具备查阅权限的机构都能够查阅该人的信息,以衡量为该人办理有关手续的潜在风险,或者是否可以录用。
国内软件行业在研发人事管理系统过程中,并不缺少先进的人事管理理念,然而,却非常缺乏如何把先进的管理理念转化成适合中国企业特征的技术手段、途径,没有形成一套成熟、稳定的研发人事系统的实践及工作流程,很难合并成为系统化的人事管理信息系统。
现阶段人事管理系统主要涉及档案管理,交互性较差,创建一套具备较高起点的人事数据库管理系统势在必行。
因此,决定对人事管理方面开展信息化改造,推动人事管理工作的规范化及科学化,让企业整体信息化水平迈上新的台阶,因而提升整体管理水平。
1.2系统功能需求分析
作为人事管理系统,其功能、安全、稳定性和可管理性十分关键,必须符合人事管理需求。
但是,目前流行的人事管理系统所具有的功能及利用的研发技术,远远不能应对人事管理需要。
在功能方面,现有的人事管理类系统大多数是请假考勤、借助网上布置工作任务、收发文等;在技术方面,这类人事管理系统所利用的研发技术,降低了系统研发效率和可维护性。
所以,研发功能符合人事管理实际环节以及易于维护、扩展的应用系统,成为当务之急。
该系统需要完成如下功能:
1. 实现部门、职务、学历等信息的管理;
2. 实现职工信息的管理;
3. 实现职工学习经历和任职经历的管理;
4. 实现奖惩信息的管理;
5.员工各种信息的输入,包括员工的基本信息、学历信息、职称,员工各种信息的修改;
6.按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按学历查询、按工作岗位查询等,至少应该包括按学历、参加工作时间等统计各自的员工信息;
7. 创建视图查询各职工的员工号、姓名、部门、工资信息;
8. 创建存储过程查询各部门各种职称的职工数量;
9.创建触发器当增加、删除职工和修改职工部门信息时自动修改相应部门的职工人数;
10.建立数据库相关表之间的参照完整性约束。
系统总体功能模块包括员工基本情况、工作部门信息、员工学历信息、员工考勤状况、员工工资信息、员工调动管理、员工奖惩管理、员工请假信息等8个模块,其模块结构如下:
1.3系统性能需求分析
运行环境 :
CPU:
1.4G以上。
内存:
512M上。
硬盘:
需要128M以上空间
操作系统:
Windows 操作系统(Win2000/Win XP/ Win2003及以上)
数据库系统:
SQL Server大型数据库
数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得关注的方面。
数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。
1.用户认证
数据库系统不允许一个XX的用户对数据库进行操作。
用户标识与鉴别,即用户认证,是系统提供的最外层安全保护措施。
其方法是由系统提供一定的方式让用户标识自己的名字或身份,每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。
对于获得上机权的用户若要使用数据库时,数据库管理系统还要进行用户标识和鉴定。
用户标识和鉴定的方法有很多种,而且在一个系统中往往多种方法并用,以得到更强的安全性。
常用的方法是用户名和口令。
通过用户名和口令来鉴定用户的方法简单易行,但其可靠程度极差,容易被他人猜出或测得。
因此,设置口令法对安全强度要求比较高的系统不适用。
近年来,一些更加有效的身份认证技术迅速发展起来。
例如使用某种计算机过程和函数、智能卡技术,物理特征(指纹、声音等)认证技术等具有高强度的身份认证技术日益成熟,并取得了不少应用成果,为将来达到更高的安全强度要求打下了坚实的理论基础。
2.存取控制
数据库安全性所关心的主要是DBMS的存取控制机制。
数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。
存取控制是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障,是数据库安全系统中的核心技术,也是最有效的安全手段。
在存取控制技术中,DBMS所管理的全体实体分为主体和客体两类。
主体(Subject)是系统中的活动实体,包括DBMS所管理的实际用户,也包括代表用户的各种进程。
客体(Object)是存储信息的被动实体,是受主体操作的,包括文件、基本表、索引和视图等。
数据库的完整性的基本含义是指数据库中数据的正确性、有效性和相容性,其主要目的是防止错误的数据进入数据库。
正确性是指数据的合法性,例如数值型数据只能含有数字而不能含有字母。
有效性是指数据是否属于所定义域的有效范围。
相容性是指表示同一事实的两个数据应当一致,不一致即是不相容。
数据库系统是对现实系统的模拟,现实系统中存在各种各样的规章制度,以保证系统正常、有序地运行。
许多规章制度可转化为对数据的约束,对数据库中的数据设置某些约束机制,这些添加在数据上的语义约束条件称为数据库完整性约束条件,简称“数据库的完整性”,系统将其作为模式的一部分“定义”于DBMS中。
DBMS必须提供一种机制来检查数据库中数据的完整性,看其是否满足语义规定的条件,这种机制称为“完整性检查”。
1.4系统数据流程分析
2数据库概念结构设计
员工信息E-R图:
部门信息E-R图:
学历信息E-R图:
考勤信息E-R图:
工资信息E-R图:
调动信息E-R图:
请假信息E-R图:
奖惩信息E-R图:
总体E-R图:
3数据库逻辑结构设计
1 E-R 图向关系模型的转换
关系模型:
员工表(员工号,姓名,性别,民族,年龄,学历,部门号)
部门表(部门号,部门名,部门经理)
学历表(学历号,学历,毕业时间,毕业院校,员工号)
考勤表(考勤号,本月天数,请假天数,正常工作天数,员工号)
工资表(工资编号,基本工资,罚款,起始时间,结束时间,发薪时间,员工号)
调动表(调动编号,调动前部门,调动后部门,调动日期,员工编号)
请假表(请假编号,开始时间,结束时间,请假天数,员工编号)
奖惩表(奖惩编号,奖惩金额,奖惩日期,员工编号)
4数据库物理结构设计
4.1数据库及数据表的创建
4.1.1数据库创建
createdatabase人事管理系统
onprimary
(
name=人事管理系统_data,
filename='f:
\SqlServer\人事管理系统_data.mdf',
size=3MB,
maxsize=20MB,
filegrowth=10%
)
logon
(
name=人事管理系统_log,
filename='f:
\SqlServer\人事管理系统_data.ldf',
size=512KB,
maxsize=10MB,
filegrowth=10%
)
4.1.2数据表的创建
1.创建员工表
2.创建部门表
3.SQL语句创建学历表
createtable学历表
(
学历号char(5)primarykey,
学历char(8)notnull,
毕业时间date,
毕业院校char(10)notnull,
员工号char(10),
constraintfk_员工号foreignkey(员工号)references员工表(员工号)
)
4.SQL语句创建考勤表
createtable考勤表
(
考勤号char(8)primarykey,
本月天数int,
请假天数int,
正常工作天数int,
员工号char(10)
)
5.SQL语句创建工资表
createtable工资表
(
工资编号char(8),
基本工资moneynotnull,
罚款money,
起始时间datetime,
结束时间datetime,
发薪时间datetime,
员工号char(10)
)
6.SQL语句创建调动表
createtable调动表
(
调动编号char(8),
调动前部门char(10)notnull,
调动后部门char(10)notnull,
调动日期datetime,
员工编号char(10)
)
7.SQL语句创建奖惩表
createtable奖惩表
(
奖惩编号char(8),
奖惩金额money,
奖惩日期date,
员工编号char(10)
)
8.SQL语句创建请假表
createtable请假表
(
请假编号char(8),
开始时间datetime,
结束时间datetime,
请假天数int,
员工编号char(10)
)
4.2数据完整性设计
4.2.1主键约束的创建
1.调动表的主键约束
2.工资表的主键约束
altertable工资表
addconstraint工资表_pk_工资编号primarykey(工资编号);
3.奖惩表的主键约束
altertable奖惩表
addconstraint奖惩表_pk_奖惩编号primarykey(奖惩编号);
4.请假表的主键约束
altertable请假表
addconstraint请假表_pk_请假编号primarykey(请假编号);
4.2.2DEFAULT约束的创建
1.将员工表的民族默认值设为汉
2.使用SQL语句为学历表添加默认约束
altertable学历表
addconstraint学历表_DF_学历DEFAULT'本科'for学历
4.2.3外键约束的创建
1.为员工表创建外键约束
2.使用SQL语句分别为学历表,考勤表,工资表,调动表,奖惩表,请假表创建外键约束
altertable学历表
addconstraint学历表_FK_员工号
foreignkey(员工号)references员工表(员工号)
4.2.4UNIQUE约束的创建
1.为奖惩表的奖惩日期设置唯一约束
2.通过SQL语句为工资表设置唯一约束
altertable工资表
addconstraint工资表_UQ_罚款unique(罚款)
4.2.5CHECK约束的创建
1为员工表的年龄字段创建检查约束
2使用SQL语句创建检查约束
altertable员工表
addconstraintCK_性别check(性别='男'or性别='女')
4.3索引的创建
1.为员工表的姓名字段创建一个索引
createindex员工表_姓名_indexon员工表(姓名)
2.为考勤表创建一个索引
4.4视图的创建
1.创建查询员工号,姓名,部门号,部门名的视图
2.创建查询员工号,姓名,毕业院校,工资编号和基本工资的视图
5数据库的操作
5.1数据操纵
5.1.1表结构的修改
1为学历表添加一个专业字段
use人事管理系统
altertable学历表
add专业varchar(10)
结果:
2.将员工表的出生日期字段删除
use人事管理系统
altertable员工表
dropcolumn出生日期
结果:
5.1.2数据插入
1.使用编辑前2百行插入数据
2.使用SQL语句插入数据
5.1.3数据更新
1.将员工表林青的年龄改为28,部门号改为30
2.使用SQL语句更新数据
update部门表
set部门经理='王达'
where部门号=10;
结果:
5.1.4数据删除
deletefrom员工表
where员工号=9;
结果:
5.2数据查询
5.2.1单表查询
1.查询员工表的员工号,姓名,性别,学历,部门号
select员工号,姓名,性别,学历,部门号
from员工表;
结果:
2.查询部门表的部门号,部门名,部门经理;
select部门号,部门名,部门经理
from部门表
结果:
3.查询学历表学历号,学历,毕业院校
Select学历号,学历,毕业院校
From学历表
结果:
5.2.2多表查询
1.两张表查询员工号,姓名,部门名,部门经理
selecty.员工号,y.姓名,b.部门名,b.部门经理
from员工表asyjoin部门表asbon(y.部门号=b.部门号)
结果:
2.三张表查询员工姓名,所在部门名,和毕业院校,学历
select姓名,部门名,毕业院校,x.学历
from员工表yjoin部门表bony.部门号=b.部门号
join学历表xony.员工号=x.员工号
结果:
3.四张表查询员工姓名,所在部门经理,毕业时间,基本工资和发薪日期
select姓名,部门经理,毕业时间,基本工资,发薪时间
from员工表yjoin部门表bony.部门号=b.部门号
join学历表xony.员工号=x.员工号
join工资表gony.员工号=g.员工号
结果:
5.3存储过程的创建
1.创建不带参数的存储过程
USE人事管理系统
Go
CREATEPROCEDUREp_学历表
AS
SELECT*FROM学历表WHERE学历='本科'
结果:
2.创建带参数的存储过程
CREATEPROCEDUREp_员工表_性别
@性别varchar(10)
AS
SELECT*FROM员工表
WHERE性别=@性别
结果:
5.4触发器的创建
CreateTrigger工资表_Update
On工资表
forUpdate
As
ifUpdate(基本工资)
begin
print'执行触发器.......'
end
结果:
6总结
在这两周的学习中,我终于体会到SQL Server 2008的功能丰富,表达能力强,使用灵活方便,应用面广。
虽然当中我遇到很多难题,但是最终我还是顺利地完成了此次工作。
在设计中,我深知自己所掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。
在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,增强了自己在数据库中应用SQL语言的灵活性。
在学习过程中,我们对本学期所学的知识有了一个比较系统的认识和理解。
进一步掌握了数据库的方法和技术,提高软件开发的实际能力,培养综合分析、解决问题的能力。
从中到学到用,从用又到学,不断修改,不断进步。
通过此次人事资源管理系统的数据库的课程设计,真正达到了学与用的结合,增强了我们对数据库方面应用的理解,涉及了各方面的知识,大大扩展了我们的知识面,同时使我们学会了如何使用所学的知识去解决一些实际问题。
对自己今后参与开发数据库系统积累了不少经验,通过这次课程设计,我收益颇丰,感受深刻。
从中更好的理解知识,我觉得这样的课程设计特别有价值和实践意义。
我相信经过不断地尝试和努力,我一定会有更多的收获和体验。
知识不是知道、了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。
把学到的知识应用到实践中去,多做多练,才可以把理论的精华发挥出来。
参考文献
[1]《数据库系统概论》(第三版)萨师煊、王珊高等教育出版社,2000年8月
[2]《SQLServer入门很简单》秦婧主编清华大学出版社2013年12月第一版
[3]数据库技术的历史及未来的发展趋势综述.李大勇,时延鹏2005,6.
[4]《数据库系统设计、实现与管理》金名等著清华大学出版社2012年5月第八版
[5]数据库高级实例导航.钟军科学出版社2004年7月.
[6]数据库开发经典案例解析王晟,王松,刘强北京.清华大学出版社.2005.7