1、一、设计目的和要求通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工资管理系统,实现对员工工资的管理及查询功能。最终结果为设计和完成具有较完善功能和一定规模的数据库应用系统(后台),为此后的软件工程课程设计和毕业设计作准备.二、设计内容2.1概述项目背景:当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断变化来完善管理系统,设计适应其发展的数据库管理系统,提高其性能,完善其功能。编写目的:用SQL
2、 Server 2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖金等级表.按照要求设置好属性和各表的主键,并实现一下功能:(1) 员工每个工种基本工资的设定(2) 加班津贴管理,根据加班时间和类型给予不同的加班津贴;(3) 按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;(4) 员工年终奖金的生成,员工的年终奖金计算公式(员工本年度的工资总和津贴的总和)/12;(5) 企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资统计,并能够打印2。2需求分析
3、1问题陈述:随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成员工工资的管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管理系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达到提高管理效率的目的.使办公人员可以轻松快捷地完成工资管理的任务.系统后台采用SQL Server 2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Visual Basic所为界面输出,可提供添加删除等更新操作。系统功能模块:2功能分析:员工管理系统需要对员工的工资、奖金进行管理,还应包括员工的一些基本信息和考勤情况、加班津贴.
4、因此系统要满足员工工资、奖金的计算工能,通过设定的每月基本工资和奖金,结合考勤情况的所扣工资和加班情况的所的津贴,计算出员工每个月实际的工资,最后更具每个月的工资和奖金计算出每个员工所得的年终奖金以及查询部门或单个员工信息的功能.3数据流图:员工记录生 成企业输入数据 输出数据图2。1 数据流图2.3概念结构设计: 1概述:进行概念结构设计,它是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS和概念模型.形成ER图后,根据该图转换成逻辑结构的关系模式,体现数据库中各实体之间的关系,及实体与属性之间的关系.2实体间的整体ER图:分配月工资等级业绩分配11mn工
5、种n分类1考察获得年终奖金员工n1 1 m考勤获得1 1获得11津贴1图2。2 工资管理系统ER图3各表及其属性之间的E-R图:员工编号员工员工姓名员工学历员工年龄i员工性别图2。.3员工基本信息表与属性之间的ER图等级编号i业绩编号员工姓名员工编号工种月奖金员工工种基本工资图2。4 员工工种信息表与属性之间的ER图考勤实发工资基本工资应扣工资缺勤次数i迟到次数员工编号员工姓名图2。5 员工考勤情况表与属性之间的ER图津贴所得津贴加班天数i员工姓名员工编号加班时间图2.6 员工津贴信息表与属性之间的ER图月工资月奖金基本工资实发金额所得津贴i应扣工资员工姓名员工编号图2.7 员工月工资表与属性
6、之间的ER图年终奖金年奖金员工姓名员工编号年终奖金业绩编号月奖金基本工资年基本工资 图2。8 年终奖金表与属性之间的E-R图月奖金业绩工作业绩图2.9 奖金等级表与属性之间的ER图等级编号基本工资等级员工等级图2.10 员工公众信息表与属性之间的ER图2。4逻辑结构设计:关系模式(带下划线的为主键)1把实体转换为关系模式员工(员工编号,员工姓名,员工性别,员工年龄,员工学历)工种(员工编号,员工姓名,业绩编号,员工工种,等级编号,基本工资,月奖金)考勤(员工编号,员工姓名,迟到次数,缺勤次数,应扣工资,基本工资,实发工资)津贴(员工编号,员工姓名,加班时间,加班天数,所得津贴)月工资(员工编号
7、,员工姓名,应扣工资,所得津贴,月奖金,基本工资,实发金额)年终奖金(员工编号,员工姓名,月奖金,基本工资,年奖金,年基本工资,年终奖金)等级(等级编号,员工等级,基本工资)业绩(业绩编号,工作业绩,月奖金)2把关系转换为关系模式(带下划线的为主键)分类(员工编号,业绩编号,等级编号)获得(员工编号,所得津贴,实发金额,年终奖金)考察(员工编号,迟到次数,缺勤次数)分配(业绩编号,等级编号)2。5物理结构设计:概述:物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(存储结构和存取方法)环境:sql server 2000,Visual Basic 6.02。6实施阶段1数据库中各表的结构
8、如下:表21 员工表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否v员工姓名Varchar20是员工性别Char2是员工年龄Smallint2是员工学历Varchar20是表2-2工种表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否员工姓名Varchar20是业绩编号Char5是员工工种Varchar20是等级编号Char5是基本工资Money8是月奖金Money8是表2-3月工资表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否员工姓名Varchar20是应扣工资Money8是所得津贴Money8是月奖金Money8是基本工资Mone
9、y8是实发金额Money8是表2-4津贴表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否员工姓名Varchar20是加班时间Int4是加班天数Int4是所得津贴Money8是表25考勤表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否员工姓名Varchar20是迟到次数Int4是缺勤次数Int4是应扣工资Money8是基本工资Money8是实发工资Money8是表26 业绩表字段名称字段类型字段大小索引允许空值业绩编号Char5唯一,主键否工作业绩Varchar50是月奖金Money8是表27等级表字段名称字段类型字段大小索引允许空值等级编号Char5唯一
10、,主键否员工等级Varchar20是基本工资Money8是表28年终奖金表字段名称字段类型字段大小索引允许空值员工编号Char5唯一,主键否员工姓名Varchar20是月奖金Money8是基本工资Money8是年奖金Money8是年基本工资Money8是年终奖金Money8是2关系图图2.11 各表之间的关系图3功能实现语句:(1)根据等级表的信息设定工种表中员工的基本工资图2。12工资等级表update 工种set 工种.基本工资=等级。基本工资 from工种,等级where工种。等级编号=等级。等级编号(2)根据业绩表的信息设定工种表中员工的月奖金图2。13奖金等级表update工种set
11、工种.月奖金=业绩。月奖金 from 工种,业绩where工种。部门编号=业绩.部门编号(3)设每个员工加班一小时可获得50的加班津贴,则每个员的所得津贴为:update津贴 set 所得津贴=加班时间50(4)假设每个员工迟到一次应扣的工资为10,缺勤一次应扣的工资为二十,每个员工的考勤情况应扣工资可表示为:update考勤set 应扣工资=迟到次数*10+缺勤次数*20(5)每个员工的实发工资应为基本工资扣除应扣工资后的实际工资:update考勤set 实发工资=基本工资应扣工资(6)计算每个员工的实发金额:update月工资set 实发金额=基本工资应扣工资+所得津贴+月奖金(7)分别计
12、算每个人的年奖金、年基本工资和年终奖金:update 年终奖金表 set 年奖金=月奖金12update 年终奖金表 set 年基本工资=基本工资12update 年终奖金表 set 年终奖金=(年奖金+年基本工资)/12(8)新建一个视图:员工工资情况create view 员工工资情况 asselect 员工编号,部门编号,等级编号,月奖金,基本工资from工种(9)在该视图中可进行单个员工工资的查询操作select * from 员工工资情况例如:查询部门编号为05的所有员工的奖金情况的语句为:select 员工编号,月奖金 from 员工工资情况 where 部门编号=05查询等级编号
13、为02的所有员工的工资情况的语句为:select 员工编号,基本工资 from 员工工资情况 where 等级编号=02查询员工编号为06的员工的工资情况的语句为:select 员工编号,基本工资 from 员工工资情况 where 员工编号=06(10)管理权限的设置:把对考勤情况表的查询权限授予所有用户(月工资和津贴表权限同考勤表)grantselecton table考勤to public把对员工基本信息表的修改权限授予管理员(其余表的修改权限同员工基本信息表)grantupdateon table员工to 管理员4。VB界面:图2。14系统菜单界面图2.15员工表界面图2.16月工资表
14、界面图2.17工种表界面图2.18考勤表界面三、结论与体会通过两周的设计,将数据库与VB相结合,最终完成了一个工资管理系统,并能实现了对员工工资的查询、计算、添加删除等功能。通过亲身实践加深了对数据库技术和VB的理解,提高了对SQL Server和Visual Basic的运用能力。通过这次的设计,我还体会到课程设计是培养综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对实际工作能力的具体训练和考察过程。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,把以前所学过的知识重新温故。四、参考文献1钱雪忠,数据库原理及应用北京:北京邮电大学出版社,20052 钱雪忠,数据库原理及应用实验指导北京:北京邮电大学出版社,20053伍俊良,Visual Basic 课程设计与系统开发案例北京:清华大学出版社,2002第 6 页