数据库课程设计说明书模板.docx

上传人:b****4 文档编号:27166956 上传时间:2023-06-27 格式:DOCX 页数:31 大小:548.58KB
下载 相关 举报
数据库课程设计说明书模板.docx_第1页
第1页 / 共31页
数据库课程设计说明书模板.docx_第2页
第2页 / 共31页
数据库课程设计说明书模板.docx_第3页
第3页 / 共31页
数据库课程设计说明书模板.docx_第4页
第4页 / 共31页
数据库课程设计说明书模板.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据库课程设计说明书模板.docx

《数据库课程设计说明书模板.docx》由会员分享,可在线阅读,更多相关《数据库课程设计说明书模板.docx(31页珍藏版)》请在冰豆网上搜索。

数据库课程设计说明书模板.docx

数据库课程设计说明书模板

中北大学

数据库课程设计

说明书

 

学院、系:

软件学院

专业:

软件工程

学生姓名:

于淇

学号:

1221011415

设计题目:

通用工资管理系统

起迄日期:

2014年5月26日-2014年6月20日

指导教师:

李瑞红

 

 

 

 2012年6月21日

 

1需求分析

工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。

工资管理系统的主要功能有:

(1)、录入个人的基本资料;

(2)、计算个人的实际发放工资,即根据考勤、津贴、工资计算

实际工资;

(3)、按部门、职业分类、和时间统计人数和工资金额;

(4)、实现员工个人信息、工资、部门或周期工资情况查询;

(5)、能够删除辞职人员的数据;

工资管理:

包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:

主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况;工资项目:

影响工资计算的各种因素,如:

基本工资,福利补贴和奖励工资,扣除的工资等等。

用户登录管理:

2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。

1.1处理对象:

员工信息:

员工编号,员工姓名,性别,年龄,出生年月,籍贯,电话号码,部门编号

部门信息:

部门编号,部门名称,部门负责人,联系电话

员工出勤信息:

工资编号,员工编号,月份,基本工资,福利补贴,奖励工资,事业保险金,住房公积金

实发工资信息:

工资编号,员工编号,月份,所得工资

 

1.2数据流图:

员工信息工资信息部门信息

改改

删员工出勤表

添添

员工信息表

部门表

实发工资信息表

 

1.3数据字典

数据项列表

数据项编号数据项名数据项含义存储结构

DI-1w_number员工编号smallint

DI_2w_nam员工姓名char(10)

DI_3sex性别char(6)

DI_4age年龄smallint

DI_5birthday出生年月char(10)

DI_6native籍贯char(20)

DI_7w_tel电话号码smallint

DI_8dep_number部门编号smallint

DI_9month月份char(5)

DI_10dep_name部门名称char(5)

DI_11dep_head部门负责人char(5)

DI_12wa_number工资编号smallint

DI_13basic_wage基本工资smallint

DI_14boon_wage福利补贴smallint

DI_15enc_wage奖励工资smallint

DI_16insurance事业保险金smallint

DI_17OPSO住房公积金smallint

DI_18fac_wage所的工资smallint

2概念设计阶段

实体间的联系:

1:

员工信息表workers:

(员工编号w_number、姓名w_name、性别sex、年龄age、出生日年月birthday、籍贯native、电话号码w_tel、所在部门编号dep_number)。

2:

部门表department:

(部门编号dep_number、部门名称dep_name、部门负责人dep_head、部门人数dep_people)。

3:

员工出勤表wage :

(工资编号wa_number、员工编号w_number、基本工资basic_wage、福利补贴boon_wage、奖励工资enc_wage、事业保险金insurance、住房公积金ORSO 、月份month)。

4:

实发工资表factwage :

(工资编号wa_number、员工编号w_number、所得工资fac_wage、月份month);

 

5:

各表E-R图:

6.总E-R图:

3逻辑设计阶段

1.员工基本信息表workers:

(员工编号w_number、姓名w_name、性别sex、年龄age、出生日期birthday、籍贯native、电话号码w_tel、所在部门编号dep_number)。

 

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

