数据库设计报告——工资管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、设计目的和要求
通过两周的课程设计,加深对数据库技术相关理论的理解,增强动手能力,掌握使用
现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性
约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,设计一个工资管
理系统,实现对员工工资的管理及查询功能。最终结果为设计和完成具有较完善功能和一
定规模的数据库应用系统(后台),为此后的软件工程课程设计和毕业设计作准备。
二、设计内容
2.1概述
项目背景:
当今的科技迅速发展,管理系统已经完全通过计算机实现,因此需要根据外界的不断
变化来完善管理系统,设计适应其发展的数据库管理系统,提高其性能,完善其功能。
编写目的:
用SQL Server2000建立一个工资管理系统数据库,在该数据库中建立员工基本信息表、员工工种信息表、员工考勤情况表、员工津贴信息表、员工月工资表、年终奖金表、工资等级表、奖金等级表。按照要求设置好属性和各表的主键,并实现一下功能:
(1)员工每个工种基本工资的设定
(2)加班津贴管理,根据加班时间和类型给予不同的加班津贴;
(3)按照不同工种的基本工资情况、员工的考勤情况产生员工的每月的月工资;
(4)员工年终奖金的生成,员工的年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12;
(5)企业工资报表。能够查询单个员工的工资情况、每个部门的工资情况、按月的工资
统计,并能够打印
2.2需求分析
1.问题陈述:
随着现代化技术的发展,员工管理已经完全通过计算机来实现了,为了高效率的完成
员工工资的管理,满足对员工工资的查询及其他相关操作的实现,决定开发设计工资管理
系统,并通过使用工资管理系统,使工资管理工作系统化、规范化、自动化,从而达到提
高管理效率的目的。使办公人员可以轻松快捷地完成工资管理的任务。
系统后台采用SQL Server2000建立数据库及其相关表和关系,运用SQL语句实现查询,计算等共能;后台采用Visual Basic所为界面输出,可提供添加删除等更新操作。
系统功能模块:
2.功能分析:
员工管理系统需要对员工的工资、奖金进行管理,还应包括员工的一些基本信息和考
勤情况、加班津贴。因此系统要满足员工工资、奖金的计算工能,通过设定的每月基本工
资和奖金,结合考勤情况的所扣工资和加班情况的所的津贴,计算出员工每个月实际的工资,最后更具每个月的工资和奖金计算出每个员工所得的年终奖金以及查询部门或单个员
工信息的功能。
3
图2.1数据流图
2.3概念结构设计:
1.概述:进行概念结构设计,它是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS和概念模型。
形成E-R图后,根据该图转换成逻辑结构的关系模式,体现数据库中各实体之间的关系,及实体与属性之间的关系。
2.实体间的整体E-R图:
图2.2工资管理系统E-R图
3.各表及其属性之间的E-R图:
图2..3员工基本信息表与属性之间的E-R图
图2.4员工工种信息表与属性之间的E-R图
图2.5员工考勤情况表与属性之间的E-R图
图2.6员工津贴信息表与属性之间的E-R图
图2.7员工月工资表与属性之间的E-R图
图2.8年终奖金表与属性之间的E-R图
图2.9奖金等级表与属性之间的E-R图
2.4逻辑结构设计:关系模式(带下划线的为主键)
1.把实体转换为关系模式
员工(员工编号,员工姓名,员工性别,员工年龄,员工学历)
工种(员工编号,员工姓名,业绩编号,员工工种,等级编号,基本工资,月奖金)考勤(员工编号,员工姓名,迟到次数,缺勤次数,应扣工资,基本工资,实发工资)
津贴(员工编号,员工姓名,加班时间,加班天数,所得津贴)
月工资(员工编号,员工姓名,应扣工资,所得津贴,月奖金,基本工资,实发金额)
年终奖金(员工编号,员工姓名,月奖金,基本工资,年奖金,年基本工资,年终奖金)
等级(等级编号,员工等级,基本工资)
业绩(业绩编号,工作业绩,月奖金)
2.把关系转换为关系模式(带下划线的为主键)
分类(员工编号,业绩编号,等级编号)
获得(员工编号,所得津贴,实发金额,年终奖金)
考察(员工编号,迟到次数,缺勤次数)
分配(业绩编号,等级编号)
2.5物理结构设计:
概述:物理设计为逻辑数据模型选取一个最适合应用环境的物理结构(存储结构和存取方法)
环境:sql server2000,Visual Basic6.0
2.6实施阶段
1.数据库中各表的结构如下:
表2-1员工表
表2-2工种表
表2-3月工资表
表2-4津贴表
表2-5考勤表
表2-6业绩表
表2-7等级表
表2-8年终奖金表
2.关系图
图2.11各表之间的关系图
3.功能实现语句:
(1)根据等级表的信息设定工种表中员工的基本工资
图2.12工资等级表
update工种set工种.基本工资=等级.基本工资from工种,等级where工种.等级编号=等级.等级编号
(2)根据业绩表的信息设定工种表中员工的月奖金
图2.13奖金等级表
update工种set工种.月奖金=业绩.月奖金from工种,业绩where工种.部门编号=业绩.部门编号
(3)设每个员工加班一小时可获得50的加班津贴,则每个员的所得津贴为:
update津贴set所得津贴=加班时间*50
(4)假设每个员工迟到一次应扣的工资为10,缺勤一次应扣的工资为二十,每个员工的考勤情况应扣工资可表示为:
update考勤set应扣工资=迟到次数*10+缺勤次数*20
(5)每个员工的实发工资应为基本工资扣除应扣工资后的实际工资:
update考勤set实发工资=基本工资-应扣工资
(6)计算每个员工的实发金额:
update月工资set实发金额=基本工资-应扣工资+所得津贴+月奖金
(7)分别计算每个人的年奖金、年基本工资和年终奖金:
update年终奖金表set年奖金=月奖金*12
update年终奖金表set年基本工资=基本工资*12
update年终奖金表set年终奖金=(年奖金+年基本工资)/12
(8)新建一个视图:员工工资情况
create view员工工资情况as
select员工编号,部门编号,等级编号,月奖金,基本工资
from工种
(9)在该视图中可进行单个员工工资的查询操作
select*from员工工资情况
例如:查询部门编号为05的所有员工的奖金情况的语句为:
select员工编号,月奖金from员工工资情况where部门编号=05
查询等级编号为02的所有员工的工资情况的语句为:
select员工编号,基本工资from员工工资情况where等级编号=02
查询员工编号为06的员工的工资情况的语句为:
select员工编号,基本工资from员工工资情况where员工编号=06
(10)管理权限的设置:
把对考勤情况表的查询权限授予所有用户(月工资和津贴表权限同考勤表)
grant select
on table考勤
to public
把对员工基本信息表的修改权限授予管理员(其余表的修改权限同员工基本信息表)grant update
on table员工