收藏 分销(赏)

机票预订系统专业课程设计.doc

上传人:a199****6536 文档编号:2685413 上传时间:2024-06-04 格式:DOC 页数:34 大小:845.54KB
下载 相关 举报
机票预订系统专业课程设计.doc_第1页
第1页 / 共34页
机票预订系统专业课程设计.doc_第2页
第2页 / 共34页
机票预订系统专业课程设计.doc_第3页
第3页 / 共34页
机票预订系统专业课程设计.doc_第4页
第4页 / 共34页
机票预订系统专业课程设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、内蒙古科技大学数据库原理及应用课程设计阐明书题 目:机票预订系统学生姓名学 号:专 业:计算机科学与技术班 级:4班指引教师:余金林内蒙古科技大学课程设计任务书课程名称 数据库课程设计设计题目 机票预订系统(题目级别60)指引教师余金林时间15周-16周一、教学规定1从附录一中选取一种题目进行数据库应用系统设计。2功能设计:用Visual FoxPro,Visual Basic、PB等开发工具与数据库管理系统SQL-SEVER或Access制作一种小型管理系统。所设计小型管理系统应包括输入输出、查询、插入、删除等基本功能。设计课题可以从候选项目中选出,依照题目基本需求,画出流程图,编写程序,并

2、写出详细设计阐明书。(本项实际系统设计与实现可选,但必要有功能设计过程)3数据库设计:依照数据库应用系统设计过程,通过需求分析和系统分析,进行数据库概念构造设计、逻辑构造设计等工作:l 概念构造设计ER图l 数据库逻辑构造设计是以表格形式阐明数据库中有几种表,每个表表名以及每个表各字段名,类型和约束(主、外码);l 拟定表之间关联(一对一、一对多、多对多)l 运用数据库理论拟定每个表至少属于3NF。二、设计资料及参数1、订单编号2、航班编号、出发地、目地、出发时间到达时间3、机票编号、座位号、机舱级别4、旅客编号、姓名、性别、身份证号三、设计规定及成果1按照数据库应用系统设计环节进行数据库构造

3、设计。2使用开放工具及数据库管理系统开放应用系统(可选)。3书写论文(详细规定见论文模板)。四、建议参照资料数据库系统教程(第三版) 施伯乐等著 高等教诲出版社 目录内蒙古科技大学课程设计任务书2目录3第一章 绪论41.1课题简介41.2设计目41.3设计内容5第二章 需求分析52.1 需求分析任务52.2 需求分析过程52.3数据字典与流程图8第三章 ER模型图123.1实体属性图123.2总体ER模型图15第四章 逻辑构造设计174.1 E-R图向关系模型转换174.2 数据模型优化17第五章 功能实现185.1查询功能实现185.2多条件查询功能实现185.3添加功能实现195.4删除功

4、能实现195.5更改功能实现205.6视图建立21第六章 源代码22第七章 总结26第八章 参照文献27附录28 第一章 绪论1.1课题简介随着时代发展,计算系软件和系统成熟,机票如果简朴方面预定成为一种影响多数人生活问题。而建立机票预定系统是一种较好解决办法。通过三年学习,咱们对计算机方面知识有了很大提高,本着理论联系实际宗旨,通过学校提供这次课程设计实践机会,在指引教师协助下,历经两周时间,我自行设计一套机票预定管理系统,在下面各章中,我将以这套机票预定系统信息系统为例,谈谈其开发过程和所涉及到问题。1.2设计目应用对数据库系统原理理论学习,通过上机实践方式将理论知识与实践更好结合起来,巩

5、固所学知识。实践和巩固在课堂教学中学习关于关系数据库原理关于知识和数据库系统建立办法,纯熟掌握对于给定实际问题,为了建立一种关系数据库信息管理系统,必要得通过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价普通过程,为毕业设计打下基本。1.3设计内容 选取课题并且对课题有关信息有一定理解,对于我选课题来说,我必要理解机票预定系统构造以及购票人信息尚有机票有关信息。通过这些信息制成表格,输入到数据库中,使之可以进行查询、修改、删除并且与机票预定系统执行相似操作。需求分析阶段就是要研究我所作机票预定系统详细分类和实行过程流图。概念设计阶段要完毕数据抽象与局部视图设计尚有

