为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

电大计算机科学与技术专业本科毕业论文公交查询系统

2020-03-07 4页 doc 778KB 30阅读

用户头像 个人认证

is_732362

暂无简介

举报
电大计算机科学与技术专业本科毕业论文公交查询系统广播电视大学毕业设计(论文)计算机科学与技术专业本科毕业论文题目:公交查询系统学号:姓名:XX学校:开放教育学院指导教师:XX答辩日期:2011年X月论文成绩:XX广播电视大学目录3摘  要4第一章 绪 论4§1.1数据库技术1.1.1 数据库的体系结构41.1.2 数据库管理系统(DBMS)4§1.2 公交查询系统51.2.1 计算机网络51.2.2 系统功能61.2.3 系统运行环境61.2.4 ...
电大计算机科学与技术专业本科毕业论文公交查询系统
广播电视大学毕业设计(论文)计算机科学与技术专业本科毕业论文题目:公交查询系统学号:姓名:XX学校:开放教育学院指导教师:XX答辩日期:2011年X月论文成绩:XX广播电视大学目录3摘  要4第一章 绪 论4§1.1数据库技术1.1.1 数据库的体系结构41.1.2 数据库管理系统(DBMS)4§1.2 公交查询系统51.2.1 计算机网络51.2.2 系统功能61.2.3 系统运行环境61.2.4 系统开发工具61.2.5 现状与前景6§1.3 本文所作工作7第二章 数据库理论基础8§2.1关系型数据库82.1.1 关系模型的基本概念82.1.2 数据库的设计理论9§2.2SQL语言介绍102.2.1 SQL的组成112.2.2 SQL的数据查询112.2.3 SQL的数据更新1214第三章技术背景介绍414§3.1 JSP技术介绍4143.1.1 JSP与ASP的简单比较4143.1.1 JSP与ASP的简单比较3.1.2 JSP运行环境43.1.3JSP页面示例14518§3.2 B/S系统介绍83.2.1B/S架构具备极大的优越性:193.2.2采用JAVA语言实现2021第四章 公交查询系统设计分析121§4.1应用需求分析121§4.2系统功能模块划分121§4.3系统数据库设计2214.3.1概念设计2214.3.2逻辑设计425第五章公交查询系统应用程序设计(部分)25§5.1查询模块的功能实现528§5.2管理更新的功能实现8285.2.1公交站点管理8315.2.2公交线路管理136第六章 结束语6摘  要本文结合公交查询系统的实际需要,通过对B/S模式、JDK开发环境及工具、Web发布服务、数据库以及SQL语言的深入学习及实践,主要完成了公交查询系统的需求分析、数据库设计、应用程序设计的工作。关键词:B/S结构,计算机网络,数据库,SQL语言,JSP,WEB服务器 第一章 绪 论§1.1数据库技术  数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。1.1.1 数据库的体系结构数据的体系结构分成三级:内部级(Internal),概念级(Conceptual)和外部级(External)。这个三级结构有时也称为“三级模式结构”。1、 外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。2、概念级:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。3、内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。1.1.2 数据库管理系统(DBMS)数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS的主要目标,是使数据作为一种可管理的资源处理。DBMS的主要功能为:1、 数据库定义功能:DBMS提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS中应包括DDL的编译程序。2、数据库的操纵功能:DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。基本的数据操作分成两类四种:检索(查询)、更新(插入、删除、修改)3、数据库的保护功能:数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。DBMS对数据库的保护主要通过四个方面实现:4、数据库的恢复:在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。5、数据库的并发控制:DBMS的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。6、数据库的完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。7、数据库的安全性控制:防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。8、数据库的存储管理:把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。9、数据库的维护功能:它有许多实用程序提供给数据库管理员:数据装载程序备份程序文件重组织程序性能监控程序10、数据字典:数据库系统中存放三级结构定义的数据库称为数据字典(DD)。对数据库的操作都要通过访问DD才能实现,通常DD中还存放数据库运行时的统计信息。§1.2 公交查询系统1.2.1 计算机网络计算机网络是指将多台具有独立功能的计算机,通过通信线路和通信设备连接起来,在网络软件的支持下实现数据通信和资源共享的计算机系统。计算机网络的规模有大有小,大的可以覆盖全球,小的仅局限于一个办公室。现在一般按照网络覆盖的地理范围将计算机网络分为三类:局域网(LAN)、城域网(MAN)、广域网(WAN)。1.2.2系统功能1、基于浏览器(B/S模式)的公交线路分类查询;2、数据的录入、修改、添加、删除。1.2.3系统运行环境该系统采用Browser/Server模式进行设计:在服务器上运行Web发布服务器、数据库程序,服务器操作系统为WindowsNT/2000/XP/2003server,客户机操作为Windows9×/NT/2000/XP/2003,其上运行浏览器程序,服务器和客户机可为同一设备。1.2.4系统开发工具该系统采用JDKJava环境进行开发,数据库服务器为MySQL,WEB发布服务器为TomcatServer;客户端使用浏览器运行程序,整个系统调试成功。1.2.5现状与前景公交查询系统现状分析:鉴于中国目前的经济发展状况,中国人出行还是以公交车为主,所以每个城市的公交系统都比较庞大发达。公交查询系统是近两年出现的新生事物,每个城市的发展状况也是良莠不齐。目前的公交查询系统,基本上具备一下功能:采用车站站点查询、车次查询、路线分析查询三种查询形式,不仅能够查询到各条线路的起停站点,同时还能够分析出换乘车辆情况。 公交查询系统的发展前景:未来的公交查询系统,将是基于B/S架构,通过浏览器查询,通过计算机网络全面联网,实现中心控制、自动更新、更多的查询方式、和GIS系统的互联互通等等更多更强大的功能。§1.3 本文所作工作首先介绍了城市公交查询系统的应用背景、开发环境以及选用的开发工具与数据库的关系,阐明了计算机互联网络的概念。并对数据库的体系结构、DBMS进行了介绍;介绍关系型数据库的基本概念,着重说明了几个关键概念的定义;然后对SQL语言作了一个介绍说明;从特点和功能入手,介绍Java、JSP;并且介绍了B/S模式的概念、特点;用软件工程的方法分析城市公交查询系统,对整个系统进行了需求分析、功能模块划分,并通过ER图对数据库进行概念设计;对城市公交查询系统的具体设计,描述了查询、录入模块的实现过程。最后,在结束语的总结部分指出了系统的亮点以及不足之处,简单介绍了自己开发过程中的体会与:在摸索中实践,在实践中摸索。第二章 数据库理论基础§2.1 关系型数据库2.1.1 关系模型的基本概念用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。1. 二维表格表2-1是一张职工登记表,这是二维表格工号 姓名 年龄 性别 工资0001 Zhang 26 男 10000002 Li 25 女 15000003 Liu 29 男 10000004 Wang 22 女 1500表1 二维表格实例为简单起见,对表格数学化,用字母表示表格的内容。表1可用图1表示:                                                A B C D EA1A2A3A4 B1B2B3B4C1C2C3C4 D1D2D3D4 E1E2E3E4图12. 键(KEY)键由一个或几个属性组成,在实际使用中,有下列几种键:1) 超键(SuperKey):在关系中能惟一标识元组的属性集称为关系模式的超键。2) 候选键(CandidateKey):不含有多余属性的超键称为候选键。也就是在候选键中,若要再删除属性,就不是键了。3) 主键:(PrimaryKey):用户选作元组标识的一个侯选键称为主键。一般,如不加说明,则键是指主键。3. 关系的定义和性质我们可以用集合的观点定义关系。关系是一个元数为K(K>=1)的元组的集合。把关系看成是一个集合,集合中的元素是元组,每个元组的属性个数应相同。在关系模型中,对关系作了下列性限制:1) 关系中每一个属性值都是不可分解的。2) 关系中允许出现相同的元组(没有重复元组)3) 由于关系是一个集合,因此不考虑元组间的顺序,即没有行序。4) 元组中,属性在理论上也是无序的,但在使用时按习惯考虑列的顺序。2.1.2数据库的设计理论关系数据库的设计理论主要包括三个方面的内容:数据依赖、范式,模式设计方法。其中数据依赖起着核心的作用。1. 函数依赖(Functionaldependency,FD)的定义设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“Y函数依赖于X”,记作X→Y。如果X→Y,并且对于X的任一真子集X’,都有Y不函数依赖于X’,则称“Y完全函数依赖于X”,记作XfY。若X→Y,但Y不完全函数依赖于X,则称“Y部分函数依赖于X”,记作XPY。如果X→Y,Y→Z,且Y≮X,X不函数依赖于Y,则称“Z传递函数依赖于X”。2. 范式在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,……,依此类推。第一范式(firstnormalform,简称1stNF)就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1stNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1stNF。第二范式(secondnormalform,简称2ndNF)是指每个表必须有一个(而且仅一个)数据元素为主关键字(primarykey),其它数据元素与主关键字一一对应。例如,在图l9.7中如果我们将号定义为主关键字(其它数据元素中的数据都有可能重名,故不能作为主关键字),故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖(functionaldepEndence)关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式(thirdnormalform,简称3rdNF)就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了2ndNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。下面以教务管理信息系统为例来进行分析。3. 模式设计方法一个好的模式设计方法应符合下列三条原则:表达性:涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖来衡量。分离性:是指属性间的“独立关系”应该用不同的关系模式表达。独立联系是我们所考虑的“基本信息单位”。实际上分离就是清除存储异常和数据冗余现象。如果能达到这个目的,就分离。分离的基准就是一系列范式,分离与依赖等价有时是不可兼容的。最小冗余性:要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。目的就是节省存储空间,提高对关系的操作效率,清除不必要的冗余。但要注意,在实际使用中,并不一定要达到最小宙余。因为有时带点冗余对于查询处理是有好处的。关系模式的方法基本上可以分为分解与合成两大类。分解型算法要求输入一个初始模式集和依赖集,而结果满足数据等价要求。对于合成型算法只要求输入初始依赖集,结果满足依赖等要求。但它们依据的基本思想是共同的,即独立的联系独立表示。§2.2SQL语言介绍SQL(StructuredQueryLanguage)即“结构式查询语言”。SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。由于它使用方便、功能丰富、语言简单易学,很快得到应用和推广。从20世纪70年代末起,在推出的关系数据库系统产品ORACLE、SQL/DS、DB2、SYBASE上实现了SQL语言。很快,SQL语言被整个计算机界认可。1987年6月,国际标准化组织(ISO)采纳为国际标准。随后,ISO对标准进行了大量的修改和扩充。在1992年推出了新的标准-SQL2。SQL的标准化工作还在继续,新的标准已被命名为SQL3,将包括许多新的数据库概念,正在不征求意见和进行修改这里将简单介绍基于SQL89和SQL2的语言使用概貌:2.2.1SQL的组成SQL主要分成四个部分:1)数据定义:这一部分也称为“SQL DDL”,用于定义SQL模式、基本表、视图和索引。2)数据操纵:这一部分也称为“SQL DML”。它分为数据查询和数据更新两类。其中数据更新又分成插入、删除、和修改三种操作。3)数据控制:这一部分包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。4)嵌入式SQL的使用规定:这一部分内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。2.2.2SQL的数据查询n SELECT语句的语法SELECT 目标表的列名或列表达式序列FROM 基本表和(或)视图序列[WHERE行条件表达式][GROUPBY列名序列[HAVING组条件表达式]][ORDERBY列名[ASC|DESC]…]句法中[]表示该成分可有,也可无。整个语句的执行过程如下:a) 读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。b) 读取满足WHERE子句中给出的条件表达式的元组。c) 按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。d) 按SELECT子句中给出的列名或列表达式求值输出。e) ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“组条件子句”,ORDER子句称为“排序子句”。2.2.3SQL的数据更新SQL的数据更新包括数据插入、删除和修改等三种操作1)数据插入a) 元组值的插入INSERT INTO 基本表名(列名表)VALUES(元组值)或者 INSERT INTO 基本表名(列名表)(TABLE(元组值),    (元组值),     ……)前一种格式只能插入一个元组,后一种格式可以插入多个元组。2)数据删除SQL的删除操作是指从基本表删除元组,其语法如下:DELETE FROM 基本表名[WHERE条件表达式]其语义是从基本表中删除满足条件表达式的元组。3)数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下:UPDATE 基本表名SET 列名=值表达式[,列名=值表达式…][WHERE条件表达式]其语义是:修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。第三章技术背景介绍§3.1 JSP技术介绍在Sun正式发布JSP(JavaServerPages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照Sun的说法,JSP能够适应市场上包括ApacheWebServer、IIS4.0在内的85%的服务器产品。3.1.1 JSP与ASP的简单比较   JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。   ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。 3.1.2 JSP运行环境   Sun公司的JSP主页在http://www.javasoft.com/products/jsp/index.html,从这里还可以下载JSP规范,这些规范定义了供应商在创建JSP引擎时所必须遵从的一些规则。    在运行JSP示例页面之前,请注意一下安装JSWDK的目录,特别是“work”子目录下的内容。执行示例页面时,可以在这里看到JSP页面如何被转换成Java源文件,然后又被编译成class文件(即Servlet)。JSWDK软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的HTML文件,这些表单均由JSP代码处理。与ASP一样,JSP中的Java代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果HTML代码。所有示例的源代码均通过一个单独的“examples”页面提供。 3.1.3 JSP页面示例   下面我们分析一个简单的JSP页面。您可以在JSWDK的examples目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为.jsp。从下面的代码清单中可以看到,JSP页面除了比普通HTML页面多一些Java代码外,两者具有基本相同的结构。Java代码是通过<%和%>符号加入到HTML代码中间的,它的主要功能是生成并显示一个从0到9的字符串。在这个字符串的前面和后面都是一些通过HTML代码输出的文本。  <HTML> <HEAD><TITLE>JSP页面</TITLE></HEAD> <BODY> <%@pagelanguage="java"%> <%!Stringstr="0";%> <%for(inti=1;i<10;i++){ str=str+i; }%> JSP输出之前。  <P> <%=str%> <P> JSP输出之后。  </BODY> </HTML>  这个JSP页面可以分成几个部分来分析。 首先是JSP指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。JSP指令由<%@开始,%>结束。在本例中,指令“<%@pagelanguage="java"%>”只简单地定义了本例使用的是Java语言(当前,在JSP规范中Java是唯一被支持的语言)。 接下来的是JSP声明。JSP声明可以看成是定义类这一层次的变量和方法的地方。JSP声明由<%!开始,%>结束。如本例中的“<%!Stringstr="0";%>”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通Java类中声明成员变量一样。 位于<%和%>之间的代码块是描述JSP页面处理逻辑的Java代码,如本例中的for循环所示。 最后,位于<%=和%>之间的代码称为JSP表达式,如本例中的“<%=str%>”所示。JSP表达式提供了一种将JSP生成的数值嵌入HTML页面的简单方法。会话状态维持是Web应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用Cookies、隐藏的表单输入域,或直接将状态信息附加到URL中。JavaServlet提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。JSP也同样支持Servlet中的这个概念。  在Sun的JSP指南中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如request对象,它是HttpServletRequest的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括Cookies,HTML表单变量等等。session对象也是这样一个隐含对象。这个对象在第一个JSP页面被装载时自动创建,并被关联到request对象上。与ASP中的会话对象相似,JSP中的session对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。  为说明session对象的具体应用,接下来我们用三个页面模拟一个多页面的Web应用。第一个页面(q1.html)仅包含一个要求输入用户名字的HTML表单,代码如下: <HTML> <BODY> <FORMMETHOD=POSTACTION="q2.jsp"> 请输入您的姓名: <INPUTTYPE=TEXTNAME="thename"> <INPUTTYPE=SUBMITVALUE="SUBMIT"> </FORM> </BODY> </HTML>  第二个页面是一个JSP页面(q2.jsp),它通过request对象提取q1.html表单中的thename值,将它存储为name变量,然后将这个name值保存到session对象中。session对象是一个名字/值对的集合,在这里,名字/值对中的名字为“thename”,值即为name变量的值。由于session对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。q2.jsp的另外一个任务是询问第二个问题。下面是它的代码: <HTML> <BODY> <%@pagelanguage="java"%> <%!Stringname="";%> <% name=request.getParameter("thename"); session.putValue("thename",name); %> 您的姓名是:<%=name%> <p> <FORMMETHOD=POSTACTION="q3.jsp"> 您喜欢吃什么? <INPUTTYPE=TEXTNAME="food"> <P> <INPUTTYPE=SUBMITVALUE="SUBMIT"> </FORM> </BODY> </HTML>  第三个页面也是一个JSP页面(q3.jsp),主要任务是显示问答结果。它从session对象提取thename的值并显示它,以此证明虽然该值在第一个页面输入,但通过session对象得以保留。q3.jsp的另外一个任务是提取在第二个页面中的用户输入并显示它: <HTML> <BODY> <%@pagelanguage="java"%> <%!Stringfood="";%> <% food=request.getParameter("food"); Stringname=(String)session.getValue("thename"); %> 您的姓名是:<%=name%> <P> 您喜欢吃:<%=food%> </BODY> </HTML>§3.2 B/S系统介绍传统的C/S架构(客户机/服务器,Client/Server)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。为弥补上述C/S架构的缺陷,人们发展出了三层或多层架构:客户机—中间件(应用服务器)—数据库服务器(Client—Middleware—DatabaseServer)。在这种架构中,业务逻辑放置于中间件服务器上,大量的数据流也位于中间件和数据库之间,而客户机只是简单地发出请求,中间件接受请求后进行事务处理并将处理的结果返回给客户机,这一类型的客户机也称之为“廋客户”。B/S架构实际上是三层架构的一种,所不同的是客户端就是目前几乎每台电脑中都有的网络浏览器,而中间件则是Web应用服务器。注意到主要的业务逻辑均由位于Web应用服务器上的Servlet和JSP程序或EJB来处理。3.2.1B/S架构具备极大的优越性1、面向电子商务时代的技术将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。2、软件操作、维护和升级方式的革命软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。3、系统整合无论是办公自动化(OA)系统,人力资源(HR)系统,客户关系管理(CRM)系统,ERP等等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的。3.2.2采用JAVA语言实现1、跨越平台的限制尽管目前Windows桌面系统一统天下,但是服务器系统采用的操作系统却具有多样性,包括Linux、Unix、WindowsNT/2000Server等系统都可以实现企业级应用。即便是桌面系统,中国政府出于安全和国家战略的考虑,希望有自己的操作系统,Linux的出现使这种想法变成了现实,不久也许国产的Linux系统将占据更多桌面系统的市场份额。传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,面对众多的操作系统和软件快速的升级换代,采用这一架构开发软件,对于企业的IT投资无疑是一种巨大的风险。而采用Java语言实现的B/S架构的软件产品真正做到了“一次编写处处运行(WriteOnce,RunAnywhere)”,对企业而言,可以规避将来更换操作系统所带来的风险。2、健壮的系统Java语言实现的软件具有天然的健壮性。这是Java语言自身的特性保证的。利用Java写成的软件几乎不可能造成系统崩溃,这正是安全性要求很高的企业级应用所不可或缺的特性。第四章 公交查询系统设计分析根据数据库系统生存期的设计方法,从数据库应用系统和开发的全过程来考虑,将数据库应用系统设计分为以下几个阶段:1)规划;2)需求分析;3)概念设计;4)逻辑设计5)物理设计§4.1应用需求分析要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为:方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求:1、查询功能:系统需要提供几种不同方式的查询手段,以实现灵活方便地管理整个系统。2、数据的更新修改:更新:系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;编辑:系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。3、打印输出(暂未实现):系统可以将用户查询到的内容动态地生成报表,并打印输出。§4.2系统功能模块划分公交查询系统功能划分模块如下:1、查询系统模块该模块实现公交查询功能。可实现按起点-中转站-终点查询查询和按线路查询两种查询方式。录入系统模块该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成,§4.3 系统数据库设计4.3.1 概念设计概念设计的目标是产生反映城市公交查询系统需求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的。1、ER模型ER模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使用这三种成分,我们可以建立许多应用环境的ER模型。2、 ER模型的操作在利用ER模型进行数据库概念设计的过程中,常常需要对ER图进行种种变换。这些变换又称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并和增删等等。3、利用ER方法的数据库概念设计利用ER方法进行数据库的概念设计,可以分成三步进行:首先设计局部ER模式,然后把各局部ER模式综合成一个全局ER模式,最后对全局ER模式进行优化,得到最终的ER模式,即概念模式。设计局部的ER模式通常,一个数据库系统都是为多个不同用户服务的。各个用户对数据的观点可能不一样,信息处理需求也可能不同。在设计数据库概念结构时,为了更好地模拟现实世界,一个有效的策略是“分而治之”,即先分别考虑各个用户的信息需求,形成局部概念结构,然后再综合成全局结构。在ER方法中,局部概念结构又称为局部ER模式,其图形表示称为ER图。实体和属性的定义如下:站点(站点编号,站点名称,站点类别)线路(线路编号,始发时间,终发时间,备注)线路站点对应(线路编号,站点名称)E/R图表示4、联系定义ER模型的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构中任意两个实体类型,依据需求分析的结果,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,进一步确定是1:N,M:N,还是1:1等。还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系,等等。5、设计全局ER模式所有局部ER模式都设计好了后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理地表示一个完整、一致的数据库概念结构。1)确定公共实体类型为了给多个局部ER模式的合并提供开始合并的基础,首先要确定各局部结构中的公共实体类型。在这一步中我们仅根据实体类型名和键枕认定公共实体类型。一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。2)局部ER模式的合并合并的原则是:首先进行两两合并;先和合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。3)消除冲突冲突分为三类:属性冲突、结构冲突、命名冲突。设计全局ER模式的目的不在于把若干局部ER模式形式上合并为一个ER模式,而在于消除冲突,使之成为能够被所有用户共同理解和接受的同一的概念模型。4)全局ER模式的优化在得到全局ER模式后,为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能的少;实体类型所含属性个数尽可能少;实体类型间联系无冗余。4.3.2逻辑设计由于概念设计的结果是ER图,DBMS一般采用关系型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型古有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。1)导出初始关系模式2)关系子模式子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。 第五章公交查询系统应用程序设计(部分)§5.1查询模块的功能实现<%@pagecontentType="text/html;charset=ISO8859_1"%><%@pageimport="java.sql.*,java.util.*,com.lanyuer.util.*;"%><%Listroutes=null;Connectionconnection;com.lanyuer.route.route_Managerroute_Manager=com.lanyuer.route.route_Manager.getInstance();connection=DataConnectionManager.getInstance().getConnection();try{routes=route_Manager.selectes(connection);}catch(Exceptione){throwe;}finally{if(connection!=null){connection.close();connection=null;}}%><html><head><title>公交查询</title><metahttp-equiv="Content-Type"content="text/html;charset=ISO8859_1"></head><SCRIPTlanguage=JAVASCRIPTtype=text/javascript><!--functionloginSubmit(theObj){if(theObj.fromStep.value==""&&theObj.toStep.value!=""){alert("始发站不能为空");theObj.fromStep.focus();returnfalse;}elseif(theObj.fromStep.value!=""&&theObj.toStep.value==""){alert("终点站不能为空");theObj.toStep.focus();returnfalse;}elseif(theObj.fromStep.value==""&&theObj.toStep.value==""){alert("始发站和终点站不能为空");theObj.fromStep.focus();returnfalse;}returntrue;}//--></SCRIPT><linkrel="STYLESHEET"type="text/css"href="../css/all.css"><styletype="text/css"><!--body{font-size:9pt}table{font-size:9pt}a:active{font-size:9pt;color:#000000;}A:hover{font-size:9pt;COLOR:#000000;TEXT-DECORATION:none}a:link{font-size:9pt;color:#000000;}a:visited{font-size:9pt;color:#000000;}--></style><bodybgcolor="#000000"text="#000000"topmargin="0"leftmargin="0"background="../image/back.gif"><tablewidth="100%"height="100%"border="0"cellspacing="0"cellpadding="0"><tr><tdwidth="100%"height="100%"align="center"><tablewidth="600"height="400"border="0"cellspacing="0"cellpadding="0"background="../image/login_bg.jpg"><tr><tdheight="100%"width="100%"align="center"valign="top"><tablewidth="200"border="0"cellspacing="0"cellpadding="0"><formname="login"method="post"action="selectStep.jsp"target="_parent"onsubmit="returnloginSubmit(this)"><tr><tdheight="120"align="center"colspan="2"></td></tr><tr><tdheight="24">始发站</td><tdheight="24"><fontcolor="#FFFFFF"><inputtype="text"name="fromStep"size="16"maxlength="16"class=myinput2value=""></font></td></tr><tr><tdheight="24">终点站</td><tdheight="24"><fontcolor="#FFFFFF"><inputname="toStep"type="text"size="16"maxlength="16"class=myinput2value=""></font></td></tr><tr><tdheight="30">&nbsp;</td><tdheight="30"><inputtype="submit"value="提交"class="myinput"><inputtype="reset"value="重填"class="myinput"></td></tr></form><formname="login"method="get"action="route.jsp"target="_parent"><tr><tdheight="24">线 路</td><tdheight="24"><selectname="cRouteCode"style="width:110px"><%Iteratoriterator=routes.iterator();while(iterator.hasNext()){com.lanyuer.route.routeroute=(com.lanyuer.route.route)iterator.next();%><optionvalue="<%=route.getcRouteCode()%>"><%=route.getcRouteCode()%>路</option><%}%></select></td></tr><tr><tdheight="30">&nbsp;</td><tdheight="30"><inputtype="submit"value="提交"class="myinput"></td></tr></form></table></td></tr><tr><tdheight="180"align="center"></td></tr></table></td></tr></table></body></html>§5.2管理更新的功能实现5.2.1公交站点管理<%@pagecontentType="text/html;charset=ISO8859_1"%><%@pageimport="java.util.*,java.sql.*,com.lanyuer.util.*;"%><jsp:useBeanid="reader"scope="request"class="com.lanyuer.util.JspParamReader"/><%reader.setRequest(request);
/
本文档为【电大计算机科学与技术专业本科毕业论文公交查询系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索