收藏 分销(赏)

数据库课程设计工资管理系统--.doc

上传人:可**** 文档编号:5406582 上传时间:2024-10-31 格式:DOC 页数:19 大小:129.54KB 下载积分:8 金币
下载 相关 举报
数据库课程设计工资管理系统--.doc_第1页
第1页 / 共19页
数据库课程设计工资管理系统--.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
重庆科技学院 《数据库原理》 课程设计报告 院(系 :专业班级: 学生姓名: 学 号: 设计地点(单位)______逸夫科技楼_ _______ _ _ 设计题目:____ 工资管理系统设计_______________ 完成日期: 2015年 06月 26日 指导教师评语: _______________________________________ _________________________________________________________________________________________________________________________________________________________________________________________________________ __________ _ 成绩(五级记分制):______ __________ 指导教师(签字):________ ________ 设计题目:工资管理系统设计 学生姓名 第6组:学生姓名: 学号: 课程名称 数据库原理与应用课程设计 专业班级 计科2013—01,2,3,4 地 点 I301、I302 起止时间 2015.06。22—2015.06.26 设计内容及要求 现需要开发一工资管理系统,描述与要实现功能如下: 为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。用户分为不同的级别,例如管理员级用户和普通用户。 员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资.包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。 可以对员工的工资项目进行初始化的设置(包括个人所得税、上月工资零头、本月工资零头、职务工资、级别工资、基本工资、工龄工资、独子费、津贴补贴、离退费、交通费、电话费补贴。书报费补贴等人 对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定。 加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。 根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资. 人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。 员工年终奖金的生成。年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12。 单位工资报表的生成。可以按照在每个月的每个固定时间生成该单位全体员工的月工资。对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。 工资的发放,要求能够实现银行打卡的功能. 工资转账的功能,包括转账设置、工资转账、工资凭证查询、结转下月的功能。 要提供工资管理系统的帮助文件。 (详细的描述见课程设计指导书) 内容与要求: 1。现要求按照数据库系统开发步骤设计满足以上功能的数据库(更详细描述见数据库指导书),并写出实现系统功能的视图、触发器或存储过程. 2.撰写课程设计报告,课程设计报告中应包括其设计数据库的过程:1)系统需求分析2)数据库概念结构设计:要求用PowerDesigner画出系统E-R图;3)逻辑结构设计:要求用PowerDesigner生成物理模型图,得到关系模式,并生成对应的数据字典;4)物理结构设计:用PowerDesigner把以上关系模式生成数据库(导出数据库脚本); 5)数据操作过程:写出为每个关系进行增、删、改、查、的脚本(每个关系,至少两条对应的脚本语句);6)视图、存储过程、触发器设计:创建对应系统功能可能用到的视图,并显示结果,或系统可能用到的存储过程,触发器等。 设计 参数 至少5个表结构;3个存储过程;2个触发器;3个视图。 进度 要求 15.5 讲课 阅读分析任务书 16。2 需求分析 概念结构设计 16。3 逻辑结构设计 物理结构设计 16.4 视图、存储过程、触发器设计 撰写报告 16.5 交设计报告书 备注:16周周一放假,所以15周周五下达设计任务书。 参考资料 1.雷亮等《数据库原理课程设计》指导书 2.王珊、萨师煊.《数据库系统概述》(第四版) .北京:高等教育出版社.2006。 3.C。J.Date著.孟小峰、王珊等译.《数据库系统导论》(第8版) .北京:机械工业出版社.2007。 4.陈根才等. 数据库课程设计.浙江.浙江大学出版社.2007 其它 重庆科技学院《数据库原理》课程设计报告 摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。工资管理是企业管理的重要部分,在公司起着越来越重要作用。本课程设计主要是对公司各项人员的工资进行管理和统计。 工资管理系统分为6个模块,基本信息管理模块、考勤信息管理模块、奖惩信息管理模块、员工履历管理模块、职称信息管理模块、员工工资管理模块。本系统采用SQL Server 2008作为数据库,使用ODBC作为数据源.在实现数据库部分功能时按照要求创建了触发器和存储过程。 关键词: 工资管理 SQL Server 2008 触发器 存储过程 14 目录 摘要 I 1 需求分析 1 1。1 系统目标设计 1 1.2 系统功能分析 1 1。3 功能模块分析 2 1.4 系统全局数据流图 3 1.5 数据字典 3 2 概念结构设计 7 2。1 构成系统的实体型 7 2。2 工资管理系统E-R图 7 3 逻辑结构设计 9 3。1逻辑结构简介 9 3。2 关系模型 9 4物理模型设计 11 4.1定义数据库 11 4.2 创建表 11 4.3 创建存储过程 14 4。4 创建触发器 17 总结 19 致谢 20 参考文献 21 1 需求分析 1.1 系统目标设计 实现企业的工资管理系统化,使企业管理更加现代化 1.2 系统功能分析 (1):为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。用户分为不同的级别,例如管理员级用户和普通用户。 (2):员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。 (3):可以对员工的工资项目进行初始化的设置(包括个人所得税、职务工资、级别工资、基本工资、工龄工资。对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定. (4):根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。 人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等. (5):工年终奖金的生成。年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12。 1。3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块 工资管理系统 基本信息管理 考勤信息管理 奖惩记录管理 员工履历管理 职称信息管理 工资信息管理 系统管理 员工基本信息录入及维护 员工基本信息的查询 考勤信息的录入与维护 员工考勤信息的查询 奖惩信息的录入与维护 员工奖惩信息的查询 员工履历的录入与维护 员工履历信息的查询 职称评定的录入与维护 职称评定的查询 工资的录入与维护 工资的查询 用户账号管理 系统数据备份 图1.1 功能模块分析 1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述. 图1。2 数据流图 1。5 数据字典 表1。1 员工基本信息表(Base_data) 名称 数据类型 说明 Worker_ID varchar(15) 员工编号 关键字 Worker_Name varchar(8) 员工姓名 Department_Name varchar(15) 部门名称 Sex varchar(2) 性别 Birthday datetime 出生日期 Native_Place varchar(25) 籍贯 School_Age varchar(4) 学历 Major varchar(15) 专业 表1.2 考勤信息记录表(Check_info) 名称 数据类型 说明 Worker_ID Varchar(15) 员工编号 关键字 Worker_Name varchar(8) 员工姓名 Months varchar(10) 月份编号 关键字 Months_days int 本月天数 Holidays int 公休假天数 Work_days 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 奖金 Overtime_Money float 加班费 Deduct_Check float 扣考核 Aged_Money float 养老保险 Income_tax float 所得税 Duty varchar(10) 担任职务 表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) 奖惩内容 Record_reason varchar(30) 奖惩原因 Allow_unit varchar(20) 批准单位 Remark varchar(200) 备注 表1.5 职称评定信息表(Pro_title) 名称 数据类型 说明 Worker_ID varchar(15) 员工编号 关键字 Worker_Name varchar(8) 员工姓名 Assess_date datetime 评定日期 Assess_unit varchar(20) 评定单位 Assess_title varchar(8) 评定职称 Remark varchar(200) 备注 表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_table) 名称 数据类型 说明 User_Name varchar(30) 用户名 关键字 User_pwd varchar(30) 用户密码 Power_level varchar(8) 权限级别 2 概念结构设计 2。1 构成系统的实体型 由工资管理系统的数据流图和数据字典,抽取出系统的7个主要实体,包括:员工、考勤记录、工资、奖惩记录、职称评定信息、履历、账号。 员工实体型属性:Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address 考勤记录实体型属性: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 Housing_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_Name Work_time Duty Level1 Remark 账号实体型属性: User_Name User_pwd Power_level 2.2 工资管理系统E-R图 图2。1 工资管理系统E—R图 3 逻辑结构设计 3.1逻辑结构简介 逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构. 设计逻辑结构一般分为3步进行: (1) 将概念结构转换为一般的关系、网状、层次模型; (2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换; (3) 对数据模型进行优化。 3.2 关系模型 将E—R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中.例如: (1) 员工与履历之间是一对多的关系,所以将员工和履历以及属于关系设计成以下关系模式: 员工(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address) 奖惩记录(Record_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) 员工与账号之间是一对一的关系,所以将员工和账号以及属于关系设计成以下关系模式: 员工(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address) 账号 (User_Name User_pwd Power_level) 属于(Worker_ID Worker_Name Department_Name Sex Birthday Native_Place School_Age Major Link_Phone Address User_pwd Power_level ) 4物理模型设计 数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护. 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_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,/*联系电话*/ Address varchar(20) Not null,/*住址*/ ); 考勤信息记录表 Check_info CREATE TABLE Check_info ( Months varchar(10) , Worker_ID varchar(15), Months_days int, /*本月天数*/ Holidays int, /*公休假天数*/ Work_days int, /*出勤天数*/ Business_days int,/*出差天数*/ Absent_days int,/*缺席天数*/ Leave_days int,/*请假天数*/ Late_days int,/*迟到天数*/ 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, /*公共补贴*/ Allowance2 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, /*所得税*/ Real_wage float, /*实发工资*/ 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),/*奖惩内容*/ 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,/*评定日期*/ Assess_unit varchar(20),/*评定单位*/ Assess_title varchar(8),/*评定职称*/ Remark varchar(200),/*备注*/ ); 工作履历表 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 float,/*本单位工作时间*/ 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 创建存储过程 在奖惩记录表中创建更新奖惩的存储过程: USE [salary] GO CREATE PROCEDURE [update_奖惩记录表_1] (@Record_ID_1 [bigint], @Record_ID_2 [bigint], @Worker_ID_3 [varchar](15), @Worker_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)) 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) 在员工基本信息表上创建一个插入员工信息的存储过程: USE [salary] GO CREATE PROCEDURE [insert_员工基本信息表_2] (@Worker_ID_1 [varchar](15), @Archives_ID_2 [varchar](10), @Worker_Name_3 [varchar](8), @Department_Name_4 [varchar](10), @Sex_5 [varchar](2), @Birthday_6 [datetime], @Native_Place_7 [varchar](25), @School_Age_8 [varchar](4), @Major_9 [varchar](15), @Graduate_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 ( @Worker_ID_1, @Archives_ID_2, @Worker_Name_3, @Department_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 [salary] GO CREATE PROCEDURE [delete_用户账号表_1] (@User_Name_1 [varchar]) AS DELETE [salary]。[dbo]。[用户账号表] WHERE ( [User_Name] = @User_Name_1) 4。4 创建触发器 定义一个BEFORE行级的触发器,为工资信息表Wage_info定义完整性规则“总经理的基本工资不得低于6000元,如果低于6000元,刚自动改为6000元”. CREATE TRIGGER Insert_or Update_Wage BEFORE INSERT OR UPDATE ON Wage_info FOR EACH ROW AS BEGIN IF(new.Duty='总经理') AND (new。Base_Wage<6000)) THEN new。Base_Wage=6000; END IF; END; 定义一个AFTER行级触发器,当用户账号表User_table的用户发生变化后就自动在用户变化表User_change中增加一条相应的记录. CREATE TABLE User_change ( User_Name varchar(30) PRIMARY KEY, User_pwd varchar(30), Power_level varchar(8), ); CREATE TRIGGER Insert_User AFTER INSERT ON User_table FOR EACH ROW AS BEGIN INSERT INTO User_change VALUES( new。User_Name,new.User_pwd,new。Power_level) END; CREATE TRIGGER Update_User AFTER UPDATE ON User_table FOR EACH ROW AS BEGIN IF (new。User<〉old。User)THEN INSERT INTO User_change VALUES(new。User_Name,new。User_pwd,new。Power_level) END IF; END; 总结 在这周的课程设计中我学到了许多书本之外的东西,动手能力得到了提高,对数据库系统的设计流程有了进一步的了解.当然在本次课程设计中也遇到了许多的困难,比如SQL Sever200和PowerDesigner之间的联合运用,数据流图的绘制还有就是对工资管理系统的需求分析不熟悉等。希望在以后的学习中能够对数据库系统的设计更加熟悉。 致谢 经过这周的课程设计,使我对数据库系统概论这门学科有了更深一步的认识,也不在像最初接触数据库那么迷茫了,通过一周的课程设计,使我对这学期学的知识有了全面的认识。由于以前大部分时间都在学习理论的知识,所以对项目不是很了解。而学校提供的这次课程设计机会使我收获颇多,从中也发现了许多不足,让我找到了以后学习的方向。在这次程序设计过程中,也出现了不少的问题,但在老师和同学的耐心帮助下,问题都得到了解决,正是有了你们的帮助,我才能顺利地完成学籍管理系统的设计。在此,我感谢帮助过我的所有同学,并向帮助过我的雷亮老师和张亚军老师说一声谢谢 参考文献 [1] 孙建伶,林怀忠. 数据库原理与应用. 北京:高等教育出版社 2006.5 [2] 梁方明。 SQL Server 2000。 北京:希望电子出版社 2002。7 [3] 王珊,萨师煊。 数据库系统概论(第四版)。 北京:高等教育出版社 2006。5 [4] 李树有. 数据库应用系统开发与实例. 北京:人民邮电出版社 2005.9 [5] 孟彩霞. 数据库系统原理与应用(本科)。 北京:人民邮电出版社 2008。3 [6] 陶宏才。 数据库原理及设计。 北京:清华大学出版社 2004.4
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服