6、视图集成。逻辑构造设计阶段要把E-R图转化为关系模式。最后就是要运营和实行数据库。 第二章 需求分析2.1 需求分析任务调查机票预定系统应用领域涉及内容,对涉及到领域各个应用信息规定和操作规定进行详细分析,形成需求分析阐明书。最重要是调查、收集信息、分析购票人信息和飞机预定流程。解决规定、数据安全性与完整性规定。规定系统能有效、迅速、安全、可靠和无误完毕上述操作。并规定客户机界面要简朴明了,易于操作,服务器程序利于维护。2.2 需求分析过程航空公司为以便旅客,需开发一种机票预定系统。为便于旅客由旅行社代替航空公司负责为旅客定票,旅行社把预定机票旅客信息,涉及姓名、性别、工作单位、身份证号码、旅

7、行时间、旅行目地,输入机票预定系统客户端程序,系统通过查询航空公司内航班数据服务器后,为旅客安排航班,印出取票告知。旅客在飞机起飞前一天凭取票告知和帐单交款后取票,系统校对无误后即印出机票给旅客。如果某方面浮现问题,旅客可以持有效证件去飞机场退票。规定系统能有效、迅速、安全、可靠和无误完毕上述操作。并规定客户机界面要简朴明了,易于操作,服务器程序利于维护。通过综合分析,拟定了机票预订管理系统重要涉及如下功能:(1)订单信息管理功能重要是实现管理员对订票信息管理,涉及对航班基本信息如航班号、起飞地、目地、起飞时间等,旅客基本信息如旅客姓名、性别、电话号码、身份证号、座位号、订票数量添加、修改、删

8、除和查询功能。 订单信息管理系统图2-1(2) 旅客信息管理功能 重要是实现管理员对旅客某些基本信息,如旅客姓名、性别、电话号码、身份证号添加、修改、删除和查询功能。 旅客信息管理系统图2-2(3) 航班信息管理功能重要实现管理员对航班某些基本信息,航班号、起飞地、目地、起飞时间添加、修改、删除查询和功能。 航班信息管理系统图2-3(4) 机票信息管理功能重要实现管理员对机票某些基本信息,如航班号、座位号、座位信息、机票类型添加、修改、删除和查询功能。 机票信息管理系统图2-4(5) 退票信息管理功能重要是实现管理员对退票信息管理,涉及对订单号、旅客姓名、电话号码、身份证号添加、修改、删除和查

9、询功能。 退票信息管理系统图2-52.3数据字典与流程图2.3.1数据字典数据字典是用来规范描述数据详细内容工具,也是对数据汇总分析一种总结。普通来说,可为每个数据建立一张二维表。在本系统中,分别为旅客信息、旅客订票信息、航班机票信息、旅客与机票联系、退票信息建立了数据字典,详细如表2-1到表2-6所示。主键:蓝色外键:下划线表2-1 订单信息数据字典字段名描述数据类型长度与否容许为空Booking_Number订单编号VARCHAR50否Flight_Number航班编号VARCHAR20否Seat_Number座位编号VARCHAR50否Passenger_Number旅客编号VARCHA

10、R50否Ticket_Number机票编号VARCHAR50否Price金额VARCHAR50否表2-2 航班信息数据字典字段名描述数据类型长度与否容许为空Flight-Number航班编号VARCHAR50否Takeoff_Time起飞时间VARCHAR50否Arrtival_Time到达时间VARCHAR50否Origin出发地VARCHAR50否Destination目地VARCHAR50否Flight_Type航班型号VARCHAR50否表2-3 机票信息数据字典字段名描述数据类型长度与否容许为空Ticket_Number机票编号VARCHAR)50否Seat_Number座位号VAR

11、CHAR50否Price价格VARCHAR50否Takeoff_Time出发时间VARCHAR50否Destination目地VARCHAR50否表2-4 旅客信息数据字典字段名描述数据类型长度与否容许为空Passenger_Number旅客编号VARCHAR50否Passenger_Name旅客姓名VARCHAR50否ID_Number身份证号VARCHAR50否Sex性别VARCHAR50否Telephone电话VARCHAR50否 表2-5 旅客与机票信息联系数据字典字段名描述数据类型长度与否容许为空Number编号VARCHAR50否Ticket-Number机票编号VARCHAR50

12、否Passenger_Number旅客编号VARCHAR50否表2-6退票信息数据字典字段名描述数据类型长度与否容许为空Order_Number退票号VARCHAR50否Takeoff_Time时间VARCHAR50否Booking_Number订单编号VARCHAR50否 2.3.2基本流程图 机票预订系统流程图2-6 第三章 ER模型图3.1实体属性图 订单信息实体属性图3-1 航班信息实体属性图3-2 机票信息实体属性图3-3 客户与机票实体属性图3-4 旅客信息实体属性图3-5 座位信息实体属性图3-6 退票信息实体属性图3-73.2总体ER模型图第四章 逻辑构造设计4.1 E-R图向

