数据库原理与应用课程设计报告-工资管理系统

简介: 数据库原理与应用课程设计报告-工资管理系统

1.概述

随着经济的发展,企业正向着大型化、规模化发展,而对于大中型企业,员工、职称等跟工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但显得力不从心,而且极容易出错。如何设计一个小型企业工资的,由计算机代替人工执行一系列诸如增加新员工,删除旧员工,工资查询,统计等操作。这样就使办公人员可以轻松快捷地完成工资管理的任务。

对于企、事业单位的工资发放来说,不需要太大型的。只需要一个操作方便,功能实用,能同时满足财务部门、单位其他相关部门及代发单位三方对数据的管理及需求的系统。

实现工资的集中管理。可供财务人员对本单位的人员以及工资进行增加、删除、修改、查询,对工资发放中的应发工资合计等项目由系统自动进行计算;同时系统还可对员工及工资管理情况进行多角度查询。

基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。企业工资管理系统是典型的信息管理系统(MIS),后台数据库采用MySQL数据库操作简单、易于使用的优点

2.需求分析

2.1需求描述

工资管理系统系是为了更好的实现工资各种信息的管理以及各种信息的安全性管理。本系统主要对查看员工的各种工资信息需求所设计的,可以很好的管理数据。本系统的主要功能由以下几个部分组成:

经过调研及分析,工资管理信息系统主要完成以下功能:

(1)员工基本信息模块:员工的基本信息。

(2)工资信息模块:员工每个月度的基本工资、岗位工资、水电费、津贴工资、扣除薪酬、实发金额。

(3)部门信息模块:公司各部门编号、名称、负责人、人数。

(4)考勤模块:记录员工迟到、缺席次数。

(5)津贴模块:记录员工加班情况派发津贴。

(6)员工信息管理模块:管理员对所需要的资料的查询即对员工基本信息的增加、删除、修改、查询操作。

(7)员工工资管理模块:管理员对所需要的资料的查询即对员工工资信息的增加、删除、修改、查询操作。

2.2数据流图

顶层数据流图

2.3数据字典

2.3.1 数据项的描述

1、数据项名:员工编号

别名:w_number

取值范围:0000-9999

含义说明:每位员工的编号

类型:char

长度:4

2、数据项名:员工姓名

别名:w_name

取值范围:1—4

含义说明:每位员工的姓名

类型:varchar

长度:8

3、数据项名:员工性别

别名:sex

取值范围:“男”或“女”

含义说明:每位员工的性别

类型:char

长度:2

4、数据项名:基本工资

别名:basic_wage

取值范围:整数

含义说明:每位员工的基本工资

类型:int

5、数据项名:出生年月

别名:birthday

含义说明:每位员工的出生日期

类型:datetime

2.3.2 数据结构描述

1、名称:员工(Employee)

含义说明:员工信息

组成结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

2、名称:工资(Salary)

含义说明:工资信息

组成结构:员工编号+基本工资+岗位工资+水电费+津贴工资+扣除工资+实

发工资

2.3.3 数据流的描述

1、数据流名称:员工信息添加

简述:新员工信息录入

数据流来源:公司管理者

数据流去向:员工信息

数据流组成:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

2.3.4 数据流的描述

1、存储名称:员工记录存储

说明:记录着所有员工的所有基本信息

输入:员工基本信息

输出:员工所有信息

数据结构:员工编号+姓名+性别+出生年月+所属部门+文化程度+职称

2.3.5 处理过程的定义

1、处理过程名:员工信息处理

说明:处理员工的基本信息

输入数据流:终端

输出数据流:员工信息入库

3.概念结构设计

3.1概念设计

3.1.1 实体分析描述

从用户角度来说,数据库的需求主要体现在对数据库表的增删改查。因此,数据库结构需同时满足两个要素:输入、输出。在进行数据设计时,首先需收集数据,然后分析数据结构,最后处理数据。根据本系统的需求,设计以下主要的数据项和数据结构:

(1)员工信息实体:员工编号、姓名、性别、所属部门、职称、文化程度、出生年月。

(2)部门信息实体:部门编号、部门名称、部门负责人、部门人数。

(3)工资信息实体:员工编号、基本工资、岗位工资、水电费、津贴工资、扣除工资、实发金额。

(4)考勤信息实体:员工编号、姓名、性别、迟到次数、缺席次数。

(5)津贴信息实体:员工编号、姓名、性别、加班天数、津贴情况、加班类型、加班时间。

