数据库原理课程工资管理系统Word格式.docx
《数据库原理课程工资管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据库原理课程工资管理系统Word格式.docx(28页珍藏版)》请在冰豆网上搜索。
加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。
根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。
人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。
单位工资报表的生成。
可以按照在每个月的每个固定时间生成该单位全体员工的月工资。
对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。
要提供工资管理系统的帮助文件。
要求:
按照数据库系统开发步骤进行数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。
设计
参数
8个表结构;
7个存储过程;
6个触发器;
7个视图、3处使用游标过程
报告格式规范
进度
要求
19.1讲课阅读分析任务书制订设计计划
19.1需求分析概念结构设计
19.2概念结构设计准备文挡
19.2-3逻辑结构设计物理结构设计
19.4写文挡答辩交设计报告书
参考资料
1.雷亮等《数据库原理课程设计》指导书
2.王珊、萨师煊.《数据库系统概述》(第四版).北京:
高等教育出版社.2006。
3.C.J.Date著.孟小峰、王珊等译.《数据库系统导论》(第8版).北京:
机械工业出版社.2007。
4.陈根才等.数据库课程设计.浙江.浙江大学出版社.2007
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
教研室主任:
指导教师:
裴仰军、2013年7月10日
摘要
在现代企业管理中,企业信息化是提高企业管理效率的重要手段。
工资管理是企业管理的重要部分,在公司起着越来越重要作用。
本课程设计主要是对公司各项人员的工资进行管理和统计。
工资管理系统分为8个模块,员工基本信息管理模块、部门信息管理模块、基本工资管理模块、出勤信息管理模块、奖惩信息管理模块、津贴管理模块、职称信息管理模块、员工工资管理模块。
本系统采用SQLServer2008作为数据库,使用ODBC作为数据源。
在实现数据库部分功能时按照要求创建了触发器和存储过程。
关键词:
工资管理SQLServer2008触发器存储过程
1需求分析
1.1系统目标设计
实现企业的工资管理系统化,使企业管理更加现代化
1.2系统功能分析
(1):
员工不同工种基本工资的设定:
员工工种的不同,工资的标准也不同,根据员工的现任职务设定员工的基本工资。
(2):
可以对员工的工资项目进行初始化的设置(包括住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩、总工资、所得税、职务)。
(3):
根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。
人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。
1.3功能模块分析
根据系统功能的基本要求,可对整个系统划分为几个模块
图1.1功能模块分析
1.4系统全局数据流图
系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。
图1.2数据流图
1.5数据字典
表1.1部门信息(Departmet_Info)
列名
数据类型
Department_ID
Varchar(4)
部门编号
Department_Name
Varchar(6)
部门名称
Manager
部门负责人
Dep_Peonumber
部门人数
表1.2基本工资(Base_Salary)
Duty
Varchar(10)
职务关键字
Base_salary
Float
基本工资
表1.3员工信息(Employee_info)
Emp_ID
Varchar(15)
员工编号关键字
Emp_Name
Varchar(8)
员工姓名
Sex
char
(2)
性别
Birth_Date
Datetime
出生日期
Emp_time
参加工作时间
Deoartment_ID
varchar(4)
所属部门
职务
Politics_Status
政治面貌
Telephone
Varchar(11)
电话号码
表1.4员工出勤(Attendence_info)
varchar(8)
Months_ID
varchar(10)
月份编号关键字
Months_days
int
本月天数
Holidays
公休假天数
Work_days
出勤天数
Business_days
出差天数
Absent_days
缺席天数
Leave_days
请假天数
Late_days
迟到天数
Leave_early_times
Int
早退天数
表1.5员工津贴(Allowance_info)
Allowance_Month
统计时间关键字
Allowance_Days
Varchar
(2)
加班天数
Allowance_Salary
津贴工资
表1.6员工工资(Worker_salary)
Base_Salary
House_Allowance
住房补贴
津贴
Trade_union_fee
工会会费
Utilities_fee
水电费
House_fund
住房公积金
Endownment_insutance
养老保险
Rewards_punishment
奖惩
Total_salary
总工资
Income_tax
所得税
Month_ID
月工资时间关键字
表1.7用户账号表(User_table)
Record_ID
bigint
记录编号关键字
varchar(15)
员工编号
Record_date
datetime
奖惩日期
Record_type
varchar
(2)
奖惩类型
Record_content
varchar(30)
奖惩内容
Record_reason
奖惩原因
Allow_unit
varchar(20)
批准单位
Remark
varchar(200)
备注
表1.8职称评定信息表(Pro_title)
名称
Assess_date
评定日期
Assess_unit
评定单位
Assess_title
评定职称
备注
2概念结构设计
2.1构成系统的实体型
由工资管理系统的数据流图和数据字典,抽取出系统的8个主要实体,包括:
部门、基本工资、员工、出勤、津贴、工资、奖惩、职称。
部门实体型属性:
Department_IDDepartment_NameManagerDep_Peonumber
基本工资实体型属性:
DutyBase_salary
员工实体型属性:
Emp_IDEmp_NameSexBirth_dateEmp_timeDepartment_IDDutyPolitics_StatusTelephone
出勤记录实体型属性:
Emp_IDEmp_NameMonths_IDMonths_daysHolidaysWork_daysBusiness_daysAbsent_daysLeave_daysLate_daysLeave_early_times
津贴实体型属性:
Emp_IDEmp_IDAllowance_MonthAllowance_DaysAllowance_Salary
工资实体型属性:
Emp_IDBase_SalaryHouse_AllowanceAllowance_SalaryTrade_union_feeUtilities_feeHouse_fundEndownment_InstutanceRewards_PunishmentTotal_SalaryIncome_taxDutyMonth_ID
奖惩实体型属性:
Record_IDEmp_IDEmp_NameRecord_dateRecord_typeRecord_contentRecord_reasonAllow_unitRemark
职称实体型属性:
Emp_IDEmp_NameAssess_dateAssess_unitAssess_titleRemark
2.2工资管理系统E-R图
图2.1工资管理系统E-R图
3逻辑结构设计
3.1逻辑结构简介
逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
3.2关系模型
将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。
例如:
(1)员工与出勤之间是一对多的关系,所以将员工和出勤以及属于关系设计成以下关系模式:
员工(Emp_IDEmp_NameSexBirth_dateEmp_timeDepartment_IDDutyPolitics_StatusTelephone)
出勤记录(Emp_IDEmp_NameMonths_IDMonths_daysHolidaysWork_daysBusiness_daysAbsent_daysLeave_daysLate_daysLeave_early_times)
属于((Emp_IDEmp_NameSexBirth_dateEmp_timeDepartment_IDDutyPolitics_StatusTelephoneMonths_IDMonths_daysHolidaysWork_daysBusiness_daysAbsent_daysLeave_daysLate_daysLeave_early_times)
(2)员工与职称评定之间是一对一的关系,所以将员工和职称评定以及属于关系设计成以下关系模式:
员工(Emp_IDEmp_NameSexBirth_dateEmp_timeDepartment_IDDutyPolitics_StatusTelephone)
职称评定(Emp_IDEmp_NameAssess_dateAssess_unitAssess_titleRemark)
属于(Emp_IDEmp_NameSexBirth_dateEmp_timeDepartment_IDDutyPolitics_StatusTelephoneAssess_dateAssess_unitAssess_titleRemark)
4物理模型设计
数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。
4.1定义数据库
SQLServer2008数据库文件分为3中类型:
主数据文件、次数据文件和日志文件。
通过SQL语言进行数据库创建,创建数据库的语句如下:
CreatedatabaseSalary;
4.2创建表
UseSalary;
部门信息Departmet_Info
createtableDepartment_Info(
Department_IDVarchar(4)primarykey,--部门编号
Department_NameVarchar(6)notnull,--部门名称
ManagerVarchar(6),--部门负责人
Dep_PeonumberVarchar(4)--部门人数
);
基本工资Base_Salary
createtableBase_Salary(
DutyVarchar(10)primarykey,--职务
Base_salaryFloat,--基本工资
员工信息Employee_Info
createtableEmployee_Info(
Emp_IDVarchar(15)primarykey,--员工编号
Emp_NameVarchar(8),--员工姓名
Sexchar
(2)check(Sex='
男'
orSex='
女'
),--性别
Birth_DateDatetime,--出生日期
Emp_timeDatetime,--参加工作时间
Deoartment_IDvarchar(4)ForeignkeyreferencesDepartment_Info(Department_ID),--所属部门
DutyVarchar(10),--职务
Politics_StatusVarchar(10),--政治面貌
TelephoneVarchar(11),--电话号码
员工出勤Attendance_info
createtableAttendance_info(--出勤信息
Emp_IDVarchar(15)ForeignkeyreferencesEmployee_Info(Emp_ID),--员工编号
Emp_Namevarchar(8),--员工姓名
Months_IDvarchar(10),--月份编号
Months_daysint,--本月天数
Holidaysint,--公休假天数
Work_daysint,--出勤天数
Business_daysint,--出差天数
Absent_daysint,--缺席天数
Leave_daysint,--请假天数
Late_daysint,--迟到天数
Leave_early_timesint,--早退天数
primarykey(Months_ID,Emp_ID)
员工津贴Emp_allowance
createtableAllowance(
Allowance_MonthVarchar(10),--统计时间
Allowance_DaysVarchar
(2),--加班天数
Allowance_SalaryFloat,--津贴工资
primarykey(Allowance_Month,Emp_ID)
员工工资表Emp_salary
createtableEmp_Salary(
Base_SalaryFloat,--基本工资
House_AllowanceFloat,--住房补贴
Allowance_SalaryFloat,--津贴
Trade_union_feeFloat,--工会会费
Utilities_feeFloat,--水电费
House_fundFloat,--住房公积金
Endownment_insutanceFloat,--养老保险
Rewards_punishmentFloat,--奖惩
Total_salaryFloat,--总工资
Income_taxFloat,--所得税
DutyVarchar(10)ForeignkeyreferencesBase_Salary(Duty),--职务
Month_IDVarchar(10),--月工资时间
primarykey(Month_ID,Emp_ID),
奖罚记录Reward_pun
createtableReward_pun(
Record_IDbigintprimarykey,--记录编号关键字
Emp_IDvarchar(15)ForeignkeyreferencesEmployee_Info(Emp_ID),--员工编号
Record_datedatetime,--奖惩日期
Record_typevarchar
(2),--奖惩类型
Record_contentvarchar(30),--奖惩内容
Record_reasonvarchar(30),--奖惩原因
Allow_unitvarchar(20),--批准单位
Remarkvarchar(200),--备注
职称评定信息表(Pro_title)
createtablePro_title(
Emp_IDvarchar(15)ForeignkeyreferencesEmployee_Info(Emp_ID)primarykey,--员工编号
Assess_datedatetime,--评定日期
Assess_unitvarchar(20),--评定单位
Assess_titlevarchar(8),--评定职称
Remarkvarchar(200),--备注
4.3创建存储过程
1.插入一条员工信息
USE[Salary]
GO
createPROCEDURE[dbo].[insert_Employee_Info]
(@Emp_ID_1[varchar](15),
@Emp_Name_2[varchar](8),
@Sex_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))
ASInsertInto[Salary].[dbo].[Employee_Info]
([Emp_ID],
[Emp_Name],
[Sex],
[Birth_Date],
[Emp_time],
[Department_ID],
[Duty],
[Politics_Status],
[Telephone])
VALUES
(@Emp_ID_1,
@Emp_Name_2,
@Sex_3,
@Birth_Data_4,
@Emp_time_5,
@Department_ID_6,
@Duty_7,
@Politics_Status_8,
@Telephone_9)
2.按部门编号