1、 数据库课程设计任务书题 目 机票预定系统数据库设计数据库的设计与实现 起讫日期 2009 年 12 月 28 日 至 2010 年 1 月 13 日 学生姓名 马楠 专业班级学号 R 英语 073 班 12 号 所在院系 软件学院 指导教师 李媛媛 职称 讲师 所在单位 软件开发与测试教研室 2009 年 12 月 27 日摘要-1-摘 要随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费着也越来越多,预定查询系统因此在各机票预定网点中的作用也越显重要,因此,开发一套具有完整的存储,查询,核对,打印机票功能的实时机票预定系统更现紧迫。机票预定系统应克服存储乘客信息少,
2、查询效率低下等问题外,更重要的是其安全性,可靠性,这关系到航班和乘客的安全及准确,本系统因面向广大机票预定网点,因此要能在售票网点中普及,则需要开发一个功能全,价格能被顾客所接受的系统。关键字:机票预定系统;订票系统;退定系统;航班查询目录目录第一章引言 11.1 课题简介 .11.2 设计目标与任务 .1第二章 需求分析 22.1 需求分析的任务 .22.2 需求分析的过程 .22.3 需求分析阶段阶段成果 3第三章 概念结构设计 63.1 概念结构设计的方法与步骤 .63.2 数据抽象与局部视图设计 63.3 视图的集成 7第四章 逻辑结构设计 94.1 E-R 图转化为关系模型 .94.
3、2 数据模型的优化 94.3 数据库的结构 114.4 功能模块图 13第五章 逻辑结构物理设计 14第六章 逻辑结构的实施 16总 结 25参考文献 26大连交通大学数据库课程设计-0-第一章 引言鉴于飞机对安全性要求较高,如何提高机票订购效率,而且也要保证整个航班的安全性,对机票预定系统的研究有很必要。1.1 课题简介目前社会已经进入一个高速运作的时代,在交通方面要求更高,时间概念很强,为了满足人们这一要求,各个交通部门都在研发更加方便,快捷的业务办理方式。在航空方面,对业务办理要求更高,更严。因此,就机票预定系统的研发是很重要的,目的在于开发出一个更有效,安全性更好的系统。1.2 设计目
4、标与任务机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。主要任务是进行底层数据库设计,这是整个系统开发的关键之处。大连交通大学数据库课程设计-1-第二章 需求分析2.1 需求分析的任务充分了解客户的需求,以及整个预定业务的流程,仔细分析各个子系统,做好各个子系统之间数据如何传送等问题,形成需求分析说明书。主要从处理对象、功能分析和安全性以及完整性三个方面去开展研究。并要求
5、客户机的界面要简单明了,易于操作,服务器程序利于维护。2.2 需求分析的过程2.2.1 处理对象分析机票预定系统主要是针对客户而言的,至于客户是通过何种方式去预定,对此并没有做更深入的研究。总的来讲,机票预定系统要处理的对象就是客户信息和系统信息。细分后就是订票信息、退票信息、查询信息以及有关部门的通缉信息。对每个信息都有相应的数据,个信息之间数据都存在一定的关系。就订票信息涉及数据说明如下:航班号(HBID)、乘客姓名(LKName)、乘客证件号(LKID)、订票数(JYSL)等等 。2.2.2 具体功能分析机票预定系统有三个子系统组成:订票系统、查询系统和退票系统,分别对应了订票功能、退票
6、功能和查询功能。订票功能中要有航班审查和身份验证,要有这两个处理过程,最后,登记领取取票凭证;退票功能实现比较简单,只要检验是否是可退机票即可,在退票过后要对订票信息作修改,这是该功能中最重要的一点;查票功能设计起来比较简单,但它的功能十分强大,以后对不同的查询需求都要有相应的处理结果,对此阶段没有更进一步的研究,具体功能实现还有待完善。大连交通大学数据库课程设计-2-2.2.3 安全性和完整性要求分析为了保证航班信息不会出现重大差错,业务员只能由售票和查询机票的权限,对于航班信息更改的权限要给航空公司的主管。整个机票预定系统的数据是共享的。然而,从系统开发的角度上看,共享会给设计和调试带来困
7、难。因此,应该提供灵活的配置,使各个分系统能够独立运行,而通过人工干预的手段进行系统数据的交换。这样,也能提供系统的强壮性,对安全性也有一定的帮助。由于系统的数据是共享的,在不同的预定地点,机票是共享数据,所以如何保证这些数据的一致性,是系统必须解决的问题。要解决这一问题,要有一定的人员维护数据的一致性,在数据录入处控制数据的去向,并且要求对数据库的数据完整性进行严格的约束。对于输入的数据,要为其定义完整性规则,如果不能符合完整性约束,系统应该拒绝该数据。2.3 需求分析阶段阶段成果2.3.1 业务流程分析经过可行性分析和初步需求调查,抽象出该系统业务流程图。图 2-1 业务流程图大连交通大学
8、数据库课程设计-3-(1)查询处理名称:机票查询输入:查询航班信息输出:查询结果 处理:在所涉及的表中查询所需记录(2)订票处理名称:机票订购输入:输入订票信息输出:订票结果处理:如果成功,对相应的数据进行更改,否则不修改(3)退票处理名称:机票退订输入:机票信息 输出:退票结果处理:如果退定成功,对相应的数据进行修改,否则不修改2.3.2 数据字典(1)数据项表 2-1 数据项数据项 数据项含义 数据类型 宽度与其他数据项的逻辑关系可否为空值是否为主(P)/外(F)键HBID 航班号 char 10 NO YES(P)JX 航班名称 char 10 NOMDD 航班目的地 char 10 N
9、OCFD 航班出发地 char 10 NOJG 票价 int 8QFSJ 起飞时间 time NO大连交通大学数据库课程设计-4-数据项 数据项含义 数据类型 宽度与其他数据项的逻辑关系可否为空值是否为主(P)/外(F)键DDSJ 到达时间 time NOHARQ 航班日期 dateYS 剩余票数 int 4LKID 旅客身份证 char 21 NO YES(P)LKTEL 旅客联系电话 char 15LKSEX 旅客性别 char 4 NOLKNAME 旅客姓名 char 12 NOJYSL 交易数量 Int 3JYLX 交易类型 char 4 NOJYZE 交易总额 float 8 订票数
10、*单张票价 NOYZZT 验证状态 char 4 NOTJID 嫌疑人证件号 char 21 NO YES(P)TJNAME 嫌疑人名 char 12 NOTJSex 嫌疑人性别 char 2 NO(2)数据结构表 2-2 数据结构数据结构名 含义说明 组成旅客信息旅客的个人信息,用于对旅客的确认旅客证件号,旅客姓名,旅客性别,旅客联系电话旅客订票信息 已订票的旅客的记录 旅客证件号,航班号,订票数量,取票状态航班信息旅客的航班信息,根据旅客的旅行时间和目的地确定航班号,飞机型号,航班状态,航班目的地,航班时间,票价,额定人数,余票数交易信息 订票/退票结果 旅客证件号,航班号,交易类型,交易
11、总额 验证信息 身份验证的信息 验证状态,嫌疑人证件号,旅客证件号大连交通大学数据库课程设计-5-第三章 概念结构设计3.1 概念结构设计的方法与步骤1 概念结构设计的方法概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。2 概念结构设计的步骤第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分 E-R 图。第二步是进行视图的集成:各子系统的 E-R 图设计好之后,下一步就是要将所有的分 E-R
12、图合成一个系统的总 E-R 图,一般有两个方式,多个分 E-R 图一次集成,另一种是一次集成两个分 E-R 图。我想采用一次集成两个分 E-R 图的方式。3.2 数据抽象与局部视图设计(1)订票子系统 E-R 图图 3-1 订票子系统 E-R 图(2)退票子系统 E-R 图大连交通大学数据库课程设计-6-图 3-2 退票子系统 E-R 图(3)旅客验证 E-R 图图 3-3 旅客验证 E-R 图3.3 视图的集成经过逐步细化再进行每两个一集成初步形成一个 E-R 图 图 3-4 整体 E-R 图 大连交通大学数据库课程设计-7-实体与联系的属性如下:航班:航班号,飞机型号,航班出发地,航班目的
13、地,起飞时间,到达时间,票价,余票数旅客:旅客证件号,旅客姓名,旅客性别,旅客联系电话订票:交易编号,交易类型,交易数量,总额 退票:交易编号,交易类型,交易数量,总额 通缉单:嫌疑人证件号,嫌疑人名,备注验证:嫌疑人证件号,旅客证件号,验证状态大连交通大学数据库课程设计-8-第四章 逻辑结构设计概念设计完成后,获得的是各个实体之间的抽象联系,要将它与具体的 DBMS 向结合,则必须要将 E-R 图转化为具体的数据模型,这就是逻辑设计的目标。其任务就是转化为什么样的数据模型,以及如何转化的完善些,对转化结果进行更进一步的优化。4.1 E-R 图转化为关系模型转化结果如下:航班:航班号,飞机型号
14、,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数旅客:旅客证件号,旅客姓名,旅客性别,旅客联系电话交易:交易编号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额验证:旅客证件号,嫌疑人证件号,验证状态 说明:“航班号”表示主码, “旅客证件号”表示外码, “旅客姓名”表示一般属性各个关系中不存在插入异常,删除异常和大量冗余,而且每个关系的没个属性都是不可再分割的,既满足 1NF,对于每一个非主属性完全函数依赖与码,而且在每个关系中没有传递函数以来关系,即满足 2NF 以及 3NF。4.2 数据模型的优化1.将转化的关系模式进行优化,最终达到第三范式。(1)航班(航班号,飞
15、机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数)航班号飞机型号,航班号航班出发地,航班号航班目的地,航班号起飞 时间,航班号到达时间,航班号票价,航班号余票数(2)旅客(旅客证件号,旅客姓名,旅客性别,旅客联系电话)大连交通大学数据库课程设计-9-旅客证件号旅客姓名,旅客证件号旅客性别,旅客证件号旅客联系电话(3)交易(交易编号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额)交易编号旅客证件号,交易编号航班号,交易编号交易类型,交易编号交易数量,交易编号交易状态,交易编号交易总额(4)验证(旅客证件号,嫌疑人证件号,验证状态 )旅客证件号嫌疑人证件号,旅客证件号
16、验证状态2.对各关系模式间数据依赖进行极小化处理,消除冗余航班号飞机型号,航班号航班出发地,航班号航班目的地,航班号起飞时间,航班号到达时间,航班号票价,航班号余票数,旅客证件号旅客姓名,旅客证件号旅客性别,旅客证件号旅客联系电话,交易编号旅客证件号,交易编号航班号,交易编号交易类型,交易编号交易数量,交易编号交易状态,交易编号交易总额,旅客证件号嫌疑人证件号,旅客证件号验证状态3.看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解最终分解成第三范式:(航班号,飞机型号,航班出发地,航班目的地,起飞时间,到达时间,票价,余票数)(旅客证件号,旅客姓名,旅客性别,旅客联系电话)(交易编
17、号,旅客证件号,航班号,交易类型,交易数量,交易状态,交易总额)(旅客证件号,嫌疑人证件号,验证状态 )4.3 数据库的结构根据总体结构图设计各表的结构,其相应标的定义如下(1)航班关系表表 4-1 航班关系表属性 属性说明 数据类型 宽 是否为空值 是否为主(P)/大连交通大学数据库课程设计-10-度 外键(F)HBID 航班号 char10NO YES(P)JX 飞机型号 char10NOCFD 航班始发地 char10NOMDD 航班目的地 char10NOQFSJ 起飞时间 timestamp NODDSJ 到达时间 timestamp NOHARQ 航班日期 date NOJG 票价
18、 int NOYS 余票数 int NO(2)旅客关系表表 4-2 旅客关系表属性 属性说明数据类型宽度 是否为空值是否为主(P)/外键(F)LKID 旅客证件号 char 21 NO YES(P)LKName 旅客姓名 char 12 NOLKSex 旅客性别 char 4LKTEL 旅客联系电话 char 15(3)交易关系表表 4-3 交易关系表属性 属性说明 数据类型 宽度 是否为空值是否为主(P)/外键(F)LKID 旅客证件号 char 21 NO YES(F)HBID 航班号 char 10 NO YES(F)JYLX 交易类型 char 10 NOJYTZ 交易状态 char
19、10 NO大连交通大学数据库课程设计-11-JYSL 交易数量 int 3JYZE 交易总额 int 4 NO(4)验证关系表表 4-4 验证关系表属性 属性说明数据类型宽度 小数点 是否为空值是否为主(P)/外键(F)LKID 旅客证件号 char 18 NO YES(F)YZZT 验证状态 char 4 NOTJID 嫌疑人证件号 char 18 NO YES(F)(5)嫌疑人关系表表 4-5 嫌疑人关系表属性 属性说明数据类型宽度 小数点是否为空值是否为主(P)/外键(F)TJID 嫌疑人证件号 char 21 NO YES(P)TJSex 嫌疑人性别 char 2TJName 嫌疑人名
20、 char 12 NO4.3.2 完整型与安全性设计(1)交易数量不得大于余票数(2)交易类型分为:前台交易和网上交易;(3)交易状态分为:订票和退票;4.4 功能模块图大连交通大学数据库课程设计-12-图 4-1 功能模块图大连交通大学数据库课程设计-13-第五章 数据库物理设计5.1 实例及数据库的创建.用自己的名字创建实例 YY03MN,创建数据库 MN12.5.2 索引的建立先给出索引的相关定义,然后自己选择表或者属性建立索引(唯一索引、聚簇索引) ,要求表和索引存储在不同的表空间里,写出相关的 SQL 语句。索引就是加快检索表中数据的方法。数据库的索引类似于书籍的索引。在书籍中,索引
21、允许用户不必翻阅完整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。(1) 建立唯一索引Create unique index 起飞时间on 航班关系表 (QFSJ);(2)建立聚簇索引CONNECT TO MN12;CREATE INDEX ADMINISTRATOR.验证 ON ADMINISTRATOR.验证关系表 (LKID ASC) CLUSTER PCTFREE 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS ;
22、CONNECT RESET;5.3 表空间的建立给出表空间的相关定义,然后建立需要用到的表空间(至少 2 个以上,存放在目录容器和文件容器中) ,写出相关的 SQL 语句。表空间的相关定义:表空间是数据库和储存在数据库中的表之间的逻辑层,数据库中的所有对象都储存在表空间中。创建表空间connect to MN12;create regular tablespace dms02 managed by database using (file c:dmsdms02 14) extentsize 2;大连交通大学数据库课程设计-14-create long tablespace dms03 mana
23、ged by database using (file c:dmsdms03 728) extentsize 8;create regular tablespace dms04 managed by database using (file c:dmsdms04 22) extentsize 2;create regular tablespace dms05 managed by database using (file c:dmsdms05 16) extentsize 2;create regular tablespace dms06 managed by database using (
24、file c:dmsdms0640) extentsize 4;create regular tablespace sms01 managed by system using (d:smssms01,c:smssms02) extentsize 4;5.4 触发器的建立触发器的建立实现在一定日期内订飞机票有 7 折的优惠CONNECT TO MN12CREATE TRIGGER ADMINISTRATOR.航班关系表 AFTER UPDATE OF JG ON ADMINISTRATOR.航班关系表 REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL W
25、HEN ( n.HARQ between 2010-1-1 and 2010-1-30)BEGIN ATOMICinsert into 航班关系表 (JG )values (JG*0.7);ENDCONNECT RESET大连交通大学数据库课程设计-15-第六章 数据库的实施数据库的具体实施以及运行,如下列图所示:1.表的建立与数据的载入(1)航班关系表图 6-1 航班关系表(2)旅客关系表图 6-2 旅客关系表(3)交易关系表大连交通大学数据库课程设计-16-图 6-3 交易关系表 (4)嫌疑人关系表图 6-4 嫌疑人关系表(5)验证关系表图 6-5 验证关系表大连交通大学数据库课程设计-1
26、7-2.插入数据(1)向嫌疑人关系表中插入数据图 6-6 对嫌疑人关系表进行插入操作 插入数据后的结果图 6-7 对嫌疑人关系表进行插入操作后结果(2)向旅客关系表中插入数据图 6-8 对旅客关系表进行插入操作大连交通大学数据库课程设计-18-插入数据后的结果图 6-9 对旅客关系表进行插入操作的结果(3)向航班关系表中插入数据图 6-10 对航班关系表进行插入操作插入数据后的结果图 6-11 对航班关系表进行插入操作的结果大连交通大学数据库课程设计-19-3.删除数据删除嫌疑人关系表中欧阳图 6-12 删除嫌疑人关系表中欧阳操作删除后的结果图 6-13 删除嫌疑人关系表中欧阳的结果4.查询操
27、作(1)对某位旅客进行查询图 6-14 对某为旅客进行的查询操作大连交通大学数据库课程设计-20-查询后的结果图 6-15 对某为旅客进行的查询操作的结果(2)查询当日的航班图 6-16 对当日航班的查询操作查询结果图 6-17 对当日航班的查询操作的结果大连交通大学数据库课程设计-21-(3)退票查询图 6-18 对退票进行查询操作查询结果图 6-19 对退票进行查询操作的结果(4)订票查询图 6-20 对订票进行查询操作大连交通大学数据库课程设计-22-查询结果图 6-21 对订票进行查询操作的结果5.更改操作(1)退票操作图 6-22 进行退票操作操作后的结果图 6-23 进行退票操作的
28、结果大连交通大学数据库课程设计-23-(2)订票操作图 6-24 进行订票操作操作后的结果图 6-25 进行订票操作的结果(交易关系表)大连交通大学数据库课程设计-24-图 6-26 进行订票操作的结果(旅客关系表)总 结连续两周的机票预定系统设计感受最深的就是机票预定比其他交通工具预定要复杂的多,严格的多。订飞机票必须通过身份验证,而订火车票你可以不拿任何凭证。还有就是登机过程也比较复杂,在登机前拿机票去换取登机座位卡,以这张卡就可以去登机,而且你的座位是在这时候才可以确定的,座位的前后由你前来换登机卡的时间有关,与买票时间无关。这对本系统关系并不是很大,不过有一定的关系,比如系统在打印帐单
29、的时候就不需要再打座位号了,因为这不是系统要做的事。由于能力问题以及时间限制,该系统的分析还很不到位,有很多的问题没有解决好,比如旅客是通过旅行社来订票的,这样订票的信息有可能会有些变化。对此,该系统并不做更深的研究,目前只是为了满足最一般的需求而设计的。大连交通大学数据库课程设计-25-参考文献1 王珊,陈红数据库系统原理教程 清华大学出版社,1998,72 杨鑫华 数据库原理与 DB2 应用教程 清华大学出版社 2007,8 3 岳昆 数据库技术-设计与应用实例 清华大学出版社 4 严晖 刘卫国 数据库技术- 设计与应用实践教程SQL Server 清华大学出版社5 刘卫国 数据库技术与应用SQL Server 清华大学出版社