学校人力资源管理系统新编.docx
《学校人力资源管理系统新编.docx》由会员分享,可在线阅读,更多相关《学校人力资源管理系统新编.docx(19页珍藏版)》请在冰豆网上搜索。
![学校人力资源管理系统新编.docx](https://file1.bdocx.com/fileroot1/2023-3/1/36922522-b45b-463b-a72d-a04a3a118064/36922522-b45b-463b-a72d-a04a3a1180641.gif)
学校人力资源管理系统新编
数据库原理及应用课程设计
设计报告
题目:
学校人力资源管理系统
学号:
学生姓名:
方新运
指导教师:
余建国
提交时间:
学校人力资源管理系统
第1章 需求分析
需求调查
通过对各个用户的调查,该学校人力资源管理系统有如下需求:
1)家庭管理:
实现学校教职工家庭信息管理包括父母,子女等信息。
2)学历管理:
实现学校教职工学历信息管理,包括教职工从小学到大学的学校情况。
3)基本信息:
实现显示教职工基本信息及邮箱信息的记录。
4)奖惩管理:
实现在教职工奖惩情况记录。
5)部门管理:
包含最基本的部门名、部门总人数信息。
系统功能分析
1)家庭管理:
用于记录和管理职工的父母子女等亲属的名字。
2)学历管理:
用于记录教职工从小到大所在学校的名称。
3)个人基本管理:
用于记录职工的姓名性别工号出生年月电子邮件职称号等信息。
4)奖惩管理:
用于记录职工奖惩情况。
5)部门管理:
对各部门和人数进行管理。
第2章 面向对象分析和设计
类和对象设计如下:
个人基本信息
姓名:
char
工号:
char
性别:
char
出生年份:
int
职称号:
char
电子邮件:
char
所属部门:
char
添加()
删除()
查询()
修改()
家庭关系
工号:
char
姓名:
char
父母:
char
子女1:
char
子女2:
char
子女3:
char
添加()
修改()
删除()
查询()
学历信息
姓名:
char
工号:
char
小学:
char
初中:
char
高中:
char
大学:
char
查询()
添加()
修改()
删除()
职称信息
职称名:
char
职称号:
char
人数:
int
查询()
添加()
修改()
删除()
第3章 逻辑结构设计
局部E-R图
图3-1
图3-2图3-3
图3-4
图3-5
类和对象向关系模式转换
个人基本信息(姓名、工号、性别、出生年份、电子邮件、职称号、所属部门)
职称(姓名、职称号、人数)
部门(人数、部门名)
家庭关系(工号、姓名、父、母、妻(夫)、子女1、子女2、子女3)
学历信息(姓名、工号、小学、初中、高中、本科、研究生、博士)
奖惩(姓名、工号、奖励、惩罚、日期)
第4章 数据库物理结构设计
4.1存取方法设计
数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。
对于教务管理系统来说,为了提高某些属性(如:
学生学号,教职工号,课程号,学生成绩,选课信息等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。
这样在查询某个学院或是查询某个专业或某学年等的学生成绩或选课等时就会大大提高查询速度。
因此,该系统中选择聚簇存取方法。
存储结构设计
教务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设教务管理系统。
数据库管理系统采用Microsoft公司推出的SQLServer2000或以上版本,并用SQL进行数据库的建立和数据库中数据的维护和查询。
物理设计
实现该设计的环境为WindowsXPProfessional+MSSQLServer2005或以上版本。
1、建立学校人力资源管理系统数据库
createdatabase学校人力资源管理系统onprimary(
name=学校人力资源管理系统,
filename='d:
\学校人力资源管理\学校人力资源管理系统数据文件.mdf',
size=5,maxsize=10,filegrowth=1)
logon(
name=学校人力资源管理日志文件,
filename='d:
\学校人力资源管理\学校人力资源管理日志文件.ldf',
size=3,maxsize=10,filegrowth=1)
2、建立个人基本信息表
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[个人基本信息]ScriptDate:
01/03/201520:
32:
39******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[个人基本信息](
[姓名][char](10)NULL,
[工号][char](10)NOTNULL,
[性别][char](10)NULL,
[出生年份][char](10)NULL,
[电子邮件][char](50)NULL,
[职称号][char](10)NULL,
[所属部门][char](10)NULL,
CONSTRAINT[PK_个人基本信息]PRIMARYKEYCLUSTERED
(
[工号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[个人基本信息]WITHNOCHECKADDCONSTRAINT[FK_个人基本信息_部门]FOREIGNKEY([所属部门])
REFERENCES[dbo].[部门]([部门名])
GO
ALTERTABLE[dbo].[个人基本信息]NOCHECKCONSTRAINT[FK_个人基本信息_部门]
GO
ALTERTABLE[dbo].[个人基本信息]WITHNOCHECKADDCONSTRAINT[FK_个人基本信息_职称1]FOREIGNKEY([职称号])
REFERENCES[dbo].[职称1]([职称号])
GO
ALTERTABLE[dbo].[个人基本信息]NOCHECKCONSTRAINT[FK_个人基本信息_职称1]
GO
3、建立家庭关系表
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[家庭关系]ScriptDate:
01/03/201520:
30:
35******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[家庭关系](
[工号][char](10)NULL,
[姓名][char](10)NULL,
[妻(夫)][char](10)NULL,
[父][char](10)NULL,
[母][char](10)NULL,
[子女1][char](10)NULL,
[子女2][char](10)NULL,
[子女3][char](10)NULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[家庭关系]WITHCHECKADDCONSTRAINT[FK_家庭关系_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[家庭关系]CHECKCONSTRAINT[FK_家庭关系_个人基本信息]
GO
4、建立学历信息表
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[学历信息]ScriptDate:
01/03/201520:
28:
28******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[学历信息](
[工号][char](10)NULL,
[姓名][char](10)NULL,
[小学][nchar](20)NULL,
[初中][nchar](20)NULL,
[高中][nchar](20)NULL,
[本科][nchar](20)NULL,
[研究生][nchar](20)NULL,
[博士][nchar](20)NULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[学历信息]WITHNOCHECKADDCONSTRAINT[FK_学历信息_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[学历信息]CHECKCONSTRAINT[FK_学历信息_个人基本信息]
5、GO建立奖惩信息表
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[奖惩]ScriptDate:
01/03/201520:
27:
38******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[奖惩](
[姓名][char](10)NULL,
[工号][char](10)NULL,
[奖励][nchar](50)NULL,
[惩罚][nchar](50)NULL,
[日期][nchar](10)NULL
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
ALTERTABLE[dbo].[奖惩]WITHNOCHECKADDCONSTRAINT[FK_奖惩_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[奖惩]CHECKCONSTRAINT[FK_奖惩_个人基本信息]
GO
6、建立职称信息表
SETANSI_NULLSON
GO
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[职称1]ScriptDate:
01/03/201520:
24:
24******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[职称1](
[职称号][char](10)NOTNULL,
[职称名][char](10)NULL,
[人数][char](10)NULL,
CONSTRAINT[PK_职称1]PRIMARYKEYCLUSTERED
(
[职称号]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
GO
7、建立部门表
USE[学校人力资源管理系统]
GO
/******Object:
Table[dbo].[部门]ScriptDate:
01/03/201520:
25:
29******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
SETANSI_PADDINGON
GO
CREATETABLE[dbo].[部门](
[部门名][char](10)NOTNULL,
[人数][int]NULL,
CONSTRAINT[PK_部门]PRIMARYKEYCLUSTERED
(
[部门名]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
SETANSI_PADDINGOFF
第5章 数据库完整性设计
主键
表名
主键
个人基本信息信息
(工号)
部门
(部门名)
家庭关系
(工号)
奖惩
(工号)
学历信息
(工号)
职称
(职称号)
5.2参照完整性设计
1、个人基本信息表中把职称号和所属部门设为外键
ALTERTABLE[dbo].[个人基本信息]WITHNOCHECKADDCONSTRAINT[FK_个人基本信息_部门]FOREIGNKEY([所属部门])
REFERENCES[dbo].[部门]([部门名])
GO
ALTERTABLE[dbo].[个人基本信息]NOCHECKCONSTRAINT[FK_个人基本信息_部门]
GO
ALTERTABLE[dbo].[个人基本信息]WITHNOCHECKADDCONSTRAINT[FK_个人基本信息_职称1]FOREIGNKEY([职称号])
REFERENCES[dbo].[职称1]([职称号])
GO
ALTERTABLE[dbo].[个人基本信息]NOCHECKCONSTRAINT[FK_个人基本信息_职称1]
GO
2、家庭关系中工号设计为外键
ALTERTABLE[dbo].[家庭关系]WITHCHECKADDCONSTRAINT[FK_家庭关系_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[家庭关系]CHECKCONSTRAINT[FK_家庭关系_个人基本信息]
GO
3、奖惩表中工号为外键
ALTERTABLE[dbo].[家庭关系]WITHCHECKADDCONSTRAINT[FK_家庭关系_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[家庭关系]CHECKCONSTRAINT[FK_家庭关系_个人基本信息]
GO
4、学历信息中工号设计为外键
ALTERTABLE[dbo].[学历信息]WITHNOCHECKADDCONSTRAINT[FK_学历信息_个人基本信息]FOREIGNKEY([工号])
REFERENCES[dbo].[个人基本信息]([工号])
GO
ALTERTABLE[dbo].[学历信息]CHECKCONSTRAINT[FK_学历信息_个人基本信息]
GO
Check约束
1、个人基本信息表中将性别进行check约束:
check(性别in('男','女'))
触发器设计
1、在个人信息表中建立删除职工信息触发器
USE[学校人力资源管理系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEtrigger[dbo].[人数减少]
on[dbo].[个人基本信息]
fordelete
AS
begin
declare@achar(50)
select@a=deleted.所属部门fromdeleted
update部门
set部门.人数=部门.人数-1
where@a=部门.部门名
end
GO
2、在个人信息表中建立增加教职工触发器
USE[学校人力资源管理系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
createtrigger[dbo].[人数增加]
on[dbo].[个人基本信息]
forinsert
AS
begin
declare@achar(50)
select@a=inserted.所属部门frominserted
update部门
set部门.人数=部门.人数+1
where@a=部门.部门名+
--left(@a,3)=班级.班级号
end
GO
第7章数据库存储过程设计
创建存储过程
1.查询学校各部门各种职称的教职工数量
USE[学校人力资源管理系统]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATEprocedure[dbo].[查询部门人数]
@achar(50)
as
select部门名,人数
from部门
where部门.部门名=@a
GO
总结
理论联系实际才能做好一件事,学习一门课程同样是这样。
通过16学时的数据库课程设计实习,受益匪浅,从中学到了许多新知识,这些知识是在课堂中不能学到或者说很难学到的。
并且对大型数据库设计这一门课程有了更深一步的理解。
在做课程设计中,可以把课堂上所学的理论知识和实践联系起来,在所要开发的系统中渐渐学会了融会贯通。
同样通过对SQLServer的应用,也使我们熟练和巩固了对SQL的理解。
这次课程设计,完成课题是《教务管理系统》,在学校人力资源管理系统的开发中采用了完整的数据库设计的全过程,从需求分析到概念结构设计,到逻辑结构设计,最后到数据库的实施和维护,每一步都认真的分析和实施。
当然,在本次课程设计的成果中还存在许多的不足之处,这就需要我们学习更多的知识,进行更深研究。
当然了,在建表过程中一开始没有用代码来实现,所以在构建数据库关系图的时候出现了不少的问题导致6张表重新建了好几次,不过最后仍然做了出来,收或还是蛮大的。
在这次实习中,我们完全投入到了开发系统的世界里。
结束后明白了理论和实践要想充分地结合,需要非常扎实的基本功。
这就说明学好基础知识是理论付诸实践的前提。
在开发教务管理系统中我学到了很多,希望在以后能充分利用实习的机会充实自己,用所学的理论知识充分去实践,在实践中又要努力去巩固理论知识。
只有这样,才能把一门课程甚至一门学科学精、学透。
参考文献:
1.王珊,萨师煊.数据库系统概论[M].高等教育出版社,2006
2.郑阿奇等.SQLserver实用教程(第3版)[M].电子工业出版社,2009
3.赵乃真等.信息系统设计与应用.清华大学出版社,2005
《数据库原理及应用课程设计》报告评分标准
选题合理,功能简单(D)
有一定的工作量和实用价值(C)
功能设计丰富,有一定的难度系数(B)
功能设计合理全面,能体现数据库的存储和整理数据的功能(A)
数据表和数据量
具备基本的数据表,数据量较少,但能够实现系统基本需要(D)
具备基本的数据表,数据量适中,实现了一定的数据完整性(C)
有多个数据表,数据量适中,有完善的数据完整性(B)
有多个数据表,数据量充足,具有较强的数据安全性和数据完整性(A)
数据库对象
具备基本的数据表,有主外键约束(D)
创建了若干种的数据库对象,并加以利用(C)
在实际应用中合理利用了各类数据库对象(B)
具有身份验证、数据备份等较复杂的数据管理功能(A)
功能实现
利用存储过程实现了各种查询功能(D)
除查询功能,还实现了各种数据操作功能(C)
在上一条基础上,还实现了数据统计汇总功能(B)
合理利用函数、存储过程、触发器实现各种数据查询、操作、管理功能(A)
设计报告
完成设计报告,阐述了系统功能,结构较完整(D)
开题报告反映设计思路,结构完整,格式较规范(C)
报告内容完整,图表使用准确,格式清晰,功能描述详尽(B)
报告内容完整,图表使用准确,描述详细,代码阐述清楚,反映系统执行流程(A)
教师签字:
总评成绩: