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

上传人:laozhun 文档编号:2395003 上传时间:2023-02-17 格式:DOC 页数:34 大小:210.50KB
返回 下载 相关 举报
SQLServer数据库原理课程设计工资管理系统.doc_第1页
第1页 / 共34页
SQLServer数据库原理课程设计工资管理系统.doc_第2页
第2页 / 共34页
SQLServer数据库原理课程设计工资管理系统.doc_第3页
第3页 / 共34页
SQLServer数据库原理课程设计工资管理系统.doc_第4页
第4页 / 共34页
SQLServer数据库原理课程设计工资管理系统.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《SQLServer数据库原理课程设计工资管理系统.doc》由会员分享,可在线阅读,更多相关《SQLServer数据库原理课程设计工资管理系统.doc(34页珍藏版)》请在三一办公上搜索。

1、重庆科技学院课程设计报告 院(系):_ 数理学院 _专业班级:数学与应用数学10-01学生姓名: 梅明 学 号: 2010443343 设计地点(单位)_ _第一实验楼_ _ _ _ 设计题目:_ _工资管理系统_ _ _ _ 完成日期: 2013年 7月 10日 指导教师评语: _ _成绩(五级记分制):_ _ 指导教师(签字):_ _重庆科技学院课程设计任务书设计题目:工资管理系统设计学生姓名梅明课程名称数据库原理课程设计专业班级应数2010-01地 点I306和计算机自主学习中心起止时间2013.7.8-2013.7.12设计内容及要求内容: 学生根据本课程设计指导书中的题目,进行设计。

2、 员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。 可以对员工的工资项目进行初始化的设置(包括住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩、总工资、所得税、职务等) 加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。 根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。 人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。 单位工资报表的生成。可以按照在每个月的每

3、个固定时间生成该单位全体员工的月工资。对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。 要提供工资管理系统的帮助文件。要求:按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。设计参数8个表结构;7个存储过程;6个触发器;7个视图、3处使用游标过程报告格式规范进度要求19.1 讲课 阅读分析任务书 制订设计计划19.1 需求分析 概念结构设计19.2 概念结构设计准备文挡19.2-3 逻辑结构设计物理结构设计19.4写文挡答辩交设计报告书参考资料1雷亮等数据

4、库原理课程设计指导书2王珊、萨师煊数据库系统概述(第四版) 北京:高等教育出版社2006。3C.J.Date著孟小峰、王珊等译数据库系统导论(第8版) 北京:机械工业出版社.2007。4陈根才等. 数据库课程设计浙江浙江大学出版社2007其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师:裴仰军、 2013年 7 月 10 日摘要 在现代企业管理中,企业信息化是提高企业管理效率的重要手段。工资管理是企业管理的重要部分,在公司起着越来越重

5、要作用。本课程设计主要是对公司各项人员的工资进行管理和统计。 工资管理系统分为8个模块,员工基本信息管理模块、部门信息管理模块、基本工资管理模块、出勤信息管理模块、奖惩信息管理模块、津贴管理模块、职称信息管理模块、员工工资管理模块。本系统采用SQL Server 2008作为数据库,使用ODBC作为数据源。在实现数据库部分功能时按照要求创建了触发器和存储过程。关键词: 工资管理 SQL Server 2008 触发器 存储过程目录摘要I1 需求分析11.1 系统目标设计11.2 系统功能分析11.3 功能模块分析21.4 系统全局数据流图31.5 数据字典32 概念结构设计72.1 构成系统的

6、实体型73 逻辑结构设计93.1 逻辑结构简介93.2 关系模型94物理模型设计114.1 定义数据库114.2 创建表114.3 创建存储过程144.4 创建触发器224.5视图24总结27致谢28参考文献291 需求分析1.1 系统目标设计实现企业的工资管理系统化,使企业管理更加现代化1.2 系统功能分析 (1):员工不同工种基本工资的设定:员工工种的不同,工资的标准也不同,根据员工的现任职务设定员工的基本工资。包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。(2):可以对员工的工资项目进行初始化的设置(包括住

7、房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩、总工资、所得税、职务)。(3):根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。 1.3 功能模块分析 根据系统功能的基本要求,可对整个系统划分为几个模块工资管理系统部门信息管理基本工资管理员工信息管理员工出勤管理员工津贴管理工资信息管理奖罚记录管理部门基本信息录入及维护部门基本信息的查询基本工资的录入与维护基本工资的查询员工信息的录入与维护员工信息的查询员工出勤的录入与维护员工出勤信息的查询津贴信息的录入与维护津贴信息的查询工资的录入与维护工资的查询奖罚记

8、录的录入与维护奖罚信息的查询职称评定管理职称评定信息的录入与维护图1.1 功能模块分析1.4 系统全局数据流图 系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。奖罚职称评定出勤记录部门信息津贴工资基本工资员工信息图1.2 数据流图1.5 数据字典表1.1 部门信息(Departmet_Info)列名数据类型说明Department_IDVarchar(4)部门编号Department_NameVarchar(6)部门名称ManagerVarchar(6)部门负责人Dep_PeonumberVarchar(4)部门人

9、数表1.2基本工资(Base_Salary)列名数据类型说明DutyVarchar(10)职务 关键字Base_salaryFloat基本工资表1.3 员工信息(Employee_info)列名数据类型说明Emp_IDVarchar(15)员工编号 关键字Emp_NameVarchar(8)员工姓名Sexchar(2)性别Birth_DateDatetime出生日期Emp_timeDatetime参加工作时间Deoartment_IDvarchar(4)所属部门DutyVarchar(10)职务Politics_StatusVarchar(10)政治面貌TelephoneVarchar(11)

10、电话号码表1.4 员工出勤(Attendence_info)列名数据类型说明Emp_IDVarchar(15)员工编号 关键字Emp_Namevarchar(8)员工姓名Months_IDvarchar(10)月份编号 关键字Months_daysint本月天数Holidaysint公休假天数Work_daysint出勤天数Business_daysint出差天数Absent_daysint缺席天数Leave_daysint请假天数Late_daysint迟到天数Leave_early_timesInt早退天数表1.5 员工津贴(Allowance_info)列名数据类型说明Emp_IDVar

11、char(15)员工编号 关键字Emp_Namevarchar(8)员工姓名Allowance_MonthVarchar(10)统计时间 关键字Allowance_DaysVarchar(2)加班天数Allowance_SalaryFloat津贴工资表1.6 员工工资(Worker_salary)列名数据类型说明Emp_IDVarchar(15)员工编号 关键字Base_SalaryFloat基本工资House_AllowanceFloat住房补贴Allowance_SalaryFloat津贴Trade_union_feeFloat工会会费Utilities_feeFloat水电费House_

12、fundFloat住房公积金Endownment_insutanceFloat养老保险Rewards_punishmentFloat奖惩Total_salaryFloat总工资Income_taxFloat所得税DutyVarchar(10)职务Month_IDVarchar(10)月工资时间 关键字表1.7 用户账号表(User_table)列名数据类型说明Record_IDbigint记录编号 关键字Emp_IDvarchar(15)员工编号Emp_Namevarchar(8)员工姓名Record_datedatetime奖惩日期Record_typevarchar(2)奖惩类型Recor

13、d_contentvarchar(30)奖惩内容Record_reasonvarchar(30)奖惩原因Allow_unitvarchar(20)批准单位Remarkvarchar(200)备注 表1.8职称评定信息表(Pro_title)名称数据类型说明Emp_IDvarchar(15)员工编号 关键字Emp_Namevarchar(8)员工姓名Assess_datedatetime评定日期Assess_unitvarchar(20)评定单位Assess_titlevarchar(8)评定职称Remarkvarchar(200)备注2 概念结构设计2.1 构成系统的实体型由工资管理系统的数据

