1、重庆科技学院数据库原理课程设计报告院(系:专业班级: 学生姓名: 学 号: 设计地点(单位)_逸夫科技楼_ _ _ _ 设计题目:_ 工资管理系统设计_ 完成日期: 2015 年 06 月 26 日指导教师评语: _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _设计题目:工资管理系统设计学生姓名 第 6 组:学生姓名: 学号:课程名称 数据库原理与应用课程设计 专 业 班 级 计科 2013-01,2,3,4地 点 I301、I302 起止时间 2015.06.22-2015.06.26设计内容及要求现需要开发一工资管理系统,描述与要实现功能如下:为了保证系统具有高度的安全性,
2、要有登录界面,进行用户身份的验证。用户分为不同的级别,例如管理员级用户和普通用户。员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。可以对员工的工资项目进行初始化的设置(包括个人所得税、上月工资零头、本月工资零头、职务工资、级别工资、基本工资、工龄工资、独子费、津贴补贴、离退费、交通费、电话费补贴。书报费补贴等人对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定。加班津贴的管理,
3、根据加班的时间和类别给予不同的加班津贴。根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。员工年终奖金的生成。年终奖金计算公式(员工本年度的工资总和津贴的总和)/12。单位工资报表的生成。可以按照在每个月的每个固定时间生成该单位全体员工的月工资。对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。工资的发放,要求能够实现银行打卡的功能。工资转账的功能,包括转账设置、工资转账、工资凭证查询、结转下月的功能。要提供工资管理系统的帮助文件。(详细的描述见课程设计指导书)内容与要求:1
4、.现要求按照数据库系统开发步骤设计满足以上功能的数据库(更详细描述见数据库指导书) ,并写出实现系统功能的视图、触发器或存储过程。2.撰写课程设计报告,课程设计报告中应包括其设计数据库的过程:1)系统需求分析 2)数据库概念结构设计:要求用 PowerDesigner 画出系统 E-R 图;3)逻辑结构设计:要求用 PowerDesigner 生成物理模型图,得到关系模式,并生成对应的数据字典;4)物理结构设计:用 PowerDesigner 把以上关系模式生成数据库(导出数据库脚本) ; 5)数据操作过程:写出为每个关系进行增、删、改、查、的脚本(每个关系,至少两条对应的脚本语句) ;6)视
5、图、存储过程、触发器设计:创建对应系统功能可能用到的视图,并显示结果,或系统可能用到的存储过程,触发器等。设计参数至少 5 个表结构;3 个存储过程;2 个触发器;3 个视图。进度要求15.5 讲课 阅读分析任务书 16.2 需求分析 概念结构设计16.3 逻辑结构设计 物理结构设计16.4 视图、存储过程、触发器设计 撰写报告16.5 交设计报告书备注:16 周周一放假,所以 15 周周五下达设计任务书。参考资料1雷亮等数据库原理课程设计指导书2王珊、萨师煊 数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date 著孟小峰、王珊等译 数据库系统导论(第 8 版) 北京:机
6、械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它重庆科技学院数据库原理课程设计报告I摘要在现代企业管理中,企业信息化是提高企业管理效率的重要手段。工资管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的工资进行管理和统计。工资管理系统分为 6 个模块,基本信息管理模块、考勤信息管理模块、奖惩信息管理模块、员工履历管理模块、职称信息管理模块、员工工资管理模块。本系统采用 SQL Server 2008 作为数据库,使用 ODBC 作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程。关键词: 工资管理 SQL Serv
7、er 2008 触发器 存储过程重庆科技学院数据库原理课程设计报告II目录摘要 I1 需求分析 11.1 系统目标设计 .11.2 系统功能分析 .11.3 功能模块分析 .21.4 系统全局数据流图 .31.5 数据字典 .32 概念结构设计 72.1 构成系统的实体型 .72.2 工资管理系统 E-R 图 .73 逻辑结构设计 93.1 逻辑结构简介 93.2 关系模型 .94 物理模型设计 .114.1 定义数据库 114.2 创建表 .114.3 创建存储过程 .144.4 创建触发器 .17总结 19致谢 20参考文献 21重庆科技学院数据库原理课程设计报告11 需求分析1.1 系统
8、目标设计实现企业的工资管理系统化,使企业管理更加现代化1.2 系统功能分析(1):为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。用户分为不同的级别,例如管理员级用户和普通用户。(2):员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。(3):可以对员工的工资项目进行初始化的设置(包括个人所得税、职务工资、级别工资、基本工资、工龄工资。对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用
9、户名、权限、密钥的设定。(4):根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。(5):工年终奖金的生成。年终奖金计算公式(员工本年度的工资总和津贴的总和)/12。重庆科技学院数据库原理课程设计报告21.3 功能模块分析根据系统功能的基本要求,可对整个系统划分为几个模块图 1.1 功能模块分析工资管理系统基本信息管理 考勤信息管理 奖惩记录管理 员工履历管理 职称信息管理 工资信息管理 系统管理员工基本信息录入及维护 员工基本信息的查询 考勤信息的录入与维护 员工考勤信息的查询 奖惩信息的录入与维护 员工奖惩信息的查
10、询 员工履历的录入与维护 员工履历信息的查询 职称评定的录入与维护 职称评定的查询 工资的录入与维护 工资的查询 用户账号管理 系统数据备份重庆科技学院数据库原理课程设计报告31.4 系统全局数据流图系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。图 1.2 数据流图1.5 数据字典表 1.1 员工基本信息表(Base_data)名称 数据类型 说明Worker_ID varchar(15) 员工编号 关键字Worker_Name varchar(8) 员工姓名Department_Name varchar(15)
11、 部门名称Sex varchar(2) 性别Birthday datetime 出生日期Native_Place varchar(25) 籍贯School_Age varchar(4) 学历Major varchar(15) 专业重庆科技学院数据库原理课程设计报告4表 1.2 考勤信息记录表(Check_info)名称 数据类型 说明Worker_ID Varchar(15) 员工编号 关键字Worker_Name varchar(8) 员工姓名Months varchar(10) 月份编号 关键字Months_days int 本月天数Holidays int 公休假天数Work_days
12、int 出勤天数Business_days int 出差天数Absent_days int 缺席天数Leave_days int 请假天数Late_days int 迟到天数Leave_early_times int 早退天数表 1.3 工资信息表(Wage_info)名称 数据类型 说明Record_ID bigint 记录编号 关键字Worker_ID varchar(15) 员工编号Worker_Name Varchar(8) 员工姓名Base_Wage float 基本工资Allowance1 float 公共补贴Allowance2 float 出差补贴Reward float 奖金
13、Overtime_Money float 加班费Deduct_Check float 扣考核Aged_Money float 养老保险Income_tax float 所得税重庆科技学院数据库原理课程设计报告5表 1.4 奖惩记录表(Reward_pun)名称 数据类型 说明Record_ID bigint 记录编号 关键字Worker_ID varchar(15) 员工编号Worker_Name varchar(8) 员工姓名Record_date datetime 奖惩日期Record_type varchar(2) 奖惩类型Record_content varchar(30) 奖惩内容R
14、ecord_reason varchar(30) 奖惩原因Allow_unit varchar(20) 批准单位Remark varchar(200) 备注 表 1.5 职称评定信息表(Pro_title)Duty varchar(10) 担任职务名称 数据类型 说明Worker_ID varchar(15) 员工编号 关键字Worker_Name varchar(8) 员工姓名Assess_date datetime 评定日期Assess_unit varchar(20) 评定单位Assess_title varchar(8) 评定职称Remark varchar(200) 备注重庆科技学院
15、数据库原理课程设计报告6表 1.6 工作履历表(Work_age)名称 数据类型 说明Record_ID Bigint 记录编号 关键字Worker_ID varchar(15) 员工编号Worker_Name varchar(8) 员工姓名Begin_date datetime 起始日期Over_date datetime 结束日期Unit_Name varchar(20) 单位名称Work_time float 本单位工作时间Duty varchar(10) 担任职务Level1 varchar(4) 级别Remark varchar(200) 备注表 1.6 用户账号表(User_tab
16、le)名称 数据类型 说明User_Name varchar(30) 用户名 关键字User_pwd varchar(30) 用户密码Power_level varchar(8) 权限级别重庆科技学院数据库原理课程设计报告72 概念结构设计2.1 构成系统的实体型由工资管理系统的数据流图和数据字典,抽取出系统的 7 个主要实体,包括:员工、考勤记录、工资、奖惩记录、职称评定信息、履历、账号。员工实体型属性:Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Add
17、ress考勤记录实体型属性:Worker_ID Worker_Name Months Months_days Holidays Work_days Business_days Absent_days Leave_days Late_days Leave_early_times工资实体型属性: Record_ID Worker_ID Worker_Name Base_Wage Allowance1 Allowance2 Reward Overtime_Money Deduct_Check Aged_Money Medical_Money Compo_Money Unemploy_Money Ho
18、using_Money Income_tax Real_wage Give_date奖惩记录实体型属性: Record_ID Worker_ID Worker_Name Record_date Record_type Record_content Record_reason Allow_unit Remark职称评定信息实体型属性: Worker_ID Worker_Name Assess_date Assess_unit Assess_title Remark履历实体型属性: Record_ID Worker_ID Worker_Name Begin_date Over_date Unit_
19、Name Work_time Duty Level1 Remark账号实体型属性: User_Name User_pwd Power_level2.2 工资管理系统 E-R 图重庆科技学院数据库原理课程设计报告8图 2.1 工资管理系统 E-R 图重庆科技学院数据库原理课程设计报告93 逻辑结构设计3.1 逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本 E-R 图转换为与选用DBMS 产品所支持的数据模型相符合的逻辑结构。设计逻辑结构一般分为 3 步进行:(1) 将概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定 DBMS 支持下的数据模型转换
20、;(3) 对数据模型进行优化。3.2 关系模型将 E-R 图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如:(1) 员工与履历之间是一对多的关系,所以将员工和履历以及属于关系设计成以下关系模式:员工(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address)奖惩记录(Reco
21、rd_ID Worker_ID Worker_Name Record_date Record_type Record_content Record_reason Allow_unit Remark)属于(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address Record_ID Record_date Record_type Record_content Record_reason Allow_unit Remark )(2) 员工与账号之间是一对一的
22、关系,所以将员工和账号以及属于关系设计成以下关系模式:员工(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address)账号 (User_Name User_pwd Power_level)重庆科技学院数据库原理课程设计报告10属于(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address User_pwd Powe
23、r_level )重庆科技学院数据库原理课程设计报告114 物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1 定义数据库SQL Server 2000 数据库文件分为 3 中类型:主数据文件、次数据文件和日志文件。通过 SQL 语言进行数据库创建,创建数据库的语句如下:Create database 工资管理系统;4.2 创建表创建员工基本信息表 Base_data CREATE TABLE Base_data ( Worker_ID varchar(15) PRIMARY KEY,/*员工 ID ,主码*/Worker
24、_Name varchar(8) Not null,/*员工姓名*/Department_Name varchar(15) Not null,/*部门名称*/Sex varchar(2) Not null,/*性别*/Birthday datetime Not null,/*出生日期*/Native_Place varchar(25) Not null,/*籍贯*/School_Age varchar(4) Not null,/*学历*/Major varchar(15) Not null,/*专业*/Link_Phone varchar(11) Not null,/*联系电话*/Addres
25、s varchar(20) Not null,/*住址*/);考勤信息记录表 Check_info CREATE TABLE Check_info( Months varchar(10) ,Worker_ID varchar(15),重庆科技学院数据库原理课程设计报告12Months_days int, /*本月天数*/Holidays int, /*公休假天数*/Work_days int, /*出勤天数*/Business_days int,/*出差天数*/Absent_days int,/*缺席天数*/Leave_days int,/*请假天数*/Late_days int,/*迟到天数
26、*/Leave_early_times int,/*早退天数*/PRIMARY KEY (Months,Worker_ID),FOREIGN KEY (Worker_ID) REFERENCES Base_data(Worker_ID),);工资信息表 Wage_info CREATE TABLE Wage_info ( Record_ID bigint PRIMARY KEY,/*记录编号*/Worker_ID varchar(15),Worker_Name varchar(8),Base_Wage float,/*基本工资*/Allowance1 float, /*公共补贴*/Allowa
27、nce2 float,/*出差补贴*/Reward float, /*奖金*/Overtime_Money float, /*加班费*/Deduct_Check float, /*扣考核*/Aged_Money float, /*养老保险*/Medical_Money float, /*医疗保险*/Compo_Money float, /*工伤保险*/Unemploy_Money float, /*失业保险*/Housing_Money float, /*住房公积金*/Income_tax float, /*所得税*/重庆科技学院数据库原理课程设计报告13Real_wage float, /*
28、实发工资*/Give_date float, /*发放月份*/FROEIGN KEY (Worker_ID) REFERENCES Base_data(Worker_ID),);奖惩记录表(Reward_pun) CREATE TABLE Reward_pun( Record_ID bigint PRIMARY KEY,/*记录编号*/Worker_ID varchar(15),Worker_Name varchar(8),Record_date datetime,/*奖惩日期*/Record_type varchar(2),/*奖惩类型*/Record_content varchar(30)
29、,/*奖惩内容*/Record_reason varchar(30),/*奖惩原因*/Allow_unit varchar(20),/*批准单位*/Remark varchar(200),/*备注 */FORERGN KEY (Worker_ID) REFERENCES Base_data(Worker_ID),);职称评定信息表 Pro_title CREATE TABLE Pro_title( Worker_ID varchar(15) PRIMARY KEY,/*员工编号*/Worker_Name varchar(8),Assess_date datetime,/*评定日期*/Asses
30、s_unit varchar(20),/*评定单位*/Assess_title varchar(8),/*评定职称*/Remark varchar(200),/*备注*/);重庆科技学院数据库原理课程设计报告14工作履历表 Work_age CREATE TABLE Work_age( Record_ID Bigint PRIMARY KEY,/*记录编号*/Worker_ID varchar(15),Begin_date datetime,/*起始日期*/Over_date datetime,/*结束日期*/Unit_Name varchar(20),/*单位名称*/Work_time fl
31、oat,/*本单位工作时间*/Duty varchar(10),/*担任职务*/Level1 varchar(4),/*级别*/Remark varchar(200),/*备注*/FORERGN KEY (Worker_ID) REFERENCES Base_data(Worker_ID),);用户账号表 User_table CREATE TABLE User_table( User_Name varchar(30) PRIMARY KEY,/*用户名*/User_pwd varchar(30),/*用户密码*/Power_level varchar(8),/*权限级别*/);4.3 创建存
32、储过程在奖惩记录表中创建更新奖惩的存储过程:USE salaryGOCREATE PROCEDURE update_奖惩记录表_1(Record_ID_1 bigint,Record_ID_2 bigint,Worker_ID_3 varchar(15),重庆科技学院数据库原理课程设计报告15Worker_Name_4 varchar(8),Record_date_5 datetime,Record_type_6 varchar(2),Record_content_7 varchar(30),Record_reason_8 varchar(30),Allow_unit_9 varchar(20
33、)AS UPDATE salary.dbo.奖惩记录表 SET Record_ID = Record_ID_2,Worker_ID = Worker_ID_3,Worker_Name = Worker_Name_4,Record_date = Record_date_5,Record_type = Record_type_6,Record_content = Record_content_7,Record_reason = Record_reason_8,Allow_unit = Allow_unit_9 WHERE ( Record_ID = Record_ID_1)在员工基本信息表上创建一
34、个插入员工信息的存储过程:USE salaryGOCREATE PROCEDURE insert_员工基本信息表_2(Worker_ID_1 varchar(15),Archives_ID_2 varchar(10),Worker_Name_3 varchar(8),Department_Name_4 varchar(10),重庆科技学院数据库原理课程设计报告16Sex_5 varchar(2),Birthday_6 datetime,Native_Place_7 varchar(25),School_Age_8 varchar(4),Major_9 varchar(15),Graduate_
35、Sch_10 varchar(10),Come_Time_11 datetime,Link_Phone_12 varchar(11),Address_13 varchar(20),Remark_14 varchar(200)AS INSERT INTO salary.dbo.员工基本信息表 ( Worker_ID,Archives_ID,Worker_Name,Department_Name,Sex,Birthday,Native_Place,School_Age,Major,Graduate_Sch,Come_Time,Link_Phone,Address,Remark) VALUES (
36、Worker_ID_1,Archives_ID_2,Worker_Name_3,重庆科技学院数据库原理课程设计报告17Department_Name_4,Sex_5,Birthday_6,Native_Place_7,School_Age_8,Major_9,Graduate_Sch_10,Come_Time_11,Link_Phone_12,Address_13,Remark_14)在用户账号表上建立一个删除用户账号的存储过程:USE salaryGOCREATE PROCEDURE delete_用户账号表_1(User_Name_1 varchar)AS DELETE salary.db
37、o.用户账号表 WHERE ( User_Name = User_Name_1)4.4 创建触发器定义一个 BEFORE 行级的触发器,为工资信息表 Wage_info 定义完整性规则“总经理的基本工资不得低于 6000 元,如果低于 6000 元,刚自动改为 6000 元”。 CREATE TRIGGER Insert_or Update_WageBEFORE INSERT OR UPDATE ON Wage_infoFOR EACH ROWAS BEGIN重庆科技学院数据库原理课程设计报告18IF(new.Duty=总经理) AND (new.Base_Wageold.User)THEN
38、INSERT INTO User_changeVALUES(new.User_Name,new.User_pwd,new.Power_level)END IF;END;重庆科技学院数据库原理课程设计报告19总结在这周的课程设计中我学到了许多书本之外的东西,动手能力得到了提高,对数据库系统的设计流程有了进一步的了解。当然在本次课程设计中也遇到了许多的困难,比如 SQL Sever200 和 PowerDesigner 之间的联合运用,数据流图的绘制还有就是对工资管理系统的需求分析不熟悉等。希望在以后的学习中能够对数据库系统的设计更加熟悉。重庆科技学院数据库原理课程设计报告20致谢经过这周的课程设
39、计,使我对数据库系统概论这门学科有了更深一步的认识,也不在像最初接触数据库那么迷茫了,通过一周的课程设计,使我对这学期学的知识有了全面的认识。由于以前大部分时间都在学习理论的知识,所以对项目不是很了解。而学校提供的这次课程设计机会使我收获颇多,从中也发现了许多不足,让我找到了以后学习的方向。在这次程序设计过程中,也出现了不少的问题,但在老师和同学的耐心帮助下,问题都得到了解决,正是有了你们的帮助,我才能顺利地完成学籍管理系统的设计。在此,我感谢帮助过我的所有同学,并向帮助过我的雷亮老师和张亚军老师说一声谢谢重庆科技学院数据库原理课程设计报告21参考文献1 孙建伶,林怀忠. 数据库原理与应用. 北京:高等教育出版社 2006.52 梁方明. SQL Server 2000. 北京:希望电子出版社 2002.73 王珊,萨师煊. 数据库系统概论(第四版). 北京:高等教育出版社 2006.54 李树有. 数据库应用系统开发与实例. 北京:人民邮电出版社 2005.95 孟彩霞. 数据库系统原理与应用(本科). 北京:人民邮电出版社 2008.36 陶宏才. 数据库原理及设计. 北京:清华大学出版社 2004.4