《数据库原理》就业信息系统.docx
《《数据库原理》就业信息系统.docx》由会员分享,可在线阅读,更多相关《《数据库原理》就业信息系统.docx(24页珍藏版)》请在冰豆网上搜索。
《数据库原理》就业信息系统
《数据库原理》课程设计报告
设计题目:
就业信息系统
专业:
信息管理与信息系统
计算机与数据科学学院
2019年1月10日
1概述
1.1选题的背景及意义
如今社会就业人数多,岗位少,就业压力大;信息发展快,提倡信息化就业;网络招聘信息量大,更新快;网络招聘性价比高。
目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件来管理自己日益增长的各种信息,毕业生就业信息管理系统也是有了很大的发展,商业化的学生就业信息管理软件也不少。
学生就业信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生就业信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
该系统具有检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高高校就业信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
本系统要实现毕业生就业信息管理网络化的查询与管理。
能够实现毕业生在网上修改个人的相关信息,就业信息,查询其他毕业生的相关信息和用人单位的招聘信息,使毕业生不分时间、地点,只要能上网即可以查询和修改相应信息,并能够获取最新的招聘信息。
管理员可以完成学生信息的添加、删除等管理,企业的添加、删除等管理,企业用人信息的删除、查看管理操作;管理员可以随时浏览企业对毕业生的反馈信息,使学校对毕业生的就业情况更轻松的掌握。
企业利用本系统可随时发布招聘信息,游览毕业生的基本信息,反馈本企业毕业生的情况等。
1.2相关技术分析
1.2.1开发工具
此次设计主要采用SQLServerManagementStudio2012进行,按照要求对运行过程的结果及执行情况进行展示。
SQL Server是一个支持关系模型的关系数据库管理系统。
其功能包括数据查询、数据定义、数据操纵和数据控制四部分。
SQL 简洁方便、功能齐全,是目前应用最广的关系数据库语言。
该软件功能完善,可用性强,可以满足我们此系统的设计。
1.2.2开发环境
操作系统为windows10系统,开发语言为数据库的DDL语言。
体系结构为B/S模式,B/S模式即Browser/Server结构模式,此种结构由客户端在Web页面发出请求至WebSever,再由WebSever向数据库服务器发出请求,而最后中间件服务器接受到数据库服务器的应答后,终返回给客户端的仍然是页面形式。
这样实现了客户端不直接和数据库服务器发生关系,保证了数据安全性。
2系统功能设计
2.1系统总体结构设计图
毕业生就业信息系统的开发主要包括应用程序系统和后台数据库,应用程序系统要求界面友好,功能完备,易使用等特点。
而后台数据库的数据要具有一致性、完整性、安全性。
(1)信息系统前台
前台作为与用户直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便性,目的是让大多数不在懂电脑操作的客户,也能轻松的享受计算机给他们带来的便利。
前台系统主要毕业生对个人信息的修改及企业信息的浏览,只要输入毕业生的编号及企业的编号,即可完成以上功能。
(2)信息系统后台
本系统后台管理在考虑毕业生信息操作简便的同时,提供了强大的管理模式。
后台系统可分为毕业生基本信息管理模块,包括毕业生基本信息的添加、删除等操作;企业基本信息管理模块,包括企业基本信息的录入,删除操作,管理对整个系统进行查询,管理工作。
图2.1毕业生就业信息系统总体结构设计图
2.2系统功能模块
2.2.1管理员登陆子系统
管理员子系统完成此系统的管理维护操作,主要是对学生信息的管理、企业信息的管理以及企业发布的反馈和招聘信息的管理。
(1)新增学生信息模块
本模块是管理员对学生基本信息的添加,添加内容毕业生的学号,姓名,性别,年龄,身份证,电话,专业,地址和是否就业。
(2)学生信息管理模块
本模块完成管理员对系统中毕业生信息的查看及删除操作。
(3)新增企业信息模块
本模块是管理员对企业基本信息的添加,添加内容有企业编号,企业名称,企业性质,成立时间,员工人员,注册资金,简介等信息。
(4)企业信息管理模块
本模块完成管理员对系统中企业的编号,名称,性质的查看及删除操作。
(5)反馈信息管理模块
本模块完成管理员对毕业生所在企业对该生的反馈信息的查看及管理操作。
(6)招聘信息管理模块
本模块完成管理员对企业招聘内容的查看及管理操作。
2.2.2毕业生登陆子系统
毕业生子系统比较简单,主要完成毕业生个人信息的修改、其它学生信息的查询功能,以及浏览招聘信息等功能。
进入系统后,输入毕业生的编号及密码,即可得进行毕业生信息子系统。
(1)基本信息模块
本模块完成毕业生基本信息的修改操作,其中包括毕业生的学号,姓名,性别,年龄,身份证,电话,专业,地址和是否就业。
(2)就业信息模块
本模块完成毕业生对本身在职情况的修改操作
(3)招聘信息模块
本模块完成毕业生对企业发布的招聘信息的查看操作。
查看内容包括:
单位编号,单位名称,招聘职位,招聘人数等信息。
(4)其它学生查询模块
本模块完成毕业生对其它毕业生的学生编号,学生姓名,年龄,性别,就业状态,专业等详细情况的查看。
2.2.3企业登陆子系统
企业子系统主要完成对在职毕业生的查询及反馈、招聘信息的发布功能。
进入系统后,输入企业的编号及密码,即可得进行企业信息子系统。
(1)毕业生管理模块
本模块完成企业对本企业内的在职毕业生信息进行向管理员反馈信息及对在职毕业基本信息查询的操作。
(2)就业信息查询模块
本模块完成企业对所有毕业生信息如姓名,年龄,性别,专业等基本信息的进行浏览操作。
(3)招聘信息发布模块
本模块是企业发布招聘信息,招聘职位,招聘人数,学历要求,专业要求,入职工资,外语要求,职位要求信息。
3数据库设计
3.1需求分析
3.1.1数据流图
数据流图简称DFD图,数据流图有四种成分:
源点或终点、处理、数据存储表和数据流。
图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具。
它能精确的描述系统的逻辑模型,描述数据在MIS中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。
表3-1数据流图符号名称
图形符号
名称
符号说明
实体
记录系统之外的数据提供或数据获得组织机构或个人,框内为实体名称
处理
记述某种业务的手工或计算机处理,其中,PM区记为处理标号,C区记述处理名称
数据存储
记述与处理有关的数据存储,DN区记述存储的标号,S区记述存储数据的名称
数据流
记述数据流的流动方向,FM记述数据流的名称
本系统的数据流图如图3.1、图3.2、图3.3、图3.4所示:
毕业生操作信息毕业生操作结果
管理员操作信息管理员操作结果
企业操作信息企业操作结果
图3.1毕业生就业管理系统数据流图
F1学生基本信息
学生信息表
F2学生就业信息
F3招聘信息查询企业招聘信息表
F4其他学生信息就业信息表
图3.2学生操作子系统数据流图
F5学生信息录入、删除
学生信息表
F6企业信息录入、删除
企业基本信息表
F7企业反馈信息删除查看就业信息表
F8企业招聘信息删除查看
企业招聘信息表
图3.3管理员操作子系统数据流图
F9反馈毕业生信息
就业信息表
F10发布招聘信息
企业招聘信息表
F11查看学生就业信息
学生信息表
图3.4企业操作子系统数据流图
3.1.2数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
数据流图和数据字典共同构成系统的逻辑模型。
根据数据流图和系统要求列出主要数据字典:
1.数据项
数据项是不可再分的数据单位。
对数据项的描述通常包括以下内容:
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系}。
其中“取值范围”、“与其他数据项的逻辑关系”定义了数据的完整性约束条件,是设计数据检验功能的依据。
若干个数据项可以组成一个数据结构。
表3-1管理员表(admin)
字段名称
数据类型
是否为空
字段含义说明
adminid
int
Notnull
管理员编号
adminmm
Char(10)
Notnull
管理员密码
表3-2就业信息表(jyxx)
字段名称
数据类型
是否为空
字段含义说明
xh
Int
Notnull
编号
xm
Nvarchar(10)
Notnull
姓名
qyxh
Varchar(10)
Notnull
企业编号
qyxc
Nvarchar(10)
Notnull
企业名称
rzsj
datetime
Notnull
入职时间
gzqk
money
Notnull
工资情况
fkxx
Char(20)
Notnull
反馈信息
fksj
datetime
Notnull
反馈时间
表3-3学生信息表(student)
字段名称
数据类型
是否为空
字段含义说明
xh
Int
Notnull
编号
xm
Nvarchar(10)
Notnull
姓名
nl
int
Notnull
年龄
xb
Char
(2)
Notnull
性别
sfzh
Char(18)
Notnull
身份证号
dh
Char(11)
Notnull
电话
dz
Varchar(20)
Notnull
地址
zy
Varchar(20)
Notnull
专业
jyzt
Char(10)
Notnull
就业状态
mm
Char(10)
Notnull
密码
表3-4招聘信息表(zpxx)
字段名称
数据类型
是否为空
字段含义说明
ID
Int
Notnull
自动编号
qyxh
Varchar(10)
Notnull
企业编号
qyxm
Nvarchar(10)
Notnull
企业名称
zw
Char(10)
Notnull
职位
rs
int
Notnull
人数
xl
Char(10)
Notnull
学历
zy
Char(10)
Notnull
专业
gz
money
Notnull
工资
yy
Char(10)
Notnull
英语
2.数据结构
数据结构是数据流图中数据块的数据结构说明,数据结构反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。
对数据结构的描述通常包括以下内容:
数据结构描述={数据结构名,含义说明,组成:
{数据项或数据结构}}
数据结构名
含义说明
组成的数据项
毕业生
完成毕业生个人信息的修改、其它学生信息的查询功能
学生的姓名,性别,年龄,身份证号,电话等
管理员
完成学生信息的管理、企业信息的管理以及企业发布的反馈和招聘信息的管理。
管理员编号,密码
企业
完成对在职毕业生的查询及反馈、招聘信息的发布功能。
企业编号,名称,职位,人数,学历,专业
3.数据流
数据流是数据结构在系统内传输的路径。
对数据流的描述通常包括如下内容:
数据流名,说明,编号,数据流来源,数据流去向,组成(数据结构)
4.数据存储
数据存储是数据结构停留或保存的地方。
也是数据流的来源和去向之一,可以是手工文档或手工凭单,也可以是计算及文档。
一般而言,应包括如下内容:
{数据存储名,说明,编号,输入的数据流,输出的数据流,组成(数据结构),数据量,存取频度,存取方式}。
名字:
学生信息表描述:
记录学生的基本信息。
编号:
D1组成:
学号,姓名,性别,年龄,身份证,电话,专业,地址,是否就业
名字:
企业招聘信息表描述:
记录企业的招聘信息。
编号:
D2组成:
招聘职位,招聘人数,学历要求,专业要求,入职工资,外语要求,职位要求
名字:
就业信息表描述:
记录学生就业信息。
编号:
D3组成:
学生编号,学生姓名,年龄,性别,就业状态,专业等信息
名字:
企业基本信息表描述:
记录企业的基本信息。
编号:
D4组成:
企业编号,企业名称,企业性质,成立时间,员工人数,注册资金,简介
5.数据处理
处理过程的具体处理逻辑通常在详细设计过程中用判定表或判定树来描述。
在数据字典中,只无原则描述处理过程的说明性信息,通常包括以下内容:
{处理过程名,说明,输入数据流,输出数据流,处理}。
3.2概念结构设计
(1)管理员信息实体E-R图,如图3.4
图3.4管理员信息局部E-R图
(2)毕业生信息实体E-R图,如图3.5
图3.5毕业生信息实体E-R图
(3)就业信息实体E-R图,如图3.6
图3.6企业信息实体E-R图
(4)招聘信息局部E-R图,如图3.7
图3.7招聘信息局部E-R图
(5)毕业生就业管理系统全局E-R图,如图3.8
1M
11
1
MN
M
1M
M
M1
1
1
1
图3.8毕业生就业管理系统E-R图
3.3逻辑结构设计
3.3.1关系模式
据E-R图,各实体具体关系模式为:
(1)管理员信息表(编号,密码);
(2)毕业生信息表(编号,姓名,密码,性别,年龄,专业,身份证号,电话,地址,就业状态);
(3)就业信息表(编号,姓名,企业名称,企业编号,入职时间,工资情况,反馈信息,反馈时间);
(4)招聘信息表(编号,企业编号,企业名称,学历要求,职位,人数,专业,工资,英语)。
说明:
下划线表示该数据项为主码。
3.3.2范式的判定
第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。
故上述表都满足第一范式。
第二范式(2NF)要求实体的属性完全依赖于主关键字。
所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。
为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。
简而言之,第二范式就是属性完全依赖于主键。
毕业生信息表除主键外,其它属性完全依赖于主键,故满足第二范式。
第三范式就是属性不依赖于其它非主属性。
也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。
管理员信息表中只有(编号,密码)两个属性,且密码不依赖与其它非主属性,故满足第三范式。
3.4物理结构设计
索引分为聚集索引和非聚集索引,数据库中的索引类似于一本书的目录,在一本书中通过目录可以快速找到你想要的信息,而不需要读完全书。
索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间。
但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好。
索引建少了,用WHERE子句找数据效率低,不利于查找数据。
索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER 除了要更新数据表本身,还要连带立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间。
为表jyxx在xh,xm上建立唯一索引
createuniqueindexjyxxIONjyxx(xh,xm)
3.5数据库实施
3.5.1创建数据库数据表
(1)创建数据库
createdatabase毕业生就业管理
on
(name=毕业生就业管理_data,
filename='E:
\bysjygldata.mdf',
size=5,
maxsize=200,
filegrowth=1
)
logon
(name=毕业生就业管理_log,
filename='E:
\bysjygldata.ldf',
size=1,
maxsize=200,
filegrowth=5
)
(2)创建数据表
①创建管理员信息表
createtableadmin
(adminidintnotnullprimarykey,
adminmmchar(10)notnull
)
②创建就业信息表
createtablejyxx
(xhintnotnull,
xmnvarchar(10)notnull,
qyxhvarchar(10)notnull,
qyxcnvarchar(10)notnull,
rzsjdatetimenotnull,
gzqkmoneynotnull,
fkxxchar(20)notnull,
fksjdatetimenotnull
)
③定义学生信息表
createtablestudent
(xhintnotnullprimarykey,
xmnvarchar(10)notnull,
nlintnotnull,
xbchar
(2)check(xbin('男','女')),
sfzhchar(18)notnull,
dhchar(11)notnull,
dzvarchar(20)notnull,
zyvarchar(20)notnull,
jyztchar(10)notnull,
mmchar(10)notnull
)
④定义招聘信息表
createtablezpxx
(IDintnotnullidentity(1,1),
qyxhvarchar(10)notnull,
qyxmnvarchar(10)notnull,
zwchar(10)notnull,
rsintnotnull,
xlchar(10)notnull,
zychar(10)notnull,
gzmoneynotnull,
yychar(10)notnull)
3.5.2存储过程
存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它,存储过程是数据库中的一个重要对象;存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数,输出参数,返回单个或多个结果集以及返回值;
创建存储
use毕业生就业管理
go
createprocedureMyproc1as
select*fromstudent
查看存储
execsp_helptextMyproc1
删除存储
dropprocedureMyproc1
3.5.2存储过程
存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它,存储过程是数据库中的一个重要对象;存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数,输出参数,返回单个或多个结果集以及返回值;
创建存储
use毕业生就业管理
go
createprocedureMyproc1as
select*fromstudent
查看存储
execsp_helptextMyproc1
删除存储
dropprocedureMyproc1
3.5.3触发器
触发器是在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。
触发器是一个特殊的存储过程。
常见的触发器有三种:
分别应用于Insert,Update,Delete事件。
创建一个安全触发器safety,禁止删除当前数据库中的任何表。
use毕业生就业管理
go
createtriggersafety
ondatabase
fordrop_table
asprint'不能删除数据表'
rollback
Go
3.6数据库运行与维护
3.6.1运行
insertintoadmin(adminid,adminmm)
values('999001','王凯'),('999002','张艺兴');
insert
intojyxx('xh','xm','qyxh','qyxc','rzsj','gzqk','fkxx','fksj')
values('002','xxx','88001','阿里巴巴','2018-9-1','6000','非常好','2018-10-1'),
('003','xx','88002','腾讯','2018-9-2','7000','还不错','2018-10-2'),
('005','xx','88003','小米','2018-9-3','5000','不怎么适合','2018-10-3');
insertintostudent(xh,xm,nl,xb,sfzh,dh,dz,zy,jyzt,mm)
values('001'xx','20','男','410*********','1522*****','xx省xx市','信息管理与信息系统','无业','66001'),
('002','xxx','19','男','4102*********','1522*****1','xx省xx市','体育','在岗','66002'),
('003','xx','18','男','4102*********','152*****','xx省xx市','计算机科学与技术','在岗','66003'),
('004','xxx','17','女','410*********','152*****','xx省xx市','物联网','无业','66004'),
('005','xx','16','女','410*********','152*****','xx省xx市','数字媒体与技术','在岗','66005');
insertintozpxx('qyxh','qyxm','zw','rs','xl','zy','gz','yy')
values('88001','阿里巴巴','管理','10','硕士','体育','6000','四级'),
('88002',