《网上订票管理系统.doc》由会员分享,可在线阅读,更多相关《网上订票管理系统.doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流网上订票管理系统【精品文档】第 20 页网上订票管理系统1 问题描述网上订票管理系统是在网络环境下实现飞机的订票业务的管理系统。系统改变了传统的手工订票、送票、柜台支付方式,具有广泛的实用性。网上订票系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的网上订票系统。 该系统是为机场、航空公司和客户提供订票退票等与机票相关内容的管理系统,方便机场工作人员对机票的管理,以提高机场工作人员对机票管理工作的效率。当前飞机订票问题:手工订票所产生的客座率低。而
2、我们的目标是:建立一个网上飞机订票系统数据库。 航空公司提供航线和飞机的资料,机场则对在本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有查询航班航线、班次、票价和剩余票数以及网上订票功能。2 需求分析 2.1 功能性需求用户类功能性需求航空公司1)增加航线2)修改航线3) 删除航线4)修改公司信息机场1)根据航空公司提供的航线,安排航班以及航班的机票2)如果出现晚点等情况,要记录并发送信息3)管理航空公司提供的航线和飞机(座位数)资料中所提供的相关数据4)管理航班机票5)管理客户资料客户1)注册2)查询航班3)查询余票和票价4)预定机票5)修改个人信息6)退票7)注销2.2 非功
3、能性需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,网上订票系统应该满足以下的性能需求:2.1.1系统处理的准确性和及时性系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。由于网上订票管理系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而机票数量和时间又影响企业的决策活动,其准确性很大程度上决定了网上订票管理系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。2.1.2系统的开放性和系统的可扩充性网上订票管理系统在开发过程中,应该充
4、分考虑以后的可扩充性。例如用户查询的需求会不断的更新和完善。这些都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。2.1.3系统的易用性和易维护性网上订票管理系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。网
5、上订票管理系统中涉及到的数据是航空公司和机场的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。2.1.4系统的标准性系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。同时,在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。2.1.5系统的先进性目前计算系统的技术发展相当快,作为网上订票管理系统工程,应该保证系统在相当长的时间内仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。这一方面通
6、过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。2.1.6系统的响应速度网上订票管理系统在日常处理中的响应速度为秒级以及时反馈信息。根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。 2.3 数据需求2.3.1顶层数据流图航空公司资料提供信息网上订票管理系统客户订票查询管理信息管理查询订票信息客户机场2.3.2 0层数据流图航空公司机场提供航线资料提供飞机资料航线信息飞机信息订票信息航班信息客户信息查询个人信息安排航班查询航班信息订机票查询航线信息查新飞
7、机信息查看客户资料退机票航线信息航线信息航线信息航线信息查询航线信息请求飞机信息飞机信息飞机信息飞机信息查询飞机信息请求客户信息客户信息查询信息请求客户信息客户信息查询客户信息请求航班信息航班信息航班信息航班信息查询航班信息请求订机票请求请求退机票请求请求更新订票信息更新订票信息客户3 概念设计3.1局部视图设计概念结构设计的第一步就是对需求分析阶段收集到的数据按照E-R模型的要求进行分类、组织,形成实体、实体的属性,标识试题的码,确定实体之间的联系类型(1:1?1:n?m:n?),设计分E-R图。3.1.1将航空公司提供资料部分提取出来,如下图所示:航空公司提供航线资料提供飞机资料航线信息飞
8、机信息航线信息航线信息飞机信息飞机信息 经分析之后得到的分E-R图如下所示:飞机提供航线1nm对每个实体的属性定义如下:航空公司航空公司编号,名称,地址,联系方式飞机编号,型号,座位数航线起点,终点,编号3.1.2将机场安排航班部分提取出来,如下图所示:机场航线信息飞机信息航班信息安排航班查询航线信息查新飞机信息航线信息航线信息查询航线信息请求飞机信息飞机信息查询飞机信息请求航班信息航班信息经分析之后得到的分E-R图如下所示:航线航班安排机场飞机1nm对每个实体的属性定义如下:飞机编号,型号,座位数航线起点,终点,编号3.1.3将客户的查询部分提取出来,如下图所示:客户航班信息客户信息查询个人
9、信息查询航班信息客户信息客户信息查询信息请求航班信息航班信息查询航班信息请求经分析之后得到的分E-R图如下所示:n1航班安排客户机场在数据流图中的“客户信息”都可以作为属性来对待。对每个实体和联系的属性定义如下:航班安排编号,时间,票价客户编号,姓名,性别,年龄,联系方式3.1.4将客户的订票、退票部分提取出来,如下图客户订票信息订机票退机票订机票请求请求退机票请求请求更新订票信息更新订票信息经分析之后得到的分E-R图如下所示:1订票1订票信息客户11退票对每个实体和联系的属性定义如下:订票信息编号,票价客户编号,姓名,性别,年龄,联系方式3.2视图集成 3.2.1各子系统的分E-R图设计好后
10、,下一步就是将所有的分E-R图综合成一个系统的总E-R图。 则集成后的总E-R图如下所示:航空公司提供机场1飞机航线n航班安排mm订票1客户111退票订票信息其中对每个实体和联系的属性定义如下:航班安排编号,时间,票价航空公司编号,名称,地址,联系方式客户编号,姓名,性别,年龄,联系方式飞机编号,型号,座位数航线起点,终点,编号订票信息编号,票价3.2.2再将属性加到上页所示的E-R图上,最后得到的E-R图如下所示:地址名称联系方式编号航空公司座位数编号提供型号编号机场起点航线飞机终点时间航班安排票价年龄客户姓名联系方式编号性别n1客户mmm编码1退票订票订票信息1111编号票价4 逻辑设计
11、概念结构独立于任何DBMS数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用的DBMS产品所支持的数据模型相符合的逻辑结构。4.1 E-R图向关系模型的转换 E-R图向关系模型的转换要解决的问题是如何将实体和实体型间的联系转换成为关系模式,如何确定这些关系模式的属性和码。 关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体型、实体型的属性和实体之间的联系3个要素组成的。所以将E-R图转换成关系模型实际上就是要将实体型、实体型的属性和实体之间的联系转换成一组关系模式。这种转换一般遵循如下原则:(1)一个1:1联系可以转换为一个独立的关系模式,也可
12、以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为该关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。 (3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。(4
13、)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合 (5)具有相同码的关系模式可合并。根据以上的原则,通过E/R模型到关系模型的转化,可以得到如下关系模式:(1)“航空公司”实体型所对应的关系模式:Airline(AID, Name, Addr, Cont)(2)“客户”实体型所对应的关系模式:Customer(CID, Name, Sex, Age, Cont)(3)“飞机”实体型所对应的关系模式:Plane(PID, Type, SeatsNum, AID)此关系模式已包含了联系“提供”(
14、4)“航线”实体型所对应的关系模式:Line(LID, SPosition, EPosition, AID)此关系模式已包含了联系“提供”(5)“航班安排”联系所对应的关系模式:Flight(FID, PID, LID, Ftime, Price)(6)“订票信息”实体型所对应的关系模式:BookTicket(BID, FID, CID, Price)此关系模式已包含了联系“订票”和“退票”其中,以上的每个关系模式的键码都用下划线标出,外键码用斜体标出。4.2数据模型的优化 数据库逻辑设计的结果不是唯一的。为了提高数据库应用系统的性能,还应该根据应用需要适当的修改、调整关系模式,这就是个数据模
15、型的优化。 4.2.1确定数据依赖:(1)关系模式Airline(AID, Name, Addr, Cont)中的数据依赖 AID-Name, AID-Name, AID-Addr, AID-Cont(2)关系模式Customer(CID, Name, Sex, Age, Cont)中的数据依赖 CID-Name, CID-Sex, CID-Age, CID-Cont(3)关系模式Plane(PID, Type, SeatsNum, AID) 中的数据依赖 PID-Type, PID-SeatsNum,PID-AID(4)关系模式Line(LID, SPosition, EPosition,
16、AID)中的数据依赖 LID-SPosition,LID-EPosition, LID-AID(5)关系模式Flight(FID, PID, LID, Ftime, Price) 中的数据依赖 FID-PID, FID-LID, FID-Ftime, FID-Price(6)关系模式BookTicket(BID, FID, CID, Price) 中的数据依赖 BID-FID, BID-CID, BID-Pay4.2.2 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 分析后可知,关系模式BookTicket(BID, FID, CID, Price)和关系模式Flight(F
17、ID, PID, LID, Ftime, Price)有Price的数据冗余,于是将关系模式BookTicket改成BookTicket(BID, FID, CID)。修改后的各个关系模式均没有冗余的联系。4.2.3 按照规范化理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。 由于以上的关系模式的主码只有一个,所以不会存在部分函数依赖。分析后可知也不存在传递依赖和多值依赖,以上的各关系模式都是3NF。4.2.4 按照需求分析阶段得到的信息要求和处理要求,分析这些模式是否满足这些要求,确定是否要对某些模式进行合并或分解。(1)关系模
18、式Airline(AID, Name, Addr, Cont)能满足“修改公司信息”“增加航线”“修改航线”“删除航线”功能。(2)关系模式Customer(CID, Name, Sex, Age, Cont)能满足“管理客户资料”“修改个人信息”功能。(3)关系模式Plane(PID, Type, SeatsNum, AID) 能满足“管理飞机(座位数)资料中所提供的相关数据”功能。(4)关系模式Line(LID, SPosition, EPosition, AID)能满足“管理航空公司提供的航线”功能。(5)关系模式Flight(FID, PID, LID, Ftime, Price) 能
19、满足“根据航空公司提供的航线,安排航班以及航班的机票”“如果出现晚点等情况,要记录并发送信息”“管理航班机票”功能。(6)关系模式BookTicket(BID, FID, CID) 能满足“注册”“登录”“查询航班”“查询余票和票价”“预定机票”“退票”“注销”4.3数据库的模式定义数据库需要表述的信息有以下几种:航空公司信息客户信息飞机信息航线信息航班信息订票信息根据以上的关系模式可以建立如下的表: 4.3.1航空公司信息表列名数据类型可否空说明AIDVarcharNot null 航空公司编号NameVarcharNot null航空公司名称AddrVarchar航空公司地址ContVar
20、char航空公司联系方式4.3.2客户信息表列名数据类型可否空说明CIDVarcharNot null 客户编号NameVarcharNot null客户姓名SexVarchar客户性别AgeInt客户年龄ContVarchar客户联系方式4.3.3飞机信息表列名数据类型可否空说明PIDVarcharNot null 飞机编号TypeVarcharNot null飞机型号SeatsNumVarcharNot null飞机座位数AIDvarchar航空公司编号4.3.4航线信息表列名数据类型可否空说明LIDVarcharNot null 航线编号SPositionVarcharNot null航
21、线起点EPositionVarcharNot null航线终点AIDvarchar航空公司编号4.3.5航班安排信息表列名数据类型可否空说明FIDVarcharNot null 航班编号PIDVarchar飞机编号LIDVarchar航线编号FtimeDatetimeNot null航班时间PriceRealNot null票价4.3.6订票信息表列名数据类型可否空说明BIDVarcharNot null 机票编号FIDVarchar航班编号CIDVarchar客户编号5 物理设计 数据库在实际物理设备上的存储结构和存取方法成为数据库的物理结构。对于设计好的逻辑数据模型选择一个符合应用要求的物
22、理结构就是数据库的物理设计。为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引。下面各表中建立索引的表项。(1)Airline(AID)(2)Customer(CID)(3)Plane(PID)(4)Line(LID)(5)Flight(FID)(6)BookTicket(BID)6 数据库实现6.1用SQL实现建表6.1.1建立航空公司表CREATE TABLE Airline(AID varchar(20) PRIMARY KEY, Name varchar(100) NOT NULL,Addr varchar(100), Cont varchar(200)6.1.2建立客
23、户表CREATE TABLE Customer(CID varchar(20) PRIMARY KEY, Name varchar(50) NOT NULL,Sex varchar(2),Age int,Cont varchar(200)6.1.3建立飞机信息表CREATE TABLE Plane(PID varchar(20) PRIMARY KEY, Type varchar(50) NOT NULL,SeatsNum int NOT NULL,AID varchar(20), CONSTRAINT FK_PLANE_AID FOREIGN KEY(AID) REFERENCES Airl
24、ine(AID)6.1.4建立航线表CREATE TABLE Line (LID varchar(20) PRIMARY KEY, SPosition varchar(100) NOT NULL,EPosition varchar(100) NOT NULL,AID varchar(20), CONSTRAINT FK_LINE_AID FOREIGN KEY(AID) REFERENCES Airline(AID)6.1.5建立航班安排表CREATE TABLE Flight(FID varchar(20) PRIMARY KEY, PID varchar(20), CONSTRAINT F
25、K_FLIGHT_PID FOREIGN KEY(PID) REFERENCES Plane(PID),LID varchar(20), CONSTRAINT FK_FLIGHT_LID FOREIGN KEY(LID) REFERENCES Line(LID),Ftime datetime NOT NULL,Price real NOT NULL6.1.6建立订票信息表CREATE TABLE BookTicket (BID int PRIMARY KEY AUTO_INCREMENT, FID varchar(20), CONSTRAINT FK_BOOKTICKET_FID FOREIG
26、N KEY(FID) REFERENCES Flight(FID),CID varchar(20), CONSTRAINT FK_BOOKTICKET_CID FOREIGN KEY(CID) REFERENCES Customer(CID)6.2用SQL实现操作6.2.1航空公司操作6.2.1.1注册公司INSERT INTO Airline(AID, Name, Addr, Cont) VALUES(#AID, #Name, #Addr, #Cont);这里的#AID必须是惟一的,否则不可以插入到数据库中.使用下列语句建表insert into Airline(AID,Name,Addr,
27、Cont) values(CA,中国国际航空股份有限公司,北京,010-66013336);insert into Airline(AID,Name,Addr,Cont) values(CZ,中国南方航空股份有限公司,广州,950333);insert into Airline(AID,Name,Addr,Cont) values(MU,中国东方航空公司 ,上海,86-21-95108);insert into Airline(AID,Name,Addr,Cont) values(HU,中国海南航空股份有限公司,海南,950718);再用 select * from Airline;语句查看:
28、6.2.1.2删除公司DELETE FROM Airline WHERE(AID = #AID);即使用下列语句操作:delete from Airline where(AID=HU);再用 select * from Airline;语句查看:6.2.1.3修改公司信息UPDATE Airline SET Name=#Name, Addr= #Addr, Cont= #Cont WHERE(AID = #AID);即使用下列语句操作:update Airlineset Cont=955333 where(AID=CZ);再用 select * from Airline;语句查看:6.2.1.
29、4增加飞机INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(#PID, #Type, #SeatsNum, #AID); 即使用下列语句操作: INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(1001,波音737 , 148, CA);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(2001,波音747 , 360, MU);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(1002,
30、波音777 , 350, CA);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(3001,MD-82 , 145, CZ);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(2002,M11 , 340, MU);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(3002,A300 , 148, CZ);INSERT INTO Plane(PID, Type, SeatsNum, AID) VALUES(1003,A300 , 148,
31、 CA); 再用 select * from Plane;语句查看:6.2.1.5删除飞机DELETE FROM Plane WHERE(PID = #PID);即使用下列语句操作:delete from Plane where(PID=1003);再用 select * from Plane;语句查看:6.2.1.6修改飞机UPDATE Plane SET Type= #Type, SeatsNum= #SeatsNum WHERE(PID = #PID);即使用下列语句操作:update Planeset SeatsNum=149 where(PID=1001);再用 select * f
32、rom Plane;语句查看:6.2.1.7 增加航线INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(#LID, #SPosition, #EPosition, #AID);即使用下列语句操作:INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(BS123, 北京,上海, CA);INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(BT321, 北京,天津, CZ);INSERT INTO Line(LID, SPos
33、ition, EPosition,AID) VALUES(SG893, 上海,广州, MU);INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(NW214, 南京,武汉, MU);INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(BN125, 北京,南京, CA);INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(WY908, 武汉,云南, CZ);INSERT INTO Line(LID, SPosition, E
34、Position,AID) VALUES(YG149, 云南,贵州, CA);INSERT INTO Line(LID, SPosition, EPosition,AID) VALUES(TW736, 天津,武汉, MU);再用 select * from Line;语句查看:6.2.1.8删除航线DELETE FROM Line WHERE(LID = #LID);即使用下列语句操作:DELETE FROM Line WHERE(LID = BS123);再用 select * from Line;语句查看:6.2.1.9修改航线UPDATE Line SET SPosition=#SPos
35、ition, EPosition=#EPosition WHERE(PID = #PID);即使用下列语句操作:update Lineset SPosition=南京,AID=CA where(LID=SG893);再用 select * from Line;语句查看:6.2.2机场操作6.2.2.1航班安排INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(#FID, #PID, #LID, #Ftime, #Price);即使用下列语句操作:INSERT INTO Flight(FID, PID, LID, Ftime, Price
36、) VALUES(H001,1001,BN125,2008-7-12 01:12:00,1000);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H002,1002,BT321,2008-7-13 13:12:00,580);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H003,2001,NW214,2008-7-12 12:2:00,985);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H004,1
37、002,SG893,2008-7-10 15:22:00,1036);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H005,3001,TW736,2008-7-11 23:14:00,689);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H006,3002,WY908,2008-7-12 22:21:00,1320);INSERT INTO Flight(FID, PID, LID, Ftime, Price) VALUES(H007,2002,YG149,200
38、8-7-13 14:20:00,489);再用select * from Flight;语句查看:6.2.2.2通知客户航班变化SELECT Name,Cont FROM Customer WHERE CID ( SELECT CID FROM BookTicket WHERE FID=#FID6.2.3客户操作6.2.3.1注册INSERT INTO Customer(CID, Name, Sex, Age, Cont)VALUES(#CID, #Name, #Sex, #Age, #Cont); 客户注册的时候,CID必须是惟一的,否则不可以插入数据库。 即使用下列语句操作:INSERT
39、INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0001, 张力, 男,23,15907291782);INSERT INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0002, 李红,女,24,13487129742);INSERT INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0003, 赵华,男,45,13567768922);INSERT INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0004, 欧阳纷纷,34,1501238
40、5839);INSERT INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0005, 周建,男,54,15688972834);INSERT INTO Customer(CID, Name,Sex,Age,Cont)VALUES(0006, 肖小花,女,32,15872849573);再用select * from Customer;语句查看:6.2.3.2注销DELETE FROM Customer WHERE(CID = #CID);即使用下列语句操作:DELETE FROM Customer WHERE(CID = 0004);再用select *
41、 from Customer;语句查看:6.2.3.3修改个人信息UPDATE Line SET Name= #Name, Cont= #Cont WHERE(CID = #CID);即使用下列语句操作:UPDATE Line SET Name= 张立, Cont= 15907391782 WHERE(CID = 1001);再用select * from Customer;语句查看:6.2.3.4订票INSERT INTO BookTicket(BID,FID, CID) VALUES(#BID,#FID, #CID)即使用下列语句操作:INSERT INTO BookTicket(BID,
42、FID, CID) VALUES(1,H001,0001);INSERT INTO BookTicket(BID,FID, CID) VALUES(2,H001,0001);INSERT INTO BookTicket(BID,FID, CID) VALUES(4,H002,0002);INSERT INTO BookTicket(BID,FID, CID) VALUES(3,H006,0006);INSERT INTO BookTicket(BID,FID, CID) VALUES(5,H005,0003);再用select * from BookTicket;语句查看:查看客户订票后,是否超过可容纳的座位数目,如果超过,取消所有操作。SELECT seats=SeatsNum FROM Plane WHERE PID=(SELECT PID FROM Flight WHERE FID=#FID)SELECT booked=count(*) FROM BookTicket WHERE FID=#FIDIF bookedseats ROLLBACK TRANSACTIONELSE COMMIT TRANSACTION GO6.2.2.5退票DELETE FROM BookTicket WHERE(BID = #BID);即使用下列语句操作:DELET