机票预订系统课程设计Word文档格式.docx
《机票预订系统课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《机票预订系统课程设计Word文档格式.docx(32页珍藏版)》请在冰点文库上搜索。
二、设计资料及参数
1、订单编号
2、航班编号、出发地、目的地、出发时间到达时间
3、机票编号、座位号、机舱等级
4、旅客编号、姓名、性别、身份证号
三、设计要求及成果
1.按照数据库应用系统设计步骤进行数据库结构设计。
2.使用开放工具及数据库管理系统开放应用系统(可选)。
3.书写论文(具体要求见论文模板)。
四、建议参考资料
《数据库系统教程》(第三版)施伯乐等著高等教育出版社
第一章绪论
课题简介
随着时代的发展,计算系软件和系统的成熟,机票如果简单方面预定成为一个影响多数人生活的问题。
而建立机票预定系统是一个很好的解决办法。
经过三年的学习,我们对计算机方面的知识有了很大的提升,本着理论联系实际的宗旨,通过学校提供的这次课程设计实践的机会,在指导教师的帮助下,历经两周时间,我自行设计一套机票预定管理系统,在下面的各章中,我将以这套机票预定系统信息系统为例,谈谈其开发过程和所涉及到的问题。
设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
设计内容
选择课题并且对课题的相关信息有一定的了解,对于我选的课题来说,我必须了解机票预定系统的构造以及购票人的信息还有机票的相关信息。
通过这些信息制成表格,输入到数据库中,使之能够进行查询、修改、删除并且与机票预定系统执行相同的操作。
需求分析阶段就是要研究我所作的机票预定系统的具体分类和实施过程流图。
概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。
逻辑结构设计阶段要把E-R图转化为关系模式。
最后就是要运行和实施数据库。
第二章需求分析
需求分析的任务
调查机票预定系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。
最重要的是调查、收集信息、分析购票人信息和飞机预定流程。
处理要求、数据的安全性与完整性要求。
要求系统能有效、快速、安全、可靠和无误的完成上述操作。
并要求客户机的界面要简单明了,易于操作,服务器程序利于维护。
需求分析的过程
航空公司为方便旅客,需开发一个机票预定系统。
为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票的旅客信息,包括姓名、性别、工作单位、身份证号码、旅行时间、旅行目的地,输入机票预定系统的客户端程序,系统经过查询航空公司内的航班数据服务器后,为旅客安排航班,印出取票通知。
旅客在飞机起飞前一天凭取票通知和帐单交款后取票,系统校对无误后即印出机票给旅客。
如果某方面出现问题,旅客可以持有效证件去飞机场退票。
经过综合分析,确定了机票预订管理系统主要包括以下功能:
(1)订单信息管理功能
主要是实现管理员对订票信息的管理,包括对航班基本信息如航班号、起飞地、目的地、起飞时间等,旅客基本信息如旅客姓名、性别、电话号码、身份证号、座位号、订票数量的添加、修改、删除和查询功能。
订单信息管理系统图2-1
(2)旅客信息管理功能
主要是实现管理员对旅客一些基本信息,如旅客姓名、性别、电话号码、身份证号的添加、修改、删除和查询功能。
旅客信息管理系统图2-2
(3)航班信息管理功能
主要实现管理员对航班的一些基本信息,航班号、起飞地、目的地、起飞时间的添加、修改、删除查询和功能。
航班信息管理系统图2-3
(4)机票信息管理功能
主要实现管理员对机票的一些基本信息,如航班号、座位号、座位信息、机票类型的添加、修改、删除和查询功能。
机票信息管理系统图2-4
(5)退票信息管理功能
主要是实现管理员对退票信息的管理,包括对订单号、旅客姓名、电话号码、身份证号的添加、修改、删除和查询功能。
退票信息管理系统图2-5
数据字典与流程图
数据字典
数据字典是用来规范描述数据具体内容的工具,也是对数据汇总分析的一个总结。
一般来说,可为每个数据建立一张二维表。
在本系统中,分别为旅客信息、旅客订票信息、航班机票信息、旅客与机票的联系、退票信息建立了数据字典,具体如表2-1到表2-6所示。
主键:
蓝色
外键:
下划线
表2-1订单信息的数据字典
字段名
描述
数据类型
长度
是否允许为空
Booking_Number
订单的编号
VARCHAR
50
否
Flight_Number
航班编号
20
Seat_Number
座位编号
Passenger_Number
旅客编号
Ticket_Number
机票的编号
Price
金额
表2-2航班信息的数据字典
Flight-Number
Takeoff_Time
起飞时间
Arrtival_Time
到达时间
Origin
出发地
Destination
目的地
Flight_Type
航班型号
表2-3机票信息的数据字典
机票编号
VARCHAR)
座位号
价格
出发时间
表2-4旅客信息的数据字典
Passenger_Name
旅客姓名
ID_Number
身份证号
Sex
性别
Telephone
电话
表2-5旅客与机票信息的联系数据字典
Number
编号
Ticket-Number
表2-6退票信息的数据字典
Order_Number
退票号
订单编号
基本流程图
机票预订系统流程图2-6
第三章ER模型图
实体属性图
订单信息实体属性图3-1
航班信息实体属性图3-2
机票信息实体属性图3-3
客户与机票实体属性图3-4
旅客信息实体属性图3-5
座位信息实体属性图3-6
退票信息实体属性图3-7
总体ER模型图
第四章逻辑结构设计
E-R图向关系模型的转换
订单信息(订单号,航班号,座位号,数量,类型)
退票信息(订单号,旅客编号,时间)
旅客信息(旅客编号,身份证号,姓名,性别,联系电话)
航班信息表(航班编号,起飞地,目的地,起飞时间)
座位信息表(座位号,机票类型)
数据模型的优化
将转化的关系模式进行优化,最终达到第三范式。
1、确定数据依赖
退票信息(订单号,旅客姓名,航班号)根据这个关系写出数据依赖
订单号→旅客姓名,订单号→座位号,订单号→航班号
旅客(旅客姓名,旅客编号,电话号,性别)
旅客姓名→身份证号,旅客姓名→电话号,旅客姓名→性别
航班信息表(航班号,起飞地,目的地,起飞时间)
航班号→起飞地,航班号→目的地,航班号→起飞时间
座位信息表(座位号,航班号,座位信息,机票类型)
(座位号,航班号)→座位信息,(座位号,航班号,座位信息)→机票类型
2、对各关系模式间数据依赖进行极小化处理,消除冗余
订单号→旅客编号,订单号→座位号,订单号→机票编号,订单号→机票编号
3、看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解
最终分解成第三范式:
(订单号,机票编号,机票类型)(订单号,旅客编号)(旅客编号,旅客姓名,性别)(旅客姓名,座位号)(航班号,座位号,机票类型)(航班号,起飞地,目的地,起飞时间)
第五章功能实现
查询功能的实现
通过查询功能我们可以找到相关的信息。
USEMARKET
SELECT*FROMSeat
查询功能图5-1
多条件查询功能的实现
使用多条件查询功能可以增加查询的限制条件,这样可以使查询的结果更准确。
USEMARKET
SELECT*FROMPassengerWHERESex='
女'
ANDPassenger_Name='
小青'
多条件查询功能图5-2
添加功能的实现
通过添加功能实现对数据的增加,录入需要的信息。
USEMARKET
INSERTINTOPassengerVALUES('
00001'
'
大卫'
1234566'
男'
'
);
添加功能图5-3
删除功能的实现
可以实现对一些变更的信息删除,从而能够达到一定的效果。
DELETEFROMBooking_TicketWHEREBooking_Number='
B00001'
删除功能图5-4
更改功能的实现
通过更改功能我们可以对其信息修改,比如机票座位类型,目的地等做相应的修改
SELECT*FROMFlightWHEREFlight_Number=A01
UpdateFlight
SETDestination='
呼和浩特'
whereFlight_Number=A01
SELECT*FROMFlightWhereFlight_Number=A0
更改功能图5-5
视图的建立
视图就是创建一个可以实现添加创建的续表,从而实现效果。
视图5-6
第六章源代码
建库:
createdatabase[MARKET]onprimary
(
name='
ticket_db'
filename='
F:
\数据库课程设计\'
size=5mb,
maxsize=30mb,
filegrowth=5%
)
logon
ticket'
size=1mb,
maxsize=10mb,
filegrowth=10%
建表:
CREATETABLEBooking_Ticket/--------订单信息表的创建---------/
Booking_Numbervarchar(50)primarykey,/--------设置主键---------/Flight_Numbervarchar(50)notnull,
Seat_Numbervarchar(50)notnull,
Passenger_Numbervarchar(50)notnull,
Amountvarchar(50)notnull,
Pricevarchar(50)notnull,
Timevarchar(50)notnull,
);
CREATETABLEFlight/--------航班信息表的创建---------/
Flight_Numbervarchar(50)primarykey,/--------设置主键---------/
akeoff_Timevarchar(50)notnull,
ArTrival_Timevarchar(50)notnull,
Flight_Timevarchar(50)notnull,
Originvarchar(50)notnull,
Destinationvarchar(50)notnull,
Flight_Typevarchar(50)notnull
CREATETABLEPassenger/--------旅客信息表的创建---------/
Passenger_Numbervarchar(50)primarykey,/--------设置主键---------/
Passenger_Namevarchar(50)notnull,
ID_Numbervarchar(50)notnull,
Sexvarchar(50)notnull,
Telephonevarchar(50)notnull
CREATETABLESeat/--------座位信息表的创建---------/
Seat_Numbervarchar(50)primarykey,/--------设置主键---------/
Seat_Typevarchar(50)notnull,
Ticket_Numbervarchar(50)notnull,
Destinationvarchar(50)notnull
CREATETABLETicket
Ticket_Numbervarchar(50)primarykey,/--------设置主键---------/
Takeoff_Timevarchar(50)notnull
Seat_Numbervarchar(50)notnull
CREATETABLERelation/--------关系的创建---------/
Numbervarchar(50)primarykey,/--------设置主键---------/
CREATETABLERefund/--------退票信息表的创建---------/
Order_Numbervarchar(50)primarykey,/--------设置主键---------/
Booking_Numbervarchar(50)notnull,
设置外键:
useMARKET
go
altertableBooking_Ticket
addconstraintfk_storeDIforeignkey(Seat_Number)referencesSeat(Seat_Number)
addconstraintfk_storeADIforeignkey(Flight_Number)referencesFlight(Flight_Number)
addconstraintfk_storeIforeignkey(Passenger_Number)referencesPassenger(Passenger_Number)
altertableRefund
addconstraintfk_storIforeignkey(Passenger_Number)referencesPassenger(Passenger_Number)
addconstraintfk_sorIforeignkey(Booking_Number)referencesBooking_Ticket(Booking_Number)
addconstraintfk_sosIforeignkey(Ticket_Number)referencesTicket(Ticket_Number)
altertableRelation
addconstraintfk_sowsIforeignkey(Ticket_Number)referencesTicket(Ticket_Number)
addconstraintfk_saIforeignkey(Passenger_Number)referencesPassenger(Passenger_Number)
addconstraintfk_saiIforeignkey(Ticket_Number)referencesTicket(Ticket_Number)
设置约束条件:
altertablePassenger
addcheck(Sexin('
));
/--------设置外键约束---------/
数据的插入:
INSERTINTOFlightVALUES('
A01'
12:
00'
14:
30'
2小时分'
包头'
北京'
B0'
A02'
01'
31'
天津'
B1'
A03'
02'
32'
上海'
B2'
A04'
03'
33'
河北'
B3'
A05'
04'
34'
南京'
B4'
/--------航班信息的插入---------/
INSERTINTOTicketVALUES('
0001'
325'
C001'
0002'
326'
C002'
0003'
327'
C003'
0004'
328'
C004'
0005'
329'
05'
C005'
/--------机票信息的插入---------/
00002'
小明'
1234567'
00003'
小张'
1234568'
00004'
1234569'
00005'
小白'
1234560'
/--------旅客信息的插入---------/
INSERTINTOBooking_ticketVALUES('
C001