民航售票管理系统数据库设计与实现 大学毕业设计.docx
《民航售票管理系统数据库设计与实现 大学毕业设计.docx》由会员分享,可在线阅读,更多相关《民航售票管理系统数据库设计与实现 大学毕业设计.docx(28页珍藏版)》请在冰豆网上搜索。
![民航售票管理系统数据库设计与实现 大学毕业设计.docx](https://file1.bdocx.com/fileroot1/2023-2/1/38c469bf-1c33-4e84-a031-33963f8ebda4/38c469bf-1c33-4e84-a031-33963f8ebda41.gif)
民航售票管理系统数据库设计与实现大学毕业设计
民航售票管理系统
──数据库设计与实现
摘要:
现在人们更多的使用飞机作为出行交通工具,因此机票票务市场也在快速发展。
人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注。
随着社会的不断进步,国内外航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求也进行开发的。
本文针对航空公司的订票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析,总体设计,详细设计,以及编码实现和调试等步骤设计开发站网上订票系统。
并运用数据流图和数据字典,E-R图和数据库逻辑结构,层次图,系统流程图,以及程序流程图,对该系统的数据需求,数据库,系统软件结构,系统流程,以及处理过程等进行了分析和设计。
本系统前台主要使用JSP作为开发语言,后台使用SqlServer作为数据库管理系统,开发环境是MyEclipse,服务器采用tomcat,开发出的一个基于Web技术的B/S结构的机票售票系统。
关键词:
机票售票JSPB/S结构
Abstract:
Nowmorepeopleusetheplaneastraveltransport,sotheticketmarketalsoinfastdevelopment.Peoplewanttoticketsalesapproachcanalsobeadjustedaccordingly,andhowcantheeconomic,convenientandtimelytobuywhattheyneedtoticketshowedgreatconcern.Withtheconstantprogressofthesociety,therapiddevelopmentofaviationindustryathomeandabroad,theairlineticketmanagementrequirementsareconstantlyimprove,thissystemisaimedatthegrowingdemandfordevelopmentalso.
Thisarticleinviewoftheactualsituationoftheairlinetickets,accordingtothesoftwareengineeringstructureddesignthought,aftertheprojectcandostudyandneedsanalysis,overalldesign,detaileddesign,aswellascoderealizationanddebuggingandotherstepsdesignedanddevelopedticketsonlinesystemfirestation.Andtheuseofadataflowgraphanddatadictionary,e-rchartanddatabaselogicstructure,thehierarchicalgraph,thesystemflowdiagram,andprogramflowchart,thesystemofdatarequirements,database,softwaresystemstructure,systemflowprocess,aswellastheprocessofanalysisanddesign。
ThissystemmainlyusedasareceptionistJSPlanguagedevelopment,useasabackgroundSqlServerdatabasemanagementsystem,thedevelopmentenvironmentisMyEclipse,serverusingtomcat,developedaWebtechnologybasedonB/Sstructureoftheticketcountersystem。
Keywords:
Ticketreservation;JSP;B/Sstructur
1引言
1.1课题背景
随着旅游业的逐渐的成熟发达,航空客运量大幅度的提高,国内国际的旅游航班的增加,这些都对航空的信息管理系统提出了更高的要求,所以要不断地完善更新航空售票系统,提高航空售票系统的工作效率。
航空系统中,售票系统是很重要的一个环节,要想提高整个航空公司的工作效率,就要先提高售票系统的工作效率和安全性,故而研发此系统,此系统能够为售票工作提供方便快捷的售票服务,广大的客户可以得到更高更好的票务服务。
1.2目的和意义
现在人们更多的使用飞机作为出行交通工具,因此机票票务市场也在快速发展。
人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注。
随着社会的不断进步,国内外航空事业的飞速发展,各航空公司对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求也进行开发的。
1.3开发工具及技术
1.3.1开发工具
完成,下面对此次设计主要采用MyEclipse加Tomcat后台服务器进行,设计过程中页面主要使用JSP技术MyEclipse、Tomcat和SqlServer数据库进行简要介绍。
1.3.2SqlServer
SqlServer使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统;为多种编程语言提供了API;支持多线程,充分利用CPU资源;提供TCP/IP、ODBC和JDBC等多种数据库连接途径;可以处理拥有上千万条记录的大型数据库。
对于一般的个人使用者和中小型企业来说,SqlServer提供的功能已经绰绰有余,而且由于SqlServer是开放源码软件,因此可以大大降低总体拥有成本。
1.3.3JSP
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
JSP技术的优点:
(1)一次编写,到处运行。
除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/.net的局限性是显而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下
(5)支持服务器端组件。
web应用需要强大的服务器端组件来支持,开发人员需要利用其他工具设计实现复杂功能的组件供web页面调用,以增强系统性能。
JSP可以使用成熟的JAVABEANS组件来实现复杂商务功能。
内部对象说明:
request客户端请求,此请求会包含来自GET/POST请求的参数;response 网页传回客户端的响应;pageContext网页的属性是在这里管理;session与请求有关的会话;applicationservlet正在执行的内容;out用来传送响应的输出流;config 代码片段配置对象;page JSP网页本身;exception 针对错误网页,未捕捉的例外
1.3.4JavaScript
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
JavaScript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。
在HTML基础上,使用Javascript可以开发交互式Web网页。
Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。
在本系统中很多地方使用了javascript技术,比如说,检验用户输入数据的有效性,是否重复,是否为空等等。
1.3.5Struts2简介
Struts最早是作为ApacheJakarta项目的组成部分问世运作。
项目的创立者希望通过对该项目的研究,改进和提高JavaServerPages、Servlet、标签库以及面向对象的技术水准。
它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是Jakarta项目中的一个子项目,并在2002年3月成为ASF的顶级项目。
它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller〔MVC〕设计模式的应用框架〔WebFramework〕,是MVC经典设计模式中的一个经典产品。
而Struts2则是Struts的升级版本。
它的优点在于:
1Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程;
2使用OGNL进行参数传递;
3强大的拦截器;
4易于测试;
5易于扩展的插件机制;
6全局结果与声明式异常。
1.3.6Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有2个,分别为:
Session、SessionFactory、Transaction、Query和Configuration。
这2个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
1.4软硬件需求
硬件需求:
CPU:
Pentium以上计算机
内存:
512M以上
软件需求:
操作系统版本:
WindowsXP/vista/Win7
开发工具:
MyEclipse6.0.1
后台服务器:
ApacheTomcat6.0
开发语言:
Java
浏览器:
IE6.0
2民航售票管理系统数据库设计需求分析
2.1任务概述
2.1.1系统目标
本系统需要满足以下几个系统设计目标。
1)实用性原则:
真正为用户的实际工作服务,给民航机场售票业务带来方便。
2)友好性原则:
本民航机场售票管理系统的用户是各大机场的售票人员,所以系统操作上要求简单、方便、快捷,便于用户使用。
2.1.2用户特点
本系统面向各大民航机场,因为在每年的寒假、暑假、重要的假期,会有大量的用户订购飞机票,所以会在节假日的开始与结束时,本系统会出现较大的负荷。
其它时间符合比较均衡。
2.2系统的功能需求
2.2.1系统角色功能需求
本系统只有一种角色:
管理员。
管理员负责添加、删除客机信息、客户信息、航线信息、舱位信息以及票务信息。
2.2.2功能模块
本系统主要负责管理模块,各个子模块功能需求如下:
1)机票预订信息管理模块
管理员可以添加机票预订信息,并可以对添加的机票预订信息进行添加、查询、删除。
2)客户信息管理模块
管理员可以批量添加客户信息,并可以对添加的客户信息进行添加、删除。
3)航线信息管理模块
管理员可以批量添加航线信息,并可以对添加的航线信息进行添加、删除。
4)客机信息管理模块
管理员可以批量添加客机信息,并可以对添加的客机信息进行添加、删除。
5)舱位信息管理模块
管理员只可以修改飞机舱位信息。
2.3系统的性能分析
为了保证系统能够长期、安全、稳定、可靠、高效的运行,系统应该满足以下的性能需求:
1)系统的开放性和系统的可扩充性
系统在开发过程中,应该充分考虑以后的可扩充性。
例如飞机信息属性添加、修改;客户信息属性添加、修改等模块也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补、替换完成系统的升级和更新换代。
2)系统的易用性和易维护性
系统是直接面对使用人员的,而有些使用人员往往对计算机并不是非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
系统中涉及到的数据是高校实验室相当重要的信息,因此系统为不同角色的用户提供了方便的管理后台进行数据管理,特别为系统管理员提供了数据备份,日常安全管理,防止系统意外崩溃等功能。
3)系统的响应速度
系统设计中摒弃大量数据冗余,提出了优化数据库的解决方案,大量使用存储过程,大大提高系统响应时间和速度。
系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。
严格保证操作人员不会因为速度问题而影响工作效率。
2.4系统的数据需求
通过对系统功能需求的分析,可以初步确定该系统的基本数据需求。
由各个功能模块可以进一步确定具体的数据需求,具体数据需求如下:
1)机票预订模块数据需求
该模块主要管理客户订票,需要表示的数据有:
订票数据:
应包含机票编号、机票价格
客户数据:
客户编号、客户姓名
航线数据:
航线编号、起始城市、终点城市、出发日期
舱位数据:
舱位类型编号
2)客户信息管理模块
该模块主要管理客户自身信息,需要表示的数据有:
客户编号、客户姓名、客户性别、客户证件号、客户电话。
3)航线信息管理模块
该模块主要管理航线自身信息,需要表示的数据有:
航线编号、起始城市、终点城市、出发时间、到达时间、飞机编号、经济舱价格、头等舱价格。
4)客机信息管理模块
该模块主要管理客机自身信息,需要表示的数据有:
飞机编号、飞机类型、经济舱座位数、头等舱座位数。
5)舱位信息管理模块
该模块主要管理舱位自身信息,需要表示的数据有:
舱位类型编号、舱位类型名称、是否有报刊、是否有饮料、是否有食物、是否可取消、是否可打折
3系统分析与设计
3.1数据库的分析与设计
计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。
数据库已经成为现在信息系统等计算机系统的基础与核心部分。
数据库设计的好坏直接影响到整个系统的质量和效率。
数据库的设计一般经过规划。
需求分析、概念设计、逻辑设计、物理设计5个步骤。
3.1.1数据库的概念结构设计
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。
E-R模型法的组成元素有:
实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。
概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。
实体间关系
属性
实体
(1)会员信息实体E-R图如图3.1所示:
图3.1会员信息实体E-R图
(2)航班信息实体E-R图如图3.2所示
图3.2航班信息实体E-R图
(3)订单信息E-R图如图3.3所示
图3.3订单信息实体E-R图
(4)公告信息E-R图如图3.4所示
图3.4公告信息实体E-R图
(5)留言信息E-R图如图3.5所示
图3.5留言信息实体E-R图
(4)管理员信息E-R图如图3.6所示
图3.6管理员信息实体E-R图
3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。
即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOTNULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
根据E-R模型,机票售票系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)会员信息表主要是记录了会员基本信息。
表结构如表3.1所示。
表3.1会员信息表(t_user)
列名
数据类型
长度
允许空
是否主键
说明
user_id
Int
4
否
是
编号
user_name
Varchar
50
否
否
登录名
user_pw
Varchar
50
否
否
密码
user_type
Varchar
50
否
否
会员类型
user_realname
Varchar
50
否
否
真实姓名
user_address
Varchar
50
否
否
住址
user_sex
Varchar
50
否
否
性别
user_tel
Varchar
50
否
否
联系电话
user_email
Varchar
50
否
否
邮箱
user_qq
Varchar
20
否
否
QQ
(2)航班信息表主要是记录了航班的基本信息,表结构如图3.2所示。
表3.2航班信息表(t_checi)
列名
数据类型
长度
允许空
是否主键
说明
id
Int
4
否
是
编号
luxian
Int
4
否
否
路线名称
piaoshijian
varchar
50
否
否
机票时间
startshijian
varchar
50
否
否
起飞时间
endshijian
varchar
50
否
否
到达时间
piaojia
varchar
50
否
否
票价
piaoshu
varchar
50
否
否
票数
(3)订单信息表主要是记录订单的基本信息,表结构如图3.3所示。
表3.3订单信息表(t_yuding)
列名
数据类型
长度
允许空
是否主键
说明
Id
Int
4
否
是
编号
user_id
Int
4
否
否
会员ID
checi_id
Int
4
否
否
航班ID
yuding_shumu
varchar
50
否
否
预订数目
yuding_jine
varchar
50
否
否
预订金额
Zhifufangshi
varchar
50
否
否
支付方式
yuding_shijian
varchar
50
否
否
预订时间
yuding_zhuantai
varchar
50
否
否
预订状态
(4)公告信息表主要是记录了公告的基本信息,表结构如图3.4所示。
表3.4公告信息表(t_gonggao)
列名
数据类型
长度
允许空
是否主键
说明
id
int
4
否
是
编号
title
varchar
50
否
否
标题
content
varchar
5000
否
否
内容
shijian
varchar
50
否
否
发布时间
(5)留言信息表主要是记录了留言的基本信息,表结构如图3.5所示。
表3.5留言信息表(t_liuyan)
列名
数据类型
长度
允许空
是否主键
说明
id
int
4
否
是
编号
title
varchar
50
否
否
标题
content
varchar
5000
否
否
内容
shijian
varchar
50
否
否
发布时间
user_id
Varchar
50
否
否
发布人
(6)管理员信息表主要记录的管理员的账号信息,包括用户名和密码,表结构如表
3.6所示。
表3.6管理员信息表(t_admin)
列名
数据类型
长度
允许空
是否主键
说明
userId
Int
4
否
是
编号
userName
Varchar
50
否
否
用户名
userPw
Varchar
50
否
否
密码
3.1.3数据库的连接原理
本系统采用Hibernate对数据库进行管理。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。
相对于使用JDBC和SQL来手工操作数据库,Hibernate可以大大减少操作数据库的工作量。
另外Hibernate可以利用代理模式来简化载入类的过程,这将大大减少利用HibernateQL从数据库提取数据的代码的编写量,从而节约开发时间和开发成本Hibernate可以和多种Web服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
Hibernate技术本质上是一个提供数据库服务的中间件。
它的架构如图3.5所示:
图3.5Hibernatre架构图
图3.5显示了Hibernate的工作原理,它是利用数据库以及其他一些配置文件如Hibernate.properties,XMLMapping等来为应用程序提供数据持久化服务的。
Hibernate具有很大的灵活性,但同时它的体系结构比较复杂,提供了好几种不同的