数据库课程设计工资管理系统.docx
《数据库课程设计工资管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计工资管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课程设计工资管理系统
重庆科技学院
《数据库原理》
课程设计报告
院(系
:
专业班级:
学生姓名:
学号:
设计地点(单位)______逸夫科技楼__________
设计题目:
____工资管理系统设计_______________
完成日期:
2015年06月26日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
________________
设计题目:
工资管理系统设计
学生姓名
第6组:
学生姓名:
学号:
课程名称
数据库原理与应用课程设计
专业班级
计科2013-01,2,3,4
地点
I301、I302
起止时间
设计内容及要求
现需要开发一工资管理系统,描述与要实现功能如下:
为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。
用户分为不同的级别,例如管理员级用户和普通用户。
员工不同工种基本工资的设定:
员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。
包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。
可以对员工的工资项目进行初始化的设置(包括个人所得税、上月工资零头、本月工资零头、职务工资、级别工资、基本工资、工龄工资、独子费、津贴补贴、离退费、交通费、电话费补贴。
书报费补贴等人
对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定。
加班津贴的管理,根据加班的时间和类别给予不同的加班津贴。
根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。
人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。
员工年终奖金的生成。
年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12。
单位工资报表的生成。
可以按照在每个月的每个固定时间生成该单位全体员工的月工资。
对于月工资,能够实现按照员工、部门、年、月进行统计分析,产生相应的报表,并可以打印输出此报表。
工资的发放,要求能够实现银行打卡的功能。
工资转账的功能,包括转账设置、工资转账、工资凭证查询、结转下月的功能。
要提供工资管理系统的帮助文件。
(详细的描述见课程设计指导书)
内容与要求:
1.现要求按照数据库系统开发步骤设计满足以上功能的数据库(更详细描述见数据库指导书),并写出实现系统功能的视图、触发器或存储过程。
2.撰写课程设计报告,课程设计报告中应包括其设计数据库的过程:
1)系统需求分析2)数据库概念结构设计:
要求用PowerDesigner画出系统E-R图;3)逻辑结构设计:
要求用PowerDesigner生成物理模型图,得到关系模式,并生成对应的数据字典;4)物理结构设计:
用PowerDesigner把以上关系模式生成数据库(导出数据库脚本);5)数据操作过程:
写出为每个关系进行增、删、改、查、的脚本(每个关系,至少两条对应的脚本语句);6)视图、存储过程、触发器设计:
创建对应系统功能可能用到的视图,并显示结果,或系统可能用到的存储过程,触发器等。
设计
参数
至少5个表结构;3个存储过程;2个触发器;3个视图。
进度
要求
讲课阅读分析任务书
需求分析概念结构设计
逻辑结构设计物理结构设计
视图、存储过程、触发器设计撰写报告
交设计报告书
备注:
16周周一放假,所以15周周五下达设计任务书。
参考资料
1.雷亮等《数据库原理课程设计》指导书
2.王珊、萨师煊.《数据库系统概述》(第四版).北京:
高等教育出版社.2006。
3.着.孟小峰、王珊等译.《数据库系统导论》(第8版).北京:
机械工业出版社.2007。
4.陈根才等.数据库课程设计.浙江.浙江大学出版社.2007
其它
摘要
在现代企业管理中,企业信息化是提高企业管理效率的重要手段。
工资管理是企业管理的重要部分,在公司起着越来越重要作用。
本课程设计主要是对公司各项人员的工资进行管理和统计。
工资管理系统分为6个模块,基本信息管理模块、考勤信息管理模块、奖惩信息管理模块、员工履历管理模块、职称信息管理模块、员工工资管理模块。
本系统采用SQLServer2008作为数据库,使用ODBC作为数据源。
在实现数据库部分功能时按照要求创建了触发器和存储过程。
关键词:
工资管理SQLServer2008触发器存储过程
1需求分析
系统目标设计
实现企业的工资管理系统化,使企业管理更加现代化
系统功能分析
(1):
为了保证系统具有高度的安全性,要有登录界面,进行用户身份的验证。
用户分为不同的级别,例如管理员级用户和普通用户。
(2):
员工不同工种基本工资的设定:
员工工种的不同,工资的标准也不同,允许管理员根据员工的现任职务设定员工的基本工资。
包括每个员工的姓名、性别、年龄、工龄、职务及其所在的部门等资料的录入来确定员工的基本工资,以及对现有工作人的基本信息的录入工作。
(3):
可以对员工的工资项目进行初始化的设置(包括个人所得税、职务工资、级别工资、基本工资、工龄工资。
对系统管理员的密钥,以及其他系统使用人员的一些信息,例如用户名、权限、密钥的设定。
(4):
根据月工资生成公式,按照员工的考勤情况和工作表现,生成员工工资。
人员查询操作包括按单个员工信息查询、按部门查询和按工资查询等。
(5):
工年终奖金的生成。
年终奖金计算公式=(员工本年度的工资总和+津贴的总和)/12。
功能模块分析
根据系统功能的基本要求,可对整个系统划分为几个模块
图功能模块分析
系统全局数据流图
系统的全局数据流图,也称第一层数据流图,是从整体上描述系统的数据流,反映系统数据的整体流向,给设计者、开发者和用户一个总体描述。
图数据流图
数据字典
表员工基本信息表(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)
专业
表考勤信息记录表(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
早退天数
表工资信息表(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)
担任职务
表奖惩记录表(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)
备注
表职称评定信息表(Pro_title)
名称
数据类型
说明
Worker_ID
varchar(15)
员工编号关键字
Worker_Name
varchar(8)
员工姓名
Assess_date
datetime
评定日期
Assess_unit
varchar(20)
评定单位
Assess_title
varchar(8)
评定职称
Remark
varchar(200)
备注
表工作履历表(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)
备注
表用户账号表(User_table)
名称
数据类型
说明
User_Name
varchar(30)
用户名关键字
User_pwd
varchar(30)
用户密码
Power_level
varchar(8)
权限级别
2概念结构设计
构成系统的实体型
由工资管理系统的数据流图和数据字典,抽取出系统的7个主要实体,包括:
员工、考勤记录、工资、奖惩记录、职称评定信息、履历、账号。
员工实体型属性:
Worker_IDWorker_NameDepartment_NameSexBirthdayNative_PlaceSchool_AgeMajorLink_PhoneAddress
考勤记录实体型属性:
Worker_IDWorker_NameMonthsMonths_daysHolidaysWork_daysBusiness_daysAbsent_daysLeave_daysLate_daysLeave_early_times
工资实体型属性:
Record_IDWorker_IDWorker_NameBase_WageAllowance1Allowance2RewardOvertime_MoneyDeduct_CheckAged_MoneyMedical_MoneyCompo_MoneyUnemploy_MoneyHousing_MoneyIncome_taxReal_wageGive_date
奖惩记录实体型属性:
Record_IDWorker_IDWorker_NameRecord_dateRecord_typeRecord_contentRecord_reasonAllow_unitRemark
职称评定信息实体型属性:
Worker_IDWorker_NameAssess_dateAssess_unitAssess_titleRemark
履历实体型属性:
Record_IDWorker_IDWorker_NameBegin_dateOver_dateUnit_NameWork_timeDutyLevel1Remark
账号实体型属性:
User_NameUser_pwdPower_level
工资管理系统E-R图
图工资管理系统E-R图
3逻辑结构设计
逻辑结构简介
逻辑结构设计就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。
设计逻辑结构一般分为3步进行:
(1)将概念结构转换为一般的关系、网状、层次模型;
(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;
(3)对数据模型进行优化。
关系模型
将E-R图转换为关系模型实际上就是要奖实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:
一个实体型转换为一个关系模式,一个多对多的关系可以转化为一个关系模式,而一对多的关系可以融合在其他的相关的关系模式中。
例如:
(1)员工与履历之间是一对多的关系,所以将员工和履历以及属于关系设计成以下关系模式:
员工(Worker_IDWorker_NameDepartment_NameSexBirthdayNative_PlaceSchool_AgeMajorLink_PhoneAddress)
奖惩记录(Record_IDWorker_IDWorker_NameRecord_dateRecord_typeRecord_contentRecord_reasonAllow_unitRemark)
属于(Worker_IDWorker_NameDepartment_NameSexBirthdayNative_PlaceSchool_AgeMajorLink_PhoneAddressRecord_IDRecord_dateRecord_typeRecord_contentRecord_reasonAllow_unitRemark)
(2)员工与账号之间是一对一的关系,所以将员工和账号以及属于关系设计成以下关系模式:
员工(Worker_IDWorker_NameDepartment_NameSexBirthdayNative_PlaceSchool_AgeMajorLink_PhoneAddress)
账号(User_NameUser_pwdPower_level)
属于(Worker_IDWorker_NameDepartment_NameSexBirthdayNative_PlaceSchool_AgeMajorLink_PhoneAddressUser_pwdPower_level)
4物理模型设计
数据库物理设计是将逻辑设计影射到存储介质上,利用可用的硬件和软件功能尽可能快地对数据进行物理访问和维护。
定义数据库
SQLServer2000数据库文件分为3中类型:
主数据文件、次数据文件和日志文件。
通过SQL语言进行数据库创建,创建数据库的语句如下:
Createdatabase工资管理系统;
创建表
创建员工基本信息表Base_data
CREATETABLEBase_data
(Worker_IDvarchar(15)PRIMARYKEY,/*员工ID,主码*/
Worker_Namevarchar(8)Notnull,/*员工姓名*/
Department_Namevarchar(15)Notnull,/*部门名称*/
Sexvarchar
(2)Notnull,/*性别*/
BirthdaydatetimeNotnull,/*出生日期*/
Native_Placevarchar(25)Notnull,/*籍贯*/
School_Agevarchar(4)Notnull,/*学历*/
Majorvarchar(15)Notnull,/*专业*/
Link_Phonevarchar(11)Notnull,/*联系电话*/
Addressvarchar(20)Notnull,/*住址*/
);
考勤信息记录表Check_info
CREATETABLECheck_info
(Monthsvarchar(10),
Worker_IDvarchar(15),
Months_daysint,/*本月天数*/
Holidaysint,/*公休假天数*/
Work_daysint,/*出勤天数*/
Business_daysint,/*出差天数*/
Absent_daysint,/*缺席天数*/
Leave_daysint,/*请假天数*/
Late_daysint,/*迟到天数*/
Leave_early_timesint,/*早退天数*/
PRIMARYKEY(Months,Worker_ID),
FOREIGNKEY(Worker_ID)REFERENCESBase_data(Worker_ID),
);
工资信息表Wage_info
CREATETABLEWage_info
(Record_IDbigintPRIMARYKEY,/*记录编号*/
Worker_IDvarchar(15),
Worker_Namevarchar(8),
Base_Wagefloat,/*基本工资*/
Allowance1float,/*公共补贴*/
Allowance2float,/*出差补贴*/
Rewardfloat,/*奖金*/
Overtime_Moneyfloat,/*加班费*/
Deduct_Checkfloat,/*扣考核*/
Aged_Moneyfloat,/*养老保险*/
Medical_Moneyfloat,/*医疗保险*/
Compo_Moneyfloat,/*工伤保险*/
Unemploy_Moneyfloat,/*失业保险*/
Housing_Moneyfloat,/*住房公积金*/
Income_taxfloat,/*所得税*/
Real_wagefloat,/*实发工资*/
Give_datefloat,/*发放月份*/
FROEIGNKEY(Worker_ID)REFERENCESBase_data(Worker_ID),
);
奖惩记录表(Reward_pun)
CREATETABLEReward_pun
(Record_IDbigintPRIMARYKEY,/*记录编号*/
Worker_IDvarchar(15),
Worker_Namevarchar(8),
Record_datedatetime,/*奖惩日期*/
Record_typevarchar
(2),/*奖惩类型*/
Record_contentvarchar(30),/*奖惩内容*/
Record_reasonvarchar(30),/*奖惩原因*/
Allow_unitvarchar(20),/*批准单位*/
Remarkvarchar(200),/*备注*/
FORERGNKEY(Worker_ID)REFERENCESBase_data(Worker_ID),
);
职称评定信息表Pro_title
CREATETABLEPro_title
(Worker_IDvarchar(15)PRIMARYKEY,/*员工编号*/
Worker_Namevarchar(8),
Assess_datedatetime,/*评定日期*/
Assess_unitvarchar(20),/*评定单位*/
Assess_titlevarchar(8),/*评定职称*/
Remarkvarchar(200),/*备注*/
);
工作履历表Work_age
CREATETABLEWork_age
(Record_IDBigintPRIMARYKEY,/*记录编号*/
Worker_IDvarchar(15),
Begin_datedatetime,/*起始日期*/
Over_datedatetime,/*结束日期*/
Unit_Namevarchar(20),/*单位名称*/
Work_timefloat,/*本单位工作时间*/
Dutyvarchar(10),/*担任职务*/
Level1varchar(4),/*级别*/
Remarkvarchar(200),/*备注*/
FORERGNKEY(Worker_ID)REFERENCESBase_data(Worker_ID),
);
用户账号表User_table
CREATETABLEUser_table
(User_Namevarchar(30)PRIMARYKEY,/*用户名*/
User_pwdvarchar(30),/*用户密码*/
Power_levelvarchar(8),/*权限级别*/
);
创建存储过程
在奖惩记录表中创建更新奖惩的存储过程:
USE[salary]
GO
CREATEPROCEDURE[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))