人事管理系统数据库课程设计报告.docx

上传人:b****4 文档编号:11713654 上传时间:2023-03-31 格式:DOCX 页数:12 大小:20.73KB
下载 相关 举报
人事管理系统数据库课程设计报告.docx_第1页
第1页 / 共12页
人事管理系统数据库课程设计报告.docx_第2页
第2页 / 共12页
人事管理系统数据库课程设计报告.docx_第3页
第3页 / 共12页
人事管理系统数据库课程设计报告.docx_第4页
第4页 / 共12页
人事管理系统数据库课程设计报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

人事管理系统数据库课程设计报告.docx

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

人事管理系统数据库课程设计报告.docx

人事管理系统数据库课程设计报告

数据库课程设计报告

题目:

人事管理系统

学生姓名:

吴深深

学号:

班级:

1421801Z

指导老师:

李荣

 

关系数据库原理课程设计报告

人事管理系统

一、需求分析

系统概述

研究背景

人事管理系统是企业管理系统中必不可少的重要组成部分,它的内容对企业的决策者和管理者来说都是至关重要的,所以人事管理系统应该为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统手工的方式管理文件档案,这种管理管理方式存在着很多缺点,如:

效率低,保密性差,时间一长将堆积大量的文件,这个查找、更新、维护带来了不少的困难。

随着科学技术的不断提升,计算机科学日渐成熟,其功能已经为人们深刻认识,它已经进入人类的各个领域并且发挥着越来越重要的作用。

意义及开发目的

座位计算机应用的一部分,使用计算机对人事档案信息进行管理,具有着手工管理无法所无法比拟的优点。

例如:

检索迅速、查询方便、可靠性高、储存量大、保密性好、寿命长、成本低等。

这些优点能够极大的提高人事档案的管理效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

从微观上讲,建立一套人事管理信息系统能够加快人事工作的速度,提高工作效率,从而加强了管理的信息化手段,提高了本单位的经济效益。

从宏观上讲,顺应了社会的信息化、社会化潮流,缩短了整个社会化大生产的周期。

因此,开发这样一套管理信息系统软件成为很有必要的事情。

具体分析

系统功能的基本要求:

Ø员工各种信息的输入,包括员工的基本信息、学历信息、婚姻状况信息、职称等。

Ø员工各种信息的修改;

Ø对于转出、辞职、辞退、退休员工信息从员工表中删除,信息转入离职员工表;

Ø按照一定的条件,查询、统计符合条件的员工信息:

至少应该包括按学历、婚姻状况、岗位、参加工作时间等关键字查询各自的员工信息;

Ø对查询、统计的结果打印输出。

1.?

员工基本情况。

包括的数据项有员工号、员工姓名、性别、身份证号、政治面貌、联系电话、部门、岗位、婚姻状态、工作时间、学历信息。

?

2.?

工作部门信息。

包括的数据项有部门号、部门名称。

?

3.?

员工职称信息。

包括的数据项有职称号、职称名称。

?

4.?

员工婚姻状况。

包括的数据项有员工号、爱人代号、爱人姓名、工作单位、政治面貌、工作职称。

?

5.?

员工学历信息。

包括的数据项有员工号、学位证书编号、学历、专业、毕业时间、毕业

运行环境

本系统是在windows10系统下,用SQLServer2014开发设计完成,可以供VS,,Eclipse等集成开发工具开发软件时连接数据库使用。

用户需求

企业部门需求?

员工基本信息处理:

?

员工基本信息的录入?

员工基本信息的处理包括插入,删除以及修改?

员工基本信息的查询?

统计功能:

?

按学历、婚姻状况、岗位、参加工作时间等统计各自的员工信息?

?

在调查完了用户需求之后,就要开始分析用户需求。

在此,我们采用自顶向?

下的结构化分析方法(SA?

方法)。

首先,定义全局概念结构的框架。

?

经分析之后,本系统要用到七个基本表:

员工表、职称信息表、学历信息表、支撑岗位对应表、员工部门对应表、婚姻信息表、部门信息表。

二、

1局部E-R图

2全局E-R图

三、逻辑结构设计

关系模式转换

将E-R图转换为关系模式如下:

员工(工号,姓名,姓名,性别,身份证号,政治面貌联系电话)

部门(部门号,部门名称)

职称(职称号,职称名)

员工部门(员工号,部门号,工作时间)

职称岗位(工号,职称号,岗位)

婚姻(工号,婚姻状态,爱人姓名,爱人工作单位,爱人政治面貌,爱人工作职称)

