学号
《工资管理系统》
课程设计报告
题 目 :
工资管理系统
专 业 :
班 级 :
姓 名 :
指导教师:
成 绩 :
计算机学院
2017 年 12 月 8 日
1
目录
一、工资管理系统数据库设计............................................................................................ 1
1、项目背景介绍........................................................................................................... 1
1.1 数据需求分析及数据字典...............................................................................1
1.2 概念结构设计...................................................................................................2
1.3 逻辑结构设计...................................................................................................3
1.4 数据库物理设计...............................................................................................5
二、工资管理系统数据库实施步骤.................................................................................... 5
1、项目实践................................................................................................................... 5
1.1 数据库的创建...................................................................................................5
1.2 表对象的创建...................................................................................................6
1.3 索引对象的创建.............................................................................................10
1.4 视图对象的创建.............................................................................................11
1.5 登录用户的创建.............................................................................................12
三、工资管理系统数据库管理.......................................................................................... 13
1、案例实践................................................................................................................. 13
1.1 案例试验数据.................................................................................................13
1.2 表数据的编辑.................................................................................................14
1.3 表数据的简单查询.........................................................................................18
1.4 表数据的联接查询.........................................................................................18
四、项目总结...................................................................................................................... 22
五、 参考文献.................................................................................................................... 23
计算机学院 《数据库课程概论》课程设计报告
一、工资管理系统数据库设计
1、项目介绍
工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的
基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务
部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查
看自己的工资和扣除金额的情况。
工资管理系统的主要功能有:
(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;
(2)、计算个人的实际发放工资;
(3)、按科室、职业分类统计人数和工资金额;
(4)、实现员工个人信息和工资的分类查询;
(5)、能够删除辞职人员的数据;
工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机
组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情
况和升迁离职情况; 工资项目:影响工资计算的各种因素,如:基本工资,福
利补贴和奖励工资,扣除的事业保险和住房公积金等等。用户登录管理:2 种
权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看
自己的工资及基本信息,不能编辑,也不能查看其他用户信息。
1.1 数据需求分析及数据字典
1.需求分析
工资管理系统就是对员工工资的管理,所以首先我们需要知道的是员工有哪
些信息,并且是怎样进行分类的。
工资信息包含 1:员工基本信息(姓名,年龄,所在部门和职务:如经理、
工程师、销售员等);2:部门信息;3 工资表。部门表应包括部门号及其名称,
工资应该包含对应部门对应员工的工资。
员工唯一对应的是员工编号,所以员工编号是主键,其他的都不能是,根据
员工编号我们可以查找员工的基本信息,还有员工的工资信息等。综合分析对工
资管理系统分四个表:
1)员工基本信息表(员工编号,姓名 ,性别, 年龄,出生年月, 籍贯,职务,
电话号码,部门编号);
2)部门表(部门编号,部门名称,部门负责人,联系电话);
3)工资清单表(工资编号,员工编号,基本工资,福利补贴,奖励工资,
事业保险金,住房公积金);
4)实发工资表(工资编号,员工编号,所得工资);
1
计算机学院 《数据库课程概论》课程设计报告
1.2 概念结构设计
实体间的联系:
1:员工基本信息表 workers:(员工编号 w_number、姓名 w_name、性别
sex、年龄 age、出生日期 birthday、籍贯 native、电话号码 w_tel、所在部门编号
dep_number)。
2:部门表 department:(部门编号 dep_number、部门名称 dep_name、部门
负责人 dep_head、联系电话:dep_tel)。
3:工资清单表 wage :(工资编号 wa_number、员工编号 w_number、基本
工资basic_wage、福利补贴boon_wage、奖励工资enc_wage、事业保险金insurance、
住房公积金 ORSO )。
4:实发工资表 factwage :(工资编号 wa_number、员工编号 w_number、所
得工资 fac_wage);
5:各表 E-R 图:
员工编号
部门编号
姓名
员工基本信息表
性别
出生年月
籍贯
年龄
部门名称
联系电话
部门表
部门编号
部门负责人
2
计算机学院 《数据库课程概论》课程设计报告
员工编号
工资编号
奖励工资
工资清单表
事业保险金
住房公积金
基本工资
福利补贴
工资编号
所得工资
实发工资表
员工编号
1.3 逻辑结构设计
1.员工基本信息表 workers:(员工编号 w_number、姓名 w_name、性别 sex、
年龄 age、出生日期 birthday、籍贯 native、电话号码 w_tel、所在部门编 号
dep_number)。
字段名
w_number
w_name
sex
age
birthday
native
dep_number
w_tel
字段类型
int
varchar
varchar
int
datetime
varchar
int
varchar
长度 主键或外键 字段值约束
主键
外键
8
2
2
20
20
不为空
不为空
不为空
不为空
不为空
不为空
不为空
对应中文属性名
员工编号
姓名
性别
年龄
出生日期
籍贯
所在部门编号
电话号码
2. 部门表 department:(部门编号 dep_number、部门名称 dep_name、部门
负责人 dep_head、联系电话:dep_tel)
字段名
dep_number
dep_name
字段类型
int
varchar
长度
主键或外键
主键
20
字段值约束
不为空
不为空
对应中文属性名
部门编号
部门名称
3
计算机学院 《数据库课程概论》课程设计报告
varchar
varchar
dep_head
dep_tel
3. 工资清单表 wage:(工资编号 wa_number、员工编号 w_number、基本工资
basic_wage、福利补贴 boon_wage、奖励工资 enc_wage、事业保险金 insurance、
部门负责人
联系电话
不为空
8
8
住房公积金 ORSO )
长度
字段名
主键或外键
主键
外键
wa_number
w_number
basic_wage
boon_wage
enc_wage
insurance
ORSO
4. 实发工资表 factwage :(工资编号 fwa_number、员工编号 w_number、所得
对应中文属性名
工资编号
员工编号
基本工资
福利补贴
奖励工资
事业保险金
住房公积金
字段值约束
不为空
不为空
不为空
不为空
不为空
不为空
不为空
字段类型
int
int
varchar
varchar
varchar
varchar
varchar
6
6
6
6
6
工资 fac_wage)
字段名
长度
字段类型
int
int
varchar
fwa_number
w_number
fac_wage
5. 数据表之间的逻辑关系图:
6
主键或外键
主键
外键
字段值约束
不为空
不为空
不为空
对应中文属性名
实发工资编号
员工编号
所得工资
部门
属于
员工
1
N
计算
4
1
查询
1
工资清单表
1
1
1
发工资
1
实发工资表
计算机学院 《数据库课程概论》课程设计报告
1.4 数据库物理设计
物理结构设计是为逻辑数据模型建立一个完整的能实现的数据库结构,包括
存储结构和存取方法。
1.输入:
系统关系数据结构
2.输出:
系统数据库物理结构
3.索引类型的选择
工资管理系统的核心任务是对员工的基本信息和工资信息进行有效的
管理。其中,数据量最大且访问频率较高的是工资清单表和实发工资表。为了提
高系统的查询效率,降低系统的查询成本,需要为员工基本信息表和工资清单表、
实发工资表建立聚簇索引。
4.数据库服务器性能参数配置
数据库服务器的内存配置参数、I/O 配置参数和操作系统性能配置参数
使用系统安装时缺省参数。
1.5 数据库实施
数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形
成基于 SQL Server 平台应用系统数据库的脚本和数据库设计报告,并进行数据
库的具体构建与管理。
输入:
系统关系数据结构
系统数据库物理结构
输出:
系统数据库脚本
系统数据库设计报告
二、工资管理系统数据库实施步骤
1、项目实践
1.1 数据库的创建
创建一个工资管理系统数据库(命名为:wageManager ):
--创建名为wageManager的工资管理系统数据库,用于存放员工工资信息。
USE master
create database wageManager
5
计算机学院 《数据库课程概论》课程设计报告
on(name='wageManager',
filename='D:\工资管理系统\wageManager.mdf',
size=20,
maxsize=100,
filegrowth=5%)
log on(
name='wageManager_log',
filename='D:\工资管理系统\wageManager.ldf',
SIZE=1,
MAXSIZE=5,
FILEGROWTH=1
)
视图如下:
1.2 表对象的创建
分别创建:员工基本信息表、部门表、工资清单表、实发工资表,四个表.
(1) 员工基本信息表
use wageManager
create table workers
(w_number varchar(10)not null primary key,
w_name varchar(8)not null,
sex varchar(2)not null,
birthday datetime not null,
native varchar(20)not null,
dep_number varchar(10)not null,
6