大学生就业咨询系统数据库课程设计报告

摘 要

文章根据所学的数据库原理与程序设计的知识,针对大学生就业咨询系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发大学生就业咨询系统的目的。

关键词

就业咨询系统;信息录入、查询。

Abstract

According to the learned database principles and program design knowledge, according to the college students' employment consult system, the system requirement analysis, system design, database design, code, test etc. Complete the questions required functions, so as to achieve mastery development college students' employment consultant system purposes.

Key words

Vocational Consulting; Message Input; Information Services

目 录

1. 系统功能需求分析 1

2. 数据库设计分析 2

3. 数据库整体逻辑结构设计 5

4. 数据库实现 6

4.1 建立数据库和表 6

4.2 建立视图 9

4.3 建立存储过程 10

4.4 建立触发器 11

5. 课程设计总结 13

参考文献 14

谢 辞 15

大学生就业咨询系统数据库的设计与实现

Graduates Vocational Consulting System Design and Implementation of the Database

数学与信息工程学院 计算机教育

周楠

指导教师:郭贤海

1. 系统功能需求分析

本次试验的名称是大学生就业咨询系统,因此为了保证可以成功的查询人才需求的信息,用人单位是必不可少的。对于每一个用人单位,它都应该包括单位号码,单位名称,电话号码等属性,他对人才的需求包括年份、专业、学历、人数。其中,单位号码唯一标识用人单位。用人单位要招聘特定的专业方面的人才。为了能够对所要招聘的专业的相关信息进行管理,应记录专业的信息,包括专业号码,专业名称,其中,专业号码是唯一标识专业的。而为了准确定位用人单位,就需要存储每个用人单位所对应的地区信息,包括地区号码,地区名,其中地区号是唯一的。据此,我实现了大学生就业咨询系统的数据库设计。系统主要实现了一下几个方面的功能:

1. 大学生功能

对大学生而言,方便毕业生进行就业信息检索,可考虑将就业信息在网上进行发布。为大学生提供有选择性的要求,并输出有用的信息、

2. 管理员功能

对管理员而言,可以更改数据库的所有内容,可添加、查询、修改、删除用人单位的信息,设置用人单位招聘的相关内容。可有选择地录入招聘信息,为大学生就业方向查询并自动在信息表里插入相应的要求的内容。

2. 数据库设计分析

针对以上的功能分析,对数据库的设计做了以下分析。考虑到就业查询的特殊要求,数据库的设计应该包含以下信息:

(1)对用人单位的基本信息进行录入、修改、删除等。

(2)实现毕业生专业信息的维护。

(3)定时发布用人单位的毕业生需求信息。

(4)方便的实现对人才需求信息的检索。

(5)对用人单位的级别能够自动进行变更。

由此分析一共设计了五张表用来存储所有的用人单位信息和招聘信息:company表(包含属性:单位号码、单位名称、电话号码)、major表(包含属性:专业信息、专业号码)、region表(包含属性:地区号码、地区名称)、belong表(包含属性:用人单位号码、地区号)、request表(包含属性:用人单位号码、专业号码、年份、人数、专业、学历)。

并为每个表设置了能唯一确定各个表的属性。其中company表里设置属性(单位号码)为主关键字,并在major表里设置属性(专业号码)为主关键字,在region表里设置属性(地区号码)为主关键字,在belong表里设置属性(用人单位号码、地区号)为主关键字,在request表里设置属性(用人单位号码)为主关键字。

表间对应的局部和整体E-R图如下:

(1)

大学生就业咨询系统数据库课程设计报告

大学生就业咨询系统数据库课程设计报告

大学生就业咨询系统数据库课程设计报告

大学生就业咨询系统数据库课程设计报告

大学生就业咨询系统数据库课程设计报告

大学生就业咨询系统数据库课程设计报告

整体E-R图

把上面的E-R图转换为关系模型为(关系的码用下横线黑体标出)

用人单位(单位号码,单位名称,电话号码);

要求(用人单位号码,专业号码,年份,人数,专业,学历);

专业信息(专业号码,专业名称);

属于(用人单位号码,地区号);

地区(地区号码,地区名称);

3. 数据库整体逻辑结构设计

(1)下面是将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定:

1)company表,如表1所示。

表1 company表

2)belong表,如表2所示。

表2 belong表

3)major表,如表3所示。

表3 major表

4)region表,如表4所示。

表4 region表

5)request表,如表5所示。

表5 request表

(2)所有表之间的关系图,如图2所示。

大学生就业咨询系统数据库课程设计报告

图2 所有表之间的关系图

4. 数据库实现

4.1 建立数据库和表