13、关系模型转换订单信息(订单号,航班号,座位号,数量,类型)退票信息(订单号,旅客编号,时间)旅客信息(旅客编号,身份证号,姓名,性别,联系电话) 航班信息表(航班编号,起飞地,目地,起飞时间) 座位信息表(座位号,机票类型)4.2 数据模型优化将转化关系模式进行优化,最后达到第三范式。1、拟定数据依赖退票信息(订单号,旅客姓名,航班号)依照这个关系写出数据依赖订单号旅客姓名,订单号座位号,订单号航班号旅客(旅客姓名,旅客编号,电话号,性别)旅客姓名身份证号,旅客姓名电话号,旅客姓名性别 航班信息表(航班号,起飞地,目地,起飞时间)航班号起飞地,航班号目地,航班号起飞时间座位信息表(座位号,航班

14、号,座位信息,机票类型)(座位号,航班号)座位信息,(座位号,航班号,座位信息)机票类型2、 对各关系模式间数据依赖进行极小化解决,消除冗余 订单号旅客编号,订单号座位号,订单号机票编号,订单号机票编号3、 看这些模式与否符合规定,拟定与否要对某些模式进行合并或者分解 最后分解成第三范式: (订单号,机票编号,机票类型)(订单号,旅客编号)(旅客编号,旅客姓名,性别)(旅客姓名,座位号)(航班号,座位号,机票类型)(航班号,起飞地,目地,起飞时间) 第五章 功能实现5.1查询功能实现通过查询功能咱们可以找到有关信息。USE MARKET SELECT * FROM Seat 查询功能图5-15

15、.2多条件查询功能实现 使用多条件查询功能可以增长查询限制条件,这样可以使查询成果更精确。USE MARKETSELECT * FROM Passenger WHERE Sex=女AND Passenger_Name=小青 多条件查询功能图5-2 5.3添加功能实现通过添加功能实现对数据增长,录入需要信息。USE MARKET INSERT INTO Passenger VALUES(00001,大卫,1234566,男,); 添加功能图5-35.4删除功能实现可以实现对某些变更信息删除,从而可以达到一定效果。USE MARKET DELETE FROM Booking_Ticket WHER

16、E Booking_Number=B00001 删除功能图5-45.5更改功能实现通过更改功能咱们可以对其信息修改,例如机票座位类型,目地等做相应修改USE MARKET SELECT * FROM Flight WHERE Flight_Number=A01Update FlightSET Destination=呼和浩特 where Flight_Number=A01SELECT * FROM Flight Where Flight_Number=A0 更改功能图5-55.6视图建立视图就是创立一种可以实现添加创立续表,从而实现效果。 视图5-6 第六章 源代码建库:create data

17、base MARKET on primary(name = ticket_db,filename = F:数据库课程设计ticket.mdf,size = 5mb,maxsize = 30mb,filegrowth = 5%)log on(name = ticket,filename = F:数据库课程设计ticket_log.ldf,size = 1mb,maxsize = 10mb,filegrowth = 10%)建表:CREATE TABLE Booking_Ticket/-订单信息表创立-/(Booking_Number varchar(50) primary key,/-设立主键-

18、/Flight_Number varchar(50) not null,Seat_Number varchar(50) not null,Passenger_Number varchar(50) not null,Amount varchar(50) not null,Price varchar(50) not null,Time varchar(50) not null,) ;USE MARKETCREATE TABLE Flight/-航班信息表创立-/(Flight_Number varchar(50) primary key,/-设立主键-/akeoff_Time varchar(50

19、) not null,ArTrival_Time varchar(50) not null,Flight_Time varchar(50) not null,Origin varchar(50) not null,Destination varchar(50) not null,Flight_Type varchar(50) not null);USE MARKETCREATE TABLE Passenger/-旅客信息表创立-/(Passenger_Number varchar(50) primary key,/-设立主键-/Passenger_Name varchar(50) not nu

20、ll,ID_Number varchar(50) not null,Sex varchar(50) not null,Telephone varchar(50) not null);USE MARKETCREATE TABLE Seat/-座位信息表创立-/(Seat_Number varchar(50) primary key,/-设立主键-/Seat_Type varchar(50) not null,Ticket_Number varchar(50) not null,Destination varchar(50) not null);USE MARKETCREATE TABLE Tic

