工资管理系统数据库设计报告数据库课程设计.docx
《工资管理系统数据库设计报告数据库课程设计.docx》由会员分享,可在线阅读,更多相关《工资管理系统数据库设计报告数据库课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
工资管理系统数据库设计报告数据库课程设计
Thefollowingtextisamendedon12November2020.
工资管理系统数据库设计报告数据库课程设计
数
据
库
课
程
设
计
报
告
设计题目:
工资管理系统
学院:
数学与计算机学院
专业:
计算机科学与技术(软件工程)
班级:
软件12
指导老师:
李竹林
组员:
徐振国(02)张奇卫(03)
小组成员及分工
组员
分工
编写代码及测试运行
概念设计
物理结构设计
需求分析
需求分析
需求分析
需求分析
工资管理系统分析和设计
1.引言
编写目的
随着科学的进步,一些公司不断发展壮大急需一套完整的工资管理系统帮助企业的财务主管部门提高工作效率,实现企业工资管理的系统化、规范化和自动化。
本系统实现对人员信息、薪资福利、员工社保信息的维护和查询,并能迅速准确地完成考勤的分类汇总,生成工资报表等。
能够使单位实现工资管理的自动化,无疑将给企业管理部门带来很大的方便。
真正实现企业高效、科学、现代化的员工管理。
有利于财务部门对员工工资的管理,减轻人事部们的任务,提高公司效率,节约人力资源从而降低了企业成本。
项目背景
a.我们对数据库技术有了初步的了解和具体的应用;因此,做此分析,由各小组成员合作做出一个项目。
让我们对学到的知识系统的结合在一起;考察学生学以致用的能力。
b.由此考察学生的动手能力和合作的精神;以打分的形式作为一次考察记录。
参考资料
a.老师发放的软件工程文档模板。
b.网络下载有关的资料说明和一些部门的工资管理系统范例。
2.需求分析
功能的分析、
工资管理系统主要完成的功能有:
(1)人员信息管理:
企业员工信息(包括员工基本信息、教育经历、个人简历、岗位变更、离职登记、离退休信息等)的维护和查询。
(2)考勤管理:
管理员工的出勤情况(包括加班、请假、休假等),并提供查询和分类统计功能。
(3)薪资福利管理:
管理员工的薪资和福利(包括当月工资、个人所得税、发放工资历史、员工奖励、员工惩罚等)。
(4)社会保障管理:
管理员工的社保信息(包括单位参保信息、养老保险、医疗保险、住房公积金等),生成社会保险台帐。
(5)系统管理:
包括代码管理、参数设置、权限设置、更改密码等。
顶层图
2.3数据流程图
数据字典分析
数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数数据分析所获得的主要成果。
名字:
简历表
描述:
保存员工的求职信息
定义:
获奖情况+社会实践情况
名字:
离职退休信息表
描述:
保存员工的离职相关信息
定义:
离职原因+离职日期+工龄
名字:
部门表
描述:
部门信息
定义:
部门编号+部门名称+部门人数+部门负责人
3.数据库的概念设计
分析前面的系统功能要求,需要一个表来存储和管理员工信息,使系统能够接受员工原始的各项数据,以实现数据录入、查询或统计员工信息等功能。
员工是本系统的一个实体。
名字:
部门表
描述:
保存部门信息
定义:
部门编号+部门名称+部门人数+部门负责人
为了能实现查询和统计部门内员工情况等功能,必须有一个表来存储和管理所有部门的信息。
部门也是一个实体。
工资是以员工工作情况来制定的。
需要建立一个表来记录各种工资、津贴、扣款的信息。
它主要为各种查询和统计功能提供工资数据。
工资也是一个实体。
考勤管理是为了实现对员工考勤的管理,并实现对员工的进行查询和分类汇总的功能,因此,考勤也是一个实体。
奖惩是以员工受到的奖励和惩罚所决定的,需建立一个表来记录各种奖励和惩罚。
它主要是为各种查询提供数据。
社保信息是为提供基本的查询功能而设定的一个实体,岗位变更是为记录员工在本部门或不同部门的职位变化,并提供查询的功能。
员工简历是为了提供员工在过去的情况而设定的一个实体。
据此可以绘出工资管理系统数据库的E-R图如下:
4.数据库的逻辑设计
将数据库的概念模型转变为关系模型:
实体转变为关系模式的有:
因为部门和员工1:
N的关系,且员工和其他的实体也是1:
N的关系,所以个关系模式为:
部门(部门名称,部门人数,部门负责人)
员工(员工编号,姓名,性别,年龄,学历,政治面貌,毕业学校,所学专业,出生日期,部门名称,退休信息,)
工资(工资ID,员工编号,基本工资,岗位工资,工龄工资,加班工资,个人所得税,缺勤扣款,其他应扣款,其他应加款,应发工资,实发工资,工资年月)
考勤(考勤ID,员工编号,加班,请假,休假,日期,出勤天数)
岗位变更(ID,员工编号,初始岗位,现在岗位,变更日期)
离职信息(ID,员工编号,离职时间,离职原因,批准人)
简历(ID,员工编号,,获奖情况,社会实践)
奖惩(奖惩ID,员工编号,奖罚日期,奖罚原因,解除日期)
工资历史(ID,员工编号,发放金额,发放日期)
社保信息(ID,员工编号,养老保险,医疗保险,住房公积金,参保信息)
用户信息(员工编号,密码,权限)
带下划线的属性为个关系模式的外码,字体为粗体的属性为各关系模式的主码。
5.数据库与数据表的设计——物理结构设计
数据库与数据表的设计
员工信息数据表的定义
字段
字段名
数据类型
长度
1
姓名
Varchar
8
2
性别
char
2
3
年龄
int
4
员工编号
Varchar
10
5
部门名称
Varchar
15
6
毕业院校
Varchar
30
7
政治面貌
Varchar
8
8
所学专业
Varchar
40
9
学历
Varchar
10
10
出身日期
Varchar
15
11
退休信息
Varchar
30
其中“员工编号”是表的主键,唯一标识。
“部门名称”是外键。
“员工编号”将记录员工的编号,在员工信息表中增加这一列时,虽然增加了数据冗余,但可以再查询每个员工信息是,提高系统的性能。
因为员工信息表的记录数相对固定,相比之下,增加这个冗余的列对于整个系统来说是有利的。
通过它,系统将引用到工资信息。
此表取名为“员工”。
岗位变更数据表的定义:
字段
字段名称
数据类型
长度
1
员工编号
varchar
10
3
初始岗位
varchar
20
4
变更日期
varchar
20
5
现在岗位
varchar
20
6
ID
int
其中“员工编号”是主键,此表取名为岗位变更。
简历表:
字段
字段名称
数据类型
长度
1
员工编号
varchar
10
2
ID
int
3
获奖情况
varchar
50
4
社会实践情况
varchar
100
此表取名为简历。
离职信息:
字段
字段名称
数据类型
长度
1
员工编号
varchar
10
2
ID
int
3
离职日期
varchar
20
4
离职原因
varchar
40
5
批准人
varchar
8
此表取名为离职信息。
奖惩表:
字段名
数据类型
长度
允许空
主键
奖惩ID
int
Notnull
是
员工编号
varchar
9
Nonull
否
奖惩日期
varchar
15
Null
否
奖惩原因
varchar
15
Null
否
解除日期
varchar
15
Null
否
员工工资基本表
字段名
数据类型
长度
允许空
主键
工资ID
Int
Notnull
是
员工编号
varchar
9
Notnull
否
基本工资
decimal
5
Notnull
否
个人所得税
decimal
5
Notnull
否
缺勤扣款工资
decimal
5
Null
否
加班工资
decimal
5
null
否
工龄工资
decimal
5
Notnull
否
其他应减款
decimal
5
Notnull
否
其他应增款
decimal
5
Notnull
否
岗位工资
decimal
5
Notnull
否
应发工资
decimal
5
否
实发工资
decimal
5
否
日期
varchar
4
Nonull
否
发放工资历史
字段名
数据类型
长度
允许空
主键
ID
varchar
9
Null
是
员工编号
varchar
10
Notnull
否
发放金额
decimal
9
Notnull
否
发放日期
varchar
15
Notnull
否
考勤表
字段名
数据类型
长度
允许空
主键
日期
varchar
12
notnull
否
员工编号
varchar
25
Notnull
否
加班
decimal
40
Null
否
休假
decimal
40
Null
否
请假
decimal
40
Null
否
出勤天数
int
4
Notnull
否
考勤ID
Int
Notnull
是
社保信息
字段名
数据类型
长度
允许空
主键
ID
INT
NOTNULL
是
员工编号
varchar
10
Null
否
社保信息
varchar
20
Null
否
参保信息
varchar
20
Null
否
医疗保险
varchar
20
Null
否
住房公积金
varchar
20
Null
否
养老保险
varchar
20
Null
否
用户信息表
字段名
数据类型
长度
允许空
主键
员工编号
varchar
10
Notnull
是
密码
Varchar
9
Notnull
否
权限
Int
2
Notnull
否
部门
字段名
数据类型
长度
允许空
主键
部门名称
varchar
10
Notnull
是
部门人数
int
9
Notnull
否
部门负责人
varchar
15
Notnull
否
数据的完整性设计
(1)给每个表实施主键约束。
主键约束、非空约束
员工:
员工编号为主键,所以此项非空
部门:
部门编号为主键,所以此项非空
其余的正如上面的设计
(2)实施CHECK约束
●员工表中建立一个检查约束,即员工性别不是男的就是女的
CHECK(性别IN(‘男’,‘女’))
●考勤表中建立一个对于出勤天数天数的检查约束,即出勤天数在0-20之间
CHECK(出勤天数>=0and出勤天数<=20)
(3)外键约束
FK_员工_部门FOREIGNKEY(部门名称)REFERENCES部门(部门名称)
FK_工资_员工FOREIGNKEY(员工编号)REFERENCES员工(员工编号)
FK_岗位变更_员工FOREIGNKEY(员工编号)REFERENCES员工(员工