毕业论文-基于java的郴州市的公交查询系统的设计与实现_第1页
毕业论文-基于java的郴州市的公交查询系统的设计与实现_第2页
毕业论文-基于java的郴州市的公交查询系统的设计与实现_第3页
毕业论文-基于java的郴州市的公交查询系统的设计与实现_第4页
毕业论文-基于java的郴州市的公交查询系统的设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

届别2012届学号200814160212毕业设计(论文)基于JAVA的郴州市的公交查询系统的设计与实现姓名系别、专业计算机科学系网络工程专业导师姓名、职称完成时间2012年3月2日目录摘要IABSTRACTII1绪论111数据库技术1111数据库体系结构1112数据库管理信息系统(DBMS)112公交查询系统2121系统功能2122系统运行环境2124系统开发工具2124现状与前景213本文所作的工作32基于ECLISPE平台下的开发技术421JAVA语言介绍4211JAVA语言简介4212JAVA技术平台简介7213JAVA程序框架7214JAVA优点8214J2EE技术简介822JSP技术介绍8221JSP与ASP的简单比较8222JSP运行环境9223JSP页面示例923B/S结构介绍12231JAVA程序框架13232B/S架构具备极大的优越性1324J2EE所运用到的数据库技术14241关系模型的基本概念14242关系型数据库16243关系数据语言1725SQL语言介绍18251SQL的组成18252SQL的数据查询19253SQL的数据更新193公交查询系统设计分析2131应用需求分析2132系统功能模块划分2133系统数据库设计24331概念设计24332逻辑设计2634本章小结284公交查询系统设计分析2941查询模块的功能实现2942管理更新的功能实现3143公交线路管理3344本章小结355总结35参考文献35致谢37摘要如今计算机网络发展非常迅速,时间的重要性对于人们来说不言而喻,人们出行越来越注重时间的节约,城市公交已经成为出行的一种主要的方式,本文结合公交运行的实际来对公交查询信息系统进行可行性研究,通过详实的问题定义与需求分析并且进行了合理的设计,提出了在B/S模式下的三层体系结构,应用了当前最流行的ECLISPE开发环境,后台采用了以目前最稳定的SQLSERVER2005数据库为开发平台。该系统可以帮助查询人员找到能最快到达目的地,并且节约费用。通过浏览器查询,通过计算机网络全面联网,实现中心控制、自动更新、更多的查询方式、和GIS系统的互联互通等等更多更强大的功能。从这方面来说,此系统具有美好的应用前景。关键词管理信息系统;B/S结构;数据库;WEB服务器;JSPABSTRACTNOWCOMPUTERNETWORKDEVELOPMENTVERYQUICKLY,THEIMPORTANCEOFTIMEFORPEOPLETOSELFEVIDENT,PEOPLEPAYMOREANDMOREATTENTIONTOTHETRAVELTIMESAVING,CITYBUSTRAVELHASBECOMEONEOFTHEMAINWAY,COMBININGWITHTHEACTUALOPERATIONOFTHEBUSTOQUERYINFORMATIONSYSTEMOFPUBLICTRANSPORTFORFEASIBILITYSTUDY,THROUGHDETAILEDPROBLEMDEFINITIONANDDEMANDANALYSISANDTHEREASONABLEDESIGN,PUTFORWARDTHEB/SMODELWITHTHREELAYERSOFTHESYSTEMSTRUCTURE,THEAPPLICATIONOFTHEMOSTPOPULARECLISPEDEVELOPMENTENVIRONMENT,THEBACKGROUNDTOTHEMOSTSTABLESQLSERVER2005DATABASEFORDEVELOPMENTPLATFORMTHESYSTEMCANHELPPEOPLEFINDTHESOONESTCANQUERYDESTINATION,ANDSAVECOSTTHROUGHTHEBROWSERQUERIES,THROUGHTHECOMPUTERNETWORKCOMPREHENSIVENETWORKING,REALIZECENTERCONTROL,AUTOMATICUPDATE,MOREINQUIRESTHEWAY,ANDTHEGISSYSTEMINTERCONNECTEDANDSOONMOREPOWERFULFUNCTIONINTHISREGARD,THESYSTEMHASAGOODAPPLICATIONPROSPECTKEYWORDSTHEMANAGEMENTINFORMATIONSYSTEMTHEB/SSTRUCTUREDATABASEWEBSERVERJSP1绪论数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。11数据库技术111数据库体系结构数据的体系结构分成三级内部级(INTERNAL),概念级CONCEPTUAL和外部级(EXTERNAL)。这个三级结构有时也称为“三级模式结构”。1外部级最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。2概念级涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。3内部级最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。112数据库管理信息系统(DBMS)数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS进行的。在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS,它们在用户接口、系统功能方面也常常是不相同的。用户对数据库进行操作,是由DBMS把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS的主要目标,是使数据作为一种可管理的资源处理。DBMS的主要功能为1数据库定义功能DBMS提供数据定义语言(DDL)定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS中应包括DDL的编译程序。2数据库的操纵功能DBMS提供数据操纵语言(DML)实现对数据库中数据的操作。基本的数据操作分成两类四种检索(查询)、更新(插入、删除、修改)3数据库的保护功能数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。4数据库的恢复在数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。5数据库的并发控制DBMS的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。6数据库的完整性控制保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。7数据库的安全性控制防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。8数据库的存储管理把各种DML语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。9数据库的维护功能它有许多实用程序提供给数据库管理员数据装载程序备份程序文件重组织程序性能监控程序10数据字典数据库系统中存放三级结构定义的数据库称为数据字典(DD)。对数据库的操作都要通过访问DD才能实现,通常DD中还存放数据库运行时的统计信息。12公交查询系统121系统功能1基于浏览器(B/S模式)的公交线路分类查询;2数据的录入、修改、添加、删除。122系统运行环境该系统采用BROWSER/SERVER模式进行设计在服务器上运行WEB发布服务器、数据库程序,服务器操作系统为WINDOWSNT/2000/XP/2003SERVER,客户机操作为WINDOWS9/NT/2000/XP/2003,其上运行浏览器程序,服务器和客户机可为同一设备。124系统开发工具该系统采用JDKJAVA环境进行开发,数据库服务器为MYSQL,WEB发布服务器为TOMCATSERVER;客户端使用浏览器运行程序,整个系统调试成功。124现状与前景公交查询系统现状分析鉴于中国目前的经济发展状况,中国人出行还是以公交车为主,所以每个城市的公交系统都比较庞大发达。公交查询系统是近两年出现的新生事物,每个城市的发展状况也是良莠不齐。目前的公交查询系统,基本上具备一下功能采用车站站点查询、车次查询、路线分析查询三种查询形式,不仅能够查询到各条线路的起停站点,同时还能够分析出换乘车辆情况。公交查询系统的发展前景未来的公交查询系统,将是基于B/S架构,通过浏览器查询,通过计算机网络全面联网,实现中心控制、自动更新、更多的查询方式、和GIS系统的互联互通等等更多更强大的功能。13本文所作的工作本文首先介绍了城市公交查询系统的应用背景、开发环境以及选用的开发工具与数据库的关系,阐明了计算机互联网络的概念。并对数据库的体系结构、DBMS进行了介绍;介绍关系型数据库的基本概念,着重说明了几个关键概念的定义;然后对SQL语言作了一个介绍说明;从特点和功能入手,介绍JAVA、JSP;并且介绍了B/S模式的概念、特点;用软件工程的方法分析城市公交查询系统,对整个系统进行了需求分析、功能模块划分,并通过ER图对数据库进行概念设计;对城市公交查询系统的具体设计,描述了查询、录入模块的实现过程。最后,在结束语的总结部分指出了系统的亮点以及不足之处,简单介绍了自己开发过程中的体会与心得在摸索中实践,在实践中摸索。2基于ECLISPE平台下的开发技术JAVA是SUNMICROSYSTEMS于1995年推出的高级编程语言,JAVA领域的JAVASE、JAVAEE技术已发展成为同C和NET平分天下的应用软件开发平台和技术。在SUN正式发布JSPJAVASERVERPAGES之后,这种新的WEB应用开发技术很快引起了人们的关注。JSP为创建高度动态的WEB应用提供了一个独特的开发环境。按照SUN的说法,JSP能够适应市场上包括APACHEWEBSERVER,IIS40在内的85的服务器产品。当今比较流行的软件技术研发模式是C/S和B/S的体系结构。C/S(CLIENT/SERVER)结构,即客户机和服务器结构。通过C/S可以充分利用两端硬件环境的优势,将任务合理分配到CLIENT端和SERVER端来实现,降低了系统的通讯开销。ECLIPSE这样功能完整且成熟的开发环境,是由蓝色巨人IBM所释出。IBM花了4千万美金来开发这个IDEINTEGRATEDDEVELOPMENTENVIRONMENT。第一版10在2001年11月释出,随后逐渐受到欢迎。ECLIPSE已经成为开放原始码计划OPENSOURCEPROJECT,大部分的开发扔然掌握在IBM手中,但是有一部份由ECLIPSEORG的软件联盟主导。21JAVA语言介绍211JAVA语言简介JAVA不仅可以开发桌面应用程序如银行软件、商场结算软件;还可以开发面向INTERNET的应用程序,如当红的网上数码商城、阿里巴巴、易趣网等都是用JAVA开发出来的。JAVA是一种跨平台,适合于分布式计算环境的面向对象编程语言。具体来说,它具有如下特性简单性、面向对象、分布式、解释型、可靠、安全、平台无关、可移植、高性能、多线程、动态性等。下面我们将重点介绍JAVA语言的面向对象、平台无关、分布式、多线程、可靠和安全等特性。1面向对象面向对象其实是现实世界模型的自然延伸。现实世界中任何实体都可以看作是对象。对象之间通过消息相互作用。另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例。如果说传统的过程式编程语言是以过程为中心以算法为驱动的话,面向对象的编程语言则是以对象为中心以消息为驱动。用公式表示,过程式编程语言为程序算法数据;面向对象编程语言为程序对象消息。所有面向对象编程语言都支持三个概念封装、多态性和继承,JAVA也不例外。现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。所谓封装,就是用一个自主式框架把对象的数据和方法联在一起形成一个整体。可以说,对象是支持封装的手段,是封装的基本单位。JAVA语言的封装性较强,因为JAVA无全程变量,无主函数,在JAVA中绝大部分成员是对象,只有简单的数字类型、字符类型和布尔类型除外。而对于这些类型,JAVA也提供了相应的对象类型以便与其他对象交互操作。多态性就是多种表现形式,具体来说,可以用“一个对外接口,多个内在实现方法”表示。举一个例子,计算机中的堆栈可以存储各种格式的数据,包括整型,浮点或字符。不管存储的是何种数据,堆栈的算法实现是一样的。针对不同的数据类型,编程人员不必手工选择,只需使用统一接口名,系统可自动选择。运算符重载(OPERATOROVERLOAD一直被认为是一种优秀的多态机制体现,但由于考虑到它会使程序变得难以理解,所以JAVA最后还是把它取消了。继承是指一个对象直接使用另一对象的属性和方法。事实上,我们遇到的很多实体都有继承的含义。例如,若把汽车看成一个实体,它可以分成多个子实体,如卡车、公共汽车等。这些子实体都具有汽车的特性,因此,汽车是它们的“父亲”,而这些子实体则是汽车的“孩子”。JAVA提供给用户一系列类(CLASS),JAVA的类有层次结构,子类可以继承父类的属性和方法。与另外一些面向对象编程语言不同,JAVA只支持单一继承。2平台无关性JAVA是平台无关的语言是指用JAVA写的应用程序不用修改就可在不同的软硬件平台上运行。平台无关有两种源代码级和目标代码级。C和C具有一定程度的源代码级平台无关,表明用C或C写的应用程序不用修改只需重新编译就可以在不同平台上运行。JAVA主要靠JAVA虚拟机(JVM)在目标码级实现平台无关性。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。但JVM通常是在软件上而不是在硬件上实现。(目前,SUN系统公司已经设计实现了JAVA芯片,主要使用在网络计算机NC上。另外,JAVA芯片的出现也会使JAVA更容易嵌入到家用电器中。)JVM是JAVA平台无关的基础,在JVM上,有一个JAVA解释器用来解释JAVA编译器编译后的程序。JAVA编程人员在编写完程序后,通过JAVA编译器将JAVA源程序编译为JVM的字节代码。任何一台机器只要配备了JAVA解释器,就可以运行这个程序,而不管这种字节码是在何种平台上生成的。另外,JAVA采用的是基于IEEE标准的数据类型。通过JVM保证数据类型的一致性,也确保了JAVA的平台无关性。JAVA的平台无关性具有深远意义。首先,它使得编程人员所梦寐以求的事情(开发一次软件在任意平台上运行)变成事实,这将大大加快和促进软件产品的开发。其次JAVA的平台无关性正好迎合了“网络计算机”思想。如果大量常用的应用软件(如字处理软件等)都用JAVA重新编写,并且放在某个INTERNET服务器上,那么具有NC的用户将不需要占用大量空间安装软件,他们只需要一个JAVA解释器,每当需要使用某种应用软件时,下载该软件的字节代码即可,运行结果也可以发回服务器。目前,已有数家公司开始使用这种新型的计算模式构筑自己的企业信息系统。3分布式分布式包括数据分布和操作分布。数据分布是指数据可以分散在网络的不同主机上,操作分布是指把一个计算分散在不同主机上处理。JAVA支持WWW客户机/服务器计算模式,因此,它支持这两种分布性。对于前者,JAVA提供了一个叫作URL的对象,利用这个对象,你可以打开并访问具有相同URL地址上的对象,访问方式与访问本地文件系统相同。对于后者,JAVA的APPLET小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。JAVA提供了一整套网络类库,开发人员可以利用类库进行网络程序设计,方便得实现JAVA的分布式特性。4可靠性和安全性JAVA最初设计目的是应用于电子类消费产品,因此要求较高的可靠性。JAVA虽然源于C,但它消除了许多C不可靠因素,可以防止许多编程错误。首先,JAVA是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,JAVA不支持指针,这杜绝了内存的非法访问;第三,JAVA的自动单元收集防止了内存丢失等动态内存分配导致的问题;第四,JAVA解释器运行时实施检查,可以发现数组和字符串访问的越界,最后,JAVA提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务便于恢复。由于JAVA主要用于网络应用程序开发,因此对安全性有较高的要求。如果没有安全保证,用户从网络下载程序执行就非常危险。JAVA通过自己的安全机制防止了病毒程序的产生和下载程序对本地系统的威胁破坏。当JAVA字节码进入解释器时,首先必须经过字节码校验器的检查,然后,JAVA解释器将决定程序中类的内存布局,随后,类装载器负责把来自网络的类装载到单独的内存区域,避免应用程序之间相互干扰破坏。最后,客户端用户还可以限制从网络上装载的类只能访问某些文件系统。上述几种机制结合起来,使得JAVA成为安全的编程语言。5多线程线程是操作系统的一种新概念,它又被称作轻量进程,是比传统进程更小的可并发执行的单位。C和C采用单线程体系结构,而JAVA却提供了多线程支持。JAVA在两方面支持多线程。一方面,JAVA环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收,系统维护等系统级操作;另一方面,JAVA语言内置多线程控制,可以大大简化多线程应用程序开发。JAVA提供了一个类THREAD,由它负责启动运行,终止线程,并可检查线程状态。JAVA的线程还包括一组同步原语。这些原语负责对线程实行并发控制。利用JAVA的多线程编程接口,开发人员可以方便得写出支持多线程的应用程序,提高程序执行效率。必须注意地是,JAVA的多线程支持在一定程度上受运行时支持平台的限制。例如,如果操作系统本身不支持多线程,JAVA的多线程特性可能就表现不出来。212JAVA技术平台简介1JAVASEJAVAPLATFORM,STANDARDEDITIONJ2SE包含那些构成JAVA语言核心的类。比如数据库连接、接口定义、输入/输出、网络编程,主要用于桌面应用软件的编程。2JAVAMEJAVA2MICROEDITIONJ2ME是JAVA2的一个组成部分,它与J2SE、J2EE并称。根据SUN的定义J2ME是一种高度优化的JAVA运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、数字机顶盒、汽车导航系统等等。J2ME技术在1999年的JAVAONEDEVELOPERCONFERENCE大会上正式推出,它将JAVA语言的与平台无关的特性移植到小型电子设备上,允许移动无线设备之间共享应用程序。3JAVAEEJAVAPLATFORM,ENTERPRISEEDITIONJ2EE是一种利用JAVA2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心JAVA平台或JAVA2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行“的特性、方便存取数据库的JDBC、PI、CORBA技术以及能够在INTERNET应用中保护数据的安全模式等等,同时还提供了对EJB(ENTERPRISEJAVABEANS)、JAVASERVLETSAPI、JSP(JAVASERVERPAGES)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。213JAVA程序框架PUBLICCLASSHELLOSODI/外层框架PUBLICSTATICVOIDMAINSTRINGARGS/JAVA入口程序框架这里填写代码214JAVA优点1跨越平台的限制尽管目前WINDOWS桌面系统一统天下,但是服务器系统采用的操作系统却具有多样性,包括LINUX、UNIX、WINDOWSNT/2000SERVER等系统都可以实现企业级应用。即便是桌面系统,中国政府出于安全和国家战略的考虑,希望有自己的操作系统,LINUX的出现使这种想法变成了现实,不久也许国产的LINUX系统将占据更多桌面系统的市场份额。传统的C/S架构的软件需要针对不同的操作系统开发不同版本的软件,面对众多的操作系统和软件快速的升级换代,采用这一架构开发软件,对于企业的IT投资无疑是一种巨大的风险。而采用JAVA语言实现的B/S架构的软件产品真正做到了“一次编写处处运行WRITEONCE,RUNANYWHERE”,对企业而言,可以规避将来更换操作系统所带来的风险。2健壮的系统JAVA语言实现的软件具有天然的健壮性。这是JAVA语言自身的特性保证的。利用JAVA写成的软件几乎不可能造成系统崩溃,这正是安全性要求很高的企业级应用所不可或缺的特性。214J2EE技术简介J2EE是纯粹基于JAVA的解决方案。1998年,SUN发布了EJB10标准。EJB为企业级应用中必不可少的数据封装、事务处理、交易控制等功能提供了良好的技术基础。至此,J2EE平台的三大核心技术SERVLET、JSP和EJB都已先后问世。1999年,SUN正式发布了J2EE的第一个版本。紧接着,遵循J2EE标准,为企业级应用提供支撑平台的各类应用服务软件争先恐后地涌现了出来。IBM的WEBSPHERE、BEA的WEBLOGIC都是这一领域里最为成功的商业软件平台。随着开源运动的兴起,JBOSS等开源世界里的应用服务新秀也吸引了许多用户的注意力。到2003年时,SUN的J2EE版本已经升级到了14版,其中三个关键组件的版本也演进到了SERVLET24、JSP20和EJB21。至此,J2EE体系及相关的软件产品已经成为了WEB服务端开发的一个强有力的支撑环境。22JSP技术介绍221JSP与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页面的第一次请求时发生。222JSP运行环境SUN公司的JSP主页在HTTP/WWWJAVASOFTCOM/PRODUCTS/JSP/INDEXHTML,从这里还可以下载JSP规范,这些规范定义了供应商在创建JSP引擎时所必须遵从的一些规则。在运行JSP示例页面之前,请注意一下安装JSWDK的目录,特别是“WORK”子目录下的内容。执行示例页面时,可以在这里看到JSP页面如何被转换成JAVA源文件,然后又被编译成CLASS文件(即SERVLET)。JSWDK软件包中的示例页面分为两类,它们或者是JSP文件,或者是包含一个表单的HTML文件,这些表单均由JSP代码处理。与ASP一样,JSP中的JAVA代码均在服务器端执行。因此,在浏览器中使用“查看源文件”菜单是无法看到JSP源代码的,只能看到结果HTML代码。所有示例的源代码均通过一个单独的“EXAMPLES”页面提供。223JSP页面示例下面我们分析一个简单的JSP页面。您可以在JSWDK的EXAMPLES目录下创建另外一个目录存放此文件,文件名字可以任意,但扩展名必须为JSP。从下面的代码清单中可以看到,JSP页面除了比普通HTML页面多一些JAVA代码外,两者具有基本相同的结构。JAVA代码是通过符号加入到HTML代码中间的,它的主要功能是生成并显示一个从0到9的字符串。在这个字符串的前面和后面都是一些通过HTML代码输出的文本。JSP页面JSP输出之前。JSP输出之后。这个JSP页面可以分成几个部分来分析首先是JSP指令。它描述的是页面的基本信息,如所使用的语言、是否维持会话状态、是否使用缓冲等。JSP指令由结束。在本例中,指令“”只简单地定义了本例使用的是JAVA语言(当前,在JSP规范中JAVA是唯一被支持的语言)。接下来的是JSP声明。JSP声明可以看成是定义类这一层次的变量和方法的地方。JSP声明由结束。如本例中的“”定义了一个字符串变量。在每一项声明的后面都必须有一个分号,就象在普通JAVA类中声明成员变量一样。位于之间的代码块是描述JSP页面处理逻辑的JAVA代码,如本例中的FOR循环所示。最后,位于之间的代码称为JSP表达式,如本例中的“”所示。JSP表达式提供了一种将JSP生成的数值嵌入HTML页面的简单方法。会话状态维持是WEB应用开发者必须面对的问题。有多种方法可以用来解决这个问题,如使用COOKIES、隐藏的表单输入域,或直接将状态信息附加到URL中。JAVASERVLET提供了一个在多个请求之间持续有效的会话对象,该对象允许用户存储和提取会话状态信息。JSP也同样支持SERVLET中的这个概念。在SUN的JSP指南中可以看到许多有关隐含对象的说明(隐含的含义是,这些对象可以直接引用,不需要显式地声明,也不需要专门的代码创建其实例)。例如REQUEST对象,它是HTTPSERVLETREQUEST的一个子类。该对象包含了所有有关当前浏览器请求的信息,包括COOKIES,HTML表单变量等等。SESSION对象也是这样一个隐含对象。这个对象在第一个JSP页面被装载时自动创建,并被关联到REQUEST对象上。与ASP中的会话对象相似,JSP中的SESSION对象对于那些希望通过多个页面完成一个事务的应用是非常有用的。为说明SESSION对象的具体应用,接下来我们用三个页面模拟一个多页面的WEB应用。第一个页面(Q1HTML)仅包含一个要求输入用户名字的HTML表单,代码如下请输入您的姓名第二个页面是一个JSP页面(Q2JSP),它通过REQUEST对象提取Q1HTML表单中的THENAME值,将它存储为NAME变量,然后将这个NAME值保存到SESSION对象中。SESSION对象是一个名字/值对的集合,在这里,名字/值对中的名字为“THENAME”,值即为NAME变量的值。由于SESSION对象在会话期间是一直有效的,因此这里保存的变量对后继的页面也有效。Q2JSP的另外一个任务是询问第二个问题。下面是它的代码您的姓名是您喜欢吃什么第三个页面也是一个JSP页面(Q3JSP),主要任务是显示问答结果。它从SESSION对象提取THENAME的值并显示它,以此证明虽然该值在第一个页面输入,但通过SESSION对象得以保留。Q3JSP的另外一个任务是提取在第二个页面中的用户输入并显示它您的姓名是您喜欢吃23B/S结构介绍B/S(BROWSER/SERVER)结构即浏览器和服务器结构。它是随着INTERNET技术的兴起而对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,主要事务逻辑在服务器端(SERVER)实现。大大简化了客户端电脑载荷,减少了系统维护与升级的成本和工作量,降低了用户的总体成本。B/S方式可以形成所谓三层以上的结构。B/S结构是一次到位开发,能实现不同人员,从不同地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更为方便、快捷、高效。B/S工作机制如图31所示传统的C/S架构(客户机/服务器,CLIENT/SERVER)方式中,业务逻辑位于客户端,每完成一项事务,都要频繁地访问数据库,使得网络上数据流量非常大,对于慢速连接的用户,甚至无法使用。图31B/S工作机制231JAVA程序框架为弥补上述C/S架构的缺陷,人们发展出了三层或多层架构客户机中间件(应用服务器)数据库服务器CLIENTMIDDLEWAREDATABASESERVER。在这种架构中,业务逻辑放置于中间件服务器上,大量的数据流也位于中间件和数据库之间,而客户机只是简单地发出请求,中间件接受请求后进行事务处理并将处理的结果返回给客户机,这一类型的客户机也称之为“廋客户”。B/S架构实际上是三层架构的一种,所不同的是客户端就是目前几乎每台电脑中都有的网络浏览器,而中间件则是WEB应用服务器。注意到主要的业务逻辑均由位于WEB应用服务器上的SERVLET和JSP程序或EJB来处理。232B/S架构具备极大的优越性1面向电子商务时代的技术将来所有的应用系统几乎都在互联网或企业内部广域网上运行,发展电子商务成为企业不可避免的信息化道路。B/S架构的软件正是电子商务的基石,正是这类软件使得移动办公和分布式协同工作真正成为现实。无论在世界的那个角落,只需要一台可以联网的设备(计算机、PDA甚至手机)都可以方便地与客户联系和与他人协同工作。2软件操作、维护和升级方式的革命软件系统的改进和升级越来越频繁,B/S架构的产品在维护和升级方面具备显著的优势。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只对服务器进行,通过远程连接服务器,异地的运维人员甚至于可以做到远程维护和升级,这对人力、时间、费用的节省是相当惊人的。所有的客户端只是浏览器,所有的操作都和上网浏览网页类似,使用者接受的培训也仅限于业务逻辑而无需将大量精力浪费学习软件操作上。3系统整合无论是办公自动化(OA)系统,人力资源(HR)系统,客户关系管理(CRM)系统,ERP等等,发展的趋势是不断融合。而采用统一的B/S结构开发的产品无论是现在还是将来都是最好的选择,它提供了真正意义上无缝地与其它系统进行整合的方案。24J2EE所运用到的数据库技术关系数据库应用数学方法来处理数据库中的数据,关系数据库系统是支持关系模型的数据库系统。最早将这类方法用于数据处理的是1962年CODASYIL发表的“信息代数”,然而30多年来,关系数据库系统的研究和开发取得了辉煌的成就。关系数据库系统从实验室走向了社会,成为最重要、应用最广泛的数据库系统,大大促进了数据库应用领域的扩大和深入。关系数据库的设计中,一个非常重要的被视为理论问题的内容是如何构造合理的关系,使之能准确地反应现实世界,有利于应用和具体的操作。这一问题就是关系规范化要研究的问题。主要包括1函数依赖及ARMSTRONG公理系统;2为什么要对模式进行分解,如何分解;3如何判断关系模式达到几范式;4如何求属性的闭包及如何求最小函数依赖集,这几种理论信息构成了关系数据库的骨架。241关系模型的基本概念用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。数据模型是对现实世界的模拟。1二维表格举例职工登记表,如表21表21职工登记表工号姓名年龄性别工资0001ZHANG26男10000002LI25女15000003LIU29男10000004WANG22女15002键KEY键由一个或几个属性组成,在实际使用中,有下列几种键(1)超键SUPERKEY在关系中能惟一标识元组的属性集称为关系模式的超键。(2)候选键CANDIDATEKEY不含有多余属性的超键称为候选键。也就是在候选键中,若要再删除属性,就不是键了。(3)主键PRIMARYKEY用户选作元组标识的一个侯选键称为主键。一般,如不加说明,则键是指主键。3关系的定义和性质我们可以用集合的观点定义关系。关系是一个元数为KK1的元组的集合。把关系看成是一个集合,集合中的元素是元组,每个元组的属性个数应相同。在关系模型中,对关系作了下列规范性限制(1)关系中每一个属性值都是不可分解的。(2)关系中允许出现相同的元组(没有重复元组)(3)由于关系是一个集合,因此不考虑元组间的顺序,即没有行序。(4)元组中,属性在理论上也是无序的,但在使用时按习惯考虑列的顺序。关系数据库的设计理论主要包括三个方面的内容数据依赖、范式,模式设计方法。其中数据依赖起着核心的作用。4函数依赖(FUNCTIONALDEPENDENCY,FD)的定义设RU是一个关系模式,U是R的属性集合,X和Y是U的子集。对于RU的任何一个可能的关系R,如果R中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“Y函数依赖于X”,记作XY。如果XY,并且对于X的任一真子集X,都有Y不函数依赖于X,则称“Y完全函数依赖于X”,记作XFY。若XY,但Y不完全函数依赖于X,则称“Y部分函数依赖于X”,记作XPY。如果XY,YZ,且YX,X不函数依赖于Y,则称“Z传递函数依赖于X”。5范式在对表的形式进行了规范化定义后,数据结构还有五种规范化定义,定名为规范化模式,称为范式。在这五种范式中,一般只用前三种,对于常用系统就足够了。而且这五种范式是“向上兼容”的,即满足第五范式的数据结构自动满足一、二、三、四范式,满足第四范式的数据结构自动满足第一、二、三范式,依此类推。第一范式FIRSTNORMALFORM,简称1STNF就是指在同一表中没有重复项出现,如果有则应将重复项去掉。这个去掉重复项的过程就称之为规范化处理。在本文所讨论的开发方法里,1STNF实际上是没有什么意义的。因为我们按规范化建立的指标体系和表的过程都自动保证了所有表都满足1STNF。第二范式SECONDNORMALFORM,简称2NDNF是指每个表必须有一个而且仅一个数据元素为主关键字PRIMARYKEY,其它数据元素与主关键字一一对应。例如,在图L97中如果我们将合同号定义为主关键字其它数据元素中的记录数据都有可能重名,故不能作为主关键字,故只要知道了一个合同记录的合同号,就可以唯一地在同一行中找到该合同的任何一项具体信息。通常我们称这种关系为函数依赖FUNCTIONALDEPENDENCE关系。即表中其它数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第三范式THIRDNORMALFORM,简称3RDNF就是指表中的所有数据元素不但要能够唯一地被主关键字所标识,而且它们之间还必须相互独立,不存在其它的函数关系。也就是说对于一个满足了2NDNF的数据结构来说,表中有可能存在某些数据元素依赖于其它非关键宇数据元素的现象,必须加以消除。为防止数据库出现更新异常、插入异常、删除异常、数据冗余太大等现象,关系型数据库要尽量按关系规范化要求进行数据库设计。下面以教务管理信息系统为例来进行分析。6模式设计方法一个好的模式设计方法应符合下列三条原则表达性涉及到两个数据库模式的等价性问题,即数据等价和依赖等价,分别用无损联接和保持函数依赖来衡量。分离性是指属性间的“独立关系”应该用不同的关系模式表达。独立联系是我们所考虑的“基本信息单位”。实际上分离就是清除存储异常和数据冗余现象。如果能达到这个目的,就分离。分离的基准就是一系列范式,分离与依赖等价有时是不可兼容的。最小冗余性要求在分解后的数据库能表达原来数据库的所有信息这个前提下实现。目的就是节省存储空间,提高对关系的操作效率,清除不必要的冗余。但要注意,在实际使用中,并不一定要达到最小宙余。因为有时带点冗余对于查询处理是有好处的。关系模式的方法基本上可以分为分解与合成两大类。分解型算法要求输入一个初始模式集和依赖集,而结果满足数据等价要求。对于合成型算法只要求输入初始依赖集,结果满足依赖等要求。但它们依据的基本思想是共同的,即独立的联系独立表示。242关系型数据库1关系数据库简介提出关系模型的是美国IBM公司的EFCODD,1970年提出关系数据模型EFCODD,“ARELATIONALMODELOFDATAFORLARGESHAREDDATABANKS”,COMMUNICATIONOFTHEACM,1970;之后,提出了关系代数和关系演算的概念;1972年提出了关系的第一、第二、第三范式;1974年提出了关系的BC范式。2关系数据库在一个给定的应用领域中,所有关系的集合构成一个关系数据库。3关系数据库的型与值关系数据库的型关系数据库模式,对关系数据库的描述。关系数据库模式包括若干域的定义和在这些域上定义的若干关系模式。关系数据库的值关系模式在某一时刻对应的关系的集合,简称为关系数据库。243关系数据语言1关系代数语言(1)传统的集合运算包括并(UNION),差(DIFFERENCE),交(INTERSECTION),笛卡尔积(CARTESIANPRODUCT)。集合R和S具有相同的目N(即两个关系都有N个属性)并且相应的属性取自同一个域,则并RS仍为N目关系,由属于R或属于S的元组组成RST|TRTS差RS仍为N目关系,由属于R而不属于S的所有元组组成RST|TRTS交RS仍为N目关系,由既属于R又属于S的元组组成RST|TRTS或RSRRS)笛卡尔积严格地讲应该是广义的笛卡尔积(EXTENDEDCARTESIANPRODUCT)RN目关系,K1个元组SM目关系,K2个元组RS列(NM)列元组的集合,元组的前N列是关系R的一个元组,后M列是关系S的一个元组行K1K2个元组RSTRTS|TRRTSS(2)专门的集合运算选择(SELECTION),投影(PROJECTION),连接(JOIN),除(DIVISION)。选择又称为限制(RESTRICTION)。选择运算符的含义在关系R中选择满足给定条件的诸元组FRT|TRFT真。其中F选择条件,是一个逻辑表达式,基本形式为X1Y1投影从R中选择出若干属性列组成新的关系ARTA|TR。其中,AR中的属性列连接也称为连接连接运算的含义从两个关系的笛卡尔积中选取属性间满足一定条件的元组RSTRRTSSTRATSBA和B分别为R和S上度数相等且可比的属性组比较运算符连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组除给定关系RX,Y和SY,Z,其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系PX,P是R中满足下列条件的元组在X属性列上的投影元组在X上分量值X的象集YX包含S在Y上投影的集合,记作RSTRX|TRRYSYXYXX在R中的象集,XTRX2关系演算语言元组关系演算语言ALPHA域关系演算语言QBE25SQL语言介绍SQL(STRUCTUREDQUERYLANGUAGE)即“结构式查询语言”。SQL虽然名为查询语言,但实际上具有定义、查询、更新和控制等多种功能。由于它使用方便、功能丰富、语言简单易学,很快得到应用和推广。从20世纪70年代末起,在推出的关系数据库系统产品ORACLE、SQL/DS、DB2、SYBASE上实现了SQL语言。很快,SQL语言被整个计算机界认可。1987年6月,国际标准化组织(ISO)采纳为国际标准。随后,ISO对标准进行了大量的修改和扩充。在1992年推出了新的标准SQL2。SQL的标准化工作还在继续,新的标准已被命名为SQL3,将包括许多新的数据库概念,正在不征求意见和进行修改,这里将简单介绍基于SQL89和SQL2的语言使用概貌251SQL的组成SQL主要分成四个部分1数据定义这一部分也称为“SQLDDL”,用于定义SQL模式、基本表、视图和索引。2数据操纵这一部分也称为“SQLDML”。它分为数据查询和数据更新两类。其中数据更新又分成插入、删除、和修改三种操作。3数据控制这一部分包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。4嵌入式SQL的使用规定这一部分内容涉及到SQL语句嵌入在宿主语言程序中使用的规则。252SQL的数据查询SELECT语句的语法SELECT目标表的列名或列表达式序列FROM基本表和(或)视图序列WHERE行条件表达式GROUPBY列名序列HAVING组条件表达式ORDERBY列名ASC|DESC句法中表示该成分可有,也可无。整个语句的执行过程如下(1)读取FROM子句中基本表、视图的数据,执行笛卡尔积操作。(2)读取满足WHERE子句中给出的条件表达式的元组。(3)按GROUP子句中指定列的值分组,同时提取满足HAVING子句中组条件表达式的那些组。(4)按SELECT子句中给出的列名或列表达式求值输出。(5)ORDER子句对输出的目标表进行排序,按附加说明ASC升序排列,或按DESC降序排列。SELECT语句中,WHERE子句称为“行条件子句”,GROUP子句称为“分组子句”,HAVING子句称为“组条件子句”,ORDER子句称为“排序子句”。253SQL的数据更新SQL的数据更新包括数据插入、删除和修改等三种操作1数据插入INSERTINTO基本表名(列名表)VALUES(元组值)或者INSERTINTO基本表名(列名表)(TABLE(元组值),(元组值),前一种格式只能插入一个元组,后一种格式可以插入多个元组。2数据删除SQL的删除操作是指从基本表删除元组,其语法如下DELETEFROM基本表名WHERE条件表达式其语义是从基本表中删除满足条件表达式的元组。3数据修改当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下UPDATE基本表名SET列名值表达式,列名值表达式WHERE条件表达式其语义是修改基本表中满足条件表达式的那些元组中的列值,需修改的列值在SET子句中指出。3公交查询系统设计分析31应用需求分析要设计一个良好的公交查询系统,就必须首先明确该应用环境对系统的要求。公交查询系统的应用背景为方便市民搭乘公交车出行;手动(目前)、自动(将来)、及时更新查询数据。因此,该系统需满足以下几方面需求1问题分析(1)功能需求该模块实现公交查询功能。该模块实现数据的录入、修改、删除功能。(2)性能需求系统的相应时间不能超过10MS(3)出错处理需求当输入的信息不全,或格式不正确时,提示出错信息。2问题描述(1)信息要求可实现按起点中转站终点查询查询和按线路查询两种查询方式。(2)处理要求该模块实现数据的录入、修改、删除功能。该模块由公交站点管理与公交线路管理两部分组成(3)安全性与完整性要求。用户进入系统前必须登陆,输入密码,经服务器确认后放开进入系统。(暂未实现)3数据的更新修改更新系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;编辑系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。4打印输出(暂未实现)系统可以将用户查询到的内容动态地生成报表,并打印输出。32系统功能模块划分公交查询系统功能划分模块如下1查询系统模块该模块实现公交查询

温馨提示

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

评论

0/150

提交评论