SQL工资管理系统课程设计报告.docx

上传人:b****4 文档编号:12031697 上传时间:2023-04-16 格式:DOCX 页数:13 大小:273.11KB
下载 相关 举报
SQL工资管理系统课程设计报告.docx_第1页
第1页 / 共13页
SQL工资管理系统课程设计报告.docx_第2页
第2页 / 共13页
SQL工资管理系统课程设计报告.docx_第3页
第3页 / 共13页
SQL工资管理系统课程设计报告.docx_第4页
第4页 / 共13页
SQL工资管理系统课程设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

SQL工资管理系统课程设计报告.docx

《SQL工资管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《SQL工资管理系统课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

SQL工资管理系统课程设计报告.docx

SQL工资管理系统课程设计报告

设计报告

课题名称:

工资管理系统学院:

专业班级:

学号:

学生:

指导教师:

青岛理工大学琴岛学院教务处

2009年7月3日

学生

指导教师

课题名称

工资管理系统

设计时间

设计地点

设计目的

数据库系统课程设计是对学生学习完成《数据库原理与技术》课程的一次理论与实践的综合设计,旨在学生更好掌握数据库原理的理论知识,并且能根据所学习的数据库知识构建完善标准的数据库系统。

一、设计目的

工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。

手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。

计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。

实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。

二、数据库功能分析

A.信息输入功能

1)输入员工的基本信息。

包括:

员工编号、姓名、性别、出生年月、参加工作时间、所属部门、职务、职称、政治面貌、婚姻状况等基本信息。

2)输入员工的工资信息。

包括:

基本工资、岗位工资、住房补贴、津贴、工会会费、水电费、住房公积金、养老保险、奖惩。

3)输入员工的部门信息。

包括:

部门编号、部门名称、部门负责人、部门人数。

B.数据修改删除功能

1)修改和删除员工的基本信息。

当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。

2)修改和删除员工的工资信息。

员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。

3)修改和删除部门信息。

当撤消一个部门时,能从部门信息表中将其删除。

而当一个部门的名称发生改变时,系统中所有该项部门的名称应一致的改变。

C.查询和统计功能

1)能够查询指定员工的基本信息。

2)能够查询指定某个部门或全部部门的基本信息

3)查询某个员工的工资信息。

4)统计、汇总指定年份企业各部门或某个部门每个月或全年工资总额,汇总各部门的人数或本单位的总人数。

5)工资表月工资记录的生成功能。

生成当月所有员工或某个部门的工资记录,同时能进行员工工资的计算,即计算应发金额、应扣金额及实发金额。

三、数据库设计

1.需求分析:

《工资发放管理系统》针对的用户是中小企业或学校,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务工种变化、员工考勤情况、员工加班情况、等等。

根据这些信息,在每个月的某个固定时间,生成企业全体员工的月工资。

对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。

需求信息整理(DFD图)如下:

表5员工基本情况表yg

列名

数据类型

可否为空

说明

empno

VARCHAR(8)

NOTNULL

员工号(主键)

emp_name

VARCHAR(10)

NULL

员工名称

sex

Char

(2)

NULL

性别

Departmentid

Char(4)

Notnull

员工部门

Emptime

VARCHAR2(6)

NOTNULL

入公司时间

Marry

Varchar(4)

Null

婚姻状况

Telephon

Char(11)

Null

电话号码

 

表6员工月工资表ygz

列名

数据类型

可否为空

说明

empno

VARCHAR2(6)

NOTNULL

员工号(主键一)

jbgz

NUMBER(6)

NOTNULL

基本工资

jt

NUMBER(6)

NULL

津贴

Kq

NUMBER(6)

NULL

缺勤扣除

Ygztotal

NUMBER(6)

NULL

总月工资

ygzdate

VARCHAR2(6)

NOTNULL

月工资时间(主键二)

b.关系模式

员工信息表(员工编号,员工姓名,性别,出生年月,参加工作时间,所属部门,职务,,婚姻状况,政治面貌,电话号码)

员工出勤表(员工编号,统计时间,员工姓名,矿工次数,考勤工资)

员工津贴表(员工编号,统计时间,员工姓名,加班天数,津贴工资)

