资源描述
经济管理学院SQL Server课程设计报告 院 系: 经济管理学院 专 业: 网络营销 学 号: 1040412120 姓 名: 沈箫慧 指导教师: 盛永祥 2012 年 6月 15日 1.系统开发背景 企业人事管理信息系统是一个现代化的企业在竞争中立于不败之地的必要部分,它能够为查询人事信息提供充足的信息和快捷的查询手段。一些公司一直以来使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,而且容易丢失。 使用计算机对企业人事信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高企业人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。本系统可以通过提出查询请求(执行SQL语句),服务器完成对数据库的查询任务,并可以完成一下功能:(1)对员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。员工各种信息的修改;(2) 对于转出、辞职、辞退、退休员工信息的删除;(3)按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询;(4)按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;通过本系统把查询结果,统计结果返回给用户,使用户快速准确的了解公司人事信息。2. 需求分析一个公司必将分为若多个部门,包括人事部,车间,研发部等,各个部门的工作责任不同,它们完成不同的任务,各尽其职,使公司能够有条不紊的开展。工作人事部负责人事管理及人才调用,车间负责生产,研发部负责开发新产品等等,每个部门的人数也不一样。每个部门将有若干职位,人事部有部长,秘书,副部长,部长助理等职位,车间有厂长,车工,主管等职位,研发部有部长,秘书,副部长,部长助理等职位。每个职位有不同的员工来当任,员工的工号,员工姓名,出生年月,性别,婚姻状况,职位,工作时间组成员工信息。这样人事部门就能够很快掌握员工的信息,能够发现人才提拔人才。根据已婚员工的配偶信息可以很快掌握员工的家庭信息。职位,职权公 司人事部研发部车间员 工职位,职权职位,职权 通过分析,可以设计下面的数据项和数据结构: 企业部门信息 :部门 ,员工人数,主管工作 企业工作岗位信息:工号,学历,部门,职位 员工基本信息:工号,员工姓名,出生年月,性别,婚姻状况,职位,工作时间,电话3概念结构设计 实体间的联系如下:(1)一个公司有很多部门,各个部门的主管工作不同,每个部门的人数也不一样,部门和公司是多对一的关系,因此可以用部门信息来反映这个公司各个部门的责任情况。 (2)一个公司有很多工作岗位,各个岗位有不同的人来负责,职位对于各个部门是多对一的关系,所以可以用工作岗位信息来表示每个员工的职位信息。(3)每个员工都有自己的个人基本信息,每个员工的学历信息及已婚的员工的配偶信息也不同,学历信息及已婚的员工的配偶信息与各个员工是一对一的关系。4. 逻辑结构设计 人事管理系统中关系模式集如下: 员工基本信息(工号,员工姓名,出生年月,性别,婚姻状况,职位,工作时间,电话),主键为工号。 员工配偶信息(工号,配偶姓名, 出生年月,工作单位,电话),主键为工号。员工学历信息(工号,员工姓名,学历,毕业学校,专业,毕业时间,外语情况),主键为工号。 企业工作岗位信息(工号,学历,部门,职位),主键为工号+部门。 企业部门信息 (部门 ,员工人数,主管工作),主键为部门。5物理结构设计 (1) 数据结构:设置每一数据表的属性名,类型,宽度。 (2)设置参照属性: 员工配偶信息(工号,配偶姓名, 出生年月,工作单位,电话)的工号参照员工基本信息的工号。 员工学历信息(工号,员工姓名,学历,毕业学校,专业,毕业时间,外语情况)的工号参照员工基本信息的工号。企业工作岗位信息(工号,学历,部门,职位)的工号参照员工基本信息的工号,部门参照企业部门信息的部门 (3)关系: 员工基本信息与员工配偶信息建立关于工号的父子关系。 员工基本信息与员工学历信息建立关于工号的父子关系。 员工基本信息与企业工作岗位信息建立关于工号的父子关系。 企业工作岗位信息与员工基本信息建立关于工号的父子关系。 企业工作岗位信息与企业部门信息建立关于部门的父子关系。 (4)数据库名称:人事管理系统。 逻辑数据名称:人事管理系统。 数据文件:人事管理.mdf,初始大小:2MB,最大空间:20MB,增加量:2MB。 日志文件:人事管理_log.ldf,初始大小:2MB,最大空间:20MB,增加量:2MB。 备份设备名:rsxtbf,备份文件:rsbf.bak (5)索引:对于每一数据表关于主关键字建立索引文件。 (6)设置触发器: 要求员工基本信息中的工号被修改时,员工配偶信息表和员工学历信息表及企业工作岗位信息中的工号都被修改。 要求在员工基本信息中插入新的工号时,员工配偶信息表和员工学历信息表及企业工作岗位信息中的工号都被插入新的工号。 要求在员工基本信息中删除工号时,员工配偶信息表和员工学历信息表及企业工作岗位信息中的工号都被删除工号。 (7)设置视图: 为用户提供包含工号,员工姓名,出生年月,性别,学历,婚姻状况,职位,工作时间的视图。 (8)设置存储过程: 根据用户所提交的学历,为用户提供关于员工姓名,性别,婚姻状况,工作时间,部门,职位,电话的信息。 根据用户所提交的婚姻状况,为用户提供关于员工姓名,性别,学历,工作时间,部门,职位,电话的信息。 根据用户所提交的职位,为用户提供关于员工姓名,性别,婚姻状况,学历,工作时间,部门,电话的信息。 6源程序代码 6.1 数据库程序create database 人事管理系统 on primary (name=人事管理, filename=d:renshi人事管理.mdf, size=2, maxsize=20, filegrowth=2) log on (name=人事管理_log, filename=d:renshi人事管理_log.ldf, size=2, maxsize=20, filegrowth=2)6.2 备份程序sp_addumpdevice disk,rsxtbf,d:beifenrsbf.bakgobackup database 人事管理系统 to rsbf 6.3 表程序create table 员工基本信息 ( 工号 char(5) defaultj0000, 员工姓名 char(8), 出生年月 datetime, 性别 char(3), 婚姻状况 char(4), 职位 char(20), 工作时间 datatime, 电话 char(11), check(性别 in (男,女), primary key(工号)create table 员工配偶信息 (工号 char(5), 配偶姓名 char(8), 出生年月 datetime, 工作单位 char(20), 电话 char(11), foreign key(工号) references 员工基本信息(工号)create table 员工学历信息 ( 工号 char(5), 员工姓名 char(8), 学历 char(12), 毕业学校 char(30), 专业 char(12), 毕业时间 datetime, 外语情况 char(6), foreign key(工号) references 员工基本信息(工号)create table 企业工作岗位信息 ( 工号 char(5), 学历 char(10), 部门 char(10), 职位 char(20), foreign key(工号) references 员工基本信息(工号), foreign key(部门) references 企业部门信息(部门)create table 企业部门信息 (部门 char(10), 员工人数 int, 主管工作 char(20), primary key(部门)6.4 视图create view 员工信息视图(工号,员工姓名,出生年月,性别,学历,婚姻状况,职位,工作时间)as select.员工基本信息.工号,员工基本信息.员工姓名,出生年月,性别,学历,婚姻状况,职位,工作时间from 员工基本信息,员工学历信息where 员工基本信息.工号=员工学历信息.工号 6.5 存储过程1关于学历的存储过程create procedure yg xl varchar(8)=nullas if xl is null print 请输入学历!else select 员工姓名,性别,婚姻状况,工作时间,部门,企业工作岗位信息.职位,电话 from 员工基本信息,员工学历信息,企业岗位信息 where 员工基本信息.工号=员工学历信息.工号 and 企业工作岗位信息.工号=员工学历信息.工号 2 关于婚姻状况的存储过程create procedure yg1 hy varchar(8)=nullas if hy is null print请输入婚姻状况else select 员工基本信息.员工姓名,性别,学历,工作时间,部门,企业工作岗位信息.职位,电话 from 员工基本信息,员工学历信息,企业工作岗位信息where 员工基本信息.工号=员工学历信息.工号 and 企业工作岗位信息.工号=员工学历信息.工号 3 关于职位的存储过程create procedure yg2 zw varchar(8)=nullas if zw is null print请输入职位else select 员工基本信息.员工姓名,性别,婚姻状况,学历,工作时间,部门,电话 from 员工基本信息,员工学历信息,企业工作岗位信息 where 员工基本信息.工号=员工学历信息.工号 and 企业工作岗位信息.工号=员工学历信息.工号 6.6 触发器1修改工号的触发器create trigger goha on 员工基本信息for updateas begin if(columns_updated()&01)0 update 员工配偶信息 set 员工配偶信息.工号=(select a.工号 from inserted a) where 员工配偶信息.工号=(select b.工号 from deleted b) update 员工学历信息 set 员工学历信息.工号=(select a.工号 from inserted a) where 员工学历信息.工号=(select b.工号 from deleted b) update 企业工作岗位信息 set 企业工作岗位信息.工号=(select a.工号 from inserted a) where 企业工作岗位信息.工号=(select b.工号 from deleted b) end2插入新工号的触发器create trigger jbinsert on 员工基本信息for insert asif(columns_updated()&1)0begin insert into 员工配偶信息(工号) select 工号 from insertedinsert into 员工学历信息(工号,员工姓名) select 工号,员工姓名from insertedinsert into 企业工作岗位信息(工号) select 工号 from insertedend3删除工号的触发器create trigger check_delete on 企业工作岗位信息 for deleteas begin delete 员工学历信息 where 员工学历信息.工号=(select 工号 from deleted) delete 员工配偶信息 where 员工配偶信息.工号=(select 工号 from deleted) delete 员工基本信息 where 员工基本信息.工号=(select 工号 from deleted) end7.数据库表及时视图截图8结束语在盛永祥老师的指导下,运用老师课堂上讲的知识,我设计出了一个可以查询人事信息管理系统。这次课程设计是对这学期数据库课程的一个知识综合,它需要运用到前面所学的知识。通过这次课程设计,使我将平时所学的知识运用到实践中,提高了自己实际上机操作的能力。在实际操作中发现平时的知识的不足。总之,这是对平时掌握知识的一次检验,也是一次对平时不足的弥补。感谢盛老师这学期对课本知识和做人为事的教导使我们在轻松愉快中掌握了数据库的基本操作。忠心的谢谢!
展开阅读全文