学历(学位证编号,工号,最高学历,毕业时间,专业,毕业院校)

表格数据结构

表1:

员工基本信息表empoyee

Char(8)

主键、非空

工号

Char(20)

非空

姓名

Char

(2)

可空

性别

Char(18)

可空

身份证号

int

非空

年龄

Char(11)

可空

手机

Char(10)

可空

政治面貌

表2:

部门表department

Char(6)

主键、非空

部门号

Char(10)

非空

部门名称

表3:

职称表professional

Char(8)

主键、非空

职称号

Char(20)

非空

职称名

表四:

职称岗位对应表e_p

Char(8)

主键、外键、非空

工号

Char(8)

主键、外键、非空

职称号

Char(20)

可空

岗位

表五:

员工部门对应表e_d

Char(8)

主键、外键、非空

工号

Char(6)

主键、非空

部门号

Datatime

可空

工作时间

表六:

婚姻表marriage

Char(8)

主键、外键、非空

工号

Char

(2)

非空、(是,否)

是否结婚

Char(20)

可空

爱人名字

Char(20)

可空

爱人工作单位

Char(10)

可空

爱人政治面貌

Char(20)

可空

爱人工作职称

表七:

学历信息表school

Char(8)

主键、非空

学位证编号

Char(8)

外键、非空

工号

Char(6)

Check()

最高学位

datetime

可空

毕业时间

Char(20)

可空

主修专业

Char(20)

可空

毕业院校

各个表格的关系图

1、

create?

table?

employee--员工基本信息表

e_no?

char(8)?

not?

null?

primary?

key,--员工号?

e_name?

char(20),--员工姓名

e_sex?

char

(2)check(e_sexin('男','女')),--性别

e_id?

char(18),--身份证号

e_ageintcheck(e_age>=18ande_age<=65),--员工年龄

e_phone?

char(11),--联系电话?

e_zzmm?

char(10)--政治面貌?

此表格的部分数据如下:

create?

table?

离职员工表--员工基本信息表

e_no?

char(8)?

not?

null?

primary?

key,--员工号?

e_name?

char(20),--员工姓名

e_sex?

char

(2)check(e_sexin('男','女')),--性别

e_id?

char(18),--身份证号

e_ageintcheck(e_age>=18ande_age<=65),--员工年龄

e_phone?

char(11),--联系电话?

e_zzmm?

char(10)--政治面貌?

createtabledepartment--部门表

d_no?

char(6)?

not?

null?

primary?

key,--部门号

d_name?

char(10)--部门名称

部门表格及其数据:

createtablee_d--员工部门对应表

e_no?

char(8)notnullforeignkeyreferencesemployee(e_no),--工号

d_nochar(6)notnullforeignkeyreferencesdepartment(d_no),--部门编号

jobtimeint--工作年长

primarykey(e_no,d_no)

此表的表格数据及其部分数据:

createtableprofessional--职称表

p_nochar(8)notnullprimarykey,--职称号

p_namechar(20)--职称名

表格部分数据如下:

createtablee_p--职称岗位对应表

e_nochar(8)notnullforeignkeyreferencesemployee(e_no),--工号

p_nochar(8)notnullforeignkeyreferencesprofessional(p_no),--职称号

jobchar(20)--岗位

primarykey(e_no,p_no)

表格的部分数据如下:

create?

table?

marriage?

--员工婚姻对应表

e_no?

char(8)?

not?

nullforeignkeyreferencesemployee(e_no)primarykey,--员工号?

is_machar

(2)notnull,--是否已婚

l_name?

char(20),--爱人姓名?

l_company?

char(20),--工作单位?

l_zzmm?

char(10),--政治面貌?

l_p?

char(20),--工作职称?

)?

此表格的部分数据如下;

create?

table?

school?

--员工学历信息表

e_no?

char(8),--员工号

hest_degreechar(6)check(hest_degreein('本科','研究生','博士')),--最高学历

degree_no?

char(10)?

primary?

key,--最高学位证书编号?

majob?

char(20),--专业?

bydate?

datetime,--毕业时间?

byschool?

char(20),--毕业院校?

foreign?

key(e_no)?

references?

employee(e_no)

此表格的部分数据如下:

2、

视图总纲如下:

go

createviewcomm_zzmm(e_name,e_no,e_zzmm,l_zzmm)--创建视图,查看员工及其爱人政治面貌

asselecte_name,,e_zzmm,l_zzmmfromemployee,marriage

where=and='是'

go

视图部分数据

go

createviewcomm_P_name(e_name,p_no,L_no)--创建视图,查看员工及其爱人的职称