21、ket(Ticket_Number varchar(50) primary key,/-设立主键-/Destination varchar(50) not null,Price varchar(50) not null,Takeoff_Time varchar(50) not nullSeat_Number varchar(50) not null);USE MARKETCREATE TABLE Relation/-关系创立-/(Number varchar(50) primary key ,/-设立主键-/Ticket_Number varchar(50) not null,Passenge

22、r_Number varchar(50) not null,);USE MARKETCREATE TABLE Refund/-退票信息表创立-/(Order_Number varchar(50) primary key,/-设立主键-/Passenger_Number varchar(50) not null,Booking_Number varchar(50) not null,);设立外键:use MARKETgoalter table Booking_Ticketadd constraint fk_storeDI foreign key(Seat_Number) references S

23、eat(Seat_Number)use MARKETgoalter table Booking_Ticketadd constraint fk_storeADI foreign key(Flight_Number) references Flight(Flight_Number)use MARKETgoalter table Booking_Ticketadd constraint fk_storeI foreign key(Passenger_Number) references Passenger(Passenger_Number)use MARKETgoalter table Refun

24、dadd constraint fk_storI foreign key(Passenger_Number) references Passenger(Passenger_Number)use MARKETgoalter table Refundadd constraint fk_sorI foreign key(Booking_Number) references Booking_Ticket(Booking_Number)use MARKETgoalter table Booking_Ticketadd constraint fk_sosI foreign key(Ticket_Numbe

25、r) references Ticket(Ticket_Number)use MARKETgoalter table Relationadd constraint fk_sowsI foreign key(Ticket_Number) references Ticket(Ticket_Number)use MARKETgoalter table Relationadd constraint fk_saI foreign key(Passenger_Number) references Passenger(Passenger_Number)use MARKETgoalter table Book

