机票预定系统数据库设计.docx
- 文档编号:13232976
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:27
- 大小:360.28KB
机票预定系统数据库设计.docx
《机票预定系统数据库设计.docx》由会员分享,可在线阅读,更多相关《机票预定系统数据库设计.docx(27页珍藏版)》请在冰点文库上搜索。
机票预定系统数据库设计
数据库课程设计任务书
题目机票预定系统数据库设计数据库的设计与实现
起讫日期2009年12月28日 至2010年1月13日
学生姓名马楠专业班级学号R英语073班12号
所在院系 软件学院
指导教师李媛媛职称讲师
所在单位软件开发与测试教研室
2009年12月27日
摘要
随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费着也越来越多,预定查询系统因此在各机票预定网点中的作用也越显重要,因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统更现紧迫。
机票预定系统应克服存储乘客信息少,查询效率低下等问题外,更重要的是其安全性,可靠性,这关系到航班和乘客的安全及准确,本系统因面向广大机票预定网点,因此要能在售票网点中普及,则需要开发一个功能全,价格能被顾客所接受的系统。
关键字:
机票预定系统;订票系统;退定系统;航班查询
第一章引言
鉴于飞机对安全性要求较高,如何提高机票订购效率,而且也要保证整个航班的安全性,对机票预定系统的研究有很必要。
1.1课题简介
目前社会已经进入一个高速运作的时代,在交通方面要求更高,时间概念很强,为了满足人们这一要求,各个交通部门都在研发更加方便,快捷的业务办理方式。
在航空方面,对业务办理要求更高,更严。
因此,就机票预定系统的研发是很重要的,目的在于开发出一个更有效,安全性更好的系统。
1.2设计目标与任务
机票预定系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
主要任务是进行底层数据库设计,这是整个系统开发的关键之处。
第二章需求分析
2.1需求分析的任务
充分了解客户的需求,以及整个预定业务的流程,仔细分析各个子系统,做好各个子系统之间数据如何传送等问题,形成需求分析说明书。
主要从处理对象、功能分析和安全性以及完整性三个方面去开展研究。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
2.2需求分析的过程
2.2.1处理对象分析
机票预定系统主要是针对客户而言的,至于客户是通过何种方式去预定,对此并没有做更深入的研究。
总的来讲,机票预定系统要处理的对象就是客户信息和系统信息。
细分后就是订票信息、退票信息、查询信息以及有关部门的通缉信息。
对每个信息都有相应的数据,个信息之间数据都存在一定的关系。
就订票信息涉及数据说明如下:
航班号(HBID)、乘客姓名(LKName)、乘客证件号(LKID)、订票数(JYSL)等等。
2.2.2具体功能分析
机票预定系统有三个子系统组成:
订票系统、查询系统和退票系统,分别对应了订票功能、退票功能和查询功能。
订票功能中要有航班审查和身份验证,要有这两个处理过程,最后,登记领取取票凭证;退票功能实现比较简单,只要检验是否是可退机票即可,在退票过后要对订票信息作修改,这是该功能中最重要的一点;查票功能设计起来比较简单,但它的功能十分强大,以后对不同的查询需求都要有相应的处理结果,对此阶段没有更进一步的研究,具体功能实现还有待完善。
2.2.3安全性和完整性要求分析
为了保证航班信息不会出现重大差错,业务员只能由售票和查询机票的权限,对于航班信息更改的权限要给航空公司的主管。
整个机票预定系统的数据是共享的。
然而,从系统开发的角度上看,共享会给设计和调试带来困难。
因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。
这样,也能提供系统的强壮性,对安全性也有一定的帮助。
由于系统的数据是共享的,在不同的预定地点,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。
要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。
对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。
2.3需求分析阶段阶段成果
2.3.1业务流程分析
经过可行性分析和初步需求调查,抽象出该系统业务流程图。
图2---1业务流程图
(1)查询处理
名称:
机票查询
输入:
查询航班信息
输出:
查询结果
处理:
在所涉及的表中查询所需记录
(2)订票处理
名称:
机票订购
输入:
输入订票信息
输出:
订票结果
处理:
如果成功,对相应的数据进行更改,否则不修改
(3)退票处理
名称:
机票退订
输入:
机票信息
输出:
退票结果
处理:
如果退定成功,对相应的数据进行修改,否则不修改
2.3.2数据字典
(1)数据项
表2----1数据项
数据项
数据项含义
数据类型
宽度
与其他数据项的逻辑关系
可否为空值
是否为主(P)/外(F)键
HBID
航班号
char
10
NO
YES(P)
JX
航班名称
char
10
NO
MDD
航班目的地
char
10
NO
CFD
航班出发地
char
10
NO
JG
票价
int
8
QFSJ
起飞时间
time
NO
DDSJ
到达时间
time
NO
HARQ
航班日期
date
YS
剩余票数
int
4
LKID
旅客身份证
char
21
NO
YES(P)
LKTEL
旅客联系电话
char
15
LKSEX
旅客性别
char
4
NO
LKNAME
旅客姓名
char
12
NO
JYSL
交易数量
Int
3
JYLX
交易类型
char
4
NO
JYZE
交易总额
float
8
订票数*单张票价
NO
YZZT
验证状态
char
4
NO
TJID
嫌疑人证件号
char
21
NO
YES(P)
TJNAME
嫌疑人名
char
12
NO
TJSex
嫌疑人性别
char
2
NO
(2)数据结构
表2-----2数据结构
数据结构名
含义说明
组成
旅客信息
旅客的个人信息,用于对旅客的确认
旅客证件号,旅客姓名,旅客性别,旅客联系电话
旅客订票信息
已订票的旅客的记录
旅客证件号,航班号,订票数量,取票状态
航班信息
旅客的航班信息,根据旅客的旅行时间和目的地确定
航班号,飞机型号,航班状态,航班目的地,航班时间,票价,额定人数,余票数
交易信息
订票/退票结果
旅客证件号,航班号,交易类型,交易总额
验证信息
身份验证的信息
验证状态,嫌疑人证件号,旅客证件号
第三章概念结构设计
3.1概念结构设计的方法与步骤
1.概念结构设计的方法
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。
对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
2.概念结构设计的步骤
第一步是进行局部视图的设计:
由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。
因此我们先逐一的设计分E-R图。
第二步是进行视图的集成:
各子系统的E-R图设计好之后,下一步就是要将所有的分E-R图合成一个系统的总E-R图,一般有两个方式,多个分E-R图一次集成,另一种是一次集成两个分E-R图。
我想采用一次集成两个分E-R图的方式。
3.2数据抽象与局部视图设计
(1)订票子系统E-R图
图3---1订票子系统E-R图
(2)退票子系统E-R图
图3---2退票子系统E-R图
(3)旅客验证E-R图
图3---3旅客验证E-R图
3.3视图的集成
经过逐步细化再进行每两个一集成初步形成一个E-R图
图3---4整体E-R图
实体与联系的属性如下:
航班:
{航班号,飞机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数}
旅客:
{旅客证件号,旅客姓名,旅客性别,旅客联系电话}
订票:
{交易编号,交易类型,交易数量,总额}
退票:
{交易编号,交易类型,交易数量,总额}
通缉单:
{嫌疑人证件号,嫌疑人名,备注}
验证:
{嫌疑人证件号,旅客证件号,验证状态}
第四章逻辑结构设计
概念设计完成后,获得的是各个实体之间的抽象联系,要将它与具体的DBMS向结合,则必须要将E-R图转化为具体的数据模型,这就是逻辑设计的目标。
其任务就是转化为什么样的数据模型,以及如何转化的完善些,对转化结果进行更进一步的优化。
4.1E-R图转化为关系模型
转化结果如下:
航班:
{航班号,飞机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数}
旅客:
{旅客证件号,旅客姓名,旅客性别,旅客联系电话}
交易:
{交易编号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额}
验证:
{旅客证件号,嫌疑人证件号,验证状态}
说明:
“航班号”表示主码,“旅客证件号”表示外码,“旅客姓名”表示一般属性
各个关系中不存在插入异常,删除异常和大量冗余,而且每个关系的没个属性都是不可再分割的,既满足1NF,对于每一个非主属性完全函数依赖与码,而且在每个关系中没有传递函数以来关系,即满足2NF以及3NF。
4.2数据模型的优化
1.将转化的关系模式进行优化,最终达到第三范式。
(1)航班(航班号,飞机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数)
航班号→飞机型号,航班号→航班出发地,航班号→航班目的地,航班号→起飞时间,航班号→到达时间,航班号→票价,航班号→余票数
(2)旅客(旅客证件号,旅客姓名,旅客性别,旅客联系电话)
旅客证件号→旅客姓名,旅客证件号→旅客性别,旅客证件号→旅客联系电话
(3)交易(交易编号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额)
交易编号→旅客证件号,交易编号→航班号,交易编号→交易类型,交易编号→交易数量,交易编号→交易状态,交易编号→交易总额
(4)验证(旅客证件号,嫌疑人证件号,验证状态)
旅客证件号→嫌疑人证件号,旅客证件号→验证状态
2.对各关系模式间数据依赖进行极小化处理,消除冗余
航班号→飞机型号,航班号→航班出发地,航班号→航班目的地,航班号→起飞时间,航班号→到达时间,航班号→票价,航班号→余票数,旅客证件号→旅客姓名,旅客证件号→旅客性别,旅客证件号→旅客联系电话,交易编号→旅客证件号,交易编号→航班号,交易编号→交易类型,交易编号→交易数量,交易编号→交易状态,交易编号→交易总额,旅客证件号→嫌疑人证件号,旅客证件号→验证状态
3.看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解
最终分解成第三范式:
(航班号,飞机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数)
(旅客证件号,旅客姓名,旅客性别,旅客联系电话)
(交易编号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额)(旅客证件号,嫌疑人证件号,验证状态)
4.3数据库的结构
根据总体结构图设计各表的结构,其相应标的定义如下
(1)航班关系表
表4---1航班关系表
属性
属性说明
数据类型
宽度
是否为空值
是否为主(P)/外键(F)
HBID
航班号
char
10
NO
YES(P)
JX
飞机型号
char
10
NO
CFD
航班始发地
char
10
NO
MDD
航班目的地
char
10
NO
QFSJ
起飞时间
timestamp
NO
DDSJ
到达时间
timestamp
NO
HARQ
航班日期
date
NO
JG
票价
int
NO
YS
余票数
int
NO
(2)旅客关系表
表4---2旅客关系表
属性
属性说明
数据类型
宽度
是否为空值
是否为主(P)/外键(F)
LKID
旅客证件号
char
21
NO
YES(P)
LKName
旅客姓名
char
12
NO
LKSex
旅客性别
char
4
LKTEL
旅客联系电话
char
15
(3)交易关系表
表4---3交易关系表
属性
属性说明
数据类型
宽度
是否为空值
是否为主(P)/外键(F)
LKID
旅客证件号
char
21
NO
YES(F)
HBID
航班号
char
10
NO
YES(F)
JYLX
交易类型
char
10
NO
JYTZ
交易状态
char
10
NO
JYSL
交易数量
int
3
JYZE
交易总额
int
4
NO
(4)验证关系表
表4---4验证关系表
属性
属性说明
数据类型
宽度
小数点
是否为空值
是否为主(P)/外键(F)
LKID
旅客证件号
char
18
NO
YES(F)
YZZT
验证状态
char
4
NO
TJID
嫌疑人证件号
char
18
NO
YES(F)
(5)嫌疑人关系表
表4---5嫌疑人关系表
属性
属性说明
数据类型
宽度
小数点
是否为空值
是否为主(P)/外键(F)
TJID
嫌疑人证件号
char
21
NO
YES(P)
TJSex
嫌疑人性别
char
2
TJName
嫌疑人名
char
12
NO
4.3.2完整型与安全性设计
(1)交易数量不得大于余票数
(2)交易类型分为:
前台交易和网上交易;
(3)交易状态分为:
订票和退票;
4.4功能模块图
图4---1功能模块图
第五章数据库物理设计
5.1实例及数据库的创建.
用自己的名字创建实例YY03MN,创建数据库MN12.
5.2索引的建立
先给出索引的相关定义,然后自己选择表或者属性建立索引(唯一索引、聚簇索引),要求表和索引存储在不同的表空间里,写出相关的SQL语句。
索引就是加快检索表中数据的方法。
数据库的索引类似于书籍的索引。
在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息。
在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。
(1)建立唯一索引
Createuniqueindex起飞时间
on航班关系表(QFSJ);
(2)建立聚簇索引
CONNECTTOMN12;
CREATEINDEXADMINISTRATOR.验证ONADMINISTRATOR.验证关系表(LKIDASC)CLUSTERPCTFREE10ALLOWREVERSESCANSPAGESPLITSYMMETRICCOLLECTSAMPLEDDETAILEDSTATISTICS;
CONNECTRESET;
5.3表空间的建立
给出表空间的相关定义,然后建立需要用到的表空间(至少2个以上,存放在目录容器和文件容器中),写出相关的SQL语句。
表空间的相关定义:
表空间是数据库和储存在数据库中的表之间的逻辑层,数据库中的所有对象都储存在表空间中。
创建表空间
connecttoMN12;
createregulartablespacedms02managedbydatabaseusing(file'c:
\dms\dms02'14)extentsize2;
createlongtablespacedms03managedbydatabaseusing(file'c:
\dms\dms03'728)extentsize8;
createregulartablespacedms04managedbydatabaseusing(file'c:
\dms\dms04'22)extentsize2;
createregulartablespacedms05managedbydatabaseusing(file'c:
\dms\dms05'16)extentsize2;
createregulartablespacedms06managedbydatabaseusing(file'c:
\dms\dms06'
40)extentsize4;
createregulartablespacesms01managedbysystemusing('d:
\sms\sms01','c:
\sms\sms02')extentsize4;
5.4触发器的建立
触发器的建立实现在一定日期内订飞机票有7折的优惠
CONNECTTOMN12^
CREATETRIGGERADMINISTRATOR.航班关系表AFTERUPDATEOFJGONADMINISTRATOR.航班关系表REFERENCINGNEWASnFOREACHROWMODEDB2SQL
WHEN(n.HARQbetween'2010-1-1'and'2010-1-30')
BEGINATOMIC
insertinto航班关系表(JG)
values(JG*0.7);
END^
CONNECTRESET^
第六章数据库的实施
数据库的具体实施以及运行,如下列图所示:
1.表的建立与数据的载入
(1)航班关系表
图6--1航班关系表
(2)旅客关系表
图6--2旅客关系表
(3)交易关系表
图6--3交易关系表
(4)嫌疑人关系表
图6--4嫌疑人关系表
(5)验证关系表
图6--5验证关系表
2.插入数据
(1)向嫌疑人关系表中插入数据
图6--6对嫌疑人关系表进行插入操作
插入数据后的结果
图6--7对嫌疑人关系表进行插入操作后结果
(2)向旅客关系表中插入数据
图6--8对旅客关系表进行插入操作
插入数据后的结果
图6--9对旅客关系表进行插入操作的结果
(3)向航班关系表中插入数据
图6--10对航班关系表进行插入操作
插入数据后的结果
图6--11对航班关系表进行插入操作的结果
3.删除数据
删除嫌疑人关系表中欧阳
图6--12删除嫌疑人关系表中欧阳操作
删除后的结果
图6--13删除嫌疑人关系表中欧阳的结果
4.查询操作
(1)对某位旅客进行查询
图6--14对某为旅客进行的查询操作
查询后的结果
图6--15对某为旅客进行的查询操作的结果
(2)查询当日的航班
图6--16对当日航班的查询操作
查询结果
图6--17对当日航班的查询操作的结果
(3)退票查询
图6--18对退票进行查询操作
查询结果
图6--19对退票进行查询操作的结果
(4)订票查询
图6--20对订票进行查询操作
查询结果
图6--21对订票进行查询操作的结果
5.更改操作
(1)退票操作
图6--22进行退票操作
操作后的结果
图6--23进行退票操作的结果
(2)订票操作
图6--24进行订票操作
操作后的结果
图6--25进行订票操作的结果(交易关系表)
图6--26进行订票操作的结果(旅客关系表)
总结
连续两周的机票预定系统设计感受最深的就是机票预定比其他交通工具预定要复杂的多,严格的多。
订飞机票必须通过身份验证,而订火车票你可以不拿任何凭证。
还有就是登机过程也比较复杂,在登机前拿机票去换取登机座位卡,以这张卡就可以去登机,而且你的座位是在这时候才可以确定的,座位的前后由你前来换登机卡的时间有关,与买票时间无关。
这对本系统关系并不是很大,不过有一定的关系,比如系统在打印帐单的时候就不需要再打座位号了,因为这不是系统要做的事。
由于能力问题以及时间限制,该系统的分析还很不到位,有很多的问题没有解决好,比如旅客是通过旅行社来订票的,这样订票的信息有可能会有些变化。
对此,该系统并不做更深的研究,目前只是为了满足最一般的需求而设计的。
参考文献
[1]王珊,陈红·数据库系统原理教程·清华大学出版社,1998,7
[2]杨鑫华数据库原理与DB2应用教程清华大学出版社2007,8
[3]岳昆数据库技术-设计与应用实例清华大学出版社
[4]严晖刘卫国数据库技术-设计与应用实践教程—SQLServer清华大学出版社
[5]刘卫国数据库技术与应用—SQLServer清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机票 预定 系统 数据库 设计