人事管理系统681428711.doc_第1页
人事管理系统681428711.doc_第2页
人事管理系统681428711.doc_第3页
人事管理系统681428711.doc_第4页
人事管理系统681428711.doc_第5页
免费预览已结束,剩余6页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020年3月20日星期五人事管理系统数据库设计报告 目 录一 需 求 分 析.2二 概念结构设计.5三 逻辑结构设计.7四 物理结构设计.7五 数据库的建立.8六 实训小结141.需求分析1.1人事管理系统的基本功能是管理员工的资料,管理员工考勤,管理员工薪资等a) 管理员工资料:人事部成员负责管理和维护普通员工的资料。当员工第一次来公司报到时,人事部将员工的基本资料(姓名、性别、出生年月日、电子邮件及所属部门等信息录入到数据库中并可以进行修改和维护。普通员工可以查看自己和同事的资料,同时也可以修改自己的部分信息)b) 管理员工考勤:员工必须按规定时间上下班,不能迟到或早退。有一名人事助理专门负责记录员工的上下班时间,如果一个员工在一个月迟到多于五次,则要扣除薪资。人事部可以管理考勤记录,员工可以查看自己的纪录,经理可以查看下属的纪录。c) 管理员工请假:员工一年有一百个小时的年假。员工请假不得超过规定的小时数。员工可以查看自己的年假小时数,查看本人某段时间的请假记录,提交请假申请。部门经理可以查看下属的请假记录,批准/否决其请假申请。d) 管理员工薪资:员工薪资有其他薪资和基本薪资组成,其他薪资包括有可能因为请假迟到和缺勤扣除部分薪资。基本薪资由人事部经理决定和修改人事部负责每月根据员工的请假记录和考勤记录,计算员工的本月薪资。普通员工可以查看自己本月薪资明细,还可以查看自己历史薪资记录。e) 员工养老保险:员工每一年都要办保险一次,有效时间为一年,员工可查看自己是否办理保险,输入员工保险编号只可以查看到自己的相关信息。f) 公司里的每个人可根据,员工姓名或员工编号来查看其员工职称名称和员工职务名称员工职称编号和员工职务编号,今天是否在上班,或请假!1.2数据字典 数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,数据是进行详细的数据收集和数据分析所获得的主要成果。数据项是不可分再分的数据单位。没有注明的可为空 员工信息表字段名数据类型可否为空主键员工编号int否是员工姓名char(20)否否员工性别char(2)可否员工所属部门编号int可否员工职务编号int可否员工职务名称varchar(20)可否员工职称编号int可否员工职称varchar(20)可否员工电话char(20)可否员工电子邮件char(20)可否员工养老保险号int可否职务信息表字段名数据类型可否为空主键职务编号int否是职务名称varchar(20)可否职称信息表字段名数据类型可否为空主键职称编号int否是职称名称varchar(10)可否部门信息表字段名数据类型可否为空主键部门编号int否是部门名称char(10)可否部门经理编号int可否部门描述varchar(50)可否员工薪资表字段名数据类型可否为空主键薪资编号int否是员工编号int否否基本薪资int可否其他薪资int可否薪资发放日期datetime否否员工请假表字段名数据类型可否为空主键请假申请编号int否是员工编号int否否开始时间datetime否否结束时间datetime否否申请状态char(20)可否审核者编号int否否员工考勤表字段名数据类型可否为空主键考勤编号int否是员工编号int否否到达时间datetime可否记录者编号int可否考勤类型char(4)否否日 期datetime否否养老保险信息表字段名数据类型可否为空主键养老保险号int 否是时 间datetime可否金 额money可否1.3数据流 是数据结果在系统内传输的路径数据流描述=员工编号,来源客户的输入,利用SQL Server2005 出现存储起来然后根据客户需求输出客户所要结果 1.4数据存储 数据存储是数据停留或保留的地方,也是数据流的来源和去向之一i. 根据员工所提交的职工编号和薪资发放时间,查看该员工该月的薪资信息,包括员工编号员工姓名、基本薪资、其他薪资和薪资发放时间。ii. 根据员工提交的员工编号,查看该员工所有请假信息,包括员工编号、员工姓名、开始时间、结束时间、申请状态和审核者编号。iii. 根据员工提交的员工编号和日期,查看该员工该日的考勤信息,包括员工编号、员工姓名、到达时间、记录者标号、考勤类型和日期。2.概念结构设计2.1 由上面的需求分析规划出的实体有:员工基本信息实体、部门基本信息实体、员工薪资信息实体、员工请假信息实体和员工考情信息实体。实体之间的联系如下:(1) 每个员工只能在一个部门工作,每个部门可以有多个员工,员工和部门之间是多对一的关系。(2) 每个员工只有一个职称,而一个职称可以对应多个员工,因此员工和职称之间是多对一的关系。(3) 每个员工可以有多个职务,而每个职务可以让多个员工从事,所以员工与职务之间是多对多的关系。(4) 考虑到员工每个月的薪资可能会更换,一个员工可以有多个薪资信息,一个薪资信息只属于一个员工,因此员工和薪资信息之间是一对多的关系。(5) 每个员工可以有多个请假信息,一个请假信息只属于一个员工,因此员工和请假信息之间具有一对多的关系。(6) 考虑到每天的考勤情况可能不一样,一个员工可以有多个考勤信息,一个考勤信息只属于一个员工,因此员工和考勤信息之间是一对多的关系。(7) 考虑到每个员工的养老保险金额可能会更换,一个员工可以有多个养老保险金额,而一个养老保险金额只属于一个员工,因此员工和养老保险金额之间是一对多的关系。2.2根据以上设计得出其E-R图如下:部门编号部门名称部门经理部门描述员工电子邮件职称名称职称编号员工性别员工电话部 门员工姓名职 称11员工编号属于属 于薪资编号nn考勤编号n1薪资信息计算工资n考勤信息1员 工考勤管理m1基本薪资到达时间1拥 有从 事nn请假管理职 务n养老保险请假信息职务编号职务编号职务编号职务编号E-R图养老保险号结束时间请假编号开始时间申请状态3逻辑结构设计把上述概念结构转换成数据模型,得人事管理系统中的关系模式如下:(1) 员工信息表(员工编号、员工姓名、员工性别、员工所属部门编号、员工职务编号、员工职务名称、员工职称编号、员工职称名称、员工电话、员工电子邮件、员工养老保险号),主键为员工编号。(2) 职务信息表(职务编号、职务名称),主键为职务编号。(3) 职称信息表(职称编号、职称名称),主键为职称编号。(4) 部门信息表(部门编号、部门名称、部门经理编号、部门描述),主键为部门编号。(5) 员工薪资表(薪资编号、员工编号、基本薪资、其他薪资、薪资发放日期),主键为薪资编号。(6) 员工请假表(请假申请编号、员工编号、开始时间、结束时间、申请状态、审核者编号),主键为请假申请编号。(7) 员工考勤表(考勤编号、员工编号、到达时间、记录者编号、考勤类型、日期),主键为考勤编号。(8) 养老保险信息表(养老保险号、时间、金额),主键为养老保险号。4物理结构设计4.1数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。所谓的合理主要有两个含义:一个是要使物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度,主要体现在后者。(1)建立索引:a) 对表 在属性列 上建非聚焦立索引 b) 对表 在属性列 上建非聚焦立索引c) 对表 在属性列 上建非聚焦立索引d) 对表 在属性列 上建非聚焦立索引e) 对表 在属性列 上建非聚焦立索引f) 对表 在属性列 上建非聚焦立索引g) 对表 在属性列 上建非聚焦立索引h) 对表 在属性列 上建非聚焦立索引(2)存储过程需求设置:(1) 根据员工所提交的员工编号,查看该员工的基本信息,包括姓名、性别、所属部门编号、电话、电子邮件、养老保险编号。(2) 根据员工所提交的职工编号和薪资发放时间,查看该员工该月的薪资信息,包括员工编号员工姓名、基本薪资、其他薪资和薪资发放时间。(3) 根据员工提交的员工编号,查看该员工所有请假信息,包括员工编号、员工姓名、开始时间、结束时间、申请状态和审核者编号。(4) 根据员工提交的员工编号和日期,查看该员工该日的考勤信息,包括员工编号、员工姓名、到达时间、记录者标号、考勤类型和日期。(5) 根据员工所提交的员工编号,查看该员工的工作简介,包括员工的姓名、职务和职称。(6) 根据员工所提交的养老保险号,查看该员工的养老保险信息,包括员工姓名、保险时间、保险金额。(3) 视图设置:为公司内部员工提供所有员工的基本信息,当公司内部员工查询时可以根据视图快速的查询所需信息 不需要查看很多表,视图是从一个或几个表导出的表。是一个虚表,建立了表之间的关系把相应的表联系起来了!员工根据根据输入 员工姓名.员工所属部门编号.员工职位.部门名称.员工电话或员工电子邮件查看员工相应的信息 。4.2触发器设置:(1) 在员工信息表上建立触发器,当员工信息表中的员工编号被修改时,员工薪资表员工请假表员工考勤表中的员工编号也被修改。(2) 在部门信息表上建立触发器,当部门信息表中的部门编号被修改时,员工信息表中的员工所属部门编号也被修改。(3) 在职务信息表上建立触发器,当职务信息表中的职务编号被修改时,员工信息表中的职务编号也被修改。(4) 在职称信息表上建立触发器,当职称信息表中的职称编号被修改时,员工信息表中的职称编号也被修改。(5) 在养老保险信息表上建立触发器,当养老保险信息表上的养老保险号被修改时,员工信息表中的养老保险号也被修改。5数据库的建立 5.1 创建数据库Create Database 人事管理系统 On(Name=人事管理DAT,Filename=D:SQL人事管理DAT.MDF,Size= 3,Maxsize=20,Filegrowth=2)Log on(Name=人事管理log,Filename=D:SQL人事管理LOG.LDF,Size=1,Maxsize=20,Filegrowth=2)5.2 创建数据表文件1.Create table 员工信息表(员工编号 int,员工姓名 char(20),员工性别 char(2),员工所属部门编号 int,员工职务编号 int,员工职称编号 int,员工职称 varchar(20),员工电话 char(20),员工电子邮件 char(20),员工养老保险号int);2.Create table 职务信息表(职务编号 int,职务名称 varchar(20),职务所属部门编号 int);3.Create table 职称信息表(职称编号int,职称名称 varchar(20);4.Create table 员工薪资表(薪资编号 int ,员工编号int,基本薪资 int,其他薪资 int,薪资发放日期 Datetime);5.Create table 员工考勤表(考勤编号 int,员工编号int,到达时间 datetime,记录者编号 int,考勤类型 char(4),日期 Datetime);6.Create table 员工请假表(请假申请编号 int,员工编号 int,开始时间 Datetime,结束时间 Datetime,申请状态 char(20),审核者编号 int);7.Create table 部门信息表(部门编号 int,部门名称 char(10),部门描述 varchar(50),部门经理编号 int);8.Create table 养老保险信息表(养老保险号 int,时间 datetime,金额 money)5.3 存储过程设计1.Use 人事管理系统Go Create procedure lookinformation/存储过程lookinformation:根据员工提交的员工编号,查看该员工的基本信息,包括姓名、性别、所属部门编号、电话、电子邮件、养老保险编号./id intAs Select 员工姓名,员工性别, 员工所属部门编号,员工电话,员工电子邮件,员工养老保险号From员工信息表 Where 员工编号=id;2.Use 人事管理系统Go Create procedure lookduty /存储过程lookduty:根据员工提交的员工编号和日期,查看该员工该日的考勤信息,包括员工编号、员工姓名、到达时间、记录者编号、考勤类型和日期./id int,time datetimeAs Select 员工考勤表.员工编号,员工姓名,到达时间,记录者编号,考勤类型,日期From 员工信息表,员工考勤表 Where 员工信息表.员工编号=员工考勤表.员工编号And 员工信息表.员工编号=id and 日期=time;3.Use 人事管理系统Go Create procedure lookvacation/存储过程 lookvacation:根据员工提交的员工编号,查看该员工所有请假信息,包括员工编号、员工姓名、开始时间、结束时间、申请状态和审核者编号./id intAs Select 员工请假表.员工编号,员工姓名,开始时间,结束时间,申请状态,审核者编号From 员工信息表,员工请假表 Where 员工信息表.员工编号=员工请假表.员工编号And 员工信息表.员工编号=id;4.Use 人事管理系统Go Create procedure lookwage/存储过程 lookwage:根据员工所提交的薪资编号和薪资发放日期,查看该员工该月的薪资信息,包括员工编号、员工姓名、基本薪资、其他薪资和薪资发放日期./id int,time datetimeAS Select 员工薪资表.员工编号,员工姓名,基本薪资,其他薪资,薪资发放日期From 员工信息表,员工薪资表 Where 员工信息表.员工编号=员工薪资表.员工编号And 薪资编号=id and 薪资发放日期=time; 5.Use 人事管理系统Go Create procedure lookwork/存储过程lookwork:根据员工所提交的员工编号,查看该员工的工作简介,包括员工的姓名、职务和职称/id intAs Select 员工信息表.员工姓名,职务名称,职称名称From 员工信息表,职务信息表,职称信息表 Where员工编号=id;6.Use 人事管理系统Go Create procedure lookinsurance/存储过程lookinsurance:根据员工所提交的养老保险号,查看该员工的养老保险信息,包括员工姓名、保险时间、保险金额/id intAs Select员工信息表.员工姓名,时间,金额From 员工信息表,养老保险信息表Where养老保险号=id;5.4 触发器设计1.Use 人事管理系统Go Create trigger departid on 部门信息表/触发器departid:当部门信息表中的部门编号被修改时,员工信息表中的员工所属部门编号也被修改./For update As Begin Update 员工信息表Set 员工信息表.员工所属部门编号=(select 部门编号 from inserted)Where 员工信息表.员工所属部门编号=(select 部门编号 from deleted)End;2.Use 人事管理系统Go Create trigger worerid on 员工信息表/触发器workerid:当员工信息表中的员工编号被修改时,员工薪资表、员工请假表和员工考勤表中的员工编号也被修改./For update As Begin Begin Update 员工薪资表Set 员工薪资表.员工编号=(select 员工编号 from inserted) Where 员工薪资表.员工编号=(select 员工编号 from deleted)Update 员工请假表 Set员工请假表.员工编号=(select 员工编号 from inserted)Where 员工请假表.员工编号=(select 员工编号 from deleted)Update 员工考勤表Set 员工考勤表.员工编号=(select 员工编号 from inserted)Where 员工考勤表.员工编号=(select 员工编号 from deleted)End End;3.Use 人事管理系统Go Create trigger workpost on 职务信息表/触发器workpost:当职务信息表中的职务编号被修改时,员工信息表中的员工职务编号也被修改./For update AsBegin Update 员工信息表Set员工信息表.员工职务编号=(select 职务编号 from inserted)Where 员工信息表.员工职务编号=(select 职务编号 from deleted)End;4.Use 人事管理系统Go Create trigger worktitle on 职称信息表/触发器workpost:当职称信息表中的职称编号被修改时,员工信息表中的员工职称编号也被修改./For update AsBegin Update 员工信息表Set 员工信息表.员工职称编号=(select 职称编号 from inserted)Where 员工信息表.员工职称编号=(select 职称编号 from deleted)End;5.Use 人事管理系统Go Create trigger workinsurance on 养老保险信息表/触发器workinsurance:当养老保险信息表中的养老保险号被修改时,员工信息表中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论