3.1.2 实体实体图

员工信息实体如图3.1所示。

用户信息实体图设计

部门信息实体如图3.2所示。

部门信息实体图设计

工资信息实体如图3.3所示。

工资信息实体图设计

考勤信息实体如图3.4所示。

考勤信息实体图设计

津贴信息实体如图3.5所示。

津贴信息实体图设计

3.1.3 E-R图

工资管理系统局部E-R图如图3.6所示。

工资管理系统局部E-R图设计

工资管理系统局部E-R图如图3.7所示。

工资管理系统局部E-R图设计

工资管理系统局部E-R图如图3.8所示。

工资管理系统局部E-R图设计

工资管理系统局部E-R图如图3.9所示。

工资管理系统局部E-R图设计

工资管理系统总E-R图如图3.10所示。

工资管理系统总E-R图设计

4.1逻辑结构设计

4.1关系模式

关系模式:员工信息(员工编号、姓名、性别、出生年月、所属部门、

文化程度、职称)

模式判定:员工信息∈2NF,且每个非主属性都不传递函数依赖于员工信

息的主关系键,所以员工信息∈3NF

关系模式:部门信息(部门编号、部门名称、部门负责人、部门人数)

模式判定:部门信息∈2NF,且每个非主属性都不传递函数依赖于部门信

息的主关系键,所以部门信息∈3NF

关系模式:工资信息(员工编号、基本工资、岗位工资、水电费、津贴

工资、扣除工资、实发金额)

模式判定:工资信息∈2NF,且每个非主属性都不传递函数依赖于工资信

息的主关系键,所以工资信息∈3NF

关系模式:考勤信息(员工编号、姓名、性别、迟到次数、缺勤次数)

模式判定:考勤信息∈2NF,且每个非主属性都不传递函数依赖于考勤信

息的主关系键,所以考勤信息∈3NF

关系模式:津贴信息(员工编号、姓名、性别、加班时间、加班天数、

加班类型、津贴情况)

模式判定:津贴信息∈2NF,且每个非主属性都不传递函数依赖于津贴信

息的主关系键,所以津贴信息∈3NF

5.物理结构设计

5.1定义数据库、表名

数据库名:

wages

数据库表名:

  1. 员工信息表:staff
  2. 部门信息表:dept
  3. 工资信息表:wages
  4. 考勤信息表:attendance
  5. 津贴信息表:allowance

5.2存储引擎

使用mysql数据库,选择InnoDB作为存储引擎。

5.3数据库存储结构设计

为了提高系统的性能,根据应用情况将数据的易变部分与稳定部分、经常

存取部分与不经常存取部分分开存放。

由于现在的计算机都有多个磁盘,将表(如员工信息表)和索引放在不同

的磁盘上,在查询过程中,大大提高I/O读写的效率,而对于较大的分放在两

个磁盘上,可以加快存取速度,在多用户环境下的作用更有效;为了改进系统

的性能,将日志文件与数据库对象(表、索引等)放在了不同的盘上。同时,

考虑到本系统是多用户的,为了提高效率,数据库备份的数据和日志文件将保

存在磁盘中。

在数据库中经常存取的部分包括:

员工(员工编号、姓名、性别、出生年月、所属部门。。..。)

部门(部门编号、部门名称、部门负责人、部门人数...。。)

工资(员工编号、基本工资、岗位工资、水电费.。.。。)

考勤(员工编号、姓名、性别、迟到次数、缺勤次数)

不经常存取部分包括:

基本工资(工资级别、工资金额)

岗位工资(工资级别、工资金额)

在数据库设计初始阶段,为了对以后的数据库进行物理优化,提供了一些

系统配置变量、存储分配系数,并对这些变量赋予合理的缺省值。但这些值不

一定适合每一种应用环境,在进行物理设计时,对这些变量重新赋值,以改善

系统的性能。在选择硬件设备、服务器操作系统、数据库时应该考虑能够逐步

增加和扩展。

在配置系统变量时,要注意同时使用数据库的用户数,同时打开的数据库

对象数,内存分配参数,缓冲区分配参数,时间片大小,数据库的大小,锁的

数目等。这些参数值都会影响数据库的存储时间和存储空间的分配。

5.4数据库存储方法设计

在本系统中,采用顺序查找,平均查找n/2次,建立B+树索引,则平均查找次数为B+树的层数log2 n+1。所以选择B+树作为索引,再设计过程中对关系的码建立索引。

