1、重庆科技学院课程设计报告 院(系):_ 电气与信息工程学院 _ 专业班级: 计科普0902 学生姓名: 杨宝 学 号: 2009441658 设计地点(单位)_ 第一实验楼I515_ _ _ _ _ 设计题目:_ 人事管理系统设计_ _ _ _ 完成日期: 2011年 7月 8日 指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _重庆科技学院课程设计任务书设计题目:人事管理系统设计学生姓名杨宝课程名称数据库原理课程设计专业班级,计科2009-02地 点I515和计算机自主学习中心起止时间2011.6.27-2011.7.8设计内容及要求内容: 学生根据本课程设计指
2、导书中的题目,进行设计。 (1)设计友好的登录界面,完成用户身份检验。可以提供对各种窗日的外观进行设计,可以提供用户进行外观选择。(2)企业新员工各种信息的输入、修改、删除等,包括员工基本信息、学历信息、婚姻状况、职称等。(3)数据库信息维护,即员工各种数据信息的备份。(4)对于转出、辞职、退休员工信息的删除。(5)按照一定的条件,查询、统计符合条件的员工信息;至少应该包括每个员工详细信息的查询、按婚姻状况查询、按学历查询、按工作岗位查询等,至少应该包括按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息;(6)对查询、统计的结果打印输出。(7)按照部门将现有员工进行分类,查看各个部门现有
3、员工的平均年龄,根据各部门工作量的大小,较好地进行人事调度。另外可以帮助领导做出招聘新员工人数的决定。(8)可供其他人使用帮助。要求: 按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数至少5个表结构;3个存储过程;2个触发器;3个视图。进度要求19.1 讲课 阅读分析任务书 制订设计计划19.2-3 需求分析 概念结构设计19.4-5 概念结构设计准备文挡20.1-3逻辑结构设计物理结构设计20.4-5写文挡答辩交设计报告书参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊数据库系统概述
4、(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:雷亮/游明英/王双明 2011年 06 月 15 日重庆科技学院数据库原理课程设计报告摘要数据库技术是计算机科学技术发展最快,应用最为广泛的技术之一。其在计算机设计,人工智能,电子商务,企业管理,科
5、学计算等诸多领域均得到了广泛的应用,已经成为计算机信息系统和应用的核心技术和重要基础。为了便于公司人事管理,设计了认识管理系统,简化公司管理工作,实现管理现代化。 人事管理系统分为九个模块,员工基本信息管理模块、考勤信息管理模块、工资核算模块、员工家庭信息模块、职称信息管理模块、员工部门信息模块,退休处理模块,招聘信息模块,用户设置模块。本系统采用SQL Server 2005作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器,视图以及存储过程。关键词: 人事管理 SQL Server 2005 视图 触发器 存储过程39目录1 需求分析11.1 系统目标设计11.
6、2 系统功能分析11.3 功能模块分析21.4 系统全局数据流图31.5 数据字典32 概念结构设计72.1 构成系统的实体型72.2 人事管理系统E-R图73 逻辑结构设计93.1逻辑结构简介93.2 关系模型93.3 人事管理系统逻辑概念设计图94物理模型设计114.1定义数据库114.2 创建表114.3 创建存储过程294.3.1创建查看退休员工信息的存储过程:294.3.2 设置用户类型和密码的存储过程:304.3.3 员工退休处理的存储过程:304.4 创建触发器314.5 创建视图344.5.1 创建员工工资核算的视图344.5.2 创建员工家庭信息的视图354.5.3 查看所有
7、员工个人信息的视图354.5.4 用户权限类型的视图36总结37致谢38参考文献391 需求分析1.1 系统目标设计为了使公司的认识管理效率得到提高,减少人工操作的出错机会,实现数据共享,便于查询、添加、更新数据,实现整个公司的信息化和办公自动化,为公司的竞争提供良好的条件。1.2 系统功能分析 根据需要完成的功能,设计出系统的总体功能模块。本系统共分为3个功能模块:基本信息管理、考评考勤管理、系统用户管理。功能模块示意图如下:基本信息管理模块:基本信息管理员工管理部门管理添加部门删除部门修改部门添加员工删除员工修改员工办理退休图1 基本信息管理模块示意图考勤考评管理模块:考勤考评管理考评管理
8、考勤管理图2 考勤考评管理模块示意图用户管理系统用户管理模块:添加密码复位修改密码用户管理删除图3 系统用户管理模块示意图1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块工资管理系统基本信息管理考勤信息管理奖惩记录管理员工家庭管理职称信息管理工资信息管理用户管理员工基本信息录入及修改员工基本信息的查询考勤信息的录入与修改员工考勤信息的查询奖惩信息的录入与修改员工奖惩信息的查询员工履历的录入与修改员工履历信息的查询职称评定的录入与修改职称评定的查询工资的录入与修改工资的查询用户账号管理系统数据备份图1.1 功能模块分析图4 人事管理系统模块1.4 系统全局数据流图 系统的
9、全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图5 数据流图1.5 数据字典表1.1 员工基本信息表(dbo.Workers)名称数据类型说明Worker_IDvarchar(10)员工编号 关键字Worker_Namevarchar(10)员工姓名Depart_IDvarchar(10)部门编号Worker_Sexvarchar(4)性别Worker_Agedatetime年龄Worker_Marryvarchar(25)婚姻状况Worker_CallNumvarchar(4)联系电话Worker_Nationalv
10、archar(15)国籍表1.2 考勤信息记录表(dbo.Check)名称数据类型说明Worker_IDVarchar(10)员工编号 关键字Worker_Namevarchar(10)员工姓名JobKind_IDvarchar(10)职位Depart_IDvarchar(10)部门编号Check_Datavarchar(10)时间Check_AllDaysFloat本月天数Check_OutDaysFloat出差天数Check_LeaveDaysFloat缺席天数Check_ReasonDaysFloat事假天数Check_LateDaysFloat迟到天数Check_EarlyLDaysF
11、loat早退天数Check_YearBreakDaysFloat年假天数Check_SickDaysFloat病假天数表1.3 工资信息表(dbo.Evaluation)名称数据类型说明Worker_NameVarchar(10)职工姓名Worker_IDvarchar(10)员工编号Depart_IDVarchar(10)部门编号JobKind_IDVarchar(10)职位编号Evaluation_MonthVarchar(10)月份Evaluation_JLAmountfloat 奖金Evaluation_CFAmountFloat罚金Evaluation_TrueSalarFloat实
12、发工资表1.4 家庭信息表(dbo.Family)名称数据类型说明Worker_IDvarchar(10)员工编号Worker_Namevarchar(10)员工姓名Family_NameVarchar(10)家人姓名Family_SexVarchar(10)性别Family_AgeInt年龄Family_Relationshipvarchar(10)关系Family_WorkUnitvarchar(10)工作单位表1.5 招聘信息表(dbo.Employe)名称数据类型说明JobKind_IDvarchar(10)招聘岗位编号Employe_Datevarchar(10)招聘时间Employ
13、e_LocationVarchar(20)招聘地点Employe_NumberInt招聘人数表1.6 退休员工表(dbo.OutOfWork)名称数据类型说明Worker_IDVarchar(10)员工编号 关键字Worker_NameVarchar(10)员工姓名 关键字OutOfWork_JobKindVarchar(10)职位编号OutOfWork_DepartmentVarchar(10)部门编号OutOfWork_Timevarchar(10)退休时间Remarkvarchar(200)备注表1.7 用户表(dbo.Load_User)名称数据类型说明Load_User_Nameva
14、rchar(10)用户登陆名 关键字Worker_IDvarchar(10)职员编号Worker_NameVarchar(10)员工姓名Depart_IDVarchar(10)部门编号JobKind_IDVarchar(10)职位编号Load_User_KindVarchar(10)用户类型Load_User_PassWordVarchar(20)用户密码2 概念结构设计2.1 构成系统的实体型由工资管理系统的数据流图和数据字典,抽取出系统的个主要实体,包括:员工、考勤记录、工资、家庭成员、退休员工、用户账号。员工实体型属性:Worker_ID,Worker_Name,Depart_ID,Jo
15、bKind_ID,Worker_Sex,Worker_Age,Worker_Marry,Worker_CallNum,Worker_IdCard,Worker_National,Worker_Political,Worker_Now考勤记录实体型属性:JobKind_ID,Worker_ID,Worker_Name,Depart_ID,Check_Data,Check_AllDays,Check_OutDays,Check_SickDays,Check_ReasonDays,Check_LeaveDays,Check_HoliDays,Check_YearBreakDays,Check_Lat
16、eDays,Check_EarlyLDays工资核算实体型属性:Worker_ID,Worker_Name,Depart_ID,JobKind_ID,Evaluation_Month,Evaluation_JLReason,Evaluation_JLAmount,Evaluation_CFReason,Evaluation_CFAmount,Evaluation_TrueSalary家庭成员实体型属性:Worker_ID,Worker_Name,Family_Name,Family_Sex,Family_Age,Family_Relationship,Family_WorkUnit退休员工实体
17、型属性:Worker_ID,Worker_Name,OutOfWork_JobKind,OutOfWork_Department,OutOfWork_Time履历实体型属性: Record_ID Worker_ID Worker_Name Begin_date Over_date Unit_Name Work_time Duty Level1 Remark用户账号实体型属性:Load_User_Name,Worker_ID,Worker_Name,Depart_ID,JobKind_ID,Load_User_Kind,Load_User_PassWord2.2 人事管理系统E-R图图6 人事管
18、理系统E-R图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型 将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例
19、如: (1) 员工与职位,部门之间是多对一的关系,所以将员工和职位,部门以及属于关系设计成以下关系模式:员工(Worker_ID,Worker_Name , Worker_Sex,Worker_Age,Worker_Marry,Worker_CallNum,Worker_IdCard,Worker_National,Worker_Politica,Worker_Now);职位:(JobKind_ID,JobKind_Name,JobKind_BasicSalary);部门:(Depart_ID,Depart_Name,Depart_Manger,Depart_UpperIdD);属于:(Wor
20、ker_ID,Worker_Name ,Depart_ID,JobKind_ID,Worker_Sex,Worker_Age,Worker_Marry,Worker_CallNum,Worker_IdCard,Worker_National,Worker_Politica,Worker_Now); (2) 员工与账号之间是一对一的关系,所以将员工和账号以及属于关系设计成以下关系模式: 员工(Worker_ID,Worker_Name ,Depart_ID,JobKind_ID,Worker_Sex,Worker_Age,Worker_Marry,Worker_CallNum,Worker_Id
21、Card,Worker_National,Worker_Politica,Worker_Now) 账号 (Load_User_Name,Load_User_Kind,Load_User_PassWord) 属于(Load_User_Name,Worker_ID,Worker_Name,Depart_ID,JobKind_ID,Load_User_Kind,Load_User_PassWord)3.3 人事管理系统逻辑概念设计图图7 人事管理系统物理概念图 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库SQL
22、 Server 2000数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过SQL语言进行数据库创建,创建数据库的语句如下:Create database 人事管理系统管理系统;4.2 创建表/*=*/* DBMS name: Microsoft SQL Server 2005 */* Created on: 2011/7/6 17:00:08 */*=alter table Check drop constraint FK_CHECK_DEPART_WO_DEPARTgoalter table Check drop constraint FK_CHECK_JOBKIND_W_JOB
23、KINDgoalter table Check drop constraint FK_CHECK_WORKERPRE_WORKERSgoalter table Employe drop constraint FK_EMPLOYE_JOB_EMPLO_JOBKINDgoalter table Evaluation drop constraint FK_EVALUATI_DEPART_WO_DEPARTgoalter table Evaluation drop constraint FK_EVALUATI_JOBKIND_W_JOBKINDgoalter table Evaluation drop
24、 constraint FK_EVALUATI_MONTHCHEC_WORKERSgoalter table Family drop constraint FK_FAMILY_FAMILYREL_WORKERSgoalter table Load_User drop constraint FK_LOAD_USE_USERBELON_DEPARTgoalter table Load_User drop constraint FK_LOAD_USE_USERCHECK_WORKERSgoalter table Load_User drop constraint FK_LOAD_USE_USER_J
25、OBK_JOBKINDgoalter table OutOfWork drop constraint FK_OUTOFWOR_OUT_WORK2_WORKERSgoalter table Workers drop constraint FK_WORKERS_SETJOB_JOBKINDgoalter table Workers drop constraint FK_WORKERS_WORKERBEL_DEPARTgoif exists (select 1 from sysindexes where id = object_id(Check) and name = Depart_WorkPres
26、ent_FK and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 0 and indid 255) drop index Workers.WorkerBelongs_FKgoif exists (select 1 from sysobjects where id = object_id(Check) and type
27、= U) drop table Checkgoif exists (select 1 from sysobjects where id = object_id(Depart) and type = U) drop table Departgoif exists (select 1 from sysobjects where id = object_id(Employe) and type = U) drop table Employegoif exists (select 1 from sysobjects where id = object_id(Evaluation) and type =
28、 U) drop table Evaluationgoif exists (select 1 from sysobjects where id = object_id(Family) and type = U) drop table Familygoif exists (select 1 from sysobjects where id = object_id(JobKind) and type = U) drop table JobKindgoif exists (select 1 from sysobjects where id = object_id(Load_User) and typ
29、e = U) drop table Load_Usergoif exists (select 1 from sysobjects where id = object_id(OutOfWork) and type = U) drop table OutOfWorkgoif exists (select 1 from sysobjects where id = object_id(Workers) and type = U) drop table Workersgo/*=*/* Table: Check */*=*/create table Check ( JobKind_ID varchar(1
30、0) not null, Worker_ID varchar(10) not null, Depart_ID varchar(10) not null, Check_Data varchar(10) not null, Check_AllDays float null, Check_OutDays float null, Check_SickDays float null, Check_ReasonDays float null, Check_LeaveDays float null, Check_HoliDays float null, Check_YearBreakDays float null, Check_LateDays float null, Check_EarlyLDays float