员工月工资表(员工编号,基本工资,住房补贴,津贴,工会会费,水电费,位房公积金,养老保险,奖惩,总工资)

部门信息表(部门编号,部门名称,部门负责人,部门人数)

政治面貌)

基本工资表(职位,基本工资)

各表的属性都不能被分解,所有非主属性都完全依赖每一个候选关键属性,也没有传递依赖,因此符合1,2,3范式。

4.物理设计

数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。

数据库的物理结构依赖于给定的计算机系统和DBMS

5.实施与维护

确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语

言(DDL)来严格定义数据库,包括建立表、定义表的约束等。

数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。

四、程序源代码及其说明

1.创建数据库

createdatabase工资管理

on

name=sales_dat,

filename='d:

\sales.mdf')

2.创建表

createtable员工

emp_novarchar(8)notnullprimarykey,

--职工编号

emp_namevarchar(10)notnull,

--姓名

sexchar

(2)

--性别

 

check(sex='男'orsex='女'),

birth_datedatetimenotnull,

--岀生日期

hir_datedatetimenotnull,

--参加工作日期

department_idchar(4)notnull,

--所属部门

zhiwuvarchar(10)notnull,

--职务

zhengzhimmvarchar(10),

--政治面貌

marryvarchar(4),

--婚姻状况

telephonchar(11),

--电话号码

constraintoldcheck(datediff(year,birth_date,hir_date)>18)

createtable咅部门

department_idchar(4)notnullprimarykey,

--咅咅门号

department_namevarchar(6)notnull,

--部门名称

managervarchar(6),

--部长

dep_renshuvarchar(4)

--人数

createtable考勤

emp_novarchar(8)notnull,

--职工编号

kaoqin_monthvarchar(10)notnull,

--月份

queqinchar

(2),

--缺勤天数

kaoqin_gongzifloat,

--奖惩工资

constrainte_kprimarykey(emp_no,kaoqin_month)

createtable津贴占

emp_novarchar(8)notnull,--职工编号

jiaban_monthvarchar(IO)notnull,--月份

jiabantianshuchar

(2),--力廿班天数

jaban_jiangjinfloat,--津贴工资

constrainte_jprimarykey(emp_no,jiaban_month)

createtable基本工资

zhiwuvarchar(10)notnullprimarykey,

jibengongzifloatdefault1500,

createtable月工资

emp_novarchar(8)notnull,

department_idchar(4)notnull,

jibengongzifloatdefault1500,

--基本工资

zhufangbutiefloat,

--住房补贴

gz_monthvarchar(10)notnull,

jaban_jiangjinfloat,

--奖惩

kaoqin_gongzifloat,

--津贴

gonghuihuifeifloat,

--工会会费

zhfgjjinfloat,

--住房公积金

yanglaobaoxianfloat,

--养老保险

wagecountas

jibengongzi+zhufangbutie+jaban_jiangjin+kaoqin_gongzi+gonghuihuifei+zhfgjjin+yanglaobaoxianconstrainte_gprimarykey(emp_no,gz_month)

3•插入数据

1985-1-1','2007-1-1

1985-1-2','2007-1-2

insert部门values('01','人事部','狄一','20')

insert部门values('02','财务部','狄六','10')

insert考勤

insert考勤

insert津贴insert津贴insert基本工资values('员工',1500)insert基本工资values('组长',2000)insert月工资insert月工资

4.创建、绑定默认值

createdefaultgongzi_defaas0

execsp_bindefaultgongzi_defa,'考勤.kaoqin_gongzi'execsp_bindefaultgongzi_defa,'津贝占.jaban_jiangjin'execsp_bindefaultgongzi_defa,'月工资.gonghuihuifei'execsp_bindefaultgongzi_defa,'月工资.zhfgjjin'execsp_bindefaultgongzi_defa,'月工资.yanglaobaoxian'execsp_bindefaultgongzi_defa,'月工资.zhufangbutie'

5.创建触发器

a.员工表中删除一条信息,其他表相应员工信息删除

createtriggeremon员工

fordelete

as