26、ing_Ticketadd constraint fk_saiI foreign key(Ticket_Number) references Ticket(Ticket_Number)设立约束条件:use MARKETgoalter table Passengeradd check (Sex in(男,女);/-设立外键约束-/数据插入:use MARKETINSERT INTO Flight VALUES(A01,12:00,14:30,2小时分,包头,北京,B0);INSERT INTO Flight VALUES(A02,12:01,14:31,2小时分,包头,天津,B1);INSERT

27、 INTO Flight VALUES(A03,12:02,14:32,2小时分,包头,上海,B2);INSERT INTO Flight VALUES(A04,12:03,14:33,2小时分,包头,河北,B3);INSERT INTO Flight VALUES(A05,12:04,14:34,2小时分,包头,南京,B4);/-航班信息插入-/use MARKETINSERT INTO Ticket VALUES(0001,北京,325,12:01,C001);INSERT INTO Ticket VALUES(0002,天津,326,12:02,C002);INSERT INTO Tic

28、ket VALUES(0003,上海,327,12:03,C003);INSERT INTO Ticket VALUES(0004,河北,328,12:04,C004);INSERT INTO Ticket VALUES(0005,南京,329,12:05,C005);/-机票信息插入-/INSERT INTO Passenger VALUES(00001,大卫,1234566,男,);INSERT INTO Passenger VALUES(00002,小明,1234567,女,);INSERT INTO Passenger VALUES(00003,小张,1234568,男,);INSER

29、T INTO Passenger VALUES(00004,小青,1234569,女,);INSERT INTO Passenger VALUES(00005,小白,1234560,男,);/-旅客信息插入-/use MARKETINSERT INTO Booking_ticket VALUES(B00001,A01,C001,00001,1,325,2小时分,0001);INSERT INTO Booking_ticket VALUES(B00002,A02,C002,00002,2,326,2小时分,0002);INSERT INTO Booking_ticket VALUES(B0000

30、3,A03,C003,00003,2,327,2小时分,0003);INSERT INTO Booking_ticket VALUES(B00004,A04,C004,00004,1,328,2小时分,0004);INSERT INTO Booking_ticket VALUES(B00005,A05,C005,00005,1,329,2小时分,0005);/-订单信息插入-/use MARKETINSERT INTO Refund VALUES(D001,00001,0001);INSERT INTO Refund VALUES(D002,00002,0002);INSERT INTO Re

31、fund VALUES(D003,00003,0003);INSERT INTO Refund VALUES(D004,00004,0004);INSERT INTO Refund VALUES(D005,00005,0005);/-退票信息插入-/use MARKETINSERT INTO Relation VALUES(E001,0001,00001);INSERT INTO Relation VALUES(E002,0002,00002);INSERT INTO Relation VALUES(E003,0003,00003);INSERT INTO Relation VALUES(E0

32、04,0004,00004);INSERT INTO Relation VALUES(E005,0005,00005);use MARKETINSERT INTO Seat VALUES(C001,A,0001,北京);INSERT INTO Seat VALUES(C002,B,0002,天津);INSERT INTO Seat VALUES(C003,C,0003,上海);INSERT INTO Seat VALUES(C004,D,0004,河北);INSERT INTO Seat VALUES(C005,E,0005,南京);/-座位信息插入-/第七章 总结本次数据库课程设计总共用了两

33、个星期,总来说最困难地方是设计分析阶段,我选取是飞机票预定系统数据库设计。开始不太理解状况,为了更加进一步理解,我在网上登录几种大民航订票网站,我发现只有支付过机票钱才干提交订单,因此我没有看到订单详细状况,只依照自己理解写订单状况。之后关于机票信息,因此我觉得电子机票里应当涉及了所有信息,订单信息里面也有旅客信息,航班信息,机票信息等。本来机票还可以退票和改签,网上我懂得能退票,我本来想再设计可以在网上改签功能,但是改签机票需要考虑许多因素,要考虑机票与否是打折,和所在舱位,尚有与否换航空公司等,不是一种因素决定。如果时间再长某些,会仔细研究改签问题。通过本次实验,更加纯熟掌握了有关工具,还

34、可以纯熟使用Visio来画ER图。也懂得了如何搜索信息,对于画图也增长了审美感。虽然当前许多系统看似较好,但是尚有许多需要完善地方,咱们也要努力学习,有创新思想,来完善将来系统,虽然当前是模仿阶段,但应当会走更远。 第八章 参照文献1. 王英英 张少军 刘增杰. SQL SERVER 从零开始学,清华大学出版社,2. 数据库系统教程 (第三版) 施伯乐 丁宝康 汪卫 编著 高等教诲出版社附录SQL编程规范一、sql书写规范: 二、书写优化性能建议 三、其她经验性规则一、sql书写规范: 1、sql语句所有表名、字段名所有首字母大写,系统保存字、内置函数名、sql保存字大写。 2、连接符or、i

35、n、and、以及、=等先后加上一种空格。 3、对较为复杂sql语句加上注释,阐明算法、功能。 注释风格:注释单独成行、放在语句前面。 (1) 应对不易理解分支条件表达式加注释; (2) 对重要计算应阐明其功能; (3) 过长函数实现,应将其语句按实现功能分段加以概括性阐明; (4) 每条SQL语句均应有注释阐明(表名、字段名)。 (5) 常量及变量注释时,应注释被保存值含义(必要),合法取值范畴(可选) (6) 可采用单行/多行注释。(- 或 /* */ 方式) 4、SQL语句缩进风格 (1) 一行有多列,超过80个字符时,基于列对齐原则,采用下行缩进 (2) where子句书写时,每个条件占

36、一行,语句令起一行时,以保存字或者连接符开始,连接符右对齐。 5、多表连接时,使用表别名来引用列。 6、供别文献或函数调用函数,绝不应使用全局变量互换数据; 如例(1) 二、书写优化性能建议 1、避免嵌套连接。例如:A = B and B = C and C = D 2、where条件中尽量减少使用常量比较,改用主机变量 3、系统也许选取基于规则优化器,因此将成果集返回数据量小表作为驱动表(from后边最后一种表)。 4、大量排序操作影响系统性能,因此尽量减少order by和group by排序操作。 如必要使用排序操作,请遵循如下规则: (1) 排序尽量建立在有索引列上。 (2) 如成果集

37、不需唯一,使用union all代替union。 5、索引使用。 (1) 尽量避免对索引列进行计算。如对索引列计算较多,请提请系统管理员建立函数索引。 (2) 尽量注意比较值与索引列数据类型一致性。 (3) 对于复合索引,SQL语句必要使用主索引列 (4) 索引中,尽量避免使用NULL。 (5) 对于索引比较,尽量避免使用NOT=(!=) (6) 查询列和排序列与索引列顺序保持一致 6、尽量避免相似语句由于书写格式不同,而导致多次语法分析。 7、尽量使用共享SQL语句。 8、查询WHERE过滤原则,应使过滤记录数最多条件放在最前面。 9、任何对列操作都将导致表扫描,它涉及数据库函数、计算表达式

38、等等,查询时要尽量将操作移至等号右边。 10、in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开子句中应当包括索引。 三、其她经验性规则 1、尽量少用嵌套查询。如必要,请用not exist代替not in子句。如例(2) 2、用多表连接代替EXISTS子句。如例(3) 3、少用DISTINCT,用EXISTS代替 如例(4) 4、使用UNION ALL、MINUS、INTERSECT提高性能 5、使用ROWID提高检索速度。对SELECT得到单行记录,需进行DELETE、UPDATE操作时,使用ROWID将会使效率大大提高。 6、使用优化线索机制进行访问途径控制。 7、使用cursor时,显示光标优于隐式光标

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服