




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录1需求分析.3 1.1 系统目标与要求 .3 1.2 用户需求3 1.3 系统业务流程图42. 系统逻辑方案.4 2.1 数据流图(简称为DFD)5 2.2 数据字典(简称DD)63. 系统总体结构设计.8 3.1 软件系统总体结构设计8 3.2 数据存储的总体设计8 3.3 系统功能模块设计84. 数据库详细设计.9 4.1 数据库设计9 4.2 数据库的完整性和安全性135. 数据库操作(SQL Server2000语句完成)15 5.1 创建企业人事管理系统15 5.2 创建企业人事信息表15 5.3 建立存储过程向表中插入、修改、删除数据17 5.4 建立存储过程实现查询19 5.5 视图的建立23 5.6 建立触发器246. 课程设计小结.247. 参考文献.241.需求分析1.1系统目标与要求对现行考试业务进行详细调查是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们企业人事管理工作进行全面、细致而充分的调查研究。需求分析工作是软件生存期中重要的一步,也是决定性的一步。系统初步调查的方式主要为首先与单位的管理者和人事信息管理人员交流,并了解企业在人事管理方面的一些内容和工作流程情况。在此基础上,深入到具体业务职能管理部门进行详细的调查,了解他们对现行考试方式的看法,在操作上有无需要改进的地方。通过调查得知,企业现行的人事管理方式主要是使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点。为适应当前网络技术新形势的发展,人事管理系统是针对人事处的大量业务处理工作而开发的管理软件。根据用户的要求,实现人员基本情况管理、人事变动、考勤加班出差管理,考核奖惩,员工培训,系统维护等方面的功能。用户通过输入工资、考勤、职工履历等基本信息,由系统自行生成相应的统计数据及各类统计报表以供用户查。1.2系统分析本系统是为了更好的实现人事信息管理。本系统主要针对查看员工的各种信息需求所设计的,可以很好的管理数据。主要功能有:数据入库、查询、修改和删除等。因此,本系统的主要功能由以下几个部分组成:员工基本信息模块输入:员工信息功能:对员工基本信息的查询、修改、删除和查询。员工奖惩管理模块输入:员工奖惩情况功能:完成对员工奖金的的修改、查询,统计员工基本信息表。员工考勤管理模块输入:员工每月考勤情况功能:完成对员工考勤情况的查询、统计和删除员工考勤等情况员工工培训模块输入:培训单位单位对员工培训的评价资料功能:完成对员工培训评价的查询、修改和删除员工培训评价表。本系统在运行时需要输入用户名和密码,才可以操作系统相关的数据且其他系或专业稍作设置对系统的安全性要求,要求进入系统必须进行口令校验1.3业务流程图业务流程图的符号说明如图1所示:1、 2、 3、 4、 5、系统中人员 实体或单据 实物或信息流 处理 数据存储 图1详细调查之后,结合现行企业人事管理模式,为开发本系统而绘制出的无纸化企业人事管理流程图如图2所示。企业领导招工计划人事部门人事档案管理部门审核培训计划培训部门培训项目员工人事变动部门主任审核培训考核结束考核参加考勤考核参加奖惩情况奖惩结束考核部门考核结束 图22系统逻辑方案系统分析的主要成果是系统的逻辑模型。本系统的逻辑模型主要是以系统的数据流图和数据字典为主要描述工具。2.1数据流程图(DFD):数据流图是在调研的基础上,从系统的科学性、管理的合理性、实际运动的可行性角度出发。将信息处理功能和彼此之间的联系自顶向下,逐层分解,从逻辑上精确地描述系统应具有的数据加工功能、数据输入、数据输出、数据存储及数据来源和去向(外部实体)等项目。业务流程图的符号说明如3图所示企业人事管理系统的数据流程图如图4所示处理 实体 数据流 数据存储 图3 图4在数据流程图中可以很清楚的看到数据的流向,培训考核信息的数据分别能够流向企业领导、员工,培训部门。奖惩信息的数据分别流向企业领导,员工和考核部门。考勤考核信息的数据分别流向企业领导,员工,考勤部门。2.2数据字典(简称DD)绘制DFD,只是对数据处理和彼此之间的联系进行了说明。为进一步明确数据的详细内容和数据加工过程,应将数据流图中的全部数据流及其组成部分的数据元素,数据存储,数据加工,通过数据字典描述清楚,以便于此后系统设计的进行。这就需要开发人员编写详细的数据字典,来描述系统开发过程的细节。下面列出本系统中的数据项、数据流、数据存储、加工处理和数据结构的数据字典。数据字典可采用图表格式或较紧凑的记录格式描述,本文采用的是图表格式。数据项的DD表列举如下:员工姓名的数据字典数 据 项系统名:企业人事管理系统 编号:1001 名称:员工姓名 别名:数据项值: 类型:字符型 长度:11个字节 取值范围:简述:每个员工都具有唯一的姓名。修改记录:编写日期审核日期表一 培训部编号的数据字典数据项系统名:企业人事管理系统 编号:1002 名称:培训部编号 别名:数据项值: 类型:数值型 长度:20个字节 取值范围:简述:每次培训都具有唯一培训编号修改记录编写日期审核日期表二考核部编号的数据字典数据项系统名:企业人事管理系统 编号:1002 名称:考核部编号 别名:数据项值: 类型:数值型 长度:20个字节 取值范围:简述:每个考核部都具有唯一编号修改记录编写日期审核日期表三 人事部电话的数据字典数据项系统名:企业人事管理系统 编号:1002 名称:人事部电话 别名:数据项值: 类型:数值型 长度:20个字节 取值范围:简述:每个人事部都具有唯一电话号码修改记录编写日期审核日期表四注:因限于篇幅,其余数据项的DD表在此略过。3系统总体结构设计3.1软件系统总体结构设计软件系统总体结构设计的主要任务就是将整个系统合理的划分成各个功能模块,正确处理模块之间与模块内部的联系及它们之间的调用关系和数据联系,定义各模块的内部结构等,本系统的软件总体结构按分解协调的原则,信息隐蔽抽象的原则,自顶向下的原则,一致性原则,面向用户的原则进行设3.2数据存储的总体设计 按用途分类可把本系统文件分成以下几种:(1) 主文件:系统中的主文件是最重要的共享文件,主要存放具有固定值属性的数据。它需要长期保存,并不断更新。(2) 处理文件:处理文件包含下一次更新文件所需要的全部记录,本系统中的处理文件如新闻登录日志文件、待审核项目信息文件。3.3系统功能模块设计通过对系统的数据流图进行分析,进一步进行功能分解,直到分解成含义明确,功能单一的功能模块,从而得到系统的功能模块结构图5。 图54数据库详细设计4.1数据库设计数据库的设计是指对一个给定的应用环境,构造数据库模式,建立数据库及其应用系统,满足各种用户需求。作为信息资源开发、管理和服务的一种有效的手段,数据库技术的应用已越来越广泛,从小型的单项事务处理系统到大型的信息系统大都用先进的数据库技术来保持系统数据的安全性、完整性和共享性。对一个实际的系统来说,数据库表的设计在遵循数据库理论的同时,必须能用开发工具来实现用户在各方面提出的功能要求。4.2 E-R图在系统的数据库设计中,先要对系统分析得到的数据字典中的数据存储进行分析,分析各数据存储之间的关系,然后才能得出系统的关系模式。可以采用E-R图的方法来进行数据结构分析,E-R设计方法是一种通过E-R图来描述现实世界信息结构的DB设计方法。E-R图由实体、属性、联系三部分组成。各分E-R图说明如下:(1) 企业领导E-R图:(2) 人事部E-R图: (3) 员工E-R图: (4)考勤部E-R图: (5)培训部E-R图: (6)考核部E-R图: (7)整体E-R图: 4.1.2关系模式与码:企业领导(编号,姓名,联系电话,培训部编号,考核部编号,考勤部编号,人事部编号)外码:培训部编号,考核部编号,考勤部编号,人事部编号员工(员工编号,姓名,联系号码,职务,性别,年龄,政治面貌,生理状况,订立合同时间,合同截止时间,人事部编号)外码:人事部编号人事部(人事部编号,电话,人事部长)考勤部(考勤部编号,电话,考勤部长)培训部(培训部编号,电话,培训部长)考核部(考核部编号,电话,考核部长)培训(员工编号,培训部编号,培训项目,培训考核)外码:员工编号,培训部编号考核(员工编号,考核部编号,奖励类型,惩处类型)外码:员工编号,考核部编号考勤(员工编号,考勤部编号,起始日期,截止日期,全勤天数,应出勤天数,请假类型)外码:员工编号,考勤部编号4.1.3数据库设计对上述E-R图所需的实体需要的几个关键表的设计如下:企业领导表属性名字段类型字段长度主键或外键字段值约束编号char10primary keynot null姓名varchar8not null联系电话char11人事部编号char10foreign keynot null考勤部编号char10foreign keynot null考核部编号char10foreign keynot null培训部编号char10foreign keynot null系统维护部编号char10foreign keynot null员工表属性名字段类型字段长度主键或外键字段值约束员工编号char10primary keynot null姓名varchar8not null联系号码char11职务varchar4not null性别varchar2年龄smallint4政治面貌varchar4生理状况varchar6订立合同时间datetimenot null合同截止时间datetimenot null人事部编号char10foreign keynot null人事部表属性名字段类型字段长度主键或外键字段值约束人事部编号char10primary keynot null人事部长姓名varchar8not null电话char11考勤部表属性名字段类型字段长度主键或外键字段值约束考勤部编号char10primary keynot null考勤部长varchar8not null电话char11培训部表属性名字段类型字段长度主键或外键字段值约束培训部编号char10primary keynot null培训部长varchar8not null电话char11考核部信息表属性名字段类型字段长度主键或外键字段值约束考核部编号char10primary keynot null考核部长varchar8not null电话char114.2 数据库的完整性和安全性4.2.1.数据库的完整性数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。完整性约束又可以分为实体完整性约束,参照完整性约束和用户自定义约束,其中实体完整性约束,参照完整性约束是必须满足的。本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。实体完整性:要求主键属性的值不为空且唯一。例如:create table PersonnelDepartment/*创建人事部表*/ (PersonnelDepartmentCode char(10) constraint P_PRIM PRIMARY KEY, KeyPersonnelName varchar(8) NOT NULL, DepartmentPhone char(11), StaffCode char(10) FOREIGN KEY REFERENCES StaffInfor(StaffCode)参照完整性:维护实体间的联系,保证关系模式间属性的正确引用。例如:create table AttendanceRecord/*创建考勤表*/ (StartTime DATETIME, DeadLine DATETIME, PerfectAttendance char(3), WorkDay char(3), LeaveDay char(3), StaffCode char(10) FOREIGN KEY REFERENCESStaffInfor(StaffCode), ARDCode char(10) FOREIGN KEY REFERENCESAttendanceRecordDepartment(ARDCode)4.2.2数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入用户名和密码,系统会对用户密码以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。5.数据库操作(SQL Server2000语句完成)数据库的选择和部分重要SQL代码5.1创建企业人事管理系统create database EnterprisePersonnelManagementSystem /*创建企业人事管理系统*/gouse EnterprisePersonnelManagementSystem5.2创建企业人事信息表create table CfroInfor/*创建企业领导表*/(CfroCode char(10) constraint C_PRIM PRIMARY KEY,CfroName varchar(8) NOT NULL,CfroPhone char(11),TrainDepartmentCode char(10),CDCode char(10), ARDCode char(10), PersonnelDepartmentCode char(10)create table StaffInfor/*创建员工表*/(StaffCode char(10) constraint S_PRIM PRIMARY KEY,StaffName varchar(8) NUT NULL,StaffPhone char(11),StaffPost varchar(4), StaffSex varchar(2) CHECK(StaffSex IN(男,女), StaffAge SMALLINT(4),StaffpoliticalAppearance varchar(4) CHECK (StaffPoliticalAppearance IN(党员,群众),StaffPhysiologyCondition varchar(6) CHECK (StaffPhysiologyCondition IN(良好,合格,不合格),SignContractTime DATETIME,EndContractTime DATETIME,PersonnelDepartmentCode char(10) create table PersonnelDepartment/*创建人事部表*/(PersonnelDepartmentCode char(10) constraint P_PRIM PRIMARY KEY,KeyPersonnelName varchar(8) NOT NULL,DepartmentPhone char(11) create table TrainDepartment/*创建培训部表*/(TrainDepartmentCode char(10) constraint T_PRIM PRIMARY KEY,TrainDepartmentPhone char(11),TrainDepartmentMinister varchar(8) create table AttendanceRecordDepartment/*创建考勤部表*/(ARDCode char(10) constraint A_PRIM PRIMARY KEY,ARDPhone char(11),ARDMinister varchar(8) create table CheckDepartment/*创建考核部表*/(CDCode char(10) constraint C_PRIM PRIMARY KEY,CDPhone char(11),CDMinister varchar(8)create table Train/*创建培训表*/(TrainProject varchar(20),TrainCheck varchar(6) CHECK(TrainCheck IN(合格,不合格),StaffCode char(10),TrainDepartmentCode char(10) create table Check/*创建考核表*/(AwardType varchar(18),PunishType varchar(18),StaffCode char(10),CDCode char(10)create table AttendanceRecord/*创建考勤表*/(StartTime DATETIME,DeadLine DATETIME,WorkDay char(3),MustWorkDay char(3),LeaceType varchar(4),StaffCode char(10),ARDCode char(10)5.3建立存储过程向表中插入、修改、删除数据5.3.1插入数据的存储过程 create proc StaffInfor_procStaffCode char(10),StaffName varchar(8),StaffPhone char(11),StaffPost varchar(4),StaffSex varchar(2),StaffAge SMALLINT,StaffPoliticalAppearance varchar(4),StaffPhysiologyCondition varchar(6),SignContractTime DATETIME,EndContractTime DATETIME,PersonnelDepartmentCode char(10)asinsert into StaffInfor(StaffCode,StaffName,StaffPhone,StaffPost,StaffSex,StaffAge,StaffPoliticalAppearance,StaffPhysiologyCondition,SignContractTime,EndContractTime,PersonnelDepartmentCode)values (StaffCode,StaffName,StaffPhone,StaffPost,StaffSex,StaffAge,StaffPoliticalAppearance,StaffPhysiologyCondition,SignContractTime,EndContractTime,PersonnelDepartmentCode)exec StaffInfor_proc 00004,罗应超客服,女,25,群众,良好,2010-9-1,NULL,001exec StaffInfor_proc 00005,黄家祯销售,男,27,群众,良好,2009-2-1,NULL,001exec StaffInfor_proc 00006,王友文外联,女,26,党员,良好,2010-9-1,NULL,001exec StaffInfor_proc 00007,张磊销售,男,27,群众,良好,2010-2-1,NULL,001exec StaffInfor_proc 00008,李赟赟后勤,女,25,群众,良好,2009-9-1,NULL,001exec StaffInfor_proc 00009,胡列成产品开发,男,27,党员,良好,200909-1,NULL,001其余略5.3.2删除数据的存储过程 create proc StaffInfor_delete_proc StaffCode char(10)asdelete from StaffInforwhere StaffCode=StaffCodeexec StaffInfor_delete_proc 00005 其余略5.3.3修改数据的存储过程create proc StaffInfor_update_procStaffCode char(10),StaffName varchar(8),StaffPhone char(11),StaffPost varchar(4),StaffSex varchar(2),StaffAge SMALLINT(4),StaffPoliticalAppearance varchar(4),StaffPhysiologyCondition varchar(6),SignContractTime DATE,EndContractTime DATETIME,PersonnelDepartmentCode char(10),SSDCode char(10)asupdate StaffInforset StaffCode=StaffCode1,StaffName=StaffName,StaffPhone=StaffPhone,StaffSex=StaffSex,StaffAge=StaffAge,StaffPoliticalAPPEARANCE=StaffPoliticalAppearance,StaffPhysiologyCondition=StaffPhysiologyCondition,SignContractTime=SignContractTime,EndContractTime=EndContractTime,PersonnelDepartmentCode=PersonnelDepartmentCode,SSDCode=SSDCodewhere StaffCode=StaffCode其余略5.4建立存储过程实现查询 (1) 建立存储过程实现单表查询/*建立名为“单表查询1”的存储过程,用来企业领导的信息*/ create proc 单表查询1CfroCode char(10)ASselect *from CfroInfor where CfroCode=CfroCode/*建立名为“单表查询2”的存储过程,用来查询员工的信息*/ create proc 单表查询2StaffCode char(10)ASselect *from StaffInfor where StaffCode=StaffCode/*建立名为“单表查询3”的存储过程,用来查询人事部的信息*/ create proc 单表查询3PersonnelDepartmentCode char(10)ASselect *from PersonnelDepartmentwhere PersonnelDepartmentCode=PersonnelDepartmentCode/*建立名为“单表查询4”的存储过程,用来查询系统维护部的信息*/ create proc 单表查询4SSDCode char(10)ASselect *from SystemServiceDepartmentwhere SSDCode=SSDCode/*建立名为“单表查询5”的存储过程,用来查询考勤部的信息*/ create proc 单表查询5ARDCode char(10)ASselect *from AttendanceRecordDepartmentwhere ARDCode=ARDCode(2)建立存储过程实现连接查询 /*建立名为“连接查询1”的存储过程,用来查询某个员工的培训信息*/ create proc 连接查询1StaffCode char(10)asselect StaffCode,StaffName,TrainProject,TrainCheckfrom StaffInfor,Trainwhere StaffInfor.StaffCode=Train.StaffCode and StaffCode=StaffCode/*建立名为“连接查询2”的存储过程,用来查询给某个员工培训的培训部长的信息*/ create proc 连接查询2TrainDepartmentCode char(10)asselect StaffCode,TrainDepartmentMinister,TrainDepartmentPhonefrom Train,TrainDepartmentwhere TrainDepartment.TrainDepartmentCode=Train.TrainDepartmentCode and TrainDepartmentCode=TrainDepartment/*建立名为“连接查询3”的存储过程,用来查询某个员工考核的信息*/ create proc 连接查询3StaffCode char(10)asselect StaffCode,StaffName,AwardType,PunishTypefrom StaffInfor,CheckShowwhere StaffInfor.StaffCode=CheckShow.StaffCode and StaffCode=StaffCode/*建立名为“连接查询4”的存储过程,用来查询对某个员工的考核部长的信息*/ create proc 连接查询4CDCode char(10)asselect StaffCod,CDPhone,CDMinisterfrom CheckDepartment,CheckShowwhere CheckDepartment.CDCode=CheckShow.CDCode and CDCode=CDCode/*建立名为“连接查询5”的存储过程,用来查询某个员工考勤的信息*/ create proc 连接查询5StaffCode char(10)asselect *from StaffInfor,AttendanceRecordwhere StaffInfor.StaffCode=AttendanceRecord.StaffCode andStaffCode=StaffCode(3)建立存储过程实现嵌套查询/*建立名为“嵌套查询1”的存储过程,用来查询培训部某员工的联系电话*/create proc 嵌套查询1StaffName varchar(8)asselect StaffPhonefrom StaffInforwhere StaffCode In(select StaffCode from Train where StaffName=StaffName)/*建立名为“嵌套查询2”的存储过程,用来查询某员工的奖惩情况*/create proc 嵌套查询2StaffName varchar(8)asselect StaffCode,StaffName,AwardType,PunishTypefrom StaffInforwhere StaffCode In(select StaffCode from CheckShow where StaffName=StaffNam
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论