收藏 分销(赏)

机票预订系统优秀课程设计.doc

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

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旅客编号

10、VARCHAR50否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_Numbe

11、r座位号VARCHAR50否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机票编号V

12、ARCHAR50否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

13、.1 E-R图向关系模型转换订单信息(订单号,航班号,座位号,数量,类型)退票信息(订单号,旅客编号,时间)旅客信息(旅客编号,身份证号,姓名,性别,联络电话) 航班信息表(航班编号,起飞地,目标地,起飞时间) 座位信息表(座位号,机票类型)4.2 数据模型优化将转化关系模式进行优化,最终达成第三范式。1、确定数据依靠退票信息(订单号,旅客姓名,航班号)依据这个关系写出数据依靠订单号旅客姓名,订单号座位号,订单号航班号旅客(旅客姓名,旅客编号,电话号,性别)旅客姓名身份证号,旅客姓名电话号,旅客姓名性别 航班信息表(航班号,起飞地,目标地,起飞时间)航班号起飞地,航班号目标地,航班号起飞时间座

14、位信息表(座位号,航班号,座位信息,机票类型)(座位号,航班号)座位信息,(座位号,航班号,座位信息)机票类型2、 对各关系模式间数据依靠进行极小化处理,消除冗余 订单号旅客编号,订单号座位号,订单号机票编号,订单号机票编号3、 看这些模式是否符合要求,确定是否要对一些模式进行合并或分解 最终分解成第三范式: (订单号,机票编号,机票类型)(订单号,旅客编号)(旅客编号,旅客姓名,性别)(旅客姓名,座位号)(航班号,座位号,机票类型)(航班号,起飞地,目标地,起飞时间) 第五章 功效实现5.1查询功效实现经过查询功效我们能够找到相关信息。USE MARKET SELECT * FROM Sea

15、t 查询功效图5-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_

16、Ticket WHERE 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 第六章 源代码建库

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

18、 key,/-设置主键-/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_Tim

19、e varchar(50) 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 varcha

20、r(50) not null,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 MARKETCREA

21、TE TABLE Ticket(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 n

22、ull,Passenger_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)

23、references Seat(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

24、 table Refundadd 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(

25、Ticket_Number) 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 MARKETgoalte

26、r table Booking_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小时分,包头,天

27、津,B1);INSERT 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);INS

28、ERT INTO Ticket 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,小张,12345

29、68,男,);INSERT 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

30、VALUES(B00003,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);IN

31、SERT INTO Refund 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 Relati

32、on VALUES(E004,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保留字大写

35、。 2、连接符or、in、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) 排序尽可能建立在有索引

37、列上。 (2) 如结果集不需唯一,使用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时,显

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信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 

客服