前言................................................................................................................................ 1 正文................................................................................................................................ 1 2.1设计目的及意义 ................................................................................................. 1 2.2具体设计内容 ..................................................................................................... 1 2.3概念模型设计 ..................................................................................................... 4 2.4逻辑模型设计和优化 ......................................................................................... 5 2.5物理设计和实施 ................................................................................................. 7 2.6遇到的问题及解决方法 ..................................................................................... 9 致谢.............................................................................................................................. 10 参考文献...................................................................................................................... 11 附录.............................................................................................................................. 12
前言
随着当今企业人员数量的不断增加,企业的工资管理工作也就变得越来越复杂,工资管理的模式也随之相应的发生改变。工资管理在各个行业都存在,财务管理的好坏对本单位来说是很重要的。财务的记录的清晰,对本单位日常工作起着决定性的作用。要建立现代化的工资管理系统,计算机是本系统的基础,也是实现现代化的重要保证。工资管理是每一个单位或每一个部门往往都会涉及到的一个管理内容。工资管理系统不仅在实际运用中重要,更关键的一点,它体现了数据库应用系统的特征。工资管理系统主要用于企业员工的工资核算,实现对人员信息、薪资福利、员工社保信息的维护和查询,并能迅速准确地完成考勤的分类汇总,生成工资报表。
正文
2.1设计目的及意义
数据库是数据管理的最新技术,是计算机科学的重要分支。通过本次数据库课程设计,更进一步巩固本学期对数据库系统概论知识的学习,把理论与实践相结合,加深对数据库知识的理解和应用。企业的工资管理系统是在适应市场需求的客观前提下,为了满足中小型公司或事业单位管理有效管理员工的工资发放情况,本次课程设计的最终目的就是利用数据库将工资管理系统方便有效的设计并运行出来。
2.2具体设计内容
2.2.1功能分析
经过调研及分析,工资管理系统系统主要完成以下功能:
(1)人员信息管理:企业员工信息(包括员工基本信息,教育经历、个人简历、岗位变更、离职登记、离退休信息等)的维护和查询。
人员信息管理系统主要提供员工信息的维护和查询功能。通过SQL语句实现员工基本信息、教育经历、个人简历、岗位更变、离职登记与离退休信息的增加、删除、修改以及查询功能。查询方式包括单条件查询与组合查询。
(2)考勤管理:管理员工的出勤情况(包括加班、请假、休假等)进行维护,查询和统计。可根据日期、员工编号,查询员工的出勤情况。
(3)薪资福利管理:管理员工的薪资和福利(包括当月工资、个人所得税、发放工资历史、员工奖励、员工惩罚等)。其中通过存储过程计算实现当月工资和工资发放功能。
计算当月工资时,月工资信息表中的“奖金”、“罚款”字段,是通过计算机员工奖励金额总和、员工惩罚表金额总和得到的。扣款合计、应发合计计算公式可参考实际业务。
个人所得税率是由国家相应法律法规规定的,除非条款变更,否则所得税的计算方法不发生改变。
工资发放时,打印工资条并将工资发放记录转入工资发放历史记录中,同时将已经发放工资的员工从当月工资管理表中删除。
(4)社会保障管理:管理员工的社会保障信息(包括单位参保信息、养老保险、医疗保险、住房公积金等),生成社会保险台账。 社会保障金由企业和员工按照一定的比率共同支付,其中支付的基数与比率根据企业的情况而有所不同,一般基数会和员工工资挂钩,可参考实际业务进行计算。社会保险台帐用于查询企业员工各种社会保险的支付历史和支付金额,其根据设定的企业支付比赛、个人支
第 1 页 共 17 页
付比率及“薪资福利管理”中工资发放时指定信息的自动计算完成。
(5)系统管理:包括代码管理、参数设置、权限设置、更改密码等。 工资管理系统功能模块图如图2-1所示:
工资管理系统 查询 维护 统计 员工信息表 考勤信息表 薪资福利表 工信息表 考勤信息表 薪资福利表 员工信息表 考勤信息表 薪资福利表
图2-1 功能模块图
2.2.2业务流程分析
业务流程图是一种表明系统内各个单位、人员之间业务关系、作业顺序和管理信息流动的流程图,通过它能够使分析人员找出业务流程中的不合理迂回等。业务流程图的层次简单,可读性强;图中采用系统外部实体、单据报表账目、数据流、处理四种符号来表示各项内容。具体的相关符号说明如下:
系统外部实体 处理 数据流
单据、报表、帐目
通过对书店的处理内容、处理顺序、处理细节和处理要求等各环节的调查和分析,弄清各个环节所需要的信息内容、信息来源、流经取向、处理方法、计算方法、提供信息的时间和信息表示形态(报表、表单、表格、输入输出内容、屏幕显示)等,并且把相关的调查结果用“业务流程图”表示出来,其业务流程图如图2-2所示。
第 2 页 共 17 页
企业员工 人员信息表 考勤表 薪资福利表 管理员 人员信息处理 考勤统计 薪资福利统计 工资报表
图2-2 业务流程图
2.2.3数据流程分析
顶层数据流程图如图2-3所示:
查询 员工 信息 图2-3顶层数据流图
信息 工资管理系统 维护、统计 管理员 从员工角度的数据流程图如图2-4所示:
人员信息 查询信息 员工 结果 薪资福利信息 图2-4 员工角度的数据流程图
查询 考勤信息 从管理员角度的数据流程图如图2-5所示:
第 3 页 共 17 页
查询 人员信息 管理员 维护 考勤信息 统计 薪资福利信息
图2-5管理员角度的数据流程图
2.3概念模型设计
概念模型是对信息世界建模,能够方便、准确的表示出信息世界的常用概念。E-R图提供了表示实体型、属性和联系的方法。图2-6即为公司工资管理系统的E-R图。图2-7为利用Power Designer绘制的数据概念模型。
员工编号 姓名 性别 职位 养老保险 医疗保险 住房基金 员工信息表 员-社 社保信息表 员-工员-出 工资发放工-出 金额 部门 日期 工-社 工-职 税收 职位信息表 出勤表 迟到 请假 休假 加班 职位 工资 奖金 津贴 图2-6企业工资管理系统的E-R图
第 4 页 共 17 页
图2-7公司工资管理系统的数据概念模型
2.4逻辑模型设计和优化
由于属性间存在依赖情况,会导致数据冗余、查寻异常、更新异常等问题。因此,关系数据库中的关系是要满足一定要求的,满足不同要求的为不同的范式。一个低一级范式的关系模式可以转换为若干个高一级的范式的关系模式的集合,这种过程就叫规范化。根据系统的总体概念设计模型、E-R图向关系模式的转化规则和数据库的范式理论,得到系统优化后的逻辑模型,如表2-1~表2-5所示。利用Power Designer绘制的数据物理模型如图2-8所示。
图2-8工资管理系统的物理模型
第 5 页 共 17 页
经过规范化的关系模型如下列各表:
表2-1 员工基本信息表
列名 员工编号 姓名 性别 出生年月 职位 学历 离职登记 离退休信息
数据类型 char char char char char char char char
表2-2 社保信息表
长度 10 10 2 10 10 10 10 10
列名 员工编号 养老保险金额 医疗保险金额 住房基金
数据类型 char char money money
表2-3 出勤表
长度 10 10
列名 员工编号 迟到扣除金额 请假扣除金额 休假扣除额 加班金额
数据类型 char money money money money
表2-4 工资发放表
长度 10
列名 员工编号 发放金额 发放部门 发放日期 税收 列名 职位 月基本工资
奖金 津贴
数据类型 char money char char money
表2-55 职位信息表
长度 10 10 10 长度 10
数据类型 char money money money
第 6 页 共 17 页
2.5物理设计和实施
得到系统逻辑模型后,就该进行数据库的物理设计和实施数据库了,物理设计主要是要确定数据库的存储路径、存储结构以及如何建立索引等,可以采用系统的默认设置。数据库实施主要包括在具体的DBMS中创建数据库和表的过程,本书所选用的DBMS为SQL SERVER2000,有关创建数据库和关系表的SQL语句在附录中显示。
2.6数据库测试
根据需求分析,在公司工资管理系统数据库中主要运用了以下的SQL语句来实现员工个人信息及个人工资信息查询、更新等功能。
(1)查询员工信息表中所有的员工编号和姓名。其sql语句为:
Select员工编号,姓名 from 员工信息表; 运行如图2-9所示:
图2-9 查询运行图
(2)向公司工资管理系统中职位信息表中插入“行政助理',3000,1000,1000”一项。其sql语句为:
insert
into 职位信息表(职位,月基本工资,奖金,津贴) values('助理',3000,1000,1000); 运行如图2-10所示:
图2-10 插入运行图
(3)在员工信息表中将姓名为“李煜”的人的学历改为“本科”。其sql语句为:
update 员工信息表
set 学历='本科'
where '姓名'='李煜';
第 7 页 共 17 页
如图2-11所示:
图2-11 修改运行图
(4)将出勤表中员工编号为6001的一行删除。其sql语句为:
delete
from 出勤表
where 员工编号'='6001'; 如图2-12所示:
图2-12删除运行图
(5)创建员工信息表中学历为本科的人的所有信息的视图。
create view zd
as
select *
from 员工信息表
where '学历'='本科'; 如图2-13所示:
图2-13 建立视图
第 8 页 共 17 页
(6)删除刚刚建立的员工信息表中学历为本科的人的所有信息的视图。其sql语句为:
drop view zd; 如图2-14所示:
图2-14 删除视图
2.6遇到的问题及解决方法
在本次课程设计中,从理解题目到设计数据库,遇到了许多问题。主要表现在:业务流程图和数据流程图的绘制。绘制这两类图整整用了两天多时间,首先要理解这两种图的含义和绘制方法,由于是第一次接触业务流程图和数据流程图,所以刚开始很难理解,最后通过几次请教老师和同学,在老师和同学的耐心讲解下才绘制完成。
第 9 页 共 17 页
致谢
数据库课程设计即将结束,回望这段日子里,我从一开始的选题到现在设计的完成,让我对数据库有了更新层次的认识,这短时间同时也培养了我在学习时,应经常与同学老师交流,探讨存在的问题,以及如何思考问题解决问题的方法。这都是在老师和同学的帮助下养成的,同时在学院所提供的教室里充满着和谐的学习气氛,有利于我更高效的做自己的课程设计。
课程设计指导老师是XXX老师,他的指导,他的细心帮助,他对我们遇到问题的及时解答,都让我十分感动。在此对他的指导表示真诚的谢意。陈老师在我们这段时间里,经常过来审查我们的设计过程,对我遇到的关键问题进行指导,提出建议和如何解决的方法。让我学到了很多计算机的专业知识,尤其是数据库运行查找所遇到的问题。同时感受到他在工作中的认真严谨和生活中的平易近人。再一次,向他表示深深地谢意。在这里,我还要感谢给我提建议,共同探讨设计的同学们,只要遇到问题,随时都可以与周围的同学讨论,经过他们指导和提示,我学到了很多知识,真心的谢谢帮助过我的兄弟姐妹们,让我顺利的结束了我的课程设计。
第 10 页 共 17 页
参考文献
[1]王珊,萨市煊.数据库系统概论(第四版).北京:高等教育出版社,2006.5 [2]冯关源.数据库应用与开发.上海:上海财经大学出版社,2005,(8)
[3]杨海霞,南志红,相洁,相万红.数据库实验指导.北京:人民邮电出版社,2007.9 [4]王晟, 马里杰.SQL Sever数据库开发经典案例解析.清华大学出版社,2006
[5]肖金秀,何鹏,王当文.ASP.NET案例教程.北京:冶金工业出版社.2005.2
[6]赛奎春,李严,宋坤,王国辉.SQL Server数据库开发实例解析.北京:机械工业出版社.2006.1
[7]郭磐君,孟清华,郭骏.ASP.NET 2.0动态网站设计实例.北京:机械工业出版社.2007.1 [8]杨海霞,南志红,相洁.数据库实验指导.北京:人民邮电出版社.2007.9 [9]杨志姝,李光海.SQL应用与开发标准教程.北京:清华大学出版社.2006 [10]刘晓华,SQL Server2000数据库应用开发.北京:电子工业出版社.2001 [11]何玉洁,数据库原理与应用.北京:机械工业出版社,2007
第 11 页 共 17 页
附录
alter table 出勤表
drop constraint FK_出勤表_RELATIONS_员工信息表 go
alter table 工资发放表
drop constraint FK_工资发放表_RELATIONS_员工信息表 go
alter table 工资发放表
drop constraint FK_工资发放表_RELATIONS_出勤表 go
alter table 工资发放表
drop constraint FK_工资发放表_RELATIONS_职位信息表 go
alter table 工资发放表
drop constraint FK_工资发放表_RELATIONS_社保信息表 go
alter table 社保信息表
drop constraint FK_社保信息表_RELATIONS_员工信息表 go
if exists (select 1
from sysindexes
where id = object_id('出勤表') and name = 'Relationship_1_FK' and indid > 0
and indid < 255)
drop index 出勤表.Relationship_1_FK go
if exists (select 1
from sysobjects
where id = object_id('出勤表') and type = 'U') drop table 出勤表 go
if exists (select 1
from sysobjects
where id = object_id('员工信息表')
第 12 页 共 17 页
and type = 'U') drop table 员工信息表 go
if exists (select 1
from sysindexes
where id = object_id('工资发放表') and name = 'Relationship_7_FK' and indid > 0 and indid < 255)
drop index 工资发放表.Relationship_7_FK go
if exists (select 1
from sysindexes
where id = object_id('工资发放表') and name = 'Relationship_6_FK' and indid > 0 and indid < 255)
drop index 工资发放表.Relationship_6_FK go
if exists (select 1
from sysindexes
where id = object_id('工资发放表') and name = 'Relationship_5_FK' and indid > 0
and indid < 255)
drop index 工资发放表.Relationship_5_FK go
if exists (select 1
from sysindexes
where id = object_id('工资发放表') and name = 'Relationship_3_FK' and indid > 0 and indid < 255)
drop index 工资发放表.Relationship_3_FK go
if exists (select 1
from sysobjects
where id = object_id('工资发放表') and type = 'U')
第 13 页 共 17 页
drop table 工资发放表 go
if exists (select 1
from sysindexes
where id = object_id('社保信息表') and name = 'Relationship_4_FK' and indid > 0 and indid < 255)
drop index 社保信息表.Relationship_4_FK go
if exists (select 1
from sysobjects
where id = object_id('社保信息表') and type = 'U') drop table 社保信息表 go
if exists (select 1
from sysobjects
where id = object_id('职位信息表') and type = 'U') drop table 职位信息表 go
/*==============================================================*/ /* Table: 出勤表 */ /*==============================================================*/ create table 出勤表 (
员工编号 char(10) not null, 员工信_员工编号 char(10) null, 迟到扣除金额 money null, 请假扣除金额 money null, 休假扣除金额 money null, 加班金额 money null, constraint PK_出勤表 primary key nonclustered (员工编号) ) go
/*==============================================================*/ /* Index: Relationship_1_FK */ /*==============================================================*/ create index Relationship_1_FK on 出勤表 (
第 14 页 共 17 页
员工信_员工编号 ASC
) go
/*==============================================================*/ /* Table: 员工信息表 */ /*==============================================================*/ create table 员工信息表 (
员工编号 char(10) not null, 姓名 char(10) null, 性别 char(2) null, 出生年月 char(10) null, 职位 char(10) null, 学历 char(10) null, 个人简历 char(100) null, 离职登记 char(10) null,
离退休信息 char(10) null,
constraint PK_员工信息表 primary key nonclustered (员工编号) ) go
/*==============================================================*/
/* Table: 工资发放表 */ /*==============================================================*/ create table 工资发放表 (
员工编号 char(10) not null, 员工信_员工编号 char(10) null, 职位 char(10) null,
出勤表_员工编号 char(10) null, 社保信_员工编号 char(10) null, 发放金额 money null, 发放部门 char(10) null, 发放日期 char(10) null, 税收 money null,
constraint PK_工资发放表 primary key nonclustered (员工编号) ) go
/*==============================================================*/ /* Index: Relationship_3_FK */ /*==============================================================*/ create index Relationship_3_FK on 工资发放表 ( 员工信_员工编号 ASC )
第 15 页 共 17 页
go
/*==============================================================*/ /* Index: Relationship_5_FK */ /*==============================================================*/ create index Relationship_5_FK on 工资发放表 ( 出勤表_员工编号 ASC ) go
/*==============================================================*/ /* Index: Relationship_6_FK */ /*==============================================================*/ create index Relationship_6_FK on 工资发放表 ( 职位 ASC )
go
/*==============================================================*/ /* Index: Relationship_7_FK */ /*==============================================================*/ create index Relationship_7_FK on 工资发放表 ( 社保信_员工编号 ASC ) go
/*==============================================================*/ /* Table: 社保信息表 */ /*==============================================================*/ create table 社保信息表 (
员工编号 char(10) not null, 员工信_员工编号 char(10) null, 养老保险金 money null, 医疗保险金 money null,
住房基金 money null,
constraint PK_社保信息表 primary key nonclustered (员工编号) ) go
/*==============================================================*/ /* Index: Relationship_4_FK */ /*==============================================================*/ create index Relationship_4_FK on 社保信息表 ( 员工信_员工编号 ASC
第 16 页 共 17 页
)
go
create table 职位信息表 (
职位 char(10) not null, 月基本工资 money null, 奖金 money null, 津贴 money null,
constraint PK_职位信息表 primary key nonclustered (职位) ) go
alter table 出勤表
add constraint FK_出勤表_RELATIONS_员工信息表 foreign key (员工信_员工编号) references 员工信息表 (员工编号) go
alter table 工资发放表
add constraint FK_工资发放表_RELATIONS_员工信息表 foreign key (员工信_员工编号)
references 员工信息表 (员工编号)
go
alter table 工资发放表
add constraint FK_工资发放表_RELATIONS_出勤表 foreign key (出勤表_员工编号) references 出勤表 (员工编号) go
alter table 工资发放表
add constraint FK_工资发放表_RELATIONS_职位信息表 foreign key (职位) references 职位信息表 (职位) go
alter table 工资发放表
add constraint FK_工资发放表_RELATIONS_社保信息表 foreign key (社保信_员工编号)
references 社保信息表 (员工编号) go
alter table 社保信息表
add constraint FK_社保信息表_RELATIONS_员工信息表 foreign key (员工信_员工编号)
references 员工信息表 (员工编号) go
第 17 页 共 17 页
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务