《SQL课程设计-工资管理系统(共25页).doc》由会员分享,可在线阅读,更多相关《SQL课程设计-工资管理系统(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上万方科技学院( 2014- 2015 年度第 1学期)工资管理系统专业计算机科学与技术学生姓名何双双班级13升计算机科学与技术学号指导教师孟慧完成日期2014年11月目录一、工资管理系统数据库设计1、项目介绍工资管理系统的功能是收集员工的个人信息,以便实现按照科室录入个人的基本资料,向各科室发放个人工资和计算个人的实际发放工资,可以让相关财务部门及领导查看各科室人数情况和工资金额,还可以让员工用自己的员工号去查看自己的工资和扣除金额的情况。工资管理系统的主要功能有:(1)、按照科室录入个人的基本资料,工资和扣除金额的数据;(2)、计算个人的实际发放工资;(3)、按科室
2、、职业分类统计人数和工资金额;(4)、实现员工个人信息和工资的分类查询;(5)、能够删除辞职人员的数据;工资管理:包括与工资发放相关的各种数据处理,以及对这些处理的有机组织规划;人事管理:主要指对各种员工人事信息的管理,包括员工的基本情况和升迁离职情况; 工资项目:影响工资计算的各种因素,如:基本工资,福利补贴和奖励工资,扣除的事业保险和住房公积金等等。用户登录管理:2种权限,一种是管理员权限,可以做任何操作;一种是普通用户权限只可以查看自己的工资及基本信息,不能编辑,也不能查看其他用户信息。1.1 数据需求分析及数据字典1.需求分析工资管理系统就是对员工工资的管理,所以首先我们需要知道的是员
3、工有哪些信息,并且是怎样进行分类的。工资信息包含1:员工基本信息(姓名,年龄,所在部门和职务:如经理、工程师、销售员等);2:部门信息;3工资表。部门表应包括部门号及其名称,工资应该包含对应部门对应员工的工资。员工唯一对应的是员工编号,所以员工编号是主键,其他的都不能是,根据员工编号我们可以查找员工的基本信息,还有员工的工资信息等。综合分析对工资管理系统分四个表:1)员工基本信息表(员工编号,姓名 ,性别, 年龄,出生年月, 籍贯,职务,电话号码,部门编号);2)部门表(部门编号,部门名称,部门负责人,联系电话);3)工资清单表(工资编号,员工编号,基本工资,福利补贴,奖励工资,事业保险金,住
4、房公积金);4)实发工资表(工资编号,员工编号,所得工资);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_
5、wage、事业保险金insurance、住房公积金ORSO)。4:实发工资表factwage:(工资编号wa_number、员工编号w_number、所得工资fac_wage);5:各表E-R图:员工基本信息表员工编号年龄籍贯姓名性别出生年月部门编号部门表部门名称部门负责人联系电话部门编号工资清单表员工编号福利补贴基本工资奖励工资事业保险金住房公积金工资编号实发工资表工资编号所得工资员工编号1.3 逻辑结构设计1.员工基本信息表 workers:(员工编号w_number、姓名w_name、性别sex、年龄age、出生日期birthday、籍贯native、电话号码w_tel、所在部门编号de
6、p_number)。字段名字段类型长度主键或外键字段值约束对应中文属性名w_numberint主键不为空员工编号w_namevarchar8不为空姓名sexvarchar2不为空性别ageint2不为空年龄birthdaydatetime不为空出生日期nativevarchar20不为空籍贯dep_numberint外键不为空所在部门编号w_telvarchar20电话号码2. 部门表department:(部门编号dep_number、部门名称dep_name、部门负责人dep_head、联系电话:dep_tel)字段名字段类型长度主键或外键字段值约束对应中文属性名dep_numberint
7、主键不为空部门编号dep_namevarchar20不为空部门名称dep_headvarchar8不为空部门负责人dep_telvarchar8联系电话3. 工资清单表wage:(工资编号wa_number、员工编号w_number、基本工资basic_wage、福利补贴boon_wage、奖励工资enc_wage、事业保险金insurance、住房公积金ORSO)字段名字段类型长度主键或外键字段值约束对应中文属性名wa_numberint主键不为空工资编号w_numberint外键不为空员工编号basic_wagevarchar6不为空基本工资boon_wagevarchar6不为空福利补贴
8、enc_wagevarchar6不为空奖励工资insurancevarchar6不为空事业保险金ORSOvarchar6不为空住房公积金4. 实发工资表factwage:(工资编号fwa_number、员工编号w_number、所得工资fac_wage)字段名字段类型长度主键或外键字段值约束对应中文属性名fwa_numberint主键不为空实发工资编号w_numberint外键不为空员工编号fac_wagevarchar6不为空所得工资5. 数据表之间的逻辑关系图:员工部门属于1N工资清单表实发工资表查询发工资计算1111111.4 数据库物理设计物理结构设计是为逻辑数据模型建立一个完整的能实
9、现的数据库结构,包括存储结构和存取方法。1.输入:系统关系数据结构2.输出:系统数据库物理结构3.索引类型的选择工资管理系统的核心任务是对员工的基本信息和工资信息进行有效的管理。其中,数据量最大且访问频率较高的是工资清单表和实发工资表。为了提高系统的查询效率,降低系统的查询成本,需要为员工基本信息表和工资清单表、实发工资表建立聚簇索引。4.数据库服务器性能参数配置数据库服务器的内存配置参数、I/O配置参数和操作系统性能配置参数使用系统安装时缺省参数。1.5 数据库实施数据库实施是根据应用系统数据库的关系结构模型和物理结构设计结果,形成基于SQL Server平台应用系统数据库的脚本和数据库设计
10、报告,并进行数据库的具体构建与管理。输入:系统关系数据结构系统数据库物理结构输出:系统数据库脚本系统数据库设计报告二、工资管理系统数据库实施步骤1、项目实践1.1 数据库的创建创建一个工资管理系统数据库(命名为:wageManager ):-创建名为wageManager的工资管理系统数据库,用于存放员工工资信息。USE mastercreate database wageManageron(name=wageManager,filename=D:工资管理系统wageManager.mdf,size=20,maxsize=100,filegrowth=5%)log on(name=wageMa
11、nager_log,filename=D:工资管理系统wageManager.ldf, SIZE=1, MAXSIZE=5, FILEGROWTH=1)视图如下:1.2 表对象的创建分别创建:员工基本信息表、部门表、工资清单表、实发工资表,四个表.(1) 员工基本信息表use wageManagercreate 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 v
12、archar(20)not null, dep_number varchar(10)not null, w_tel varchar(20)视图如下:(2) 部门表-部门表的创建use wageManagercreate table department(dep_number int not null primary key, dep_name varchar(20)not null, dep_head varchar(8)not null, dep_tel varchar(8) not null)视图如下:(3) 工资清单表-工资清单表的创建use wageManagercreate tabl
13、e wage(wa_number int not null primary key, w_number int not null, basic_wage varchar(6)not null, boon_wage varchar(6)not null, enc_wage varchar(6)not null, insurance varchar(6)not null, ORSO varchar(6)not null)视图如下:(4) 实发工资表-实发工资表的创建use wageManagercreate table factwage(fac_number int not null primar
14、y key, w_number int not null, fac_wage varchar(6)not null)视图如下:(5)所有表创建成功,数据库表如下:各表如下:1.2 索引对象的创建USE wageManagerGOCREATE UNIQUE INDEX 默认索引ON wage(wa_number)USE wageManagerGOCREATE INDEX 复合索引ON wage(wa_number,w_number)USE wageManagerGOCREATE INDEX 复合索引ON workers(w_number,w_name)USE wageManagerGOCREAT
15、E INDEX 唯一性索引ON workers(w_number)视图如下:1.3 视图对象的创建USE wageManagerGOCREATE VIEW v_system_wagesAS SELECT wage.wa_number AS 工资编号, workers.w_number AS 员工编号, workers.w_name AS 员工姓名, workers.dep_number AS 部门编号, department.dep_name AS 部门名称, wage.basic_wage AS 基本工资, wage.boon_wage AS 福利工资, wage.enc_wage AS 奖
16、励工资, wage.insurance AS 事业保险金, wage.ORSO AS 住房公积金, factwage.fac_wage AS 实发工资 FROM wage,workers,department,factwage WHERE workers.w_number =wage.w_number AND workers.dep_number=department.dep_numberAND wage.w_number=factwage.w_number视图如下:界面如下:1.4 登录用户的创建创建SQL Server登录账号:create login huanglu with passw
17、ord = 1234视图如下:1.5 数据库用户的创建创建SQL Server数据库用户:use wageManagercreate user huanglu_userfrom login huanglu视图如下:三、工资管理系统数据库管理1、案例实践1.1 案例试验数据员工基本信息表:部门表:工资清单表:实发工资表:1.2 表数据的编辑建立数据库关系图如下:1数据的插入-在员工基本信息表中插入数据USE wageManagerGOinsert into workers(w_number ,w_name, sex,birthday,native, dep_number,w_tel )value
18、s(10010,黄璐,女,1989/2/2,广西,1,);修改后表内容如下:2.数据的修改-修改员工基本信息表中,员工编号为的员工信息USE wageManagerGOUPDATE workersSET w_name=刘玉,dep_number=2WHERE w_number=10010视图如下:修改后表内容如下:3.数据的删除-从workers表中删除姓名为黄璐的数据信息USE wageManagerGODELETE FROM workers WHERE w_name=刘玉视图如下:修改后表内容如下:1.3 表数据的简单查询USE wageManagerGOSELECT w_number A
19、S 员工编号,w_name AS 姓名,sex AS 性别,birthday AS 出生日期,native AS 籍贯,dep_number AS 所在部门编号,w_tel AS 联系电话FROM workers视图如下:1.4 表数据的联接查询1.两表联合查询员工所在部门及相关信息:USE wageManagerGOSELECT w_number AS 员工编号,w_name AS 姓名,sex AS 性别,birthday AS 出生日期,native AS 籍贯,workers.dep_number AS 部门编号,dep_name AS 部门名称,dep_head AS 部门负责人,w
20、_tel AS 联系电话FROM workers,departmentwhere workers.dep_number=department.dep_number视图界面如下:2.三个表联合查询员工工资情况:USE wageManagerGOSELECT wage.wa_number AS 工资编号,wage.w_number AS 员工编号,w_name AS 姓名,dep_name AS 所在部门,basic_wage AS 基本工资,boon_wage AS 福利工资,enc_wage 奖励工资,insurance AS 事业保险金,ORSO AS 住房公积金FROM workers,d
21、epartment,wage where wage.w_number=workers.w_numberAND workers.dep_number=department.dep_number视图界面如下:3.四个表整体联合查询员工工资详细情况:USE wageManagerGOSELECT wage.wa_number AS 工资编号,wage.w_number AS 员工编号,w_name AS 姓名,dep_name AS 所在部门,basic_wage AS 基本工资,boon_wage AS 福利工资,enc_wage 奖励工资,insurance AS 事业保险金,ORSO AS 住
22、房公积金,fac_wage AS 实发工资FROM workers,department,wage,factwagewhere wage.w_number=workers.w_number AND workers.dep_number=department.dep_numberAND factwage.w_number=wage.w_number查询结果如下:四、项目总结这次SQL的创新考核打破了在试卷上传统的理论考试,让我们自己动手,不仅巩固了我们的所学知识,更全面的测试了我们学习这门课程的熟练程度,在这个过程中,遇见了不少问题,很多问题是平时做实验没有遇到过的,但通过自己的努力调试和查阅相
23、关资料,最终独立解决了问题,完成了本次课程设计考核。SQL Server 2005 课程设计,从这个过程中我不仅系统的复习了SQL的指令用法,还深入了解了SQL数据库的功能,对Transact-SQL命令熟练运用,我真正的体会到了学与用结合的重要性,加深了自己对数据库操作方面印象,同时更加理解了一些用法的真正含义,对自己今后完成毕业设计及更远的项目开发中数据库模块方面积累了重要经验。通过自己上网查询资料,看课件及查书本独立解决问题,让我更深刻地掌握了处理异常的方法。自己动手也让我从中获得了很多书本上学不到的知识,加强了我独立思考能力,自主学习能力以及动手能力。今后,我将像这次课程设计一样,专心投入进去,汲取更多知识,丰富自己。 五、 参考文献1. SQL Server2005实用教程2. 数据库系统原理3. 网上搜查资料专心-专注-专业