deletefrom考勤whereemp_noin(selectemp_nofromdeleted)deletefrom津贝占whereemp_noin(selectemp_nofromdeleted)deletefrom月工资whereemp_noin(selectemp_nofromdeleted)

验证:

b.一个部门删除,此部门中的员工信息删除

createtriggerbmon部门

fordelete

as

deletefrom员工wheredepartment_idin(selectdepartment_idfromdeleted)验证:

deletefrom部门wheredepartment_id='01'

C员工职务变动,基本工资改变

createtriggerjbgz

on员工

forupdate」nsert

asdeclare@qvarchar(12)

declare@mvarchar(12)

declare@sfloat

select@q=emp_nofromDeleted

select@m=zhiwufromInserted

select@s=jibengongzifrom基本工资wherezhiwu=@mupdate月工资

setjibengongzi=@s

where月工资.Emp_no=@q

6创建函数

a函数查询员工基本信息

createfunctionygxx(@yg_idvarchar(10))

returnstable

as

return(select*from员工whereemp_no=@yg」d)

验证:

b.函数查询部门信息

createfunctionbumen(@bumen_idvarchar(4))

returnstable

as

return(select*from咅部门wheredepartment_id=@bumen_id)

验证:

select*fromdbo.bumen('O3')

7.创建存储过程

a存储过程查询员工基本信息

createprocygxx2

@yg」dvarchar(IO)

as

select*from员工whereemp_no=@yg」d

b.存储过程查询指定某个部门或全部部门的基本信息

createprocbumen2

@bumen_id2varchar(4)

as

select*from咅咅门wheredepartmentid=@bumenid2

createprocbumenq

as

select*from部门

C.存储过程查询某个员工的工资信息

createprocgzxx-

@yg」dvarchar(IO)

as

select*from月工资

whereemp_no=@yg」d

d.汇总部门月份工资

createprocgzhz

@dep_idvarchar(04),@month_yearvarchar(IO)

as

selectdepartment_id,gz_monthfrom月工资

wheredepartment_id=@dep」dandgz_month=@month_year

orderbydepartment_id,gz_month

e汇总工资总和

execgzhz'03','200905'

createprocsum_sum

as

selectdepartment_name,gz_month,sum(wagecount)from咅部门,月工资

where咅咅门.department_id=月工资.department_idgroupbydepartment_name,gz_month

五、总结

1.过程

(1)在对员工表创建删除触发器时,无法删除表记录,删除与其他表的外键约束后,触发器能正常运行。

(2)触发器、存储过程等的建立与使用语句同时运行无法实现,先创建再执行程序正常运行。

(3)在创建员工表时职务的类型是text,但在创建基本工资表时职务作为主键出现错误。

把职务改成varchar类型后运行正常

(4)在插入数据时文字长度超出数据类型的长度出现文字被截取的现象。

(5)对基本的SQL语句掌握不牢固,通过查询资料后基本掌握。

2.体会

此系统的规划虽然已经完成,功能基本实现了目标规划一些重要功能,但由于时间仓促,所以只满足了基本要求,并没有过多考虑到系统的技术含量,在这次系统的开发过程中学到了好多知识,而且更加深入,而且更加熟练地掌握了MicrosoftSQLServer数据

库,锻炼了我的项目开发能力,使我对软件工程的知识有了更深刻的理解、更贴切的感

受。

在这过程中有许多不顺利的时候,然后就和我就找同学讨论,实在讨论不岀来,就到图书馆、上网查资料培养了自己查资料和同学讨论的好习惯,这些对即将走上工作岗位的我是有很大的帮助的,相信我以后工作时在这些方面会做的更好。

3.建议

实践上机时间过少,限制了我们做出更完善的数据库,希望能有更充足的实践时间。

4.回顾:

通过这次的数据库实习,对许多原来不太清楚的知识点有了更进一步的了解,写代码的时候要细心,注意代码中的一切标点符号都要用英文,创建表插入记录时新插入的记录要加单引号,插入记录时新插入的元组顺序与属性的顺序要一致,常见存储过程时,需要用到变量的要先声明变量,创建了外键约束时,要先对不被约束的表进行操作。

指导教师

评语

系部教研室

意见

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

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1