员工工资管理系统报告.docx
《员工工资管理系统报告.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统报告.docx(33页珍藏版)》请在冰豆网上搜索。
员工工资管理系统报告
课程设计
课程名称数据库应用课程设计
题目名称工资管理系统
学生学院
摘要
本报告介绍了一个使用VisualBasic为前台,SQLServer2000为后台,用于工资管理的数据库管理系统。
该系统能够实现对部门信息、管理员信息、员工信息、工资信息和考勤信息的管理功能,即对这些信息的编辑、查询。
报告首先分析了用户的需求,设计出了系统的功能结构图,然后对系统进行了概念结构设计,设计出了系统的局部ER图和全局ER图,根据全局ER图对系统进行了逻辑结构设计,确定出系统的数据结构即关系模式,根据这些关系模式,在SQLServer2000中,创
建了部门信息、管理员信息、员工信息、工资信息和考勤信息等五张基本表对象;同时,利用这些表对象,创建了满足用户需求的各种查询对象;实现了在SQLServer环境下的工
资管理系统功能。
最后,使用数据库连接技术,以设计完成的SQLServer2000数据库文件为后台,VB界面为前台,设计了系统登录窗体和员工基本信息管理窗体,实现了工资管理系统的部分功能。
关键词:
数据库,SQLServer2000,工资管理
小组情况
本系统是通过小组全体成员的共同努力,经过分工合作完成的,具体情况如下:
1.合作的工作
需求分析、概念结构设计、逻辑结构设计和报告的草稿通过小组讨论完成。
2.分工
在数据库系统的总体方案确定之后,小组成员开始分工,独立完成不同的模块及工作
1需求分析错误!
未定义书签。
系统设计的意义错误!
未定义书签。
系统功能错误!
未定义书签。
系统数据错误!
未定义书签。
2概念结构设计错误!
未定义书签。
实体分析及其局部ER图错误!
未定义书签。
实体之间的联系及其ER图错误!
未定义书签。
系统全局ER图错误!
未定义书签。
3逻辑结构设计错误!
未定义书签。
4数据库设计错误!
未定义书签。
创建表对象错误!
未定义书签。
创建表之间的关系错误!
未定义书签。
创建视图错误!
未定义书签。
创建存储过程错误!
未定义书签。
创建触发器错误!
未定义书签。
5前台界面设计错误!
未定义书签。
系统工程结构设计,错误!
未定义书签。
登录模块设计错误!
未定义书签。
界面设计错误!
未定义书签。
连接设计错误!
未定义书签。
登陆窗体代码设计错误!
未定义书签。
主窗体(MDIForml)模块设计错误!
未定义书签。
总结错误!
未定义书签。
致谢错误!
未定义书签。
参考文献错误!
未定义书签。
1需求分析
系统设计的意义
随着信息化技术的发展及普及,工资管理模式也发生了巨大的变化,由原来的手工管理模式逐步转变为信息化管理,通过信息化管理,将管理员、员工及部门等信息集成在一个系统中,使公司能够方便地处理工资发放操作,也使公司及相关人员能够在第一时间掌握工资信息及员工情况,并根据这些信息做出今后的管理决策计划。
系统功能
为了使本小组设计的系统能够尽可能满足工资管理的实际需求,在进行系统设计之前,小组全体成员通过查资料、亲临公司进行调查和小组多次激烈的讨论,最后确定本系统应该具有如下的功能:
部门信息管理:
能够对部门的信息进行有效的管理,其中包括部门信息的添加、修改和删除,以及部门信息查询。
员工信息管理:
能够对员工的信息进行有效的管理,其中包括员工信息的添加、修改和删除,以及员工信息查询。
工资管理:
能够对聘任信息进行有效的管理,其中包括聘任信息的添加、修改和删除,以及聘任信息查询。
考勤管理:
能够对考勤信息进行有效的管理,其中包括考勤信息的添加、修改和删除,以及考勤信息查询。
管理员管理:
能够对管理员信息进行有效的管理,其中包括管理员信息的添加、修改和删除,以及管理员信息查询。
上述的需求分析可以总结为如图1-1所示的功能结构图
图1-1工资管理功能结构图
系统数据
数据库的核心是数据,相互关联的数据构成数据结构。
对于数据库设计来说,通常使用数据字典对各类数据及其集合进行描述,数据字典是进行数据收集和数据分析所获得的主要成果。
下面将根据系统功能对本系统设计的数据项和数据结构分别进行分析。
本系统涉及部门、员工和管理员三个对象,所以系统涉及的数据项由这三个对象本身的属性和它们之间关系的属性确定。
下面将分别讨论他们的数据结构和数据项。
⑴员工
名称:
公司员工
含义:
员工是工资管理系统的主要数据结构,包含了员工的所有信息。
既然员工属于系统管理的对象范畴,应具有统一的编号,每一位员工给一个编号,同一部门的员工有多个,故员工编号是员工的一个重要属性。
组成:
员工对象分别由员工编号、员工姓名、性别、部门名称、出生日期、籍贯、员工职位、住址、联系电话九个数据项组成。
各数据项的含义如下:
数据项:
员工编号
含义:
员工编号,能够唯一标识每一位员工别名:
员工编号
数据类型:
字符型
长度:
10
数据项:
员工姓名
含义:
员工所取的名字
别名:
姓名
数据类型:
字符型
长度:
10
数据项:
性别
含义:
员工的性别
数据类型:
字符型
长度:
10
数据项:
部门名称
含义:
员工所属部门
别名:
部门名称
数据类型:
字符型
长度:
20
数据项:
出生日期
含义:
员工的出生年月日
别名:
员工出生日期
数据类型:
时间日期型
长度:
8
数据项:
籍贯
含义:
员工的出生地
别名:
员工籍贯
数据类型:
字符型
长度:
10
数据项:
员工职位
含义:
员工所任职的岗位
别名:
职位
数据类型:
字符型
长度:
10
数据项:
住址
含义:
员工的住址
别名:
员工家庭地址
数据类型:
字符型
长度:
40
数据项:
联系电话
含义:
员工的联系电话
别名:
员工联系方式
数据类型:
字符型
长度:
11
⑵部门
名称:
部门名称
含义:
企业的部门
组成:
部门对象分别由部门编号、部门名称、人数组成
各数据项的含义如下:
数据项:
部门编号
含义:
部门编号能够唯一确定部门的所有信息。
别名:
编号
数据类型:
字符型
长度:
10
数据项:
部门名称
含义:
部门的名称
别名:
名称
数据类型:
字符型
长度:
20
数据项:
人数
含义:
部门的人数
数据类型:
int
长度:
4
⑶管理员
名称:
管理员
含义:
在系统中起非常重要的作用,负责管理系统。
组成:
管理员对象分别由管理员编号、管理员姓名和密码组成。
各数据项的含义如下:
数据项:
管理员编号
含义:
系统为每一位管理员进行统一编号管理,编号能够唯一确定管理员对象。
别名:
工号
数据类型:
字符型
长度:
10
数据项:
管理员姓名
含义:
管理员的姓名
数据类型:
字符型
长度:
10
数据项:
密码
含义:
管理员登录系统的安全编码,最初由系统分配一个登录密码,但管理员一旦登录系统,就可以修改密码了。
数据类型:
字符型
长度:
6
(4)工资
名称:
工资
含义:
员工在公司上班,所获得的工资报酬。
组成:
日期、基本工资、工龄工资、地区补贴组成。
各数据项的含义如下:
数据项:
日期
含义:
发工资的日期
数据类型:
时间日期型
长度:
8
数据项:
员工编号
含义:
员工编号,能够唯一标识每一位员工。
别名:
员工编号
数据类型:
字符型
长度:
10
数据项:
员工姓名
含义:
员工所取的名字
别名:
姓名
数据类型:
字符型
长度:
10
数据项:
部门名称
含义:
员工所属部门
别名:
部门名称
数据类型:
字符型
长度:
20
数据项:
基本工资
含义:
员工所得的基本工资
数据类型:
int
长度:
4
数据项:
工龄工资
含义:
参与该公司工作的时间所额外获得的工资
数据类型:
int
长度:
4
数据项:
地区补贴
含义:
补贴给员工的地区差额
数据类型:
int
长度:
4
(5)考勤
名称:
员工考勤
含义:
员工经过考勤之后才能够进行有效管理,考勤由管理员完成,员
工考勤时会产生旷工、请假、迟到、早退等属性。
组成:
员工编号、考勤日期、员工姓名、旷工、请假、迟到、早退
各数据项的含义如下:
数据项:
员工编号
含义:
员工编号,能够唯一标识每一位员工
数据类型:
字符型
长度:
10
数据项:
考勤日期
含义:
对员工每月进行考勤
数据类型:
时间日期型
长度:
8
数据项:
员工姓名
含义:
员工所取的名字
别名:
姓名
数据类型:
字符型
长度:
10
数据项:
旷工
含义:
记录每一个员工的旷工次数
数据类型:
int
长度:
4
数据项:
请假
含义:
记录每一个员工的请假次数
数据类型:
int
长度:
4
数据项:
迟到
含义:
记录每一个员工的迟到次数
数据类型:
int
长度:
4
数据项:
早退
含义:
记录每一个员工的请假次数
数据类型:
int
长度:
4
2概念结构设计
概念结构设计就是将需求分析阶段得到的用户需求抽象为数据库的概念结构,是逻辑结构设计的基础。
本论文使用ER图来描述系统的概念结构。
在实际设计过程中,首先分析系统中以实体为基本单位的局部ER图,然后分析两两实
体之间的联系,画出两两实体联系的局部ER图,再将两两实体之间联系的ER图作为基本单位,画出多个实体之间联系的ER图,依次类推,最后将各局部E-R图合并成全局E-R图,下面将针对该系统分别进行分析。
实体分析及其局部ER图
通过需求分析得知工资管理系统的研究对象有部门、员工、公司和管理员四个对象,也就是四个实体。
(1)部门
对于工资管理系统来说,比较重要的部门信息是部门编号、部门名称、人数。
其中部门的编号能够唯一确定某个部门的所有信息,故在该实体中定义部门编号为实体标识符。
部门的ER图如2-1所示。
部门
图2-1部门ER图
(2)管理员
工资管理系统中的所有管理工作由管理员来完成,管理员在系统中发挥着非常重要的作用,故系统必须对管理员进行统一管理,给每个管理员设置管理员编号和密码。
本系统中管理员实体的属性为管理员编号、管理员姓名和密码,其中,管理员编号能够唯一标识管理员的各个属性,所以定义管理员编号为管理员实体的标识符。
管理员的ER图如2-2所示。
图2-2管理员ER图
(3)员工
在员工实体中,包含员工编号、员工姓名、性别、部门名称、出生日期、籍贯、员工职位、住址、联系电话九个属性。
其中,编号能够唯一标识每一位员工,故定义编号为员工实体的标识符。
员工实体的ER图如2-3所示。
图2-3员工ER图
(4)公司
在工资管理系统里,公司信息由名称、地址和负责人。
其中公司的名称能够唯一确定公司的所有信息,故在该实体中定义公司名称为实体标识符。
公司的ER图女口2-4所示。
公司
图2-4公司ER图
实体之间的联系及其ER图
(1)员工与部门联系的ER图
企业中的每一位员工均由某个部门管理,一个部门管理多个员工,每一位员
工仅能由一个部门管理,故部门和员工之间联系类型是1:
N的联系。
部门在管理
员工的过程中将产生部门编号、部门名称和人数等属性,由于在部门里,部门可
能会出现姓名相同的员工,为了方便灵活的管理每个员工,需要为每个员工建立一个员工编号。
员工和部门联系的ER图如图2-5所示。
部门
图2-5部门与员工的联系
(2)公司和员工联系的ER图
应聘者一旦成为公司员工之后,就可以对员工进行考勤管理了。
随后公司与
员工之间通过工资建立联系,两个实体之间是1:
N联系。
在这过程中,产生了
考勤和工资两个联系。
ER图如图2-6所示。
工龄工资
基本工资
地区补贴
日期
岀生日期
图2-6公司与员工的联系
系统全局ER图
2.3.1属性整合
在整合的过程中,各局部ER图的属性发生如下的冲突,所以需要重新进行定义。
(1)编号:
编号属性分别在四处出现,所以要进行重新定义。
根据数量所处的位置,分别定义为部门编号、员工编号、考勤编号、管理员编号。
2.3.2关系整合
全局ER图是创建数据结构的基础,故由局部ER图向全局ER图整合的过程中,应该根据系统的功能和实际操作需要做取舍。
(1)在公司和员工两实体联系中,产生考勤与工资的联系。
。
(2)员工是系统一个非常重要的实体,员工编号又是员工一个非常重要的属性,该属性正好是员工实体的主键,故通过该属性可以建立员工和部门之间的联系。
将图2-5、2-6合并,同时对各个属性和关系进行整合,就得到系统全局
ER图。
在本工资管理系统中,管理员不是系统研究的重点内容,为了简化系统,故在全局ER图中,可以不考虑管理关系,在系统中仅将管理员作为独立的对象处理。
整合后的全局ER图如图2-7所示。
图2-7全局ER图
整合后各实体及其联系的属性如下:
管理员(管理员编号,管理员姓名,密码);
部门(部门编号,部门名称,人数,);
员工(员工编号,员工姓名,性别,出生日期,籍贯,员工职位,住址)考勤(员工编号,考勤日期,请假,早退,迟到,旷工);
工资(员工编号,日期,地区补贴,工龄工资,基本工资)。
公司(名称,地址,负责人);
说明:
由于公司只有一个,而且其所有属性都是确定的,所以不必考虑公司实体。
3逻辑结构设计
逻辑结构设计的目的是将全局概念模型(ER图)转换成DBMS支持的概念模式或关系模式(或者称为数据结构)。
本系统选用SQLServer2000作为后台数据库,该数据库属于关系型数据库,即使用表结构表示系统中的所有实体及其联系。
要在SQLServer2000中实现图2-7所示的全局ER图(系统概念结构),必
须将其转换成关系模式。
从ER图出发,导出关系模式数据结构遵循如下的两个原则:
第一,对ER图中的每个“实体”,都应该转换成一个关系,该关系内至少要包含对应实体的属性,并根据语义关系确定关系的主键。
第二,对ER图中的“联系”,要根据实际联系的方式及数据处理的需要,或者将其作为独立的关系来处理,或者将关系的属性(如果有)纳入相关联的实体
的属性中。
如果实体之间是1:
N联系,且联系没有产生对系统来说非常重要的属性,一般将1端的主键纳入N端的实体关系中,但是如果联系中产生对系统比较重要的属性,且需要独立研究该属性,则要将联系转换成一个独立的关系。
如果实体之间的联系是M:
N联系,且联系中的属性多或者比较重要,则要将联系作为独立的关系来处理,且在关系中要包含联系的属性和与联系相关联的实体的属性。
根据这个原则,将图2-7与2-8转换成图3-1所示的数据结构。
图3-1将全局ER图转换成数据结构
整合后各实体及其联系的属性如下:
管理员(管理员编号,管理员姓名,密码);
部门(部门编号,部门名称,人数,);
员工(员工编号,部门名称,员工姓名,性别,出生日期,籍贯,员工职位,住址,联系电话);
考勤(员工编号,考勤日期,员工姓名,请假,早退,迟到,旷工);
工资(员工编号,日期,员工姓名,地区补贴,工龄工资,基本工资)。
公司(名称,地址,负责人);
说明:
由于公司只有一个,而且其所有属性都是确定的,所以不必考虑公司实体。
4数据库设计
本系统使用SQLServer2000作为后台数据库,同时也使用VisualBasic设计了一个前台界面,因此,在SQLServer中,除了创建基本表对象之外,还创建了视图。
创建表对象
表对象是数据库最基本的对象,数据库中所有其它的对象都是基于表对象来
创建的。
表对象要根据逻辑结构设计阶段设计的关系模式来创建。
在创建表结构之前,首先应该确定表中各字段的数据类型和约束,然后在设计视图或SQL视图中创建表对象。
下面分别使用表格来表示各个表对象的数据类型和约束。
(1)系统管理员
在管理员对象的三个字段中,管理员编号能够唯一标识一个管理员,所以将该字段定义为主键,其它两个字段在管理员表中必不可少,所以定义为非空约束。
表4-1列出了管理员表结构的数据信息。
列名
数据类型
约束情况
管理员编号
char(10)
主键
姓名
char(10)
非空
密码
varchar(6)
非空
表
4-1管理员表结构
(2)部门信息表
部门编号能够唯一标识部门的所有信息,故定义为主键,部门名称和部门人数字段不能为空,表4-2列出了部门表结构的数据信息。
列名
数据类型
约束情况
部门编号
char(10)
主键
部门名称
char(20)
非空
人数
smallint
非空
表4-2部门表结构
(3)员工信息表
员工是收发工资的主要对象,在员工关系中定义员工编号为主键,其余为非空约束,表4-3列出了员工信息表结构的数据信息。
列名
数据类型
约束情况
员工编号
char(10)
主键
员工姓名
char(10)
非空
性别
char(10)
非空
部门名称
char(20)
非空
岀生日期
datetime
非空
籍贯
char(10)
允许空
员工职位
char(10)
非空
联系电话
char(11)
非空
住址
char(40)
允许空
表4-3员工信息表结构
(4)考勤信息表
考勤通常作为信息统计和凭证使用,每一个考勤信息作为一个独立的记录,
故定义员工编号与考勤日期为主键。
表4-4列出了基本考勤表结构的数据信息
列名
数据类型
约束情况
员工编号
char(10)
主键
考勤日期
datetime
员工姓名
char(10)
非空
请假
int
允许空
旷工
int
允许空
早退
int
允许空
迟到
int
允许空
表4-4考勤表结构
(5)工资信息表
工资信息表作为工资统计使用,每一个工资信息作为一个独立的记录,故定义员工编号与日期为主键,其余字段为非空约束。
表4-5列出了基本工资信息表结构的数据信息。
列名
数据类型
约束情况
员工编号
char(10)
主键
日期
datetime
员工姓名
char(10)
非空
部门编号
char(20)
非空
工龄工资
smallint
非空
地区补贴
smallint
非空
基本工资
smallint
非空
表4-5考勤表结构
创建表之间的关系
通过表之间关系的创建,为创建多表之间的连接查询做好准备。
本系统创建的关系图如图4-6所示。
图4-6系统关系图
创建视图
根据以上可得知,本系统创建的SQLServer2000数据库文件中共包含5个表对象。
为了方便管理员使用该系统进行数据查询,系统还创建了如下的视图。
1.单表查询视图:
(1)员工信息查询视图
能够对所有员工的信息进行查询;
(2)部门信息查询视图
(3)考勤信息查询视图
能够对每个部门的所有信息进行查询;
能够对考勤的所有信息进行查询;
(4)工资信息查询能够对工资的所有信息进行查询;
2.多表查询视图
(1)工资信息表和员工信息表联合查询(数据完整)
2.统计各部门月工资总数
3.统计所有部门月工资总额
创建存储过程
1.创建cunchul,查询员工的所有信息。
createprocedureCunchul
as
select*from员工信息表
2.创建cunchu2,按编号查询查询员工的所有信息。
createprocedureCunchu2
@find员工编号char(10)
as
select员工编号,员工姓名,部门名称,员工职位
from员工信息表
where员工编号=@find员工编号
GO
3.创建cunchu3,向部门信息表中添加一个新的记录。
createprocedureCunchu3
@部门编号char(10),@部门名称char(20),@部门人数char(10)
as
insert部门信息表
VALUES(©B门编号,@部门名称,@部门人数)
GO
创建触发器
1)创建员工信息表删除触发器当用户删除员工信息表中的内容时,引发该触发
器检查考勤信息表中是否存在该内容,如果存在就不能删除,否则就可以删除。
createtriggertr_delete_员工on员工信息表
fordeleteas
declare@员工编号char(10)
select@员工编号=员工编号fromdeleted
ifexists(select*from考勤信息表where员工编号=@员工编号)
begin
rollback
end
2)创建员工信息表更新触发器,当员工信息表中部门编号发生改变时,引发该触发器更新工资信息表中的部门属性。
createtriggertr_update_员工
ondbo.员工信息表
forupdate
as
ifupdate(部门名称)
begin
declare@b部门名称char(20),@h部门名称char(20)
select@b部门名称=部门名称fromdeleted
select@h部门名称=部门名称frominserted
update工资信息表set部门名称=@h部门名称from工资信息表where部门名称=@b咅B门名称
print('记录更新成功')
end
3)创建考勤信息表添加触发器,当用户向考勤信息表中输入员工的信息时,引发该触发器检查员工信息表中是否有该项内容,如果有就可以成功输入,否则就不能输入。
createtriggertr_insert_考勤on考勤信息表
forinsertas
declare@员工编号char(10),@考勤日期datetime,@员工姓名char(10),@早退int,@旷工int,@迟到int,@请假int
select@员工编号=员工编号frominserted
select@员工姓名=员工姓名frominserted
ifnotexists(select*from员工信息表where员工姓名=@员工姓名and员工编号=@
员工编号)
begin
rollback
end
5前台界面设计
本系统使用SQLServer2000作为后台数据库,使用设计前台界面,因此,
在SQLServer2000中,仅需要创建基本表对象和表之间的关系,为了减少重复,
在VB中仅创建了用户登录界面和员工信息查询和编辑界面。
系统工程结构设计,
工资管理系统的工程中包含登录窗体、背景窗体、主窗体和各表对象的编辑窗体和查询窗体,共可创建五个窗体。
其结构见图。
登录模块设计
5.3.1界面设计
(1)登录窗体的设计界面如图所示。
(2)主窗体的设计界面如图所示。
图登陆窗体界面
图系统工程结构图
图主窗体界面
(3)员工信息编辑窗体的设计界面如图所示。
员工信息查询窗体的设计界面如图所示。
图员工信息查询窗体界面
(4)窗体中各控件的属性设置
登录窗体的两个标签使用默认的Name属性,其Caption属性如图所示
表登录窗体控件属性
默认控件名
Name属性
其他属性
Form