asselecte_name,p_name,l_pfromemployee,professional,marriage,e_p

where=and=and=

go

此视图相关数据:

go

createview工作信息--创建视图,查看在职员工的工作信息

asselecte_name,d_name,p_name,job,jobtimefromemployee,department,professional,e_p,e_d

where=and=and=

and=

go

此视图相关信息:

go

createview学历--创建视图,查询学历相关信息

as

selecte_nameas姓名,hest_degreeas最高学历,majobas主修,byschoolas毕业院校fromschool,employee

where=

go

go

createviewT_E_Department--创建视图,查看员工对应部门

asselecte_name,,d_namefromemployee,department,e_d

where=and=

go

3、

go

createprocedureCount_D_sum(@d_namechar(10))--储存过程,录入部门名称,求人数

as

selectcount(*)as部门总人数frome_d

where(selectd_nofromdepartmentwhere@d_name=d_name)=

go

execCount_D_sum'财务部'

go

createprocedureSeach_Higher_Age(@e_ageint)--储存过程,查询比录入数据大的年领

as

selecte_name,e_age,e_nofromemployee

wheree_age>=@e_age

orderbye_agedesc

go

execSeach_Higher_Age30

go

createproceduredelete_all(@e_nochar(8))--储存过程,帮助有多外键数据删除所有工号相关

as

deletefrome_pwheree_no=@e_no

deletefrommarriagewheree_no=@e_no

deletefromschoolwheree_no=@e_no

deletefrome_dwheree_no=@e_no

deletefromemployeewheree_no=@e_no

go

此储存过程与触发器共同使用方可看出效果,在下面会有举例。

go

createprocedureSeach_Marriage(@is_machar(20))--储存过程,按照婚姻状态查找员工

as

if(@is_ma='是')

begin

selecte_name,l_name,l_companyfromemployee,marriage

where=andis_ma='是'

end

elseif(@is_ma='否')

begin

selecte_namefromemployee,marriage

where=andis_ma='否'

end

else

begin

print'输入参数有误'

end

go

4、

createtriggerInsert_Massageonmarriage--触发器,规范相关信息的输入

afterinsert

as

ifexists(select*frominsertedwheree_noin(selecte_nofromemployee))

print'添加成功!

'

else

begin

print'员工基本信息表中无此员工基本信息,拒绝插入!

'

rollback

end

go

以下触发器是对于转出、辞职、辞退、退休员工信息从员工表中删除,信息转入离职员工表并且删除相关表格的相关数据。

go

createtriggerfresh_massageonemployee

afterdelete

as

declare@e_no?

char(8)?

@e_name?

char(20),@e_sex?

char

(2),@e_id?

char(18),@e_ageint,@e_phone?

char(11),@e_zzmm?

char(10)

select@e_no=(selecte_nofromdeleted)

select@e_name=(selecte_namefromdeleted)

select@e_sex=(selecte_sexfromdeleted)

select@e_id=(selecte_idfromdeleted)

select@e_age=(selecte_agefromdeleted)

select@e_phone=(selecte_phonefromdeleted)

select@e_zzmm=(selecte_zzmmfromdeleted)

insertinto离职员工表

values(@e_no,@e_name,@e_sex,@e_id,@e_age,@e_phone?

@e_zzmm?

deletefrommarriagewheree_no=@e_no

deletefromschoolwheree_no=@e_no

deletefrome_pwheree_no=@e_no

deletefrome_dwheree_no=@e_no

go

我们可以看到,从员工表格中删除工号是DCG00004的员工。

此员工被转入离职信息表

五、课程设计心得体会

在此次为期一周的数据库课程设计过程中,感觉整个系统的设计过程就是一个逐步完善的过程,必须要不停地思考不停地探索。

刚开始的两天其实基本上毫无头绪,去图书馆去网上都查了资料,在脑海中先形成大致模块和思路,建立数据库的过程看似简单,实则不然。

要考虑到实体间的逻辑关系和数据关系模式的完整性问题,努力使之达到第三范式。

在对数据源的select,update,delect,查询属性进行配置的过程中,反反复复,不能确定,最后,只得静下心来,一步一步一点一点的配置,修改,最后终于全部成功,在这个反复的过程当中已将这些今本知识印于脑海之中,巩固了平时所学,顿时觉得有了成就感,也感受到了数据库知识的强大功能和作用。

想尽快学习到更多的数据库设计方面的知识,设计出更加完善实用性更强的系统。

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

当前位置:首页 > 法律文书 > 判决书

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

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