w_number

int

主键

不为空

员工编号

w_name

varchar

8

不为空

姓名

sex

varchar

2

不为空

性别

age

int

2

不为空

年龄

birthday

datetime

不为空

出生日期

native

varchar

20

不为空

籍贯

dep_number

int

外键

不为空

所在部门编号

w_tel

varchar

20

电话号码

2.部门表department:

(部门编号dep_number、部门名称dep_name、部门负责人dep_head)

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

dep_number

int

主键

不为空

部门编号

dep_name

varchar

20

不为空

部门名称

dep_head

varchar

8

不为空

部门负责人

3.员工出勤表wage:

(工资编号wa_number、员工编号w_number、基本工资basic_wage、福利补贴boon_wage、奖励工资enc_wage、事业保险金insurance、住房公积金ORSO 、月份month)

 

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

wa_number

int

主键

不为空

工资编号

w_number

int

外键

不为空

员工编号

basic_wage

varchar

6

不为空

基本工资

boon_wage

varchar

6

不为空

福利补贴

enc_wage

varchar

6

不为空

奖励工资

insurance

varchar

6

不为空

事业保险金

ORSO

varchar

6

不为空

住房公积金

month

varchar

6

主键

不为空

月份

4.实发工资表factwage :

(工资编号fwa_number、员工编号w_number、所得工资fac_wage、月份month)

字段名

字段类型

长度

主键或外键

字段值约束

对应中文属性名

fwa_number

int

主键

不为空

实发工资编号

w_number

int

外键

不为空

员工编号

fac_wage

varchar

6

不为空

所得工资

month

varchar

6

主键

不为空

月份

5关系模式

1.员工基本信息表workers:

(员工编号w_number、姓名w_name、性别sex、年龄age、出生日期birthday、籍贯native、电话号码w_tel、所在部门编号dep_number)。

2.部门表department:

(部门编号dep_number、部门名称dep_name、部门负责人dep_head)

3员工出勤表wage:

(工资编号wa_number、员工编号w_number、基本工资basic_wage、福利补贴boon_wage、奖励工资enc_wage、事业保险金insurance、住房公积金ORSO 、月份month)

4实发工资表factwage :

(工资编号fwa_number、月份month、员工编号w_number、所得工资fac_wage)

4物理设计阶段

物理结构设计是为逻辑数据模型建立一个完整的能实现的数据库结构,包括存储结构和存取方法。

1.输入:

系统关系数据结构

2.输出:

系统数据库物理结构

3.索引类型的选择

工资管理系统的核心任务是对员工的基本信息和工资信息进行有效的管理。

其中,数据量最大且访问频率较高的是工资清单表和实发工资表。

为了提高系统的查询效率,降低系统的查询成本,需要为员工基本信息表和工资清单表、实发工资表建立聚簇索引。

5数据库实施

数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于SQLServer平台应用系统的数据库设计报告,并进行数据库的具体构建与管理。

5.1建立数据库、数据表、视图、索引

5.1.1创建一个工资管理系统数据库(命名为:

wageManager):

createdatabasewageManager;

5.1.2表对象的创建

分别创建:

员工基本信息表、部门表、员工出勤表、实发工资表,四个表.

(1)员工基本信息表

usewageManager

createtableworkers

