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