5.5数据库表结构

(1)员工信息表

属性名

字段名

数据类型

长度

是否允许为空

是否主键

员工编号

employee_No

char

4

不允许

姓名

name

varchar

8

不允许

性别

sex

char

2

允许

出生年月

birthday

datetime

允许

所属部门

dept

varchar

20

不允许

文化程度

education_level

varchar

20

允许

职称

title

char

12

允许

(2)部门信息表

属性名

字段名

数据类型

长度

是否允许为空

是否主键

部门编号

code

char

4

不允许

部门名称

name

varchar

20

不允许

部门负责人

manager

varchar

20

不允许

部门人数

sum

int

10

不允许

(3)工资信息表

属性名

字段名

数据类型

长度

是否允许为空

有无索引

员工编号

code

char

4

不允许

基本工资

baseWages

varchar

20

不允许

岗位工资

postWages

varchar

20

不允许

水电费

money

float

10

不允许

津贴工资

subsidy

varchar

10

不允许

扣除薪酬

deduction

varchar

10

不允许

实发金额

fact

varchar

10

不允许

(4)考勤信息表

属性名

字段名

数据类型

长度

是否允许为空

有无索引

员工编号

code

char

4

不允许

姓名

name

varchar

8

不允许

性别

sex

char

2

不允许

迟到次数

delaysum

int

10

不允许

缺席次数

misssum

int

10

不允许

(5)津贴信息表

属性名

字段名

数据类型

长度

是否允许为空

有无索引

员工编号

code

char

4

不允许

姓名

name

varchar

8

不允许

性别

sex

char

2

不允许

加班时间

overtime

varchar

10

允许

加班天数

overday

float

10

允许

加班类型

overtype

varchar

10

允许

津贴情况

allowance

int

10

允许

5.6数据库模型

数据库模型

6.数据库实施

6.1数据库的创建

CREATE DATABASE wages CHARACTER SET utf8;

6.2数据库的表创建

(1)员工信息表

