数据库原理与运用课程设计
课程设计题目:职业介绍信息管理系统
一、上课的时间及地点
试验时间:2012年春季学期第一周到第十四周(总共14周)
二、课程设计题目:职业介绍信息管理系统(26)
要求:
实现职业分类、职业信息管理(职业号、职业类型号、用人单位、需求人数、已聘人数、备注);
实现用人单位、求职者信息管理,求职者信息设有聘用标志,默认值为未聘用;
实现求职者和职业匹配管理(职业号、求职人员编号);
实现费用管理,包括用人单位交费情况、求职人员交费情况;
创建触发器,求职成功时,自动修改相应职业的已聘人数和相应职工的聘用标志为‘聘用成功’;另外如果相应职业的已聘人数不得超过需求人数;
创建存储过程查询各种职业的需求数和已聘用数;
创建规则限制求职者的性别,必须为‘男’或‘女’;
建立表间关系。
三、需求分析
需求分析的任务是确定系统必须完成哪些工作,也就是对系统提出完整、准确。
清晰,具体的要求。
需求分析的结果是系统开发的基础。
调查资料发现,职业介绍管理系统应具备的职能有;求职者和用人单位的基本信息、收费信息,介绍人员信息登记,求职者与与用人单位可以发布求职招聘信息,并进行相关信息匹配。
四、数据表
职业分类表
用人单位表
职业信息表
介绍人员表
求职者信息表
五、表属性
1职业分类表
2用人单位表
3职业信息表
4 介绍人员表
5求职者信息表
六、根据表格绘制E-R图如下:
七、根据E-R图写出关系模型;
职业分类(职业类型号、职业类型名)
用人单位(单位编号、单位名称、职业类型号)
职业信息(职业号、职业名称、单位编号、职业类型号、专业要求、已聘人数、需求人数、工资)
求职者信息(求职者编号、姓名、性别、攻读专业、是否聘用、月薪要求)
费用管理(求职者编号、用人单位编号、介绍人员编号是否缴费)
匹配(求职者编号、职业号、数量)
介绍人员表(介绍人员编号、姓名、电话)
八、创建数据库:
Create database 职业介绍信息管理系统
SQL截图如下:
九、创建表:
1 职业分类表
Create table职业分类表
(职业类型号int PRIMARY KEY ,职业类型名char(10) )
2 用人单位表
Create table 用人单位表
(单位编号int PRIMARY KEY ,单位名char(10),
职业类型号int )
3 职业信息表
Create table职业信息表
(职业号int PRIMARY KEY ,职业名称char(10),
单位编号int,
职业类型号int,
专业要求char(10),
已聘人数int,
需求人数int,
工资int )
4 求职者信息表
Create table求职者信息表
(求职者编号int PRIMARY KEY,姓名char(10),
性别char(10),
攻读专业char(10),
是否聘用char(10)
月薪要求int )
5 介绍人员表
Create table 介绍人员表
(求职者编号int PRIMARY KEY,用人单位编号int PRIMARY KEY,是否缴费char(10) )
6 匹配管理表
Create table匹配管理表
(求职者编号int PRIMARY KEY,
职业号int )
十、select查询语句
(1) 查询职业信息管理表中的所有记录的SQL语句及执行结果Select 职业号,职业名称,单位编号,职业类型号,专业要求,已聘人数,需求人数,工资
From 职业信息表
相应截图如下:
(2)查询求职者信息管理表中工资要求在5000-6000之间的SQL语句及执行结果
Select *
From 求职者信息表
Where 月薪要求between 5000 and 6000
截图:
(3)查询求职者信息管理表中性别为‘女’的SQL语句及执行结果Select *
From 求职者信息表
Where 性别=‘女’
截图:
(4)查询以单位号降序显示用人单位表的所有记录的SOL语句及执行结果
Select *
From 用人单位表
ORDER BY 单位编号DESC
(5) 查询求职者信息管理表中求职人员编号为2、3或5的SQL语句及执行结果
Select *
From 求职者信息表
WHERE 求职者编号IN(2、3、5)
十一、创建视图
(1)建立试图view1,查询所有求职者的求职人员编号,姓名,性别,攻读专业,月薪要求,是否聘用
CREATE view view1
As
Select 求职者编号,姓名,性别,攻读专业,月薪要求,是否聘用
From 求职者信息表
(2)建立试图view2,查询用人单位的单位编号,单位名称,职业类型号及需求人数和已聘人数
CREATE view view2
As
Select 用人单位表.单位编号,用人单位表.单位名称,职业分类表.职业类型号,职业信息表.需求人数,职业信息表.已聘人数
From 用人单位表,职业分类表,职业信息表
Where用人单位表.单位编号= 职业信息表.单位编号,职业分类表.职业类型号= 职业信息表.职业类型号
十二、创建索引
在职业介绍管理系统数据库中的介绍人员表中的介绍人员编号创建一个非聚集索引的T-SQL
Create index index1 on 介绍人员表(介绍人员编号)
go
十三、deleted触发器
创建触发器,当删除用人单位表中的所有信息记录时,同时删除职业信息表中的工资记录
Create trigger trig1 on 用人单位表
For delete
As
Delete 职业信息表where 职业信息表.用人单位编号= (select 用人单位编号from delete )
go
十四insert触发器
在介绍人员表中插入一个介绍人员(3,有,1234567),创建触发器,并实现其功能。
Create trigger trig2 on 介绍人员表
For insert
As
Insert 介绍人员表values(3,有,1234567)
十五、创建触发器:
(1)求职成功时,自动修改相应职业的已聘人数,另外相应职业的已聘人数不得超过需求人数;
Create trigger depart on 职业信息表
For update
As
Update 职业信息表set 已聘人数=( select 已聘人数from inserted ) Where 已聘人数=( select 已聘人数from deleted) and 已聘人数<=需
求人数
(2)自动修改相应职工的聘用标志为“聘用成功”
Create trigger depart2 on 求职者信息表
For update
As
Update 求职者信息表set 是否聘用= ( select 是否聘用from inserted)
Where 是否聘用=( select 是否聘用from deleted)
十六、创建存储过程
(1)创建存储过程查询各种职业的需求数和已聘用数;
Create procedure worker
As
Select 需求人数,已聘人数
From 职业信息管理表
十七、创建规则
(1)创建规则限制求职者的性别,必须为‘男’或‘女’;
Create rule sex
As
@性别=‘男’or @性别=’女’
go
十八、表间关系图如下:
十九、总结
学习了一个学期的数据库,我简单地了解数据库的建立、查询、删除和查询表中的相关信息以及也让我熟悉了企业管理器的使用。
所以按着书本简单的设计了数据库“职业介绍信息管理系统”,在设计时用T-SQR语句(select语句)来查询表中的相关信息。
创建了视图view、存储过程procedure触发器trigger、规则rule来实现相关的功能。
这次课程设计的感觉还是有点收获的,能够借此机会回顾知识、牢记知识、复习知识。
但也同时存在问题。
比如:丢了书本就不会了,有点依赖与书本及自己没有创新。