企业工资管理系统数据库.docx
《企业工资管理系统数据库.docx》由会员分享,可在线阅读,更多相关《企业工资管理系统数据库.docx(16页珍藏版)》请在冰豆网上搜索。
![企业工资管理系统数据库.docx](https://file1.bdocx.com/fileroot1/2023-6/12/0e84d829-4a5d-4afe-900d-8793bee4c1d9/0e84d829-4a5d-4afe-900d-8793bee4c1d91.gif)
企业工资管理系统数据库
枣庄学院
信息科学与工程学院
课程设计任务书
题目:
企业工资管理系统
学号:
姓名:
专业:
网络工程
课程:
数据库系统概论
指导教师:
职称:
完成时间:
2011年12月----2011年12月
枣庄学院信息科学与工程学院制
年月日
课程设计任务书及成绩评定
课程设计的任务和具体要求
《数据库系统概论》课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程设计实验主要围绕两方面内容:
数据库设计和基本数据库编程实践。
通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和基本开发技术。
1.掌握数据库设计的基本方法,熟悉数据库设计的步骤;
2.通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力;
3.学习基本数据库编程方法。
指导教师签字:
、日期:
指导教师评语
成绩:
指导教师签字:
日期:
课程设计所需软件、硬件等
课程设计进度计划
起至日期
工作内容
备注
参考文献、资料索引
序号
文献、资料名称
编着者
出版单位
参考文献
[1]《数据库课程设计》何钦铭陈根才浙江大学出版社2007年
[2]《数据库原理与设计》陶宏才清华大学出版社
[2]《数据库原理及应用》王飞
第一章目的
《数据库系统概论》课程设计对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
本课程设计实验主要围绕两方面内容:
数据库设计和基本数据库编程实践。
通过本实验,使学生了解数据库系统的理论,掌握数据库的设计方法及数据库的运用和基本开发技术。
1.掌握数据库设计的基本方法,熟悉数据库设计的步骤;
2.通过设计数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力;
3.学习基本数据库编程方法。
第二章引言
企业工资管理系统是一个中小型企业单位不可缺少的部分,它的内容对于中小企业的决策者和管理者来说都至关重要,所以企业工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件工资,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对员工工资信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高企业工资管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
下面我所做的工资管理系统,该系统可以实现以下功能:
(1)员工各种信息的输入及维护。
(2)员工每个工种基本工资的设定。
(3)加班津贴管理,根据加班时间和类型给予不同的加班津贴;
(4)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
(5)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/6;
(6)能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计。
第三章课程设计内容与要求
一、需求分析
图1-1系统数据流图
数据流图表达了数据和处理之间的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。
数据字典(DD)通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
1、数据项
数据项名
数据项含义说明
数据类型
长度
wno
员工号
int
wname
姓名
char
8
sex
性别
char
2
birth
出生日期
int
call
联系电话
char
10
add
籍贯
char
20
ide
身份证号
int
depar
部门名称
char
8
type
工种号
int
tname
工种名称
char
8
bwage
基本工资
int
overtime
津贴类型
char
8
absence
缺勤类型
char
8
overhour
加班工时
int
abstime
缺勤次数
int
ohcash
每小时加班津贴
int
atcash
每次缺勤罚款额
int
month
月份
int
wage
月工资数
int
allo
本月津贴
int
fine
本月罚款
int
allwage
年总工资数
int
weal
年终奖金
int
year
年份
int
2、数据结构
数据结构名
组成
员工信息
员工号,姓名,身份证号,性别,出生日期,籍贯,联系方式,部门名称
工资信息
员工号,姓名,工资月份,基本工资,应得工资,实收工资
奖金信息
员工号,姓名,总工资,津贴
3、数据流
数据流名
数据流来源
数据流去向
组成
输入信息
员工
信息库
员工信息
工资级别
部门属性
信息库
部门信息
基本工资
工资级别
信息库
工资信息
津贴
员工加班
员工
信息
奖金
员工工作
员工
工资,津贴信息
实得工资
员工
4、数据存储
数据存储名
输入的数据流
输出的数据流
组成
员工信息
员工信息的记录
员工信息记录
员工信息
部门信息
部门的各类信息
部门信息
部门信息
工资信息
基本工资,实得工资
工资信息记录
工资的组成,数额
5、处理过程
处理过程名
输入数据流
输出数据流
员工信息记录
员工信息
员工清单
工资安排
员工工作信息
工资安排信息
二、概念结构设计
概念结构设计的步骤:
第一步:
进行局部视图的设计:
由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。
因此我们先逐一的设计分E-R图。
第二步:
进行视图的集成:
各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。
采用一次集成两个分E-R图的方式。
图2-1员工实体及属性
图2-2部门实体及属性图2-3津贴实体及属性
图2-4工资实体及属性
图2-5工资管理系统数据库ER图
三、逻辑结构的设计
将E-R图转换成等价的关系模式;按需求对关系模式进行规范化;对规范化后的模式进行评价,调整模式,使其满足性能、存储等方面要求;根据局部应用需要设计外模式。
逻辑结构设计的任务是将概念结构设计的E-R图,转化为与选用的DBMS所支持的数据模型相符的逻辑结构,形成逻辑模型。
员工信息(员工号、工种号、姓名、性别、民族、联系电话、家庭住址、出生日期、身份证号),1NF范式;
工作信息(工种号、工种名称、部门、基本工资),3NF范式;
罚款(罚款类型、每次缺勤罚款额、),3NF范式;
津贴(津贴类型、每小时加班津贴),3NF范式;
月工资(员工号、工种号、罚款类型、津贴类型、基本工资、缺勤次数、加班小时数、本月罚款、本月津贴、月工资数),3NF范式;
年总工资(员工号、年份、年总工资数、年终奖金),3NF范式。
表3-1员工信息表
字段名称
字段解释
数据类型
wno
员工号
int
wname
姓名
char
sex
性别
char
birth
出生日期
int
call
联系方式
char
add
籍贯
char
ide
身份证号
int
表3-2工作信息表
字段名称
字段解释
数据类型
depar
部门名称
char
type
工种号
int
tname
工种名称
char
表3-3考勤信息表
字段名称
字段解释
数据类型
absence
缺勤类型
char
overhour
加班工时
int
abstime
缺勤次数
int
表3-4收入信息表
字段名称
字段解释
数据类型
bwage
基本工资
int
ohcash
每小时加班津贴
int
atcash
每次缺勤罚款额
int
month
月份
int
wage
月工资数
int
allo
本月津贴
int
fine
本月罚款
int
四、物理结构设计
数据库的物理设计通常分为两步:
(1)定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。
(2)物理结构进行评价,评价的重点是时间和空间效率。
4.1索引的建立
索引的选择:
①如果一个属性经常在查询条件中出现,要考虑在这个属性上建立索引。
②如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。
建立索引:
为提高检索性能,为表创建符合索引。
4.2数据库的存储结构
选择在SQLSERVER2005上实现数据库后台设计。
MicrosoftSQLServer2005是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。
自定义窗体收集信息。
数据表示图可以使数据库一目了然,还提供了排序功能。
MicrosoftSQLServer2005也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。
根据掌握的知识,设计了一些存储过程,这些都为数据库的功能实现提供了很好的帮助,这些功能将在数据实施和维护段详细说明。
五、数据实施和维护
用SQLSERVER2005建立数据库结构,此数据库命名为:
salary,加载(测试/虚拟)数据,能体现对数据库的保护(安全性和完整性控制等)。
实现各种查询、链接应用程序,并能对数据库做简单的维护操作。
5.1建立数据库
Createdatabase工资管理系统
5.2建立表
createtable员工信息
(wnointprimarykey,
wnamechar(10),
sexchar
(2),
birthint,
addrchar(20),
callchar(20),
typint,
typesint,
ideint,
deperint
);
createtable工作信息
(deperchar(10),
typesint,
typint,
tnamechar(8));
Createtable考勤信息
(absencechar(10),
overhourint,
abstimeint);
createtable津贴表
(absencechar(12)primarykey,
atcashint,
);
createtable加班表
(wnoint,
overtimechar(12),
overhourint,
primarykey(wno,overtime),
foreignkey(wno)references员工信息(wno),
foreignkey(overtime)references加班表(overtime)
);
createtable收入信息
(bwagechar(10),
wnointprimarykey,
ohcashint,
atcashint,
monthint,
wageint,
alloint,
fineint,
chuqindayint,
yingfaint,
shifaint);
5.3建立视图
Createview员工信息_收入信息
As
Select员工信息.wname,收入信息.*
From员工信息,收入信息
Where员工信息.wno=收入信息.wno;
5.4存储过程:
月工资表的存储过程
createprocedurem1(@wnoint)
as
insert
into月工资表(wno,moonallo,moonfine,bwage,wage)
select员工信息.wno,abstime*atcash,overhour*ohcash,工作信息.bwage,abstime*atcash+overhour*ohcash+工作信息.bwage
from员工信息,工作信息,考勤信息,津贴表,收入信息
where@wno=员工信息.wnoand员工信息.wno=加班表.wnoand
加班表.wno=考勤信息.wnoand津贴表.overtime=加班表.overtime;
年总工资表的存储过程
createprocedurem2(@wnoint)
as
insert
into年总工资表(wno,allwage,weal)
select月工资表.wno,sum(wage),(sum(wage)+sum(moonallo))/6
from月工资表
where@wno=月工资表.wno
groupbywno;
查询月工资的存储过程
createprocedurem3(@wnoint)
as
select*
from月工资表
where;
查询年工资的存储过程
createprocedurem4(@wnoint)
as
select*
from年总工资表
where;
按月查询部门工资情况的存储过程
createprocedurem5(@deparchar(8),@moonint)
as
selectdepar,sum(wage),avg(wage)
from月工资表,工作信息
where月工资表.moon=@moonand工作信息.depar=@depar
groupby工作信息.depar;
5.5建立索引
createindexwno_wname_ind
on员工信息(wno,wname);
5.6查询
select*
from员工信息;
selectchuqinday,wno
from收入信息;
select员工信息.wno,wname,typ,shifa
from收入信息,员工信息
where收入信息.wno=员工信息.wno;
selectwno,month,bwage,ohcash,atcash,wage,allo,fine
from收入信息,员工信息
where员工信息.wno=收入信息.wnoandwnamelike'林%';
selecttyp,avg(shifa)
from收入信息,员工信息
where工信信息.wno=收入信息.wno
groupbytyp;
selectwno,month,bwage,ohcash,atcash,wage,allo,fine,yingfa,shifa
from收入信息,员工信息
where员工信息.wno=收入信息.wno;
5.7用户与权限管理
createloginlogin1withpassword='1234';
usemaster;
createuserstufrologin1;
execsp_addrogin‘mytest’
grantupdata,delete
onusers
tomytest
execsp_addrolemember’mytest’;
小结
随着信息化浪潮的日益临近,企业在激烈的市场竞争环境下的求得生存,就必须有效地利用人才、时间、信息结合的优势。
因此,如何使企业及时掌握本企业人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业实际的工资管理系统就显得尤为重要。
经过一个星期的构思与设计,在姜老师的精心指导下,本系统已经设计完毕。
其使用功能基本符合公司在实际工作的需要,具有一定的实用性。
但是由于时间比较仓促,加上本人软件设计经验的不足。
因此,在分析问题、解决问题时显得不够严密、完善,还需要在以后的学习中不断地改进和完善。
在这次的课程设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、慎密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。
最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的课程设计。