资源描述
目 录
1 前言 1
2 需求分析 1
2.1 课程设计目的 1
2.2 课程设计任务 1
2.3 设计环境 1
2.4 开发语言 1
3 分析和设计 2
3.1 系统E-R模型 2
3.2 表空间及表的设计 3
3.3 视图设计 5
3.4 存储过程、函数、包的设计 12
3.5 触发器设计 13
3.6 角色、用户、权限设计 13
3.7 备份方案设计 14
4 课程设计总结 14
参考文献 15
致 谢 15
1 前言
Oracle是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。我们这次的课题是机票预定信息系统,我们小组的成员分别为:蔡丽、雷霞霏、黄红玲。蔡丽负责表空间及表的设计和视图的设计,雷霞霏负责触发器设计 角色、用户、权限设计备份方案设计国,黄红玲负责E-R图的设计和文档的整合。
2 需求分析
2.1 课程设计目的
通过大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。
2.2 课程设计任务
航班基本信息的录入,包括航班的编号、飞机名称、机舱等级等。机票信息,包括票价、折扣、当前预售状态及经手业务员等。客户基本信息,包括姓名、联系方式、证件及号码、付款情况等。按照一定条件查询、统计符合条件的航班、机票等。
2.3 设计环境
(1)WINDOWS操作系统
(2)Oracle数据库管理系统
2.4 开发语言
PL/SQL语言
3 分析和设计
3.1 系统E-R模型
图3.1机票预定信息E-R图
3.2 表空间及表的设计
表3.1 航班基本信息表
字段名
数据类型
长度
约束
航班编号
char
10
主键
飞机名称
varchar
50
Not null
起飞地
varchar
50
Not null
目的地
varchar
50
Not null
起降时间
varchar
20
Not null
机舱等级
varchar
10
null
备注
varchar
50
null
航班基本信息表的基本查询语句
select * from 航班基本信息
select * from 航班基本信息
where 起飞地='首都国际机场'and 起降时间 ='09:25-13:55'
select * from 航班基本信息
where 起飞地='首都国际机场'and 起降时间 like '%-18:%'
select* from 航班基本信息
where 起飞地='浦东国际机场'and 目的地='素万那普国际机场'
select* from 航班基本信息
where 航班编号 like'Cz%'
表3.2 机票基本信息表
字段名
数据类型
长度
约束
机票编号
varchar
20
主键
航班编号
char
10
Not null
票价
int
Not null
折扣
varchar
10
Not null
预售状态
varchar
20
Not null
经办人员
char
10
Not null
备注
varchar
50
null
客户编号
int
null
机票基本信息表的基本查询语句
select* from 机票基本信息
select* from 机票基本信息
where 票价<4000
select* from 机票基本信息
where 票价 between 4000 and 5000
select*from 机票基本信息
where 票价 >5000and 预售状态='已售'
表3.3 客户信息表
字段名
数据类型
长度
约束
客户姓名
char
10
Not null
性别
char
10
Not null
联系电话
varchar
20
Not null
身份证号
varchar
18
主键
付款情况
int
Not null
客户编号
int
null
备注
varchar
50
null
客户信息表的基本查询语句
select * from 客户信息
select * from 客户信息
where 性别='女'
select * from 客户信息
where 身份证号 like'4311%'
select * from 客户信息
where 身份证号 like'4675%'
select* from 客户信息
where 身份证号 like'4667%'and 性别='男'
表3.4 员工基本信息表
字段名
数据类型
长度
约束
员工编号
char
10
主键
姓名
char
10
Not null
性别
char
10
Not null
联系电话
varchar
20
Not null
备注
varchar
50
null
员工基本信息表的基本查询语句
select * from 员工基本信息
select *from 员工基本信息
where 员工编号='1'
select *from 员工基本信息
where 姓名 like'%红%'
select * from 员工基本信息
where 性别='女'
表3.5 订票表
字段名
数据类型
长度
约束
航班编号
char
10
Not null
员工编号
char
10
Not null
身份证号
char
18
Not null
机票编号
varchar
20
主键
客户编号
int
null
备注
varchar
50
null
订票表的基本查询语句
select * from 订票
select * from 订票
where 航班编号 like'oz%'
select * from 订票
where 身份证号 like'431%'
select * from 订票
where 员工编号='3'and 航班编号 like'cz%'
3.3 视图设计
航班基本信息视图
create view 航班基本信息视图
As
select 航班编号, 飞机名称, 起飞地, 目的地, 起降时间, 机舱等级, 备注
from 航班基本信息
where 起飞地='首都国际机场'and 起降时间 ='09:25-13:55'
机票基本信息视图
create view 机票基本信息视图
as
select 机票编号, 航班编号, 票价,折扣,预售状态, 经办人员, 备注,客户编号
from 机票基本信息
where 票价 >5000and 预售状态='已售'
客户信息视图
create view 客户信息视图
As
select 客户姓名, 性别, 联系电话,身份证号,付款情况, 客户编号, 备注
from 客户信息
where 身份证号 like'4667%'and 性别='男'
员工基本信息视图
create view 员工基本信息视图
as select 员工编号, 姓名,性别 ,联系电话, 备注
from 员工基本信息
where 姓名 like'%红%'
订票视图
create view 订票视图
as select 航班编号, 员工编号,身份证号,机票编号 ,客户编号, 备注
from 订票
where 姓名 like'%红%'
3.4 存储过程、函数、包的设计
(1) 是否有票的存储过程
CREATE PROCEDURE 机票_售票情况
@已售 varchar(20)
AS SELECT * FROM 机票基本信息 WHERE 预售状态 ='已售'
go
exec 机票_售票情况 0 --0有票,已售
(2) 需求航班
CREATE PROCEDURE 航班_情况
@航班编号 char(10)
AS SELECT * FROM 航班基本信息 WHERE 航班编号 like'oz%'
go
exec 航班_情况 航班编号='oz334'
(3) 航班查询
CCREATE PROCEDURE P2_航班情况
@HB char(10)
AS
IF exists (select * from 航班基本信息 where 航班编号=@HB)
return 1
else return 0
go --执行存储过程
declare @result int
exec @result=P2_航班情况 'CA918'
if @result =1
print '有您查询的这个航班'
else
print '没有您要查询的这个航班'
3.5 触发器设计
CREATE TRIGGER 添加员工_触发器
ON 员工基本信息 AFTER INSERT
AS
IF EXISTS
( SELECT * FROM INSERTED
WHERE LEFT(员工编号,9) IN ('CA','CZ','3U')
)
PRINT '添加成功!'
ELSE
BEGIN
PRINT '添加信息有错,请核实后再添加!'
ROLLBACK TRANSACTION
END
INSERT INTO 员工基本信息(员工编号,姓名,性别,联系电话,备注 )
VALUES('4' , '贺希', '男', '18947845968',NULL)
INSERT INTO 员工基本信息(员工编号,姓名,性别,联系电话,备注 )
VALUES('4' , '贺七', '男', '18947845968',NULL)
3.6 角色、用户、权限设计
建立三个用户:user1,user2,user3
(1)使第一个用户user1和db2admin一起成为admin组的成员,使admin具有SYSADM的权限。
(2)使第二个用户user2拥有DBADM的权限。
(3)将创建的表之一上的所有特权授予给自己建立的用户user3。
3.7 备份方案设计
系统运行中难免会发生故障,因此需要定期做备份,管理员可以在系统不繁忙的时候进行备份,因此,如果可以的话,可定制作一个定时定期备份方案。备份类型为完全备份,实现次数可重复,频率可每周一次或更多。
4 课程设计总结
为期两周的课程设计转眼间已经圆满的结束了,虽然本次的课程设计的时间并不是很长,但给了我很欢乐,也让我收获很多。
从自己选题开始,刚开始看到老师给我们发的课程设计的模板,感觉上很简单,但真正做起来的话,还是有难度的,关键是自己不知道该怎么下手。最后选一个比较简单的题目——机票预定信息系统。
本次课程设计原本这次的课程设计要求的用oracle数据库来做的,由于我的电脑是Win7的系统,装了两次都没有成功,所以就没有装了。本来是想在室友的电脑上做的,但打开的oracle这个数据库,研究了很久,都没有明白是怎么回事,后来决定用SQL server 2008数据库做。其实说到底,是自己上课的时候没有听,只能怪自己不够努力。
通过本次的课程设计,使我对数据库有了更深的认识,比如:触发器的设计,说实在的,我一点的不知道怎么做,不了解什么是触发器,上网查询了很多资料,也不是很明白,后面是看了一下书本,才明白是怎么回事;还有那个存储过程的设计,我也不知道怎么做,也是在看了书本才有了一写的了解,在室友的帮助下,总算把这次的课程设计圆满的完成了。
在这次的课程设计中,让我对自己有了一个新的认识。有的东西看着很简单,以为自己可以完成,不要轻易的下结论,要自己动手去做了,才下结论。虽然两周的课程设计已经过去了,但是数据库的学习似乎才刚刚开始,以后要学习的还很多很多,前面要走的路还很远很远。而我也要整装待发,在摸索中前进,在前进中不断探索,让自己走得更远更长。
参考文献
[1] 崔巍.数据库应用与设计[M].北京:清华大学出版社,2009.
[2] 陈志泊.数据库原理及应用教程[M].2版.北京:人民邮电出版社,2008.
[3] 黄维通.SQL Server 数据库技术与应用[M].北京:中国铁道出版社,2011.
[4] 王珊,萨师煊.数据库系统概论[M].4版.北京:高等教育出版社,2006.
[5] 陈学平.动态数据库网页设计与制作[M].北京:电子工业出版社,2007.
[6] 潘永惠.数据库系统设计与项目实践[M].北京:科学出版社,2011.
致 谢
这次实验得以圆满完成,没有老师的督导,同学的支持,室友的鼓励,要想完成这次实验是难以想象的。
在这次设计过程中,体现出自己单独设计能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。
在这里首先我要感谢的是我的指导李仲生老师,老师平日里工作繁多,但在我们做程序设计时,他对我们程序的细心认真的辅导,耐心的教我们如何写程序报告。让我对面向对象程序设计这门课程也越来越了解,越来越感兴趣了。除了敬佩李仲生老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。
其次我要感谢所有帮助过我的人以及我的队友们,衷心的感谢你们给予我无私的帮助,如果没有你们的帮助,要想完成这次实验是有困难的。
最后感谢我的学校——邵阳学院,感谢学校给了我这次的学习机会,为我打下计算机的的专业基础。
15
展开阅读全文