《数据库应用系统开发》课程设计论文
题 目:职业介绍信息管理系统
学 号: 专业班级: * 名: 指导老师: 完成日期:
********** 计本13级(1)班 * *
叶培顺、林基艳 2015-12-24
目录
1需求分析........................................................................................................................................ 3
1.1设计者系统需求分析 ......................................................................................................... 3 1.2设计目的............................................................................................................................. 4 1.3问题描述............................................................................................................................. 4 1.4数据流图............................................................................................................................. 4
1.4.1总数据流图(第一层) .......................................................................................... 4 1.42第二层数据流图 ....................................................................................................... 5 1.5系统功能模块图 ................................................................................................................. 6 1.6数据字典............................................................................................................................. 7 2概念结构设计阶段 ........................................................................................................................ 8
2.1引言 .................................................................................................................................... 8 2.2任务与目标 ......................................................................................................................... 8 2.3结果展示............................................................................................................................. 8 3逻辑设计阶段 .............................................................................................................................. 12
3.1引言 .................................................................................................................................. 12 3.2逻辑设计阶段的任务与目标 ........................................................................................... 12 3.3数据模型的优化 ............................................................................................................... 13 3.4数据库模式定义 ............................................................................................................... 13
3.4.1关系模式 ................................................................................................................ 13 3.4.2关系模式表 ............................................................................................................ 13
4物理设计阶段 .............................................................................................................................. 15 5数据库实施.................................................................................................................................. 15
5.1定义数据库结构 ............................................................................................................... 16 5.2设置主键和约束 ............................................................................................................... 22 5.3设置触发器 ....................................................................................................................... 24 5.4创建存储过程 ................................................................................................................... 25 5.5表间关系........................................................................................................................... 26 6心得体会...................................................................................................................................... 27
1需求分析
1.1设计者系统需求分析
在目前这个繁杂的工作大潮中,企业与工作者的关系一直待以解决,而企
业发展正是社会经济法发展的支柱,解决就业和劳动力分配问题显得尤为重要。
一套职业介绍信息管理系统对于企业和求职者都是必不可少的。 对于企业来说,效率和利益最高。职业信息介绍系统作为中介系统周密的规划了企业的需求功能,将繁杂的人工的处理数据淘汰,对员工数据信息可进行快速的增加,查询删改等功能,大大地提高了企业的效率;
对于求职者来说,合适的工作和薪金是核心问题。庞大的职业信息介绍系统,迅速查找感兴趣的工作,只需提交个人简历和工资要求,便可以在最短时间内帮助你找到合适的工作。
为了满足企业和求职者的共同需求,基于SQL server 2008技术实现并设计一个职业介绍信息管理系统。
1.2设计目的
课程设计题目:职业信息介绍管理系统
1)实现职业分类、职业信息管理(职业号、职业类型号、用人单位、需求人数、已聘人数、备注);
2)实现用人单位、求职者信息管理、求职者信息设有聘用标志、默认值为未聘用;
3)实现求职者与职业匹配管理(职业号、求职人员编号);
4)实现费用管理,包括用人单位交费情况,求职人员交费情况;
5)创建触发器:求职成功后。自动修改相应职业的的已聘人数和相应的职工聘用标志为“聘用成功”;另外相应职业的已聘人数不得超过需求人数; 6)创建存储过程查询各种职业的需求数和已聘人数; 7)创建规则限制求职者的性别,必须为“男”或“女”: 8)建立表间关系。
1.3问题描述
基于SQL server2008技术和java基础代码编写以myeclipse为开发环境,
实现一个职业信息介绍管理系统,分别实现基本的增删改查四大功能,建立触发器,建立表间关系,列出其数据关系,数据流图,E-R图,关系模型,运行检测以及数据的维护问题。
1.4数据流图
1.4.1总数据流图(第一层)
由用人单位、中介人员和求职人员三个主要元素组成,用人单位向中介人员
提交招聘信息,中介人员给予反馈信息;求职人员向中介人员提交求职信息,中介人员给予反馈信息。中介人员就是管理使用职业信息介绍系统的人员。如图1.1。
总数据流图1.1
1.42第二层数据流图
第二层数据流图相对于总数据流图则显得更加具体化、清晰化,利用数据流动表示其之间的关系。如图1.2.
中介人员(本系统管理者)通过对求职信息和招聘信息的匹配管理,对信息惊醒职业分类和存储;另外当用人单位招聘成功和求职者应聘成功是需要进行收费管理;
用人单位提交招聘信息,每当一次招聘成功是需要交纳一定的费用;
求职人员提交求职信息,当被应聘是也需要交纳一定的费用。
Ps:箭头方向是数据流动方向,数据只能按照箭头方向流动。
图1.2第二层数据流图
系统的第二层数据流图,主要表现招聘系统、应聘系统、费用管理、职业管理几个重要的功能模块。
1.5系统功能模块图
1.6数据字典
表1-6 数据项表
编号 D-01 D-02 D-03 D-04 D-05 D-06 D-07 D-08 D-09 D-10 D-11 D-12 D-13 D-14 D-15 D-16 D-17 D-18 D-19 D-20 D-21 D-22 D-23
名称
Professional type Professional names Introduce numbers Company numbers Company names Professional type Professional names Professional pro Professional hired Professional need Professional wages Introduce names Introduce phones Applicant numbers Applicant names Applicant sex Applicant pro Applicant wages Applicant state Companyf ire Applicant fire
Company numbers Applicant numbers
含义
职业类型号 职业类型名 介绍人员编号 用人单位编号 用人单位名称 职业号 职业名称 职业专业 职业已聘人数 职业需聘人数 职业工资 介绍人员姓名 介绍人员电话 求职者编号 求职者姓名 求职者性别 求职者专业 求职者月薪要求 求职者聘用状态 用人单位交费 求职者交费 用人单位编号 求职者编号
存储结构 Char(10) Char(9) Char(9) Char(9) Char(20) Char(10) Char(20) Char(10) Char(10) Char(5) Char(5) Char(5) Char(10) Char(9) Char(9) Char(10) Char(2) Char(10) Char(5) Char(8) Char(4) Char(10) Char(10)
2概念结构设计阶段
2.1引言
在此阶段我们首先需要对系统运行建模,采用常用的概念模型E-R模型,
为了更清晰简便模型建造,采用局部到整体的方法,在此基础上优化和美化。 按照用户的观点对数据信息进行建造,利用实体关系图来实现,他描述系统中各个实体之间的关系,是系统特性和静待描述,数据字典也将是系统进一步的开发的基础。
2.2任务与目标
1.以二层数据流图为切入点,画出各个主体与属性之间的E-R图 2.各个局部E-R图合并,局部实现统一
3.在整体E-R图上消除冲突,消除冗余,实现美化优化。
2.3结果展示
1.职业分类E-R图主要分为职业类型号、姓名、介绍人员编号。
职业分类职业类型号职业类姓名介绍人员编号
图1.3职业分类E-R图
2.用人单位E-R图主要有单位名称、单位编号、职业类型号。
用人单位单位名称单位编号图1.4 用人单位E-R图
职业类型号
3.介绍人员E-R图主要由介绍人员电话姓名编号组成。
介绍人员姓名电话图1.5 介绍人员E-R图
介绍人员编号
4.费用管理E-R图主要有职业类型号,求职者交费和单位交费。
费用管理职业类型号求职者交费图1.6费用管理E-R图
单位交费
5.求职者信息E-R图分别包括了求职者姓名,性别,专业,聘用状态,工资以及
求职者编号。
求职者信息求职者编号工资姓名聘用状态性别
图1.7求职者信息E-R图
专业
6.职业信息E-R图中职业信息的属性有职业号,职业名称,单位编号,职业类型号,专业要求,已聘人数需聘人数和工资8项。
职业信息职业号需聘人数职业名称单位编号职业类型号
图1.8职业信息E-R图
工资专业要求已聘人数
下图3.3.7为全局E-R图,为了避免繁琐和内容过大,所有的实体属性都已省略,体现的是一个整体的经过优化的全局E-R图。主要体现了职业分类、用人单位、
职业信息、介绍人员、费用管理和求职者信息之间的关系。
职业分类用人单位职业信息属于发布匹介绍人员
整理费用管理交费求职者信息配3逻辑设计阶段
收费交费图1.9 全局E-R图
3.1引言
每个数据库系统不可缺少的重要环节—逻辑设计,需要对数据信息进行整理和美化,可以使数据库更加清晰,更加适于使用。
3.2逻辑设计阶段的任务与目标
核心任务为将概念设计中的概念模型转化为具体的DBMS所支持的数据模
型,然后对其进行整理和美化,可分为三步: 1.命名问题,可用原名也可用重命名。
2.非原子属性问题,非原子属性问题可以纵行或横行展开。 3.联系转换问题,联系可用关系表示。
3.3数据模型的优化
数据路逻辑设计的结果不是唯一的。为了进一步提高数据库应用系统的性能,还应该适当修改数据模型的结构,提高查询的速度。
3.4数据库模式定义 3.4.1关系模式
1.职业分类(职业类型号、职业类型名、介绍人员编号) 2.用人单位(用人单位编号、用人单位名称、职业类型号)
3.职业信息(职业号、职业名称、用人单位编号、职业类型号、专业、已聘人数、需聘人数、工资)
4.介绍人员(介绍人员编号、姓名、电话)
5.求职者信息(求职者编号、姓名、性别、专业、是否聘用、月薪要求) 6.费用管理(职业类型号、单位交费、求职者交费)
3.4.2关系模式表
优化后可得此表:
表4-1. 职业分类表 名称
职业类型号 职业类姓名 介绍人员编号
数据类型 Char(10) Char(10) Char(9)
约束条件 无 无 无
表4-2 用人单位表
是否为空 否 是 是
备注 无 无 无
名称 用人单位 单位名称 职业类型号
数据类型 Char(9) Char(20) Char(10)
约束条件 无 无 无
表4-3 职业信息表
是否为空 否 是 否
备注 无 无 无
名称 职业号 职业类型号 职业类型名 单位编号 专业要求 已聘人数 需聘人数 工资
数据类型 Char(10) Char(20) Char(9) Char(10) Char(10) Char(5) Char(5) Char(5)
约束条件 无 无 无 无 无 无 无 无
是否为空 否 是 是 是 是 否 否 否
备注 无 无 无 无 无 无 无 无
表4-4 介绍人员信息表
名称 介绍人员编号 姓名 电话
数据类型 Char(10) Char(10) Char(10)
约束条件 无 无 无
是否为空 否 是 否
备注 无 无 无
表4-5 求职者信息表
名称 求职者编号 姓名 性别 职业号 是否聘用 月薪要求
数据类型 Char(10) Char(10) Char(10) Char(10) Char(10) Char(10)
约束条件 无 无
Check_sex 无
默认“未聘用” 无
是否为空 否 是 是 是 是 是
备注 无 无 无 无 无 无
表4-6费用管理信息表
名称
职业类型号 单位交费 求职者交费 介绍人员编号
数据类型 Char(10) Char(10) Char(10) Char(10)
约束条件 无 无 无 无
是否为空 否 是 是 否
备注 无 无 无 无
4物理设计阶段
数据库最终是要存储在物理设备上,数据在物理设备上的存储结构和存储方
法为数据库的物理结构。它依赖于计算机系统,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,这就是数据库的物理设计。
可分为两步:
1.确定数据库存储结构;
2.设计数据库存储路径以及数据库存储位置;
5数据库实施
对数据库的物理设计初步评价完成后就可以开始建立数据库了,数据库实施
主要包括工作如下:
1.用DDL定义数据库结构; 2.组织数据入库;
3.编制调试应用程序; 4.数据库试运行。
5.1定义数据库结构
我们用SQL语句定义一下结构: 分别定义六个表:
USE [职业介绍信息管理系统修正版] GO
/****** Object: Table [dbo].[费用管理表] 12/24/2015 08:38:41 ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[费用管理表]( [职业类型号] [char](10) NULL, [求职者交费] [int] NULL, [用人单位交费] [int] NULL,
[介绍人员编号] [char](1) NULL
) ON [PRIMARY] GO
SET ANSI_PADDING OFF
Script Date: GO
ALTER TABLE [dbo].[费用管理表] WITH CHECK ADD CONSTRAINT [FK_费用管理表_职业分类表] FOREIGN KEY([职业类型号])
REFERENCES [dbo].[职业分类表] ([职业类型号]) GO
ALTER TABLE [dbo].[费用管理表] CHECK CONSTRAINT [FK_费用管理表_职业分类表] GO
CREATE TABLE [dbo].[介绍人员表](
[介绍人员编号] [char](10) NULL, [介绍人员姓名] [varchar](50) NULL, [介绍人员电话] [char](15) NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[求职者信息表](
[求职者编号] [char](10) NOT NULL,
[求职者姓名] [varchar](50) NULL, [求职者性别] [char](2) NULL, [求职者电话] [char](15) NULL, [求职者专业] [varchar](50) NULL, [求职者聘用状态] [varchar](50) NULL, [求职者工资要求] [int] NULL, [职业类型号] [char](1) NULL,
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_PADDING OFF GO
ALTER TABLE [dbo].[求职者信息表] WITH CHECK ADD CONSTRAINT [check_sex] CHECK (([求职者性别]='男' OR [求职者性别]='女')) GO
ALTER TABLE [dbo].[求职者信息表] ADD DEFAULT ('未聘用')
FOR [求职者聘用状态] GO
CREATE TABLE [dbo].[用人单位表](
[用人单位编号] [char](10) NOT NULL, [用人单位名称] [varchar](50) NULL, [用人单位电话] [char](15) NULL, [职业类型号] [char](10) NULL, [用人单位地址] [varchar](50) NULL)
CREATE TABLE [dbo].[职业分类表](
[职业类型号] [char](10) NOT NULL, [职业类型名] [varchar](50) NULL, [介绍人员编号] [char](10) NULL)
CREATE TABLE [dbo].[职业信息表](
[职业号] [char](10) NOT NULL, [职业类型号] [char](10) NULL, [职业名称] [varchar](50) NULL, [专业要求] [varchar](50) NULL, [已聘人数] [int] NULL, [需聘人数] [int] NULL, [工资] [int] NULL)
5.2设置主键和约束
Check约束:
实现性别只能取‘男’或者‘女’。 //添加约束
alter table 求职者信息表 add constraint check_sex
check(Applicantsex = '男' or Applicantsex‘女’) 默认约束:
求职者默认为‘未聘用’状态
USE [职业介绍信息管理系统修正版] GO
ALTER TABLE [dbo].[求职者信息表] ADD DEFAULT ('未聘用') FOR [求职者聘用状态] GO
5.3设置触发器
USE [职业介绍信息管理系统修正版]GO
/****** Object: Trigger [dbo].[depart] Script Date: 12/24/2015 08:29:23 ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
ALTER trigger [dbo].[depart] on [dbo].[职业信息表] For update As
Update 职业信息表 set 已聘人数=( select 已聘人数 from inserted )
Where 已聘人数=( select 已聘人数 from deleted) and 已聘人数<=需聘人数
5.4创建存储过程
USE [职业介绍信息管理系统修正版] GO
/****** Object: StoredProcedure [dbo].[worker] Script Date: 12/25/2015 09:03:26 ******/ SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
ALTER procedure [dbo].[worker] As
Select 职业类型号,需聘人数,已聘人数 From 职业信息表
5.5表间关系
6心得体会
两周的时间很快过去了,数据库内容和代码已经基本实现,虽然对于操作表图还是写代码都显得特别的生疏迟钝,但不得不说这次数据库课程设计使我受益匪浅。
以往的理论知识与上机实践有很大区别,数据库建立操作以及查询各方面资料使我对数据库这门课程有了新的认识,也增加了对其的浓厚兴趣。不得不说数据库是计算机各门技术的基础和必须元素,所以说要想学好计算机,掌握数据库知识必不可少。
在建立数据库期间,如何建立外键,如何建立触发器,如何自动生成数据关系图刚开始都是问题,但是通过翻阅课本和网上浏览相关资料,这些问题都得到了解决,而且学会了一个课程设计的每个步骤。 经过这次课程设计,不仅对数据库更加的了解深入,而且对学习有了一个新的态度。关于数据库范式和聚簇的一些相关知识,我仍需要在这方面努力,争取下次课程设计能做得更好。
因篇幅问题不能全部显示,请点此查看更多更全内容