飞机航班管理系统_第1页
飞机航班管理系统_第2页
飞机航班管理系统_第3页
飞机航班管理系统_第4页
飞机航班管理系统_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

飞机航班管理系统数据库设计1 概述(设计题目与可行性分析)1.1 设计题目本次课程设计的题目是飞机航班管理系统设计。根据给出初始条件建立一个管理飞机航班的数据库,能够从中查询飞机的航班情况,飞行线路,票价,折扣等等情况。并能在数据库中更新维护飞机航班的信息,进行需求分析、概念设计、逻辑设计和物理实现,实现飞机航班数据库,并且基于该数据库实现具有一定功能的应用程序。1.2 可行性分析对于飞机航班管理,航空公司里可能有很多飞行班次。简单的书面管理无法满足对客户的服务需求和自身的高效运作。该系统实现后可对航班进行科学的微机管理,也使得用户可以直接在网上享受对航班的查询,订票,退票等服务,大大提高管理效率和服务水平。综上,飞机航班数据库是值得去现实的,下面从技术可行性、经济可行性和操作可行性3个方面进行分析:(1) 技术可行性:与飞机航班管理数据库相类似的一些数据库,如学生学籍数据库等都早已实现,为该数据库的设计和实现提供了一定的经验。同时市场上和数据库相关的一些技术都发展的十分成熟了,如微软开发的mssql、甲骨文开发的oracle、开源免费的mysql等都可以支持不同种类数据库的开发。因此,该数据库的设计和实现在技术上是可以行得通的;(2) 经济可行性:该飞机航班数据库设计并且实现后,可供用户相关的航班服务,一方面可以节省部分人力资源减少对大量客户直接接待的费用,提高工作效率;另一方面也可以更为科学和合理的管理飞机航班系统,对其进行及时管理,以提高公司的服务水平。因此,该数据库的的实现在经济上是可行的;(3) 操作可行性:通过基于飞机航班管理数据库的相关的应用系统的实现,用户即便不是数据库方面的专业人员,只要懂得计算机相应的输入输出,在系统的提示下就可以完成对飞机航班数据库的相关的操作。因此,具有操作可行性。总体上来看,可以在尽可能短的时间里,以最小的代价实现飞机航班数据库及其相关的应用系统,供航空公司对其航班进行更科学的管理,使用户获得更方便的服务。2 系统目标和建设原则2.1 系统目标飞机航班数据库的设计和实现需要航空公司根据自己的需求对本公司的飞机航班进行科学高效管理,并为用户提供方便实用的系统服务。数据库中需要保存航班的基本信息、并对航班信息做出及时的更新和维护。飞机航班主要包括1个记录表,此表包含航班的航班号,飞行时间,飞行路线,机票价格等信息,系统应对这些信息进行及时更新和维护。除了这些飞机航班数据库的基本组成表之外,该数据库的设计和实现还应当便于相关的应用程序开发人员的理解相关的信息,方便的进行相关的数据库操作,尽可能的为应用系统效率的提高奠定基础。2.2 建设原则数据库建设实质数据库应用系统从设计、实施到运行维护的全过程。数据库建设的基本规律是“三分技术,七分管理,十二分基础数据”。在数据库建设中,开发技术固然重要,但是管理更为重要,而且包括项目管理和企业的业务管理。经过长期的实践,人们越来越深刻的认识到一个企业数据库设计的过程是企业管理模式的改革和提高的过程,只有把企业的管理做好才能实现技术创新,才能建设好一个数据库应用系统。“十二分基础数据”则强调了数据的收集、整理、组织和不断更新是数据库建设中的重要环节,基础数据的手机、入库时数据库建立初期工作量最大、最繁琐、最细致的工作,在以后数据库运行过程中更需要不断的把新的数据加到数据库中,使之成为一个“活库”,具有更高的使用价值。同时,我们还不得不在进行结构设计的同时,也注意行为设计。数据库设计应该和应用系统设计相结合,也就是说,整个设计过程要把数据库结构设计和对数据库的处理设计密切结合起来。3 支撑环境规划3.1 网络逻辑结构飞机航班管理系统使用B/S结构(Browser/Server结构),即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台下,B/S架构管理软件更是方便、快捷、高效。图1 B/S体系的网络结构3.2 软件支撑环境及开发工具飞机航班数据库及其相应的应用系统的设计和实现都是在Windows XP操作系统下完成的。因为使用了B/S三层构架和MVC设计模式,因为J2EE本身就是B/S结构的平台,并且MVC在J2EE中的应用就是对J2EE程序进行分层管理,加之自己对于J2EE比较熟悉,自然而然的使用了J2EE的一套开发工具:(1) SDK:即Java软件开发工具包,这里使用的是jdk1.6.0_06版本;(2) MySQL Server 5.0:一个小型关系型数据库管理系统,因其体积小、速度快、开发源代码等特点,被广泛地应用在Internet上的中小型网站;(3) SQLyog:是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具;(4) Eclipse3.3:是一个开放源代码的、基于 Java 的可扩展开发平台,是一个框架和一组服务,用于通过插件组件构建开发环境;(5) Tomcat6.0:Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范,因为。Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器;(6) Lomboz3.3.0: 是Eclipse的一个J2EE的插件,它将很多Java应用服务器、J2EE组件和Web应用开发集成到Eclipse中,可以帮助Java开发者使用Eclipse建立、测试、部署J2EE应用。4 系统总体结构4.1需求分析4.1.1整体功能描述飞机航班管理系统能够查询飞机的航班情况,飞行线路,票价,折扣等等情况,并能够在数据库中更新维护飞机航班的信息,对飞机航班数据库进行管理,如航班的增加,删除和修改等。具体的功能需求如下。航班信息管理:(1) 添加航班:系统管理员可以在系统中增加飞机航班,在增加之前必须填写完整的飞机航班的属性。(2) 删除航班:系统管理员可以删除系统中已经存在的航班。(3) 修改航班属性:系统管理员可以根据航空公司实际航班更改情况修改系统数据库中已经存在的航班的属性。(飞机航班的属性包括:航班号,飞行时间,飞行路线,票价,实时折扣等信息。)航班信息查询:(4) 按航班号查询:用户给定航班号,系统返回相应的航班号的航班信息。(5) 按飞行线路查询:用户给定终点站,系统返回符合要求的航班信息。(6) 按同时输入的时间查询:用户给定时间,系统返回符合要求的航班信息。航班信息排序:(7) 按飞行时间进行排序。(8) 按航班号进行排序。进行订票:(9) 用户查询航班完毕后,输入航班号,填写相应信息进行订购机票。进行退票(10)用户输入航班号,填写相应信息进行退票信息。4.1.2总体DFD飞机航班数据库及其相关的应用程序的总体DFD图描述了信息流和数据的流动过程及其经过处理后的变化情况。用户选择相关的服务项目可以查看相关航班基本信息,并且可以根据自己需求选择相应服务,系统的信息更新时,相关的信息经过相应处理后,会存入到飞机航班数据库中的航班信息记录表中;系统管理员根据航空公司实际情况可以更新航班信息,并通过修改信息处理后被保存到飞机航班表中。图2 总体DFD系统维护部分使得系统管理员对基本信息进行相应修改,同时将删除,增加,或修给的结果保存在飞机航班信息表中,以使得统中的信息及时得到更新,便于应用。图3 系统信息维护的DFD顾客服务的部分使得顾客可以查询所需要的航班情况,可以对所需要乘坐的航班进行订票,并能对已订机票进行退订,系统对用户的服务请求做出相应信息反馈来满足用户的需求。并在订票退票后及时更新系统信息。图4 客户查询信息的DFD4.1.3数据字典名 字航班号别 名无描 述确定唯一的航班定 义航班 = 航班号 + 飞行时间+飞行线路 + 票价 + 实时折扣位 置系统数据库信息名 字航班号别 名无描 述确定唯一的航班定 义航班 = 航班号 + 飞行时间+飞行线路 + 票价 + 实时折扣位 置系统数据库信息名 字航班信息管理别 名无描 述描述对航班信息的修改定 义航班信息管理 = 添加航班 / 删除航班 / 修改航班属性位 置系统数据库信息名 字票价别 名无描 述购买航班机票所需费用定 义票价= 购买航班机票所需费用位 置系统数据库信息名 字飞行时间别 名无描 述描述航班起飞及到达时间定 义飞行时间 = 起飞时间 + 到达时间位 置系统数据库信息名 字飞行线路别 名无描 述描述航班飞行过程停航地点以及目的地定 义飞行线路 = 中途靠航地点 + 目的地位 置系统数据库信息名 字订票别 名无描 述描述用户对所需乘坐航班进行预订定 义订票 = 用户基本信息 + 航班号 + 定金位 置系统数据库信息名 字退票别 名无描 述描述用户所订机票进行退订定 义退票 = 用户基本信息 + 航班号位 置系统数据库信息名 字用户基本信息别 名无描 述唯一确定一个用户的属性定 义用户基本信息 = 姓名 + 性别 + 住址 + 身份证号位 置系统数据库信息名 字查询方式别 名无描 述描述用户根据需求以相应信息对航班进行查询定 义查询方式 = 按航班号查询 | 按飞行线路查询 | 按时间查询位 置系统数据库信息表1 数据字典4.2功能结构飞机航班数据库及其应用系统所涉及到的用户主要有顾客和系统管理员2类,因此也将该系统分为2个相应的大的功能模块。顾客可以通过服务项目选择查询相关航班情况,进行订票,退订等服务项目。,系统会将数据库中相应信息反馈给顾客。系统管理员负责管系统信息的及时更新,可以根据航空公司航班的具体的情况更新数据库。图6 功能结构图4.3 概念设计(E-R图)概念模型可以看成是现实世界到机器世界的一个过度的中间层次。它必须真实的反映现实世界中事物与事物之间的联系;应该容易被客户理解;随着应用环境和应用需求的改变,容易被修改和扩充;概念模型还应该容易向关系,网络和层次等各种数据模型转换。本次课程设计主要完成飞机航班数据库设计。在业务处理中发生查询,订票,退订等服务的联系双方是系统和客户,而系统情况是系统管理员来维护。通过对飞机航班数据库及其应用系统的分析,并结合所得到的各层数据流图,抽象数据并设计局部视图得到分ER图,然后是集成局部视图从而得到全局的概念视图,集合而成总体ER图。对于顾客来说,具有本身的一些信息和联系方式。遵循E_R图的设计原则,为了简化E_R图的处置,将能作为属性对待的尽量作为属性对待。因此,顾客实体的属性有:ID、姓名、性别、地址、电话和密码等。同理,系统管理员的属性有:ID、姓名、地址和电话。由步骤4.1中的数据流的分析可知,管理员可以维护系统、修改数据。系统可以为不同的客户提供服务,客户也可根据自己所需服务的情况进行选择。由此分析可得图7的E-R图。图7 E-R图4.4 逻辑设计E-R图则是由实体型、实体型的属性和实体之间的联系3个要素组成的。E-R图向关系模型的转换要解决的问题是如何将实体和实体型间的联系转换为关系模式,如何确定这些关系模式的属性和码。关系模型的逻辑结构是一组关系模式的集合。下面分别将E-R图中的实体和关系转化为相应的关系模式:(1) 系统管理员员(管理员ID,姓名,性别,住址,电话,e-mail,部门ID,密码)该关系模式已经包含了联系“属于”所对应的关系模式,其中部门ID是外码,其中对性别进行了约束,只能是男或者女;(2) 顾客(顾客ID,姓名,地址,电话)该关系模式是实体顾客所对应的关系模式;(3) 航班(航班号,航行线路,航行时间,票价,折扣,)该关系模式是联系“服务”所对应的关系模式,主码是航班号(4) 票价(票价,折扣)这是联系“买票”所对应的关系模式,主码是销售价格和折扣;在设计表时,除了设置实体完整性和参照完整性外,对一些有特定要求的列,需设置一些约束条件。如,性别只能取男女;订票和退票服务记录中服务完成情况只能是完成或者未完成;票价必须大于等于0等。总之,要根据实际情况对对应的属性设置一些约束以防止非法数据入库。而从数据库的安全性方面考虑,对应不同的用户群还可以设置相应的视图,以屏蔽掉一些保密数据。4.4 代码实现4.5.1 应用程序框架查询功能用 chaxun.java实现 4.5.2 查询代码import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/* * Servlet implementation class for Servlet: chaxun * */ public class chaxun extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet static final long serialVersionUID = 1L; /* (non-Java-doc) * see javax.servlet.http.HttpServlet#HttpServlet() */public chaxun() super(); /* (non-Java-doc) * see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stub /* (non-Java-doc) * see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubresponse.setCharacterEncoding(gb2312);String title = the infomation of air;String docType = n;String str_id=request.getParameter(id);/String str_stime=new String(request.getParameter(stime).getBytes(ISO-8859-1);String str_eaddr=new String(request.getParameter(eaddr).getBytes(ISO-8859-1);PrintWriter out = response.getWriter();out.println(docType+n+title+n+n+n+title+n+n+n+航班号起飞时间起飞地址终点站票价到达时间折扣);String str_dep = request.getParameter(department);Connection con=null;Statement sm=null;ResultSet rs=null;tryClass.forName(com.mysql.jdbc.Driver).newInstance();String url=jdbc:mysql:/localhost/wg;con = DriverManager.getConnection(url,root,123);sm = con.createStatement();if(!str_id.isEmpty()rs = sm.executeQuery(select air.id,air.stime,air.saddr,air.eaddr, +air.price,air.etime,air.discount from air +where air.id = +str_id+ and air.eaddr=+str_eaddr+ );elsers = sm.executeQuery(select air.id,air.stime,air.saddr,air.eaddr, +air.price,air.etime,air.discount from air +where air.eaddr=+str_eaddr+ );while(rs.next()out.println(+rs.getString(id)+rs.getString(stime)+rs.getString(saddr)+rs.getString(eaddr)+rs.getString(price)+rs.getString(etime)+rs.getString(discount);catch(Exception e)e.printStackTrace();finallyif(rs != null)tryrs.close();catch(Exception e)e.printStackTrace();if(sm != null)trysm.close();catch(Exception e)e.printStackTrace();if(con != null)trycon.close();catch(Exception e)e.printStackTrace(); 4.5.3 用户界面实现代码index欢迎光临请选择你要查询的航班航班号终点站4.5.4 测试截图 数据库航班表信息 查询结果截图当用户查询的信息不存在时,截图如下5 总体实施计划在飞机航班数据库设计的开始,需求分析是整个设计过程的基础,对设计出的数据库的性能影响是很大的。为了获得最为精确的需求信息,需要对该问题的背景有一定的了解,通过从网上查询资料和查看了一个现有的管理系统,了解了该系统的业务流程,再对飞机航班数据库分别进行功能分析和数据分析,得到功能需求和数据需求,为尽可能合理的设计系统进而解决实际问题奠定了基础。接着进行概念结构设计。飞机航班数据反映的是系统管理员、顾客等实体,数据库中表示的是这些实体的属性和它们之间的关系等的原始数据形式,包括各数据项、记录、表的标识符、定义、类型、度量单位和值域。对该系统进行详细的分析,得到0层数据流图和1层数据流图。再根据分析所得的数据流图分析出其所对应的分E-R图,最后将各分E-R图集成为整体的数据流图。对其进行规划后得到本数据库的全局视图,即总体E-R图。概念设计之后将概念结构映射为数据库全局逻辑结构(关系模型),包括所确定的关键字和属性、重新确定的记录结构和所建立的各个表文件之间的相互关系。首先要设计数据字典,对数据库设计中涉及到的各种项目,如数据项、记录、模式、子模式等一般要建立起数据字典,以说明它们的标识符、同义名及有关信息。接下来就可以根据所画的E_R图将其转化为所需的关系模式,在MySQL中设计数据库。此阶段要在各个表中设置合理的属性,并为其选择恰当的数据类型。同时还要对数据库的完整性进行约束,除设置主码,外码及其参照关系外,还要对一些特殊的表项添加用户约束条件。在基本表建立完毕后,就要根据该数据库所面向的用户群设置对应的用户和角色,从而能合理,高效的管理数据库。此外,为了提高数据库的安全性还可以对应不同的用户群在基本表的基础上建立视图。用MySQL设计好数据库后要进行安全保密设计,将如何通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密的设计考虑,这主要是对不同的数据库使用者提供不同的视图。由于时间有限,初步打算各实现3个模块的一些基本的操作数据库的相关的功能:客户可以查询相关航班一些基本信息;系统管理员可以更改航班的一些基本信息;管理员和用户都可以用ID和密码完成系统登录。在飞机航班数据库及其应用程序的实施阶段之后,就可以组织数据入库,编制和调试应用程序等,进行数据库的试运行。最终投入正式运行并在使用运行过程中不断的对其进行评价,调整和修改,从而不断的提高数据库的性能。6 研制报告6.1 系统优点本次课程设计主要是完成飞机航班数据库设计。在设计初期,系统地需求分析是十分重要的。首先要对有关航班服务业务流程有一个比较清晰的认识,要分析数据的流向以及对其进行的处理得到数据流图,接着根据得到的分层数据流图分析出其所对应的分E-R图,最后将分E-R图按照一定的规则集成为一张E-R图。在这期间,分析整个业务流程抽象出实体及其联系是十分重要的,不论从其性能还是合理性上进行考虑,E-R图的设计对最终数据库的设计影响是很大的。在设计好E-R图后,按照一定的规则完成从E-R图到关系模型的转换。如按照1:1联系,1:N联系,M:N联系得一些转化原则,可直接对E-R图进行转换。此时可根据实际情况的需要,将联系转换位一张单独的表或是合并到其他关系中,而在M:N联系转换为一张独立的表时,要根据实际情况,添加一个主码项,如,在本次课程设计中管理员ID号与客户ID号都不足以确定一条服务记录,可能会出现同一个顾客和同一个服务项目之间服务多次的情况,因此对于顾客和系统服务之间设定了业务ID这个逐渐。接下来用MySQL来设计该数据库。在建表的时候,要特别注意属性的数据类型选择,如日期选择datetime等。此时,还要注意数据库的完整性约束:设置主码,外码,设置参照完整性,设置约束条件等,如系统管理员信息中的性别只能去取男女;服务情况只能取完成或者未完成;票价只能大于零。在建立表完毕后,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论