资源描述
工资管理系统的数据库设计
工资管理系统
课程:数据库
学号:
姓名:孔洁
教师:张福安
目录
1 系统概述 1
2 系统数据流程图和数据字典 3
2.1 用户需求调查 3
2.2 系统数据流程图 4
2.3 系统数据字典 7
3 数据库结构设计 13
3.1 概念结构设计 12
3.2 逻辑结构设计 12
3.3 数据库结构的详细设计 14
4 物理设计 15
5 用户的子模式(外模式)设计(没做) 19
6 总结 19
1 系统概述
本文按照数据库系统设计的基本步骤,采取了事先进行需求分析,然后进行数据库的概念设计和逻辑结构设计,最后进行数据库详细设计的方法,完成了一个工资管理系统数据库系统的设计。最终,在Acess 完成的工资管理系统,能够实现添加和修改员工的个人详细信息、记录公司内部的人事调动情况、实现员工考勤记录查询和员工工资查询,整个系统重点放在工资管理上。
2 系统数据流程图和数据字典
2.1 用户需求调查
经过对现行工资管理系统的调查,明确了工资管理系统由员工信息查询,员工人事变更记录,员工考勤记录查询,员工工资查询组成。 系统功能的主要描述如下。
(1)员工信息查询
Ø 对公司里所有员工进行统一编号;将每一位员工的信息保存在员工档案记录中。
Ø 对新聘用的员工,将其信息加入到员工档案记录中;对于解聘的员工,将其信息从员工档案记录中删除。
Ø 当员工的信息发生变动时,修改员工档案记录中相应的属性。
(2)员工人事变更记录管理
对公司里所有员工的职务记录进行统一编号;登记员工调动前后的具体职务,以及调动时间。
(3)考勤管理
Ø 对员工上班刷卡的记录进行统一编号;登记员工上班时间、签到类型(准时、迟到)。
Ø 对员工下班刷卡的记录进行统一编号;登记员工上班时间、签到类型(准时、早退)。
(6)工资管理
对公司里所有员工的工资记录进行统一编号,建立工资记录表。
2.2 系统数据流程图
经过详细的调查,弄清了系统现行的业务流程。在此基础上,构造出系统的逻辑模型,并经过数据流程图表示。
数据流程图:
员工
员工信息表
工资项目表
员工信息表
注册登记
工资管理
工资查询
报表生成和打印
员工离职处 理
系统维护
信息维护
管理员
管理员
系统日志表
统计
分析
2.3 系统数据字典
人事管理系统数据流程图中,数据信息和处理过程还需要经过数据字典来描述。在本文的数据字典中,主要对数据流图中的数据流、数据存储和处理过程进行说明。
(1)主要的数据流定义
Ø 数据流名称:员工情况
定义: 员工情况=姓名+性别+部门编号+职位+学历+毕业学校+专业+家庭住址+电话+状态 。
数据流量:根据公司的员工具体录用情况来确定。
说明:要对每一位被聘用的新员工进行唯一编号。
Ø 数据流名称:调动情况
定义: 调动情况=员工号+调动前职务+调动后职务+调动日期。
数据流量:根据公司的具体情况来确定。
说明:员工号和调动日期能够唯一确定一个调动情况。
Ø 数据流名称:签到记录
定义: 上班刷卡=员工号+班次时间+签到时间。
数据流量:根据公司的具体规模情况来确定。
说明:签到时间会汇入到出勤记录中。
Ø 数据流名称:签出记录
定义: 下班刷卡=员工号+班次时间 +签出时间。
数据流量:根据公司的具体情况来确定。
说明:签出时间会汇入到出勤记录中。
Ø 数据流名称:工资查询
定义: 工资查询=员工号+基本工资+岗位津贴+加班补贴+出差补贴+违纪扣除+发薪日期。
数据流量:根据公司的具体情况来确定。
说明:根据员工号和发薪日期能够唯一确定一个工资记录。
Ø 数据流名称:缺勤记录
定义: 请假申请=员工号+缺勤原因+缺勤天数+缺勤开始时+缺勤结束时。
数据流量:根据公司的具体情况来确定。
说明:员工号和请假时间能够唯一确定一个缺勤记录。
Ø 数据流名称:管理员情况
定义: 用户身份=员工编号+用户名+密码。
数据流量:根据公司的具体情况来确定。
说明:要对每一位管理员建立唯一的账号。
Ø 数据流名称:用户身份
定义: 用户身份=[ 非法用户 | 内部管理员 | 服务管理员]
数据流量:根据公司的具体情况来确定。
说明:不同的用户身份对应不同的操作权限,对应着不同的安全级别。
Ø 数据流名称:部门情况
位置:上级→部门情况
定义: 部门情况=部门号+部门名称+经理。
数据流量:根据公司的具体情况来确定。
说明:部门号是主码。
(2)主要的数据存储定义
Ø 数据存储编号:员工记录
数据结构:员工记录=姓名+性别+部门编号+职位+学历+毕业学校+专业+家庭住址+电话+状态。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以随机检索为主。
说明:员工编号具有唯一性和非空性;性别只能是男或女;主码是员工编号。
Ø 数据存储编号:缺勤记录
数据结构:缺勤记录=员工号+缺勤原因+缺勤天数+缺勤开始时+缺勤结束时。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以更新操作为主。
说明:主码设为缺勤时间和员工号;员工号是外码,参照表是员工记录。
Ø 数据存储编号:工资记录
数据结构:工资记录=员工号+基本工资+岗位津贴+加班补贴+出差补贴+违纪扣除+发薪日期。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以更新操作为主。
说明:主码设为发薪日期和员工号;员工号是外码,参照表是员工记录。
Ø 数据存储编号:职务调动记录
数据结构:职务调动记录=员工号+调动前职务+调动后职务+调动日期
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以更新操作为主。
说明:主码设为调动日期和员工号;员工号是外码,参照表是员工记录。
Ø 数据存储编号:管理人员记录
数据结构:管理人员记录=用户密码+职工号+密码+管理员账号。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以更新操作为主。
说明:主码设为管理员账号。
Ø 数据存储编号:出勤记录
数据结构:出勤记录=员工号+签到时间+签出时间+刷卡日期。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以更新操作为主。
说明:主码设为员工号和刷卡日期;员工号是外码,参照表是员工记录。
Ø 数据存储编号:部门记录
数据结构:部门记录=部门号+部门名称+经理。
数据量和存取频度:根据公司的具体规模情况来确定。
存取方式:联机处理;检索和更新;以检索操作为主。
说明:主码设为部门号。
(3)主要的处理过程
Ø 处理过程编号:
处理过程名:档案管理
输入:用户身份,员工记录,员工情况
输出:员工记录
处理说明:根据员工的聘用、解聘建立或删除员工记录,以及在后续的过程中,以管理员身份对员工的记录进行修改。
Ø 处理过程编号:
处理过程名:销假管理
输入:销假申请,请假批复,用户身份,员工记录,销假记录
输出:请假记录
处理说明:根据员工的销假申请,把销假时间录入到相应的请假记录中。
Ø 处理过程编号:
处理过程名:请假管理
输入:请假申请,请假批复,用户身份,员工记录,请假记录
输出:请假记录
处理说明:根据员工的请假申请和批复情况,进行请假表的登记。
Ø 处理过程编号:
处理过程名:工资管理
输入:用户身份,工资记录
输出:工资记录,工资查询
处理说明:根据员工当前的工资情况,进行调薪的操作。
Ø 处理过程编号:
处理过程名:调动管理
输入:调动批复,用户身份,职务调动记录
输出:职务调动记录,调动情况
处理说明:根据调动批复的内容,更改员工的职务信息,并对调动情况进行记录。
Ø 处理过程编号:
处理过程名:安全管理
输入:管理员情况
处理说明:建立管理人员记录表;经过用户名和口令,确认用户身份,保证系统安全性。
Ø 处理过程编号:
处理过程名:上班管理
输入:签到时间,用户身份,员工记录,出勤记录
输出:出勤记录
处理说明:根据输入的员工号信息,记录上班时间,并判断是否迟到。
Ø 处理过程编号:
处理过程名:下班管理
输入:签出时间,用户身份,员工记录,出勤记录
输出:出勤记录
处理说明:根据输入的员工号信息,记录下班时间,并判断是否早退。
Ø 处理过程编号:
处理过程名:部门管理
输入:部门情况,部门记录
输出:部门记录
处理说明:根据上级的调度,对现在公司的部门进行领导人的调换,或者是增加或删除某一部门。
3 数据库结构设计
3.1 概念结构设计
根据系统需求分析,能够得出工资管理系统数据库的概念模型(信息模型),用E-R图表示的工资管理系统的概念模型。最后,对设计出的数据模型进行规范化处理,使数据模型满足第三范式。
3.2 逻辑结构设计
将人事管理系统的E-R图转换为关系数据库的数据模型,其关系模式为:
(1)员工档案(员工情况=姓名+性别+部门编号+职位+学历+毕业学校+专业+家庭住址+电话+状态 +部门号),其中员工编号为主码,部门号为外码;
(2)管理员记录(管理员账号,员工编号,密码,级别),其中管理员账号为主码,员工编号为外码;
(3)请假记录(请假编号+员工编号+缺勤开始时+缺勤天数+缺勤结束时)
请假编号为主码,其中员工编号外码。
(4)职务调动记录(调动编号+员工编号+调动前职务+调动后职务+调动日期),调动编号为主码,其中员工编号;
(6)出勤记录(出勤编号+员工号+签到时间+签出时间),出勤编号为主码,员工号为外码;
(7)工资记录(员工号+基本工资+岗位津贴+加班补贴+出差补贴+违纪扣除+发薪日期),工资编号为主码,员工号为外码。
(8)部门记录(部门编号+名称+领导人号),部门编号为主码。
将工资管理系统定名为“工资管理系统”。 各实体的分E-R图,如图A,B,C所示:
电话
员工编号
员工
职位
姓名
学历
专业
性别
毕业学校
部门号
A)员工实体图
部门
部门编号
经理
名称
B)部门实体图
管理人员
管理员账号
员工账号
密码
C)管理人员实体图
全局E-R图,如图E所示:
部门
请假
员工
调动
奖惩
出勤
工资
管理人员
担任
N 1
N
1
N
1
N
1
N
1
1 1
E)各实体间的联系图
3.3 数据库结构的详细设计
经过检查,此数据库的详细逻辑设计满足第3范式的要求。人事管理系统中各表的属性设计情况如下表1:
表名
属性名
数据类型
长度
允许空
主码或索引
约束条件
部门
部门号
Char
4
No
主码
部门名
Char
10
No
经理
Char
4
No
索引、外码
值为职工编号
管理人员
管理员账号
Char
4
No
主码
职工编号
Char
4
No
外码
密码
Char
6
No
输入时不显示
员工
员工编号
Char
5
No
主码
姓名
Char
10
No
学历
VarChar
8
No
索引项
性别
Char
2
“男”或“女”
电话
Datetime
索引项
身份证号
VarChar
32
No
毕业学校
VarChar
16
职位
VarChar
10
部门号
Char
4
外码
出勤号
Char
6
No
主码
出勤
员工编号
Char
4
No
外码
上班日期
Datetime
No
索引
签到时间
Datetime
签出时间
Datetime
No
工资编号
Char
6
No
主码
工资
员工编号
Char
4
No
外码
基本工资
Money
No
索引
岗位津贴
Money
加班补贴
Money
违纪扣除
Money
发薪日期
Datetime
No
索引
备注
调动编号
Char
6
No
主码
职务调动
员工编号
Char
4
No
外码
调动前职务
VarChar
10
No
索引项
调动后职务
VarChar
10
No
调动部门号
Char
4
外码
调动日期
Datetime
值为员工调动日期
请假编号
Char
6
No
主码
请假记录
员工编号
Char
5
No
外码
请假时间
Datetime
No
值为假期开始日期
销假时间
Datetime
No
值为假期结束日期
请假天数
int
索引项
审批人编号
Char
4
索引项
值为职工编号
表1
4 物理设计
4.1数据库物理设计阶段的任务是根据具体计算机系统(DBMS和硬件等)的特点,为给定的数据库系统确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。主要体现在后者。
(1)建立索引:
①对表 部门 在属性列 领导人号 上建立非聚集索引,
②对表 员工 在属性列 出生日期 上建立非聚集索引,在属性列 学历 上建立非聚集 索引
③对表 出勤 在属性列 上班日期 上建立非聚集索引
④对表 工资 在属性列 基本工资 上建立非聚集索引
⑤对表 职务调动 在属性列 调动前职务 上建立非聚集索引。
对表 请假记录 在属性列“请假天数”上建立非聚集索引,在属性列“审批人编号” 上建立非聚集索引。
(2)存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。
将日志文件和数据库对象(表、索引等)分别放在不同的磁盘,能够改进系统的性能,提高系统的安全性。因此,系统应将日志文件和数据文件存放在不同磁盘上。
4.2数据库的建立
4.3实验数据的输入
为了验证所设计的数据库的性能,在ACESS 上建立的“工资管理系统”数据库,输入了少量的实验数据。
4.4数据库输入、输出或查询模块的应用程序
无
5 用户子模式的设计
无
6总结
由于在数据库的设计初期,没有对工资管理系统进行准确地需求分析,导致后期设计过程中的数据库的概念设计阶段无法进行。因此,经过此次数据库课程设计使学生认识到了需求分析对于软件系统设计的重要性。也认识到规范化的设计流程对于后期的设计来说,是十分重要的。前面的设计是后面的铺垫,只有对前面的设计过程进行准确地分析,才能节省整个系统的开发时间。最后,经过此次数据库课程设计使学生初步理解了简单数据库的一般开发流程,以及数据流图和E-R图等专业图形地绘制。
展开阅读全文