1、摘 要 伴随计算机技术飞速发展,计算机在企业管理中应用普及,利用计算算计实现企业人事档案管理势在必行。目前企业信息管理系统正在从c/s结构向b/s结构转移,不过因为安全性等方面原因,c/s结构管理信息系统仍然占据企业管理信息系统主流。 人事管理系统是现代企业管理工作不可缺乏一部分,是适应该代企业制度要求、推进企业劳感人事管理走向科学化、规范化必需条件。关键词:SQL SERVER;数据库设计;人事调度目录第一章 绪论11.1课题介绍11.2设计目标11.3设计内容1第二章 需求分析22.1 需求分析任务22.2 需求分析过程22.3步骤图2第三章 概念结构设计53.1 概念结构设计方法和步骤5
2、3.2 数据抽象和局部视图设计53.3视图集成6第四章 逻辑结构设计74.1 E-R图向关系模型转换74.2 数据库关系图7第五章 数据库实现105.1数据库建立105.2 数据库基础结构建立105.3安全性实现105.4完整性实现105.5恢复技术实现11第六章 运行和结果126.1简单查询和连接查询126.2嵌套查询126.3组合查询和统计查询12第一章 绪论1.1课题介绍经过三年学习,我们对计算机方面知识有了很大提升,本着理论联络实际宗旨,经过学校提供这次课程设计实践机会,在指导老师帮助下,历经两周时间,我自行设计一套人事管理系统,在下面各章中,我将以这套人事管理系统为例,谈谈其开发过程
3、和所包含到问题。1.2设计目标支持企业高效率完成劳感人事管理日常业务,包含新职员加入时人事档案建立,老职员转出、辞职、退休等。支持企业进行劳感人事管理及其相关方面决议,如企业领导依据现有职员数目决定招聘人数等。1.3设计内容选择课题而且对课题相关信息有一定了解,对于我选课题来说,我必需了解企业对人事管理大约步骤及其相关信息。将这些信息输入到数据库中,使之能够进行查询、修改、删除而且和机票预定系统实施相同操作。在需求分析阶段,需要完成人事管理系统具体分类和实施过程流图。概念设计阶段要完成数据抽象和局部视图设计和视图集成。逻辑结构设计阶段要把E-R图转化为关系模式。最终是数据库实施和运行。第二章
4、需求分析2.1 需求分析任务调查应用系统用户所需要操作数据,决定在数据库中存放什么数据。调查应用系统用户要求对素具进行什么样处理,理清数据库中多种数据之间关系。 2.2 需求分析过程向应用系统用户了解她们通常需要什么信息,数据库中还需要增加或删减哪些内容,如职员年纪、学历、婚姻情况,是否还需要增加她人生经历。列出数据,分析各个数据全部有什么具体作用,她们之间又有什么联络?从而让人事管理人员能全方面具体分析企业人事情况,利于其制订人事管理计划。2.3数据字典和步骤图1.系统模块分析 (1)基础信息模块。关键包含企业职员基础信息,如姓名,性别,学历联络方法等。 (2)职员工作信息模块。关键显示职员
5、在企业情况。 (3)部门信息模块。关键统计企业组织机构信息。 (4)考勤信息模块。关键包含职员上下班出勤情况,如迟到等。 (5)职位调度模块。关键包含职员职位变动信息。 (6)查询统计模块。关键为实现上述信息查询和统计,并能够生成相关报表文件。2.业务步骤分析图2.1人事管理步骤图第三章 概念结构设计3.1 概念结构设计方法和步骤概念设计阶段我采取自底向上方法,即自顶向下进行需求分析,然后再自底向上进行概念结构设计。对已经细化到无法再分阶段逐步集成在一起,最终合成一个全局概念模式。3.2 数据抽象和局部视图设计 人事调度信息E-R图 考勤信息E-R图 部门信息E-R图 职员工作信息E-R图 职
6、员基础信息E-R图3.3视图集成经过逐步细化再进行每两个一集成初步形成一个E-R图,最终得到图3.4总体概念结构E-R图。图3.4系统总体结构E-R图第四章 逻辑结构设计4.1 E-R图向关系模型转换将图3.4总体概念结构E-R图转化成关系模型。将转化关系模式进行优化,最终达成第三范式。(最少包含4张表,每个表全部有主键,设必需外键。)职员基础信息(工号,姓名,性别,年纪,民族,入职时间,所属部门,联络电话,身份证号,基础工资)职员工作信息(工号,所属部门编号,职称,工龄)部门(部门编号,部门名称,部门经理,部门电话)人事调度(工号,姓名,原职位,现职位,调度时间)考勤(工号,缺勤,迟到,早退
7、,日期)4.2 基础表结构依据总体结构图设计各表结构,其对应表定义以下:表4-1部门信息表结构编号属性名称类型长度可否为空描述主/外键1部门编号char4否标识每个部门主2部门名称char10是统计部门名称3部门电话char11否统计各部门联络方法4部门经理char10否统计部门管理人员表4-2 考勤信息表结构编号属性名称类型长度主/外键是否为空描述1职员编号char10 主外否标识每一个职员2缺勤char4是统计缺勤次数3迟到char4是统计迟到次数4早退char4是统计早退次数5日期char10否统计考勤日期表4-3 职员工作信息表结构编号属性名称类型长度是否为空主/外键描述1职员编号ch
8、ar10否主标识每一个职员2部门编号char4否外标识每个部门3职称char10是职员头衔4工龄char4是工作时间表4.4人事调度表结构编号属性名称类型长度是否为空主/外键描述1职员编号char10否主外标识每一个职员2姓名char10是统计职员姓名3原职位char10是统计原职位4现职位char10是统计现职位5调度时间char10统计调度时间表4.5 职员信息表结构编号属性名称类型长度是否为空主/外键描述1职员编号char10否主标识每一个职员 2姓名char10否职员姓名3性别char4否标识男女4年纪int4是标识职员年纪5民族char4否标识职员民族6身份证号char18否标识职员
9、身份7入职时间char10否统计职员何时入职8所属部门char10是标识职员所在部门9联络电话char11否统计职员联络方法10基础工资char10否统计职员基础收入。第五章 数据库实现5.1数据库建立Create database 人事调度 on primary ( Name=人事调度, Filename=c:program filesMicrosoft SQL ServerMSSQL.1MSSQL 人事调度_data.mdf, Size=4MB, maxsize=10MB, Filegrowth=1MB) Log on(Name=人事调度_log, Filename=c:program f
10、ilesMicrosoft SQL ServerMSSQL.1MSSQL人事调度_log.ldf,Size=1MB,Maxsize=6MB,Filegrowth=1%) 5.2 数据库基础结构建立1、基础表建立CREATE TABLE .部门信息表(部门编号 char(10) NULL,primary key部门名称 char(10) NULL,部门电话 char(10) NULL,部门经理 char(10) NULL) CREATE TABLE .考勤信息表(工号 char(10) NOT NULL,primary key缺勤 char(10) NULL,早退 char(10) NULL,迟
11、到 char(10) NULL,日期 char(10) NULL) CREATE TABLE .人事调度表(工号 char(10) NOT NULL,姓名 char(10) NULL,原职位 char(10) NULL,现职位 char(10) NULL,调度时间 char(10) NOT NULL) CREATE TABLE .职员工作信息表(工号 char(10) NOT NULL,部门编号 char(4) NOT NULL,职位 char(10) NULL,工龄 char(4) NULL) 2、 添加数据Insert into 职员工作信息表(工号,部门编号,职位,工龄)Values(1
12、400,0000,职员,4)3、 视图建立Create view view_1As select SELECT 人事调度表.工号, 职员工作信息表.部门编号, 职员信息表.姓名FROM 考勤信息表 INNER JOIN 人事调度表 ON 考勤信息表.工号 = 人事调度表.工号 INNER JOIN 职员工作信息表 ON 考勤信息表.工号 = 职员工作信息表.工号 INNER JOIN 职员信息表 ON 考勤信息表.工号 = 职员信息表.工号 INNER JOIN 部门信息表 ON 职员工作信息表.部门编号 = 部门信息表.部门编号4、 索引建立Create unique index.职员工作信
13、息表工号 on.职员工作信息表(工号)Create unique index部门信息表部门编号 on部门信息表(部门编号)5、游标建立Use 人事调度Declare 部门信息表_cursor scroll cursor ForSelect 部门编号,部门名称,部门经理,部门电话From 部门信息表 For read only Open 部门信息表_cursor Fetch from 部门信息表_cursor6、 存放过程建立Create procedure 部门信息表_部门编号AsSelect 部门编号,部门姓名,部门电话,部门经理 From 部门信息表,职员工作信息表 Where 部门信息表
14、.部门编号=职员工作信息表.部门编号5.3安全性实现1、利用图形化工具为了提升安全性,建立系统用户,SQL SERVER用户,数据库用户,写出你所建立三个用户名。Login,login,login2、利用Transact-SQL设计一个SQL server登录账户,并设置密码,写出对应SQL语句。sp_addlogin login,123456 为登录帐户,设计创建一个数据库用户,写出对应SQL语句。sp_grantdbaccess login,login 为数据库用户创建数据库角色,写出对应SQL语句。sp_addrolemember db_owner,login 5.4完整性实现1、UNI
15、QUE约束 Alter table 职员工作信息表 Add constraint unique_工龄 Unique nonclustered(工龄)2、CHECK约束 Alter table 职员工作信息表 Add constraint check_工龄 Check(工龄2)3、DEFAULT约束 Alter table 职员工作信息表 Add constraint default_工龄 Default 4 for 工龄4、NOT NULL约束建表中5、 规则Use 人事管理系统Create rule compareAs value0 设计以上五项,写出对应SQL语句。5.5恢复技术实现完成全
16、部数据设计工作后,备份数据库,写出备份文件存放位置和文件名。C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLBackup人事调度.bak第六章 运行和结果6.1简单查询和连接查询1、简单查询 设计两个简单查询,写出对应SQL语句,并对查询结果截图。 SELECT 部门编号 FROM 部门信息表 SELECT 部门编号, 部门名称FROM 部门信息表2、连接查询设计两个连接查询,写出对应SQL语句,并对查询结果截图。SELECT 部门信息表.*FROM .部门信息表 INNER JOIN 部门信息表 AS 部门信息表_1 ON 部门信息表.部门编号
17、= 部门信息表_1.部门编号SELECT 部门信息表.部门名称, 部门信息表_1.部门电话FROM 部门信息表 INNER JOIN 部门信息表 AS 部门信息表_1 ON 部门信息表.部门编号 = 部门信息表_1.部门编号6.2嵌套查询设计两个连接查询,写出对应SQL语句,并对查询结果截图。SELECT 姓名FROM 职员信息表where 部门名称 in (select 部门名称 from 职员信息表 where 姓名=赵一) SELECT 工号FROM 职员工作信息表where 部门编号 in (select 部门编号 from 职员工作信息表 Where 工号=1400) 6.3组合查询和统计查询1、组合查询设计两个组合查询语句,写出对应SQL语句,并对查询结果截图。SELECT 部门编号FROM 部门信息表where 部门名称=前台unionselect 部门编号from 部门信息表where 部门名称=行政 SELECT 工号FROM 职员信息表where 部门名称=行政unionselect 工号from 职员信息表where 部门名称=后勤2、统计查询设计两个统计查询语句,写出对应SQL语句,并对查询结果截图。Select count(工号)From 职员工作信息表Select count(部门编号)From 部门信息表