民航订票管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验十三数据库管理系统综合应用

-------民航订票管理系统

一、实验目的:

通过完成从用户需求分析、数据库设计到上机编程、调试和应用等全过程,进一步了解和掌握所讲解的内容。

二、实验简述:

民航订票系统主要分为机场、航空公司和客户三方的服务。航空公司提供航线和飞机的资料,机场则对本机场起飞和降落的航班和机票进行管理,而客户能得到的服务应该有航班线路和剩余票数的查询,以及网上订票等功能。客户又可以分为两类,一类是普通客户,对于普通客户只有普通的查询功能和订票功能,没有相应的机票优惠,另一种是经常旅客,需要办理注册手续,但增加了里程积分功能和积分优惠政策。机场还要紧急应对措施,在航班出现延误时,要发送相应的信息。

三、实验要求:

完成该系统的数据库设计;

用SQL实现数据库的设计,并在SQL Server上调试通过。

四、参考答案:

1、需求分析

(1)航空公司

航空公司的操作流程如图C.1所示。

图C.1 航空公司操作分类表

(2)客户

客户的操作流程如图C.2所示。

图C.2 客户操作分类表

(3)机场

机场的任务是根据航空公司提供的航线和飞机,安排航班,以及航班的机票。如果出现晚点等情况,要记录并发送信息,对特殊客户记录其消费信息,并相应提供优惠。

(4)客户订票

客户订票涉及到多个因素:由客户提出订票申请;由机场管理航班机票;对于特殊客户,除给予票价优惠以外,还要累计里程;订票后需判断是否超员。这些因素涉及到客户资料、航班资料以及由航空公司提供的航线(里程)和飞机(座位数)资料中所提供的相关数据。

客户订票的操作流程如图C.3所示。

2、概念模型设计

数据库需要表述的信息有以下几种:

(1)航空公司信息

(2)客户信息

(3)飞机信息

(4)航线信息

(5)航班信息

(6)订票信息

(7)特殊客户积分

可以用E/R模型表述该模型的设计,E/R图如图C.4所示。

图C.4 模型的E-R图

3、逻辑设计

通过E/R模型到关系模型的转化,可以得到如下关系模式:

(1)Airline(AID, Name, Addr, Cont)

(2)Customer(CID, Name, Cont, IsSpec, Points)

(3)Plane(PID, Type, SeatsNum, AID)

(4)Line(LID, SPosition, EPosition, Distance, AID)

(5)Flight(FID, PID, LID, Ftime, Price)

(6)BookTicket(BID, FID, CID, Pay)

每个关系模式的键码都用下划线标出。外键码用斜体标出。

4、物理设计

为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引。下面各表中建立索引的表项。

(1)Airline(AID)

(2)Customer(CID)

(3)Plane(PID)

(4)Line(LID)

(5)Flight(FID)

(6)BookTicket(BID)

5、用SQL实现设计

(1)建立航空公司表

CREATE TABLE Airline(

AID varchar(20) PRIMARY KEY,

Name varchar(100) NOT NULL,

Addr varchar(100),

Cont varchar(200)

);

(2)建立客户表

CREATE TABLE Customer(

CID varchar(20) PRIMARY KEY,

Name varchar(50) NOT NULL,

Cont varchar(200),

IsSpec char(1) NOT NULL DEFAULT ‘N’,

Points int NOT NULL DEFAULT 0

);

(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 Airline(AID) );

(4)建立航线表

CREATE TABLE Line (

LID varchar(20) PRIMARY KEY,

SPosition varchar(100) NOT NULL,

EPosition varchar(100) NOT NULL,

Distance real NOT NULL

AID varchar(20), CONSTRAINT FK_LINE_AID

FOREIGN KEY(AID) REFERENCES Airline(AID) );

(5)建立航班表

CREATE TABLE Flight(

FID varchar(20) PRIMARY KEY,

Ftime datetime NOT NULL,

PID varchar(20), CONSTRAINT FK_FLIGHT_PID

FOREIGN KEY(PID) REFERENCES Plane(PID) LID varchar(20), CONSTRAINT FK_FLIGHT_LID

FOREIGN KEY(LID) REFERENCES Line(LID) Price real NOT NULL

);

(6)建立订票表

CREATE TABLE BookTicket (

BID int IDENTITY(1,1) PRIMARY KEY,

FID varchar(20), CONSTRAINT FK_BOOKTICKET_FID

FOREIGN KEY(FID) REFERENCES Flight(FID) CID varchar(20), CONSTRAINT FK_ BOOKTICKET _CID

相关文档
最新文档