1、徐州工程学院课程设计徐州工程学院课程设计目 录1.系统概述 11.1 系统开发背景和意义 11.2 开发环境.12.系统分析 12.1 可行性分析 12.2 安全性、完整性分析 22.3 需求分析 32.4 系统模块设计 33. 数据库设计 43.1 数据字典 43.2 系统数据流图 53.3 数据库概念设计 53.4 数据库逻辑设计 83.5 数据库物理设计 94.系统的实现与调试 94.1 建立企业人事管理系统数据库 94.2 建立了数据库的各基本表 .104.3 插入数据 .184.4 建立索引 .194.5 视图 .204.6 存储过程 .224.7 触发器 .234.8 主要的查询
2、SQL 语句 .255.思考与总结 276.参考文献 27徐州工程学院课程设计01.系统概述1.1 系统开发背景和意义随着计算机技术的飞速发展,计算机已深入到各个领域,并且形成了功能强大、覆盖全球的信息传输网络。各个领域都向系统化、规范化、自动化的方向发展,使得工作效率、工作成绩和生活水平都日益提高。人事管理是很多厂矿、公司、个体事业单位所须的,人事信息管理系统包括对人事信息的统计、查询、更新、打印输出等,如果靠人,工作量将很大,若公司人数有几万甚至更多,人工统计将变得不可想象,仅一些简单的操作便可及时、准确地通过计算机获得需要的信息。计算机在企业管理中应用的普及,利用计算机实现企业人事管理势
3、在必行。计算机管理所无法比拟的优点检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。不同的企业具有不同的人事管理制度,这就决定了不同的企业需要不同的人事管理系统。经过分析,我们使用 SQL Server 2005 和 C#开发工具。系统能够提供对人事信息输入、查询、编辑以及工资设定、查询、修改、算出工资发放各项合计数据;可自主设定条件从而达到对工资数据的多角度查询功能;方便导入、导出数据及输出报表。财务部门人员以管理员身份登录,对本系统的可登录人员进行管理;实现了财务部门对本单位工资发放
4、系统的集中管理,保证了系统的安全性。1.2 开发环境开发环境的选择会影响到数据库的设计,所以在这里给出人事管理系统开发环境的选择如下:开发环境:Windows 7数据库管理系统:MS SQL SERVER 数据库2.系统分析2.1 可行性分析可行性分析是在用户的要求和系统调研的基础上进行的,对新系统的开发从社会、技术、经济、管理等方面进行分析,并得出新系统的开发工作可行、不可行、需要修改、追加投资、暂缓开发、分步实施等方案和结论,最后完成可行性分析。可行性分析一般可定义为:可行性分析是在建设的前期对工程项目的一种考察和鉴定,对拟议中的项目进行全面与综合的技术、经济能力的调徐州工程学院课程设计1
5、查,判断它是在对系统目标和环境精心分析的基础上,由于本系统知识面向机关和事业单位内人事信息管理人员和在职人员开发的信息管理系统,尽管这些人员可能没有使用过类似的系统,但是以 Windows 的友好界面和本系统良好的安全性设置,可以是人事信息管理员在专业人员的指导帮助下迅速掌握系统的操作方法。本系统对计算机的硬件环境有一定的要求,对计算机的操作系统、内存、主频、外设等都有最低要求,如果低于这个要求将影响到本系统的正常运行。机关和事业单位的人事信息管理目前还完全以传统的人工管理方式进行管理,耗时多,效率低下并且极容易出现错误。由于认为失误而造成有形和无形的经济损失时间层出不穷,我们也无法估算出所造
6、成损失的总额。而利用计算机来实现人事管理以成为适应当今人事管理的方式。开发一套能满足人事信息管理的软件是十分必要的,实现人事管理的自动化,在减少由于认为失误而造成损失的同时,也可以是认识信息管理部门减少许多费用支出,如实现自动化管理后可以精简人员,减少工资支出等。由上述三方面的分析可以看出,本系统的开发时机已经成熟,从多种角度考虑开发此系统都是可行的,并且也是十分必要的。2.2 安全性、完整性分析数据库的安全性是指保护数据库,以防止非法使用所造成的数据泄露、更改或破坏。安全性问题有许多方面,在法律、社会、伦理方面,例如请求查询信息的人是否有合法的权利;法律控制方面,例如计算机机房或者中断是否应
7、该加锁或用其他方法保护;政策方面,确定存取原则允许哪些用户存取哪些数据;运行于技术方面,使用口令时,如何使口令保持秘密;操作系统安全性方面,在主存储器和数据文件用过后,操作系统是否把它们的内容清除掉。安全性控制的方法有用户的标识和鉴定,存取控制,定义视图,数据加密和审计等,在本系统中的安全性体现在用户的标识和鉴定,例如在登陆界面时,首先会输入账户名称,系统内部记录着所有合法用户的标识,每次用户要求进入系统时,由系统进行核实,通过鉴定后才提供机器上对数据库的使用权。当你不是该系统的合法用户时,则账号是错误的就无法进入该系统。就用户存取权限控制而言,在系统登陆界面时会选择是一般用户登陆还是管理员登
8、陆,当为一般用户登陆时,只能查询员工信息和部门信息,而不能对其进行管理。当以管理员身份登陆时不仅仅可以查询部门和员工的基本信息,也可以对其进行添加、删除、修改等操作。数据库的完整性是指保护数据库中数据的正确性、有效性和相容性,防止徐州工程学院课程设计2错误的数据进入数据库造成无效操作。在本系统中对数据类型的约束,包括数据的类型、长度、单位和精度等。例如规定员工性别的数据类型应为字符型,长度为 2.对数据格式的约束例如规定出生日期的数据格式为 XXXX.XX.XX。对取值范围的约束,例如月份的取值范围为 1-12 月,日期为 1-31 号。对空格的约束,例如员工姓名和编号不能为空,但是员工学历即
9、可为空。实体完整性约 白斑病束说明了关系主键(主码)的属性列必须唯一,其职不能为全空或部分为空。2.3 需求分析调查本地的企业,根据企业的具体情况分析、设计和实现企业人事管理系统。其主要功如下:1、 人事档案管理:户口状况、政治面貌、生理状况、合同管理等。 2、 考勤、加班、出差管理。 3、 人事变动:新进员工登记、员工离职登记、人事变更记录。 4、 考核奖惩。 5、 员工培训。 6、 系统维护:操作员管理、权限设置等。2.4 系统模块设计 企 业 人 事 管 理 系 统管 理 员考勤管理奖惩管理出差管理薪资管理合同管理新员工管理加班管理员工离职员工档案人事调动徐州工程学院课程设计33.数据库
10、设计3.1 数据字典徐州工程学院课程设计43.2 系统数据流图3.3 数据库概念设计数据库 ER 图:档 案 管 理 调 动 管 理出 差 记 录出 差 管 理薪 资 管 理 奖 惩 管 理上 班 管 理 加 班 管 理新 员 工 管理 员 工 离 职 合 同 管 理加 班 记 录考 勤 记 录管 理 员员 工 员 工员 工 记 录 管 理 员 记录调 动 记 录奖 惩 记 录员 工 记 录薪 资 记 录下 班 管 理员 工 记 录 员 工 记 录安 全 管 理员 工 情 况 员 工 情 况薪资情况 调动情况上 班 时 间下 班 时间离 职 记 录出差 奖 励 或 惩罚加 班徐州工程学院课程设
11、计5徐州工程学院课程设计6徐州工程学院课程设计73.4 数据库逻辑设计由数据库 E-R 图,可得以下关系:员工(员工编号,姓名,性别,政治面貌,出生日期,部门,职位,身份证号,民族)加班(加班编号,员工编号,加班起始,加班结束)出差(出差编号,员工姓名,出差起始,出差结束)考勤(考勤编号,员工编号,考勤日期,上班时间,下班时间)奖惩(奖惩编号,员工编号,奖惩方式,奖惩原因,奖惩日期)职务调动(调动编号,员工编号,调往部门,调往职位,调动日期)合同(合同编号,员工编号,合同起始,合同到期)新员工(登记编号,员工编号,到港日期,部门,职位)员工离职(离职编号,员工编号,部门,职位,离职日期)薪资管
12、理(薪资编号,员工编号,基本工资,总工资,发薪日期)管理员(管理员编号,管理员姓名,管理员密码)徐州工程学院课程设计83.5 数据库物理设计数据库物理设计阶段的任务是根据具体的计算机系统的特点,为给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度要体现在后者。(1)存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。将日志文件和数据库对象分别放在不同的磁盘,可以改进系统的性能,提高系统的安全性。
13、所以,系统应将日志文件和数据文件存放在不同的磁盘上。(2)评价物理结构数据库物理结构设计过程中需要对时间效率,空间效率,维护代价和各种用户需求进行权衡,其结果可以产生多种方案,因此要从中选择一个最优的方案。评价物理结构的方法依赖于所选用的 DBMS,主要是定量估算各种方案的存储空间,存储时间和维护代价,对估算结果进行权衡,选择一个较优的物理结构。4.系统的实现与调试4.1 建立企业人事管理系统数据库create database mmon(name=mmdat,filename=E:StudySQLmydatammdat.mdf,size=100,maxsize=300,filegrowth=
14、10)log on(name=mmlog,filename=E:StudySQLmydatammdat.ldf,徐州工程学院课程设计9size=50,maxsize=150,filegrowth=10%)4.2 建立了数据库的各基本表建立员工表:create table 员工表(员工编号 char(4) primary key,姓名 char(10) not null,性别 char(2) check(性别 in(男,女),出生日期 char(16),身份证号 char(32) not null,民族 char(16) default 汉,职位 char(16),部门 char(16),政治面
15、貌 char(10);徐州工程学院课程设计10建立新员工表:create table 新员工表(登记编号 char(4) primary key,员工编号 char(4),部门 char(16),职位 char(16),入职日期 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学院课程设计11建立离职表:create table 离职表(离职编号 char(4) primary key,员工编号 char(4),部门 char(16),职位 char(16),离职日期 char(16),foreign key(员工编号) referenc
16、es 员工表(员工编号);建立人事表:create table 人事表(调动编号 char(4) primary key,员工编号 char(4),调后部门 char(16),调后职位 char(16),调动日期 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学院课程设计12建立合同表:create table 合同表(合同编号 char(4) primary key,员工编号 char(4),合同起始 char(16),合同到期 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学
17、院课程设计13建立奖惩表:create table 奖惩表(奖惩编号 char(4) primary key,员工编号 char(4),奖惩原因 varchar(50),奖惩方式 char(10),奖惩日期 char(16),foreign key(员工编号) references 员工表(员工编号);建立加班表:create table 加班表(加班编号 char(4) primary key,员工编号 char(4),加班起始 char(16),加班结束 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学院课程设计14建立出差表:cr
18、eate table 出差表(出差编号 char(4) primary key,员工编号 char(4),出差起始 char(16),出差结束 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学院课程设计15建立考勤表:create table 考勤表(考勤编号 char(4) primary key,员工编号 char(4),考勤日期 char(16),上班时间 char(16),下班时间 char(16),foreign key(员工编号) references 员工表(员工编号);建立薪资表:create table 薪资表(薪资编
19、号 char(4) primary key,员工编号 char(4),基本工资 char(10),总工资 char(10),发薪日期 char(16),foreign key(员工编号) references 员工表(员工编号);徐州工程学院课程设计16建立管理员表:create table 管理员(管理员编号 char(4) primary key,管理员姓名 char(10),管理员密码 char(8);4.3 插入数据(1)徐州工程学院课程设计17(2)(3)(4)(5)徐州工程学院课程设计18(6)(7)4.4 建立索引create index 员工表_姓名_index on 员工表(
20、姓名)create index 奖惩管理表_奖惩方式_index on 奖惩表 (奖惩方式)徐州工程学院课程设计19create index 薪资表_总工资_index on 薪资表(总工资)4.5 视图(1)建立一个视图,反映员工姓名及工资情况。create view 员工_工资asselect 员工表.姓名 , 薪资表.*from 员工表,薪资表where 员工表.员工编号=薪资表.员工编号徐州工程学院课程设计20(2)建立一个视图,反应管理员信息create view 系统管理员信息(编号,姓名,密码)asselect 管理员编号,管理员姓名 ,管理员密码from dbo.管理员4.6
21、存储过程1、创建存储过程 proc1 用于查看所有信息create proc proc1徐州工程学院课程设计21asselect * from 员工表,管理员,人事表exec proc12、设计存储过程,实现根据传递参数(员工编号和部门编号)查询指定员工的部门名称。create proc proc4员工编号 char(10),编号 char(10)as select 企业员工.员工编号,姓名,部门.编号,部门.部门名称from 企业员工 ,部门where 企业员工 .员工编号= 部门.员工编号 and 企业员工 .员工编号= 员工编号and 部门.编号 =编号exec proc4 0001,0
22、014.7 触发器(1)关键操作,在工资表里添加一条新的记录,实发工资会自动更新新的数据。定义这个触发器名称为 insert_工资。徐州工程学院课程设计22代码如下:create trigger insert_工资 on 薪资表 for insertasdeclare i char(20)declare bb intset i=casewhen bb=0001 then 实发工资when bb=0002 then 实发工资endprint i(2)员工新调入进行员工新调入操作是在员工信息表中添加一条新的记录,可以为员工信息表设计一个 Insert 触发器,当员工信息表执行 Insert 操作后
23、自动更改出部门信徐州工程学院课程设计23息表相应记录的数据。定义这个触发器名称为 staff_insert。其代码如下:create trigger staff_insert on 员工for insertas if (select count(*)from 部门,inserted,工资where 部门.部门人数=inserted.部门人数 and 工资.工号=inserted.工号)=0rollback transactiongo4.8 主要的查询 SQL 语句(1)查询编号为 1 的员工姓名select distinct 姓名徐州工程学院课程设计24from 员工表where 员工编号 =
24、1;(2)查询工资编号为 1 的基本工资select 基本工资from 薪资表where 薪资编号 =1; (3)查询 14: 00 点开始加班的人select 员工编号from 加班表where 加班起始 =14:00(4)统计基本工资大于 2000 的人数select count(基本工资) as 人数 from 薪资表where 基本工资 2000徐州工程学院课程设计25(5)统计企业中经理的人数select count(职位) as 人数 from 员工表where 职位=经理5.思考与总结通过此次人事资源管理系统的数据库的课程设计,真正达到了学与用的结合,增强了我们对数据库方面应用的
25、理解,对自己今后参与开发数据库系统积累了不少经验,这次的课程设计,让我明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。2 周的徐州工程学院课程设计26设计使我和同学的关系更进一步了,有什么不懂的大家在一起商量,听听不同的看法,从中更好的理解知识,我觉得这样的课程设计特别有价值和实践意义。在实验过程中,从建立数据开始,对于据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R 图的表示,数据流图的创建,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,增强了自己在数据库中应用 SQL 语言的
26、灵活性,在学习过程中,我也能过上网查了不少资料,也看了一些别人设计的人事资源管理信息系统的设计报告,学以致用,完成了这份自己的报告,从中在学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,不管怎么说,对这次做的课程设计自己觉得还算满意。6.参考文献1.王珊,萨师煊.数据库系统概论(第四版).北京:高等教育出版社 2006.5 2.孙春来.SQL Server 中文版编程基础.上海:电子工业出版社, 2008:195-2103.知寒工作室.SQL Server 2000 案例教程.北京:机械工业出版社,2007:619-625 4.徐建平,赵永.SQL Server 2000 基础教程.北京: 机械工业出版社出版,2006:51-69