(w_numbervarchar(10)notnullprimarykey,

w_namevarchar(8)notnull,

sexvarchar

(2)notnull,

birthdaydatetimenotnull,

nativevarchar(20)notnull,

dep_numbervarchar(10)notnull,

w_telvarchar(20)

视图如下:

(2)部门表

--部门表的创建

usewageManager

createtabledepartment

(dep_numberintnotnullprimarykey,

dep_namevarchar(20)notnull,

dep_headvarchar(8)notnull,

dep_telvarchar(8)notnull

视图如下:

(3)员工出勤表

usewageManager

createtablewage

(wa_numberintnotnullprimarykey,

w_numberintnotnull,

basic_wagevarchar(6)notnull,

boon_wagevarchar(6)notnull,

enc_wagevarchar(6)notnull,

insurancevarchar(6)notnull,

ORSOvarchar(6)notnull,

monthvarchar(6)notnull,

Foreignkey(w_number)refrenceswokers(w_number),

视图如下:

 

(4)实发工资表

usewageManager

createtablefactwage

(fac_numberintnotnullprimarykey,

w_numberintnotnull,

fac_wagevarchar(6)notnull,

monthvarchar(6)notnull,

Foreignkey(w_number)refrenceswokers(w_number),

视图如下:

(5)所有表创建成功,数据库表如下:

UsewageManager;

Insertintowokersvalues(‘00001’,’张明’,’女’,’20’,’1995/8/5’,’山西’,’182330303216’,’01’);

Insertintowokersvalues(‘00002’,’张佳’,’女’,’20’,’1995/10/9’,’山西’,’182330303219’,’01’);

Insertintowokersvalues(‘00003’,’王明’,’男’,’23’,’1992/8/3’,’山西’,’182330303215’,’02’);

Insertintowokersvalues(‘00004’,’刘明’,’男’,’20’,’1995/6/23’,’山西’,’182330306216’,’03’);

Insertintowokersvalues(‘00005’,’王萌’,’女’,’20’,’1995/12/5’,’山西’,’182330303218’,’03’);

Insertintowokersvalues(‘00006’,’白婷’,’女’,’20’,’1995/6/8’,’山西’,’182360303216’,’02’);

Insertintodepartmentvalues(‘01’,’人事部’,’张佳’,’182330303216’);

Insertintodepartmentvalues(‘02’,’财务部’,’王明’,’182330303215’);

Insertintodepartmentvalues(‘03’,’销售部’,’王萌’,’182330303218’);

Insertintowagevalues(‘w00001’,’00001’,’2000’,’200’,’200’,’-100’,’-200’,’01’);

Insertintowagevalues(‘w00002’,’00002’,’2000’,’100’,’100’,’-100’,’-200’,’01’);

Insertintowagevalues(‘w00003’,’00003’,’2000’,’200’,’100’,’-100’,’-200’,’01’);

Insertintowagevalues(‘w00004’,’00004’,’2000’,’100’,’300’,’-100’,’-200’,’01’);

Insertintowagevalues(‘w00005’,’00005’,’2000’,’100’,’200’,’-100’,’-200’,’01’);

Insertintowagevalues(‘w00006’,’00006’,’2000’,’100’,’300’,’-100’,’-200’,’01’);

Insertintofactwagevalues(‘wa00001’,’01’,’00001’,’2100’);

Insertintofactwagevalues(‘wa00002’,’01’,’00002’,’1900’);

Insertintofactwagevalues(‘wa00003’,’01’,’00003’,’2000’);

Insertintofactwagevalues(‘wa00004’,’01’,’00004’,’2100’);

Insertintofactwagevalues(‘wa00005’,’01’,’00005’,’2000’);

Insertintofactwagevalues(‘wa00006’,’01’,’00006’,’2100’);

5.1.3索引对象的创建

工资管理系统的核心任务是对员工的基本信息和工资信息进行有效的管理。

其中,数据量最大且访问频率较高的是工资清单表和实发工资表。

为了提高系统的查询效率,降低系统的查询成本,需要为员工基本信息表和工资清单表、实发工资表建立聚簇索引

USEwageManager

GO

CREATEUNIQUEINDEX默认索引ONwage(wa_number)

USEwageManager

GO

CREATEINDEX复合索引ONwage(wa_number,w_number,month)

USEwageManager

GO

CREATEINDEX复合索引ONworkers(w_number,w_name)

USEwageManager

GO

CREATEINDEX唯一性索引ONworkers(w_number)

视图如下:

5.1.4视图对象的创建

USEwageManager

GO

CREATEVIEWv_system_wages

AS

SELECT

wage.wa_numberAS工资编号,

workers.w_numberAS员工编号,

workers.w_nameAS员工姓名,

workers.dep_numberAS部门编号,

department.dep_nameAS部门名称,

wage.basic_wageAS基本工资,

wage.boon_wageAS福利工资,

wage.enc_wageAS奖励工资,

wage.insuranceAS事业保险金,

wage.ORSOAS住房公积金,

factwage.fac_wageAS实发工资

FROMwage,workers,department,factwage

WHEREworkers.w_number=wage.w_number

ANDworkers.dep_number=department.dep_number

ANDwage.w_number=factwage.w_number

视图如下:

界面如下:

5.1.5登录用户的创建

创建SQLServer登录账号:

createloginyuqiwithpassword='1234'

视图如下:

5.1.6数据库用户的创建

创建SQLServer数据库用户:

usewageManager

createuseryuqi_user

fromloginyuqi

视图如下:

员工基本信息表:

 

部门表:

 

员工出勤表:

实发工资表:

6系统调试和测试

6.1.1插入员工信息

USEwageManager

GO

Insertintowokersvalues(‘00001’,’黄璐’,’女’,’20’,’1995/8/5’,’山西’,’182330306616’,’01’);

修改后表内容如下:

 

6.1.2.数据的修改

USEwageManager

GO

UPDATEworkers

SETw_name='刘玉',dep_number='02'

WHEREw_number='10010'

视图如下:

修改后表内容如下:

6.1.3.数据的删除

USEwageManager

GO

DELETEFROMworkersWHEREw_name='刘玉'

视图如下:

修改后表内容如下:

6.2.1表数据的简单查询

USEwageManager

GO

SELECTw_numberAS员工编号,w_nameAS姓名,sexAS性别,

birthdayAS出生日期,nativeAS籍贯,

dep_numberAS所在部门编号,

w_telAS联系电话

FROMworkers

视图如下:

查询单个部门工资:

USEwageManager

GO

SELECTw_numberAS员工编号,w_nameAS姓名,sexAS性别,

birthdayAS出生日期,nativeAS籍贯,

dep_numberAS所在部门编号,

w_telAS联系电话

FROMworkers

6.2.2表数据的联接查询

 

1.两表联合查询员工所在部门及相关信息:

USEwageManager

GO

SELECTw_numberAS员工编号,

w_nameAS姓名,

sexAS性别,

birthdayAS出生日期,

nativeAS籍贯,

workers.dep_numberAS部门编号,

dep_nameAS部门名称,

dep_headAS部门负责人,

w_telAS联系电话

FROMworkers,department

whereworkers.dep_number=department.dep_number

 

视图界面如下:

 

2.三个表联合查询员工工资情况:

USEwageManager

GO

SELECT

wage.wa_numberAS工资编号,

wage.w_numberAS员工编号,

w_nameAS姓名,

dep_nameAS所在部门,

basic_wageAS基本工资,

boon_wageAS福利工资,

enc_wage奖励工资,

insuranceAS事业保险金,

ORSOAS住房公积金

FROMworkers,department,wage

wherewage.w_number=workers.w_number

ANDworkers.dep_number=department.dep_number

 

视图界面如下:

 

3.四个表整体联合查询员工工资详细情况:

USEwageManager

GO

SELECT

wage.wa_numberAS工资编号,

wage.w_numberAS员工编号,

w_nameAS姓名,

dep_nameAS所在部门,

basic_wageAS基本工资,

boon_wageAS福利工资,

enc_wage奖励工资,

insuranceAS事业保险金,

ORSOAS住房公积金,

fac_wageAS实发工资

FROMworkers,department,wage,factwage

wherewage.w_number=workers.w_number

ANDworkers.dep_number=department.dep_number

ANDfactwage.w_number=wage.w_number

查询结果如下:

7心得体会

这次SQL的创新考核打破了在试卷上传统的理论考试,让我们自己动手,不仅巩固了我们的所学知识,更全面的测试了我们学习这门课程的熟练程度,在这个过程中,遇见了不少问题,很多问题是平时做实验没有遇到过的,但通过自己的努

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1