CREATE TABLE `staff`  (

 `employee_No` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

 `name` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `sex` char(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `birthday` datetime(0) NULL DEFAULT NULL,

 `dept` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `education_level` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `title` char(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 PRIMARY KEY (`employee_No`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

基础数据初始化:

INSERT INTO `staff` VALUES ('001', '张三', '女', '1999-01-21 00:00:00', '部门', '本科', '无');

INSERT INTO `staff` VALUES ('002', '张三', '女', '1999-01-21 00:00:00', '部门', '本科', '无');

INSERT INTO `staff` VALUES ('003', '张三', '女', '1999-01-21 00:00:00', '部门', '本科', '无');

INSERT INTO `staff` VALUES ('004', '张三', '女', '1999-01-21 00:00:00', '部门', '本科', '无');

效果图:

图6.1 员工信息表运行效果

(2)部门信息表

CREATE TABLE `dept`  (

 `code` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

 `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `manager` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `sum` int(0) NULL DEFAULT NULL,

 PRIMARY KEY (`code`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

数据初始化:

INSERT INTO `dept` VALUES ('001', '部门1', '张三', 10);

INSERT INTO `dept` VALUES ('002', '部门2', '张三', 10);

INSERT INTO `dept` VALUES ('003', '部门2', '张三', 10);

效果图:

图6.2 部门信息表运行效果

(3)工资信息表

DROP TABLE IF EXISTS `wages`;

CREATE TABLE `wages`  (

 `code` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

 `baseWages` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `postWages` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `money` float(10, 0) NULL DEFAULT NULL,

 `subsidy` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `deduction` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 PRIMARY KEY (`code`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

数据初始化:

INSERT INTO `wages` VALUES ('001', '2000', '1000', 1000, '1000', '');

INSERT INTO `wages` VALUES ('002', '2000', '1000', 1000, '1000', '');

INSERT INTO `wages` VALUES ('003', '2000', '1000', 1000, '1000', '');

INSERT INTO `wages` VALUES ('004', '2000', '1000', 1000, '1000', '');

效果图:

图6.3 工资信息表运行效果

(4)考勤信息表

CREATE TABLE `attendance`  (

 `code` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

 `name` varchar(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `sex` varchar(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `delaysum` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `misssum` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 PRIMARY KEY (`code`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

数据初始化:

INSERT INTO `attendance` VALUES ('001', '张三', '女', '11', '0');

INSERT INTO `attendance` VALUES ('002', '张三', '女', '11', '0');

INSERT INTO `attendance` VALUES ('003', '张三', '女', '11', '0');

INSERT INTO `attendance` VALUES ('004', '张三', '女', '11', '0');

INSERT INTO `attendance` VALUES ('005', '张三', '女', '11', '0');

效果图:

图6.4 考勤信息表运行效果

(5)津贴信息表

CREATE TABLE `allowance`  (

 `code` char(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

 `name` varchar(4) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `sex` char(8) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `overtime` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 `allowance` int(0) NULL DEFAULT NULL,

 `overday` float(10, 0) NULL DEFAULT NULL,

 `overtype` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL,

 PRIMARY KEY (`code`) USING BTREE

) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic;

数据初始化:

INSERT INTO `allowance` VALUES ('001', '张三', '女', '0', 0, 0, '0');

INSERT INTO `allowance` VALUES ('002', '张三', '女', '0', 0, 0, '0');

INSERT INTO `allowance` VALUES ('003', '张三', '女', '0', 0, 0, '0');

INSERT INTO `allowance` VALUES ('004', '张三', '女', '0', 0, 0, '0');

INSERT INTO `allowance` VALUES ('005', '张三', '女', '0', 0, 0, '0');

运行效果图:

图6.5 津贴信息表运行效果

 

相关文章
|
19天前
|
存储 安全 搜索推荐
酒店管理系统的数据库的应用以及选择
酒店管理系统数据库关乎运营效率和服务质量。数据库用于数据存储、管理、分析及客户关系管理,确保房态与预订精准。选择时重视性能稳定性、数据安全、易用性、可扩展性和成本效益。合适的数据库能提升酒店运营效率并优化客户体验。
23 2
|
1天前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
1天前
|
机器学习/深度学习 搜索推荐 数据库
矢量数据库的未来发展趋势:新技术与应用展望
【4月更文挑战第30天】随着AI和机器学习的发展,矢量数据库在处理非结构化数据方面的重要性日益增强。预测到2028年,全球矢量数据库市场将从2023年的15亿美元增长至43亿美元。未来趋势包括:并行计算与分布式架构提升处理能力,硬件加速技术(如TPU和昇腾芯片)提高性能,自适应索引机制优化查询效率。应用领域将拓展至NLP、图像视频分析和推荐系统,为各行业带来更多创新和价值。
|
1天前
|
机器学习/深度学习 存储 人工智能
矢量数据库在机器学习领域的应用与前景
【4月更文挑战第30天】本文探讨了矢量数据库在机器学习领域的应用,包括特征存储、相似性搜索、模型训练与调优及实时分析。随着AI技术发展,矢量数据库将深度融合,提升扩展性和可伸缩性,增强智能化功能,并加强安全性与隐私保护。未来,矢量数据库将在机器学习领域扮演关键角色。
|
1天前
|
存储 数据可视化 关系型数据库
矢量数据库在地理空间数据处理中的应用
【4月更文挑战第30天】矢量数据库在地理空间数据处理中展现优势,高效存储管理高维向量数据,支持快速查询、空间分析与可视化。分布式处理能力适应大数据量需求,提供高效、灵活、可扩展及可视化支持,是处理地理空间数据的理想选择。随着技术进步,其应用将更加广泛。
|
8天前
|
存储 SQL 数据库
数据库库表结构设计:原理、实例与最佳实践
数据库库表结构设计:原理、实例与最佳实践
25 0
|
9天前
|
C#
【自考】之数据库系统原理
【自考】之数据库系统原理
15 0
|
14天前
|
存储 数据库连接 数据处理
NumPy与数据库的结合应用探索
【4月更文挑战第17天】本文探讨了NumPy与数据库结合在数据处理和分析中的应用,阐述了结合使用的必要性,包括数据提取、转换、处理与分析及结果存储。通过Python数据库连接库提取数据,转化为NumPy数组进行高效计算,适用于金融等领域的数据分析。结合应用的优势在于高效性、灵活性和可扩展性,但也面临数据转换、性能优化和安全性挑战。
|
21天前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
12 1
|
28天前
|
NoSQL 大数据 数据挖掘
现代数据库技术与大数据应用
随着信息时代的到来,数据量呈指数级增长,对数据库技术提出了前所未有的挑战。本文将介绍现代数据库技术在处理大数据应用中的重要性,并探讨了一些流行的数据库解决方案及其在实际应用中的优势。