数据库工资管理系统课程设计实验报告.docx
《数据库工资管理系统课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据库工资管理系统课程设计实验报告.docx(21页珍藏版)》请在冰豆网上搜索。
数据库工资管理系统课程设计实验报告
数据库原理及应用
课程设计
《工资管理系统》
学生姓名:
++++++
学生班级:
++++++
学生学号:
++++++
指导老师:
+++++++
一、开发背景
随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。
在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。
如何设计一个小型企业工资的,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。
这样就使办公人员可以轻松快捷地完成工资管理的任务。
对于企、事业单位的工资发放来说,不需要太大型的。
只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。
实现工资的集中管理。
可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对员工及工资管理情况进行多角度查询。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
企业工资管理系统是典型的信息管理系统(MIS),后台数据库采用SQLServer2005数据库。
SQLServer2005数据库具有与VB6无缝连接、操作简单、易于使用的优点。
二、功能描述
工资管理系统系是为了更好的实现工资各种信息的管理以及各种信息的安
全性管理。
本系统主要对查看员工的各种工资信息需求所设计的,可以很好的
管理数据。
本系统的主要功能由以下几个部分组成:
经过调研及分析,工资管理信息系统主要完成以下功能:
(1)员工基本信息模块:
员工的基本信息。
(2)工资信息模块:
员工每个月度的基本工资、岗位工资、水电费、津贴工
资、扣除薪酬、实发金额。
(3)部门信息模块:
公司各部门编号、名称、负责人、人数。
(4)考勤模块:
记录员工迟到、缺席次数。
(5)津贴模块:
记录员工加班情况派发津贴。
(6)员工信息管理模块:
管理员对所需要的资料的查询即对员工基本信息的
增加、删除、修改、查询操作。
(7)员工工资管理模块:
管理员对所需要的资料的查询即对员工工资信息的
增加、删除、修改、查询操作。
三、数据流分析
数据流图
图工资管理系统简易数据流图
数据字典
数据项的描述
1、数据项名:
员工编号
别名:
w_number
取值范围:
0000-9999
含义说明:
每位员工的编号
类型:
char
长度:
4
2、数据项名:
员工姓名
别名:
w_name
取值范围:
1-4
含义说明:
每位员工的姓名
类型:
varchar
长度:
8
3、数据项名:
员工性别
别名:
sex
取值范围:
“男”或“女”
含义说明:
每位员工的性别
类型:
char
长度:
2
4、数据项名:
基本工资
别名:
basic_wage
取值范围:
整数
含义说明:
每位员工的基本工资
类型:
int
5、数据项名:
出生年月
别名:
birthday
含义说明:
每位员工的出生日期
类型:
datetime
数据结构描述
1、名称:
员工(Employee)
含义说明:
员工信息
组成结构:
员工编号+姓名+性别+出生年月+所属部门+文化程度+职称
2、名称:
工资(Salary)
含义说明:
工资信息
组成结构:
员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实
发工资
数据流的描述
1、数据流名称:
员工信息添加
简述:
新员工信息录入
数据流来源:
公司管理者
数据流去向:
员工信息
数据流组成:
员工编号+姓名+性别+出生年月+所属部门+文化程度+职称
主要数据存储的定义
1、存储名称:
员工记录存储
说明:
记录着所有员工的所有基本信息
输入:
员工基本信息
输出:
员工所有信息
数据结构:
员工编号+姓名+性别+出生年月+所属部门+文化程度+职称
处理过程的定义
1、处理过程名:
员工信息处理
说明:
处理员工的基本信息
输入数据流:
终端
输出数据流:
员工信息入库
四、概念模型设计
根据系统数据流图和数据字典,得出系统的概念模型(E-R)如图所示。
图员工信息E-R图
图部门信息E-R图
图工资信息E-R图
图考勤信息E-R图
图津贴信息E-R图
图工资管理系统局部E-R图
图工资管理系统局部E-R图
图工资管理系统局部E-R图
图工资管理系统局部E-R图
图工资管理系统总E-R图
五、逻辑结构设计和优化
关系模型设计
关系模式:
员工信息(员工编号、姓名、性别、出生年月、所属部门、
文化程度、职称)
模式判定:
员工信息∈2NF,且每个非主属性都不传递函数依赖于员工信
息的主关系键,所以员工信息∈3NF
关系模式:
部门信息(部门编号、部门名称、部门负责人、部门人数)
模式判定:
部门信息∈2NF,且每个非主属性都不传递函数依赖于部门信
息的主关系键,所以部门信息∈3NF
关系模式:
基本工资(工资级别、工资金额)
模式判定:
基本工资∈2NF,且每个非主属性都不传递函数依赖于基本工
资的主关系键,所以基本工资∈3NF
关系模式:
岗位工资(工资级别、工资金额)
模式判定:
岗位工资∈2NF,且每个非主属性都不传递函数依赖于岗位工
资的主关系键,所以岗位工资∈3NF
关系模式:
工资信息(员工编号、基本工资、岗位工资、水电费、津贴
工资、扣除工资、实发金额)
模式判定:
工资信息∈2NF,且每个非主属性都不传递函数依赖于工资信
息的主关系键,所以工资信息∈3NF
关系模式:
考勤信息(员工编号、姓名、性别、迟到次数、缺勤次数)
模式判定:
考勤信息∈2NF,且每个非主属性都不传递函数依赖于考勤信
息的主关系键,所以考勤信息∈3NF
关系模式:
津贴信息(员工编号、姓名、性别、加班时间、加班天数、
加班类型、津贴情况)
模式判定:
津贴信息∈2NF,且每个非主属性都不传递函数依赖于津贴信
息的主关系键,所以津贴信息∈3NF
数据库表结构设计
表员工信息表
员工编号
char(4)
主键,不允许重复
姓名
varchar(8)
性别
char
(2)
出生年月
datetime
所属部门
varchar(20)
外键
文化程度
varchar(20)
职称
char(12)
表部门信息表
部门编号
char(4)
主键,不允许重复
部门名称
varchar(20)
部门负责人
varchar(20)
部门人数
int
表基本工资表
工资级别
char
(2)
主键,不允许重复
工资金额
int
表岗位工资表
工资级别
char
(2)
主键,不允许重复
工资金额
int
表工资信息表
员工编号
char(4)
主键,不允许重复;外键
基本工资
int
岗位工资
int
水电费
float
津贴工资
int
加班工资
扣除薪酬
int
迟到、缺席扣薪
实发金额
int
表考勤信息表
员工编号
char(4)
主键不允许重复
姓名
varChar(8)
性别
Char
(2)
迟到次数
int
缺席次数
int
表津贴信息表
员工编号
char(4)
主键不允许重复
姓名
varChar(8)
性别
Char
(2)
加班时间
Varchar(10)
加班天数
float
加班类型
varChar(8)
津贴情况
int
六、物理设计与实施
数据库的物理设计
数据库物理设计的主要任务是确定数据库物理结构,即确定数据库的存储
结构设计和存取方法。
包括确定关系、索引、聚簇、日志、备份等的存储安排
和存储结构,确定系统配置等。
存储结构设计
为了提高系统的性能,根据应用情况将数据的易变部分与稳定部分、经常
存取部分与不经常存取部分分开存放。
由于现在的计算机都有多个磁盘,将表(如员工信息表)和索引放在不同
的磁盘上,在查询过程中,大大提高I/O读写的效率,而对于较大的分放在两
个磁盘上,可以加快存取速度,在多用户环境下的作用更有效;为了改进系统
的性能,将日志文件与数据库对象(表、索引等)放在了不同的盘上。
同时,
考虑到本系统是多用户的,为了提高效率,数据库备份的数据和日志文件将保
存在磁盘中。
在数据库中经常存取的部分包括:
员工(员工编号、姓名、性别、出生年月、所属部门.....)
部门(部门编号、部门名称、部门负责人、部门人数.....)
工资(员工编号、基本工资、岗位工资、水电费.....)
考勤(员工编号、姓名、性别、迟到次数、缺勤次数)
不经常存取部分包括:
基本工资(工资级别、工资金额)
岗位工资(工资级别、工资金额)
在数据库设计初始阶段,为了对以后的数据库进行物理优化,提供了一些
系统配置变量、存储分配系数,并对这些变量赋予合理的缺省值。
但这些值不
一定适合每一种应用环境,在进行物理设计时,对这些变量重新赋值,以改善
系统的性能。
在选择硬件设备、服务器操作系统、数据库时应该考虑能够逐步
增加和扩展。
在配置系统变量时,要注意同时使用数据库的用户数,同时打开的数据库
对象数,内存分配参数,缓冲区分配参数,时间片大小,数据库的大小,锁的
数目等。
这些参数值都会影响数据库的存储时间和存储空间的分配。
存储方法设计
在本系统中,采用顺序查找,平均查找n/2次,建立B+树索引,则平均
查找次数为B+树的层数log2n+1。
所以选择B+树作为索引,再设计过程中对
关系的码建立索引。
数据库的实施
数据库的建立
createdatabasegongzi
on
(name=gongzi_data,
filename='d:
\',
size=10,
maxsize=50,
filegrowth=5)
logon
(name=gongzi_log,
filename='d:
\',
size=5,
maxsize=25,
filegrowth=5
)
表对象的建立
(1)员工信息表:
createtable员工信息
(员工编号char(4)primarykey,
姓名varchar(8),
性别char
(2),
出生年月datetime,
所属部门varchar(20),
文化程度varchar(20),
职称char(12))
(2)部门信息表:
createtable部门信息
(部门编号char(4)primarykey,
部门名称varchar(20),
部门负责人varchar(20),
部门人数int)
(3)基本工资表:
createtable基本工资
(工资级别char
(2)primarykey,
工资金额int)
(4)岗位工资表:
createtable岗位工资
(工资级别char
(2)primarykey,
工资金额int)
(5)工资信息表:
createtable工资信息
(员工编号char(4)primarykey,
基本工资int,
岗位工资int,
水电费float,
津贴工资int,
扣除薪酬int,
实发金额int,
)
(6)考勤信息表:
createtable考勤信息
(员工编号char(4)primarykey,
姓名varchar(8),
性别char
(2),
迟到次数int,
缺席次数int
)
(7)津贴信息表:
createtable津贴信息
(员工编号char(4)primarykey,
姓名varchar(8),
性别char
(2),
加班时间varchar(10),
加班天数float,
加班类型varchar(8),
津贴情况int
)
索引
为提高检索性能,为表创建符合索引,其索引项为员工编号、姓名。
createuniqueindexygon员工信息(员工编号,姓名)
视图
建立一个视图,反映员工姓名及工资情况。
createview员工_工资
as
select员工信息.员工编号,姓名,实发金额
from员工信息,工资信息
where员工信息.员工编号=工资信息.员工编号
备份
数据库的完全备份
BACKUPDATABASE"study"TODISK='e:
\办公.student'
数据库的差异备份
BACKUPDATABASE"study"TODISK='e:
\办公.student'withdifferential
数据库的日志备份
BACKUPlog"study"TODISK='e:
\办公.student'
七、心得体会
通过这一周的数据库设计,使我们从中受到很大的影响,不仅将大学所学
的知识进行了实际应用,还学到了很多书本上学不到的知识。
开阔了视野,增
长了知识,积累了一些经验和教训。
充分锻炼了自己的动手和应用能力,真正
做到了理论联系实际。
由于是第一次弄数据库程序设计,对于数据库的流程还不是很清楚,所以
很大一部分时间是在网上找资料,来完善这次数据库的需求分析。
一开始对于
这个数据库系统的功能模块、数据流图和数据字典都不是很清楚该怎么样来书
写和绘图,不过经过进一步的学习终于懂得这些该怎么样写才是正确的,也增
强了我自学的积极性。
因为一开始对这次数据库程序设计还很陌生,所以都是
在摸索中前进,当然也会遇到很多问题。
比如一个功能的实现遇到了困难就会
很焦急的面对这个问题。
最后,我要感谢老师的关心、指导和教诲。
再次向所有关心、帮助、理
解、支持我们做好数据库课程设计的老师和同学们致以深深的谢意,感谢你们
的帮助和关爱!
八、参考文献
[1]萨师煊,王珊﹒数据库系统概论(第三版)[M]﹒高等教育出版社﹒2000
[2]王珊,陈红﹒数据库系统原理教程[M]﹒清华大学出版社﹒1998
[3]钱雪忠,李京﹒数据库原理及应用(第三版)[M]﹒北京邮电大学出版社﹒2010