14、流图和数据字典,抽取出系统的8个主要实体,包括:部门、基本工资、员工、出勤、津贴、工资、奖惩、职称。部门实体型属性:Department_ID Department_Name Manager Dep_Peonumber基本工资实体型属性:Duty Base_salary员工实体型属性:Emp_ID Emp_Name Sex Birth_date Emp_time Department_ID Duty Politics_Status Telephone出勤记录实体型属性:Emp_ID Emp_Name Months_ID Months_days Holidays Work_days Busine

15、ss_days Absent_days Leave_days Late_days Leave_early_times津贴实体型属性:Emp_ID Emp_ID Allowance_Month Allowance_Days Allowance_Salary工资实体型属性:Emp_ID Base_Salary House_Allowance Allowance_Salary Trade_union_fee Utilities_fee House_fund Endownment_Instutance Rewards_Punishment Total_Salary Income_tax Duty Mo

16、nth_ID奖惩实体型属性:Record_ID Emp_ID Emp_Name Record_date Record_type Record_content Record_reason Allow_unit Remark职称实体型属性:Emp_ID Emp_Name Assess_date Assess_unit Assess_title Remark2.2 工资管理系统E-R图图2.1 工资管理系统E-R图3 逻辑结构设计3.1逻辑结构简介逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。 设计逻辑结构一般分为3步进行:(1) 将

17、概念结构转换为一般的关系、网状、层次模型;(2) 将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3) 对数据模型进行优化。3.2 关系模型 将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。例如: (1) 员工与出勤之间是一对多的关系,所以将员工和出勤以及属于关系设计成以下关系模式:员工(Emp_ID Emp_Name Sex Birth_date Emp_time Department_I

18、D Duty Politics_Status Telephone)出勤记录(Emp_ID Emp_Name Months_ID Months_days Holidays Work_days Business_days Absent_days Leave_days Late_days Leave_early_times) 属于(Emp_ID Emp_Name Sex Birth_date Emp_time Department_ID Duty Politics_Status Telephone Months_ID Months_days Holidays Work_days Business_d

19、ays Absent_days Leave_days Late_days Leave_early_times ) (2) 员工与职称评定之间是一对一的关系,所以将员工和职称评定以及属于关系设计成以下关系模式: 员工(Emp_ID Emp_Name Sex Birth_date Emp_time Department_ID Duty Politics_Status Telephone) 职称评定 (Emp_ID Emp_Name Assess_date Assess_unit Assess_title Remark) 属于(Emp_ID Emp_Name Sex Birth_date Emp_t

20、ime Department_ID Duty Politics_Status Telephone Assess_date Assess_unit Assess_title Remark ) 4物理模型设计数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。4.1定义数据库SQL Server 2008数据库文件分为3中类型:主数据文件、次数据文件和日志文件。通过SQL语言进行数据库创建,创建数据库的语句如下:Create database Salary;4.2 创建表Use Salary;部门信息Departmet_Info create t

21、able Department_Info(Department_IDVarchar(4) primary key,-部门编号Department_NameVarchar(6) not null,-部门名称ManagerVarchar(6),-部门负责人Dep_PeonumberVarchar(4)-部门人数);基本工资Base_Salary create table Base_Salary(DutyVarchar(10) primary key,-职务Base_salaryFloat,-基本工资);员工信息Employee_Info create table Employee_Info(Emp

22、_IDVarchar(15) primary key,-员工编号Emp_NameVarchar(8),-员工姓名Sexchar(2) check(Sex=男or Sex=女),-性别Birth_DateDatetime,-出生日期Emp_timeDatetime,-参加工作时间Deoartment_IDvarchar(4) Foreign key references Department_Info(Department_ID),-所属部门DutyVarchar(10),-职务Politics_StatusVarchar(10),-政治面貌TelephoneVarchar(11),-电话号码)

23、; 员工出勤 Attendance_info create table Attendance_info( -出勤信息Emp_IDVarchar(15) Foreign key references Employee_Info(Emp_ID),-员工编号Emp_Namevarchar(8),-员工姓名Months_IDvarchar(10),-月份编号Months_daysint,-本月天数Holidaysint,-公休假天数Work_daysint,-出勤天数Business_daysint,-出差天数Absent_daysint,-缺席天数Leave_daysint,-请假天数Late_da

24、ysint,-迟到天数Leave_early_timesint,-早退天数primary key(Months_ID,Emp_ID);员工津贴Emp_allowance create table Allowance(Emp_IDVarchar(15) Foreign key references Employee_Info(Emp_ID),-员工编号Emp_Namevarchar(8),-员工姓名Allowance_MonthVarchar(10),-统计时间Allowance_DaysVarchar(2),-加班天数Allowance_SalaryFloat,-津贴工资primary key

25、(Allowance_Month,Emp_ID);员工工资表Emp_salary create table Emp_Salary(Emp_IDVarchar(15) Foreign key references Employee_Info(Emp_ID),-员工编号Base_SalaryFloat,-基本工资House_AllowanceFloat,-住房补贴Allowance_SalaryFloat,-津贴Trade_union_feeFloat,-工会会费Utilities_feeFloat,-水电费House_fundFloat,-住房公积金Endownment_insutanceFlo

26、at,-养老保险Rewards_punishmentFloat,-奖惩Total_salaryFloat,-总工资Income_taxFloat,-所得税DutyVarchar(10) Foreign key references Base_Salary(Duty),-职务Month_IDVarchar(10),-月工资时间primary key(Month_ID,Emp_ID),);奖罚记录Reward_pun create table Reward_pun(Record_IDbigint primary key,-记录编号 关键字Emp_IDvarchar(15) Foreign key

27、references Employee_Info(Emp_ID),-员工编号Emp_Namevarchar(8),-员工姓名Record_datedatetime,-奖惩日期Record_typevarchar(2),-奖惩类型Record_contentvarchar(30),-奖惩内容Record_reasonvarchar(30),-奖惩原因Allow_unitvarchar(20),-批准单位Remarkvarchar(200),-备注 );职称评定信息表(Pro_title) create table Pro_title(Emp_IDvarchar(15) Foreign key r

28、eferences Employee_Info(Emp_ID) primary key,-员工编号Emp_Namevarchar(8),-员工姓名Assess_datedatetime,-评定日期Assess_unitvarchar(20),-评定单位Assess_titlevarchar(8),-评定职称Remarkvarchar(200),-备注);4.3 创建存储过程1. 插入一条员工信息USE SalaryGOcreate PROCEDURE dbo.insert_Employee_Info(Emp_ID_1 varchar(15), Emp_Name_2 varchar(8), Se

29、x_3 char(2), Birth_Data_4 datetime, Emp_time_5 datetime, Department_ID_6 varchar(4), Duty_7 varchar(10), Politics_Status_8 varchar(10), Telephone_9 varchar(11)AS Insert Into Salary.dbo.Employee_Info(Emp_ID,Emp_Name,Sex,Birth_Date,Emp_time,Department_ID,Duty,Politics_Status,Telephone) VALUES (Emp_ID_

30、1, Emp_Name_2, Sex_3, Birth_Data_4, Emp_time_5, Department_ID_6, Duty_7, Politics_Status_8, Telephone_9)2. 按部门编号查看部门信息 默认部门编号为-显示全部信息USE SalaryGOCREATE PROCEDURE dbo.select_Department_Info(Department_ID_1 varchar(4)as declareDepartment_ID varchar(4);beginset Department_ID=Department_ID_1;if Departme

31、nt_ID= select *from Department_Info;elseselect *from Department_Info where Department_ID = Department_ID;end3. 增加奖罚记录USE SalaryGOCREATE PROCEDURE insert_Reward_pun(Record_IDbigint,Emp_IDvarchar(15),Emp_Namevarchar(8),Record_datedatetime,Record_typevarchar(2),Record_contentvarchar(30),Record_reasonva

32、rchar(30),Allow_unitvarchar(20),Remarkvarchar(200)AS INSERT INTO Reward_pun(Record_ID,Emp_ID,Emp_Name,Record_date,Record_type,Record_content,Record_reason,Allow_unit,Remark)VALUES(Record_ID,Emp_ID,Emp_Name,Record_date,Record_type,Record_content,Record_reason,Allow_unit,Remark);4. 按员工编号 月份 更新出勤信息Use

33、SalaryGOCREATE PROCEDURE update_Allowance(Emp_IDVarchar(15),Emp_Namevarchar(8),Months_IDvarchar(10),Months_daysint,Holidaysint,Work_daysint,Business_daysint,Absent_daysint,Leave_daysint,Late_daysint,Leave_early_timesint)AS UPDATE Attendance_infoset Emp_ID = Emp_ID,Emp_Name = Emp_Name,Months_ID = Mon

34、ths_ID,Months_days = Months_days,Holidays = Holidays,Work_days = Work_days,Business_days = Business_days,Absent_days = Absent_days,Leave_days = Leave_days,Late_days =Late_days,Leave_early_times =Leave_early_timesWhere Emp_ID = Emp_ID and Months_ID = Months_ID;5. 插入工资 基本工资根据员工职务插入 津贴根据员工ID和月份查找 再插入 U

35、se SalaryGOCREATE PROCEDURE insert_Emp_Salary(Emp_IDVarchar(15),House_AllowanceFloat,Trade_union_feeFloat,Utilities_feeFloat,House_fundFloat,Endownment_insutanceFloat,Rewards_punishmentFloat,Total_salaryFloat,Income_taxFloat,DutyVarchar(10),Month_IDVarchar(10)AS DECLAREBase_Salary float,Allowance_Sa

36、lary float, Base_Salary_c CURSOR SELECT b.Base_Salary,a.Allowance_Salary from Base_Salary b,Allowance a where a.Allowance_Month = Month_ID and a.Emp_ID = Emp_ID and b.Duty = DutyBEGINOPEN BASE_SALARY_cfetch next from Base_Salary_c into Base_Salary,Allowance_Salary INSERT INTO Emp_Salary (Emp_ID, Bas

37、e_Salary, House_Allowance, Allowance_Salary, Trade_union_fee, Utilities_fee, House_fund, Endownment_insutance, Rewards_punishment, Total_salary, Income_tax, Duty, Month_ID) VALUES(Emp_ID, Base_Salary, House_Allowance, Allowance_Salary, Trade_union_fee, Utilities_fee, House_fund, Endownment_insutance

38、, Rewards_punishment, Total_salary, Income_tax, Duty, Month_ID)CLOSE Base_Salary_c;DEALLOCATE Base_Salary_c;END6. 按部门编号删除部门信息USE SalaryGOcreate PROCEDURE delete_Department_Info(Department_ID VARCHAR(4)AS DECLAREDepartment_ID_1 varchar(4),Department_ID_cursor CURSORSELECT Department_ID from Departmen

39、t_InfoOPEN Department_ID_cursorfetch next from Department_ID_cursor into Department_ID_1if(Department_ID_1 = Department_ID)beginDELETE FROM Department_Info WHERE Department_ID = Department_ID;print删除成功;endelsebeginprint部门信息不存在;endclose Department_ID_cursor;deallocate Department_ID_cursor;7. 按记录编号删除奖

40、罚记录USE SalaryGOcreate PROCEDURE delete_Reward_pun(Record_ID bigint)as declareRecord_ID_1 bigint,Record_ID_cursor cursorselect Record_ID from Reward_punopen Record_ID_cursorfetch next from Record_ID_cursor into Record_ID_1if Record_ID_1 = Record_IDbegindelete from Reward_pun where Record_ID = Record_ID;print删除成功;endelsebeginprint记录不

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号