USE [大学生就业咨询系统]

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[belong](

[用人单位号码] [nchar](10) NOT NULL,

[地区号] [nchar](10) NOT NULL,

CONSTRAINT [PK_belong] PRIMARY KEY CLUSTERED

(

[用人单位号码] ASC,

[地区号] 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

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[request](

[用人单位号码] [nchar](10) NOT NULL,

[专业号码] [nchar](10) NOT NULL,

[年份] [nchar](10) NOT NULL,

[人数] [nchar](10) NOT NULL,

[专业] [nchar](10) NOT NULL,

[学历] [nchar](10) NOT NULL,

CONSTRAINT [PK_request] PRIMARY KEY CLUSTERED

(

[用人单位号码] ASC,

[专业号码] 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

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[region](

[地区号码] [nchar](10) NOT NULL,

[地区名称] [nchar](10) NOT NULL,

CONSTRAINT [PK_region] PRIMARY KEY CLUSTERED

(

[地区号码] 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

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[major](

[专业信息] [nchar](10) NOT NULL,

[专业号码] [nchar](10) NOT NULL,

CONSTRAINT [PK_major] PRIMARY KEY CLUSTERED

(

[专业号码] 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

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE TABLE [dbo].[company](

[单位号码] [nchar](10) NOT NULL,

[单位名称] [nchar](10) NOT NULL,

[电话号码] [nchar](10) NOT NULL,

CONSTRAINT [PK_company] PRIMARY KEY CLUSTERED

(

[单位号码] 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

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

4.2 建立视图

Create view dbo.view_1

As

SELECT dbo.company.单位号码, dbo.request.用人单位号码 AS Expr2, dbo.major.专业号码, dbo.region.地区号码, dbo.belong.用人单位号码 AS Expr1,

dbo.belong.地区号 AS Expr3

FROM dbo.belong INNER JOIN

dbo.request ON dbo.belong.用人单位号码 = dbo.request.用人单位号码 INNER JOIN

dbo.region ON dbo.belong.地区号 = dbo.region.地区号码 INNER JOIN

dbo.major ON dbo.request.专业号码 = dbo.major.专业号码 INNER JOIN

dbo.company ON dbo.belong.用人单位号码 = dbo.company.单位号码 AND dbo.request.用人单位号码 = dbo.company.单位号码

4.3 建立存储过程

create procedure [dbo].[b]

@地区名称 nchar(10)

as

begin

select 单位名称,电话号码,地区名称,专业信息,学历,人数,年份

from belong,company,region,major,request

where 地区名称=@地区名称 and belong.用人单位号码 =request.用人单位号码

and belong.用人单位号码 =company.单位号码

and company .单位号码 =request .用人单位号码

and belong .地区号 =region .地区号码

and major .专业号码 =request .专业号码

end

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

create procedure [dbo].[a]

@单位名称 nchar(10)

as

begin

select 单位名称,电话号码,地区名称,专业信息,学历,人数,年份

from belong,company,region,major,request

where 单位名称=@单位名称 and belong.用人单位号码 =request.用人单位号码

and belong.用人单位号码 =company.单位号码

and company .单位号码 =request .用人单位号码

and belong .地区号 =region .地区号码

and major .专业号码 =request .专业号码

end

GO

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

create procedure [dbo].[c]

@专业信息 nchar(10)

as

begin

select 单位名称,电话号码,地区名称,专业信息,学历,人数,年份

from belong,company,region,major,request

where 专业信息=@专业信息 and belong.用人单位号码 =request.用人单位号码

and belong.用人单位号码 =company.单位号码

and company .单位号码 =request .用人单位号码

and belong .地区号 =region .地区号码

and major .专业号码 =request .专业号码

end

GO

4.4 建立触发器

了实现表间数据的一致性和完整性,创建了触发器,具体代码如下:

/*company表触发器*/

create trigger danweihaoma

on company

after update

as

begin

update request

set 单位号码=(select 单位号码 from inserted)

where 单位号码 in ( select 单位号码 from deleted)

END

GO https://upload.fanwen118.com/wk-img/img100/4051757_1.jpg

5. 课程设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设计增加很多认识,在拿到课程设计题目时,没有像以前一样马上开始动手写代码,我先做了整体的分析,把要设计的表,表的属性,表间的关系全部弄清楚,并画了相应的关系图和E-R图,从而也就基本形成了这次设计的整体构架。在写代码的过程中明显感觉到很轻松,就是照着所设计的思路一步一步地进行。并得到以下总结:首先,流程是一切的根源,进度控制是项目顺利进行的基础。没有大局观,面对问题和变更就会不知所措了。其次,构架是很重要的,整体框架搭好,具体细节实现起来就是顺理成章的事了。最后,实践比一切空谈和理论更能学到东西。平时学的那些理论都不过是皮毛罢了,一旦不用很快就忘记,始终要在实践中才会发现问题才会努力去解决才能成长。

看到题目后就一直在思考怎么设计好这个数据库,从理论到实践,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,毕竟是第一次做这样的设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,例如在设计整体架构设计各表之间的关系时,总是考虑不够周到,数据的完整性和一致性把握不准。理论不够规范化,关系模式不够优越。为了实现这些,我也参阅了很多关于数据库设计方面的书,从中受益匪浅。在这次课程设计过程中,也有很多没有想到的地方,通过和张老师的交流,完善了不少的功能。在此表示感谢。

最后,在这次课程设计过程中,深刻感觉到自己知识的缺乏,还需要课外继续学习,不断完善和增加自身的知识和经验。

参考文献

[1] 詹英.数据库技术与应用——SQL Server 2005教程.北京:清华大学出版社, 20## 9

[2] 黄德才.数据库原理及其应用教程.北京:科学出版社, 20## 6

[3] 李劲. ASP数据库程序设计[J].上海:计算机研究, 2000,(4): 14-16.

[4] Liu Guangyuan,Yu Juegang, A Fast Learning Algorithm via A Hybrid Approach[J]. Journal of UEST of China, Vol.27, No.3, Jun.1998. 14-16.

[5] http://www.iti.tzc.edu.cn/ (台州学院计算机基础教学网)

[7] 计算机丛书编委会.frontpage 20## 网页制作实用教程[M].北京:希望电子出版社, 1997. 14-16

[8] 廖彬山, 高峰霞. ASP动态网站开发教程[M].北京:清华大学出版社, 1997. 14-16

[9] 数据库应用教程(Visual C#.NET +SQL Server),高等教育出版社2010 6

[10] 数据库应用教程(Visual Basic +SQL Server),清华大学出版社.1997. 14-16

谢 辞

感谢郭贤海老师平常的仔细指导,感谢同学的细心帮助。