时间:2023-03-17 18:02:23
绪论:在寻找写作灵感吗?爱发表网为您精选了8篇计算机技术毕业论文,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
摘要将多媒体技术应用于地理信息系统中的关键问题是:如何有效地管理多媒体数据和空间数据;其次,在区域分析过程中,怎样实现多媒体播放功能.指出用扩充的关系数据模型作为多媒体数据模型较适宜;多媒体功能的实现则取决于多媒体数据的格式是否为RIFF格式以及对多媒体数据的应用要求.最后展示了多媒体技术在地理信息系统中的应用前景.
关键词多媒体技术,地理信息系统,空间数据,属性数据,区域分析,数据模型.
现今由于多媒体技术的迅速崛起和高速发展,越来越多的应用软件都大量使用了多媒体技术.如果将多媒体技术应用于地理信息系统(geographicinformationsystem,简称GIS)软件中,势必大大增强GIS信息的表现能力,扩大GIS的应用领域.那么怎样将多媒体技术应用于GIS软件中呢我们认为应从两方面来设计:其一是怎样将多媒体数据溶于GIS数据库中,并保证提供GIS软件的双向检索及各种分析功能;其二是在应用过程中,怎样实现多媒体的播放功能.以下就这两个内容及其应用前景谈谈我们的看法.
1多媒体数据的有效管理
通常,应用软件中的多媒体数据有两种生成方式:一种是媒体播放之前,将其数字化到数据库当中,播放时从数据库中取数据;另一种是播放时,边生成边播放.而GIS软件中的数据库又分为空间数据库和属性数据库,即我们可根据媒体数据的特性或应用软件的要求将多媒体数据分别溶于空间数据库和属性数据库中.
1.1GIS数据库中多媒体数据的管理
1.1.1GIS空间数据库中多媒体数据的管理目前,多数GIS应用软件所能描述的空间目标都是静态的,实际上,很多GIS所要表达和研究的空间目标都不会是一成不变的,因此,GIS研究者已广泛关注能对时空过程和时空目标进行描述和分析的时态GIS(temporalGIS).时态GIS的组织核心是时空数据库,即设计一个合理的时空数据模型是建立时态GIS的关键所在.虽然目前还没有较成熟的能支持时态GIS产品的时空数据模型,一但时空数据模型的研究有所突破,不仅能解决时态GIS的应用问题,还将解决空间数据库中动画数据的管理问题,即可通过使用动画技术来实现在屏幕上动态播放时空过程.如动态显示卫星云图的变化情况、地壳变动情况、森林沙化和城市化情况以及海岸或河滩的侵蚀或淤积变化情况等.
有关时空数据模型,张祖勋[1]提出使用分级索引方法来对基本修正法进行改进.这种方法就是不存贮研究区域中每个状态的全部信息,而只存贮某个时间的数据状态(称为基态)以及相对于基态或邻近状态的变化量.在此基础上,建立分级索引,以便能快速找到所需的时空过程的数据.
要使用这种建索引的基本修正法,需要考虑两个问题,一个是如何建立索引;另一个是如何设计用来描述两个状态变化量的差文件.
关于建索引的问题,笔者认为:基态,亦a,b,c,d分别表示时态GIS的4个时期;T.时间轴;t0,t1,…,tn分别表示时态在GIS某个时期的n+1个时态,其中tn为基态,即“现在”时态一次数据状态——“现在”时态总是变化的,每产生一个新的现在时态,就应生成一个现在时态与前一次时态的差文件,同时根据现在时态所处的时间位置来决定是否产生新的索引差文件.以四叉树为例,如图1所示,当n为2i(i=2,3,…)的整数倍时,就需产生tn-2i~tn的索引差文件.相应地为了减少索引差文件所占的存贮空间,而又不影响对任一时态的检索速度,可将tn-2i+1~tn-2i的索引差文件删掉,所删的索引名文件个数正好比新建的索引差文件个数少一个.
关于差文件,笔者认为在设计中应考虑如下几个因素.(1)由于差文件是通过对两个时态的目标信息进行异或而产生的,这意味着差文件包含有两类目标信息:一类是前一时态有而后一时态无的目标信息;另一类是前一时态无而后一时态有的目标信息.为了能根据差文件快速、连续地由一个状态到过去另一状态或最近另一状态进行检索,应在差文件中将这两类目标信息予以标识区分.(2)两个状态之间目标变化应是有对应关系的,即01(目标从无到有);10(目标从有到无);1N(目标从一个变成多个);N1(目标从多个变成一个),以及目标空间信息无变化,属性信息有变化;目标局部空间信息有变化等.为了能进行快速检索,在差文件中应将两类各目标之间的对应关系予以标明,当然,这会增加差文件生成过程的复杂性.(3)和所有地图数据库模型类似,差文件也由空间信息、属性信息和关系信息组成,差文件中应将每个目标这3种信息之间的关系予以标明.
1.1.2GIS属性数据库中多媒体数据的管理有些G
IS的应用中,认为多媒体数据是一种特殊的专题属性数据.怎样选择多媒体数据的数据模型,使得既能遵循其自身特点,又能有效地建立起它与空间数据的联系,是多媒体技术在GIS应用中的关键所在.
目前,多数GIS属性数据库使用的是关系模型.为能将关系模型应用于多媒体数据管理系统中,就必须对现有的关系模型进行扩充,使它不但能处理格式化数据,也能处理非格式化数据.杨学良[2]就这个问题提出了3种技术策略:将多媒体数据文件名作为关系中元组某列(或属性);将每个元组作为一个完整文件保存;元组中存贮格式化数据以及非格式化数据的引用项,而非格式化数据单独存贮.
对比这3种技术策略,第一种技术策略方法简单、容易实现,适宜于对多媒体数据进行播放.第二、三种技术策略虽然能够实现并发控制和恢复,以及实现对多媒体数据进行编辑和拮取的应用,但由于此两种技术策略将每个元组所对应的空间目标的专业属性和多媒体属性混在一起,这既增大了应用程序设计的复杂性,又不利于那些只需使用空间目标的专业属性的一些应用的实现.为此,我们认为,在第一种技术策略的基础上,增加一个或多个属性项,用于存放多媒体数据的文件信息和数据流信息,当我们需要对多媒体数据文件进行特殊应用时,可根据文件信息和数据流信息对多媒体数据文件进行操作.
1.2GIS区域分析中多媒体数据的生成
多媒体数据生成的另一种方式是在GIS应用中,边统计、分析运算,边生成结果数据——多媒体数据.
1.2.1空间分析中多媒体数据的生成空间分析是一组分析结果依赖于所分析对象的位置信息技术[3],因此,空间分析要求获得目标的空间位置及其属性描述两方面信息.空间分析主要有:地形分析、叠加分析、缓冲区分析和网络分析等.
为了能更清楚地表示上述一些空间分析的结果,我们可用虚拟现实技术来实现.所谓虚拟现实[4]是一种由计算机生成的高级人机交互系统,即构成一个以视觉感受为主,也包括听觉、触觉、嗅觉的可感知环境,使用者通过专门的设备可在这个环境中实现观察、触摸、操作、检测等试验,有身临其境之感.比如,可用虚拟技术来观察地形分析或网络分析得到的空间效果,使用者可用交互操作的方式来控制自己与观察对象的角度、距离以及光照等,使观察对象随使用者的操作而动态旋转.此时以动画形式显示的媒体数据随使用者的操作产生并显示.
1.2.2统计分析中多媒体数据的生成统计分析就是用数理统计方法开展区域分析.数理统计方法主要有:统计特征值、研究两种或多种地理现象之间的相关分析,通过一组实际观测数据分析系统变量之间因果关系的回归分析,以及主成分分析等.
为了更加形象化,我们可以将数理统计结果以直方图、曲线、曲面或区划图表示,甚至可以将重要的部分以醒目的颜色、特殊的符号或闪烁的显示形式来告诉使用者,还可以配上解说词,以增加系统的感染力,而表现这些现象的媒体数据是在统计分析之后由系统自动生成并播放的.
2GIS应用系统中多媒体功能的实现
在GIS应用软件中进行多媒体功能实现,首先是受GIS应用软件自身开发平台的限制.多数情况下,GIS应用软件的多媒体开发平台宜选择编程语言,如VC++,VB或BC++等,以利于和GIS应用软件相结合.一旦多媒体开发环境确定下来,那么怎样实现区域分析中多媒体功能
2.1空间数据库中多媒体数据的播放
由前所述,空间数据库中存贮的多是各期间的时空数据,这些数据的结构与MCI所能接受的多媒体文件格式RIFF(resourceinterchangefileformat)不同,所以应用程序不能直接调用MCI函数和API函数,必须根据时态GIS的空间数据库结构,设计一个相应的动画播放程序来实现动态显示功能.
下面简述动态显示时态GIS中ti~tj状态的算法步骤(0≤i≤j≤n,其中n为现在时态).(1)由基态开始检索各索引差文件直到生成ti状态信息.(2)显示ti状态信息.(3)根据ti差文件,擦除ti状态有而ti+1状态无的信息,显示ti状态无而ti+1状态有的信息.(4)i+1i.(5)当i<j时,转(3);否则结束.
字4
如果用上述算法来实现动态显示时空过程,还有很多细节需要设计.首先,在(1)步骤,从基态开始,逐级逐步检索,每检索到一个状态差文件,就需根据差文件来生成该状态信息,直到ti状态处;其次,在(3)中,需要用到动画技术,擦除前一状态信息实质为恢复该处显示内容,而显示后一状态信息之前,需保存后一处信息内容,再予以显示新状态信息.
性数据库中多媒体数据的应用
一般来说,多媒体数据主要应用于两个方面:一个是简单播放;另一个是对多媒体数据进行编辑和拮取.对于前者,只要使用MCI函数或API函数按属性数据库中其他属性的要求进行播放;对于后者,这就要求程序员熟悉多媒体数据文件格式RIFF,根据多媒体数据的文件信息和数据流信息,通过调用多媒体文件输入/输出函数来实现多媒体的播放、编辑、拮取以及同步控制等操作.
3多媒体技术在GIS中的应用前景
(1)实现资源信息的科学管理,提供信息服务.GIS一改为用户管理提供单一的图表、数据信息形式,而在管理空间信息的同时,对图形、图象、视频、声音、动画等形式的信息进行管理和播放,大大增加了信息的表现能力.(2)家庭教育和个人娱乐.将多媒体和GIS溶于一身,会丰富教育、娱乐软件的内容及表现手段.比如有关地理、历史等课程的教学软件和娱乐软件的设计.(3)销售和演示信息系统.GIS和多媒体技术合为一体的这类系统会比以往的信息系统更具有表现力.比如房地产公司的销售系统,既能表明所售住房的空间位置,又能从中检索其住房环境及内部结构,而且可以动态地删去当天已售出的房子,给出不同价格等;旅游导游系统,可以在为观光游客制定导游路线时,就能对不同地方的景点产生身临其境的感觉.总之,将多媒体技术和GIS技术相结合,是计算机应用领域的一个发展方向,它会改变人们的工作、生活、思维方式,推动信息社会的前进.
参考文献
1张祖勋.时态GIS数据结构的研讨.测绘通报,1996,(1):19~21
2杨学良.多媒体计算机技术及其应用.北京:电子工业出版社,1995.138~139
毕业设计指导方法绝不是在一个环节上机械重复劳动,那样必然缺乏对学生的综合训练,挫伤学生的积极性和主动性,隐没学生的创新性。在毕业设计方法上对毕业设计的指导不够得力,一方面可能造成因疏于指导,导致放任自流;另一方面或因框得过死,不留余地,致使学生只能按部就班,缺乏创新,实践能力得不到锻炼提高。因此,创新毕业设计指导方法是毕业设计质量提升的保障。
2提高计算机专业毕业设计质量的举措
(1)从制度建设上激发教师指导毕业设计的工作热情。有效的毕业设计制度建设和落实是提高教师思想认识的根本途径。首先,建立优秀毕业设计指导老师遴选制度。每年根据毕业设计过程考核(教师投入的时间、中期检查结果等)、学生评教以及最终毕业设计成绩等级综合评价指导老师,将评价结果作为遴选优秀指导教师的重要参考依据。其次,建立弹性工作量认定制度。经过调研,很多应用技术型高校计算机专业一个完整的毕业设计周期是14周左右,指导老师指导一名毕业生的工作量1课时/周,那么指导教师所得工作量是14课时/人。可是,教师还要承担许多其他的教学工作量才能完成教学任务,因此,一些教师为了完成任务,往往是“轻指导质量、重学生数量”。为了解决这一问题,学院可以采用指导教师弹性工作量认定制度,将教师在整个毕业设计表现划分为优、良、中、合格、不合格等5个等级,每个教师指导毕业设计工作的最终工作量根据等级系数(优、良、中、合格、不合格系数分别是2.0、1.5、1.2、1.0、0)折算而成。这样,指导教师即使指导学生数较少,但通过努力,保证质量,同样可以获得很高工作量认定,有效使教师更加“重质量、轻数量”。最后,建立学生评价指导老师制度。课题教学中,学生评教制度普遍得到运用,其结果直接作为年终推优、职称申报的主要依据,收到良好效果。目前,很少应用技术型院校计算机专业在毕业设计环节实行学生评价指导老师制度。宿迁学院计算机系大胆启用该制度,让每位学生从“德、能、勤、绩”综合评价指导老师。为了评教更客观,防止“师生互赞”不正常现象发生,最终的评教结果还要与学生最终毕业设计成绩比对之后生效。对于失真现象,要追查相关教师或学生的责任。上述这些制度建设和落实举措,不仅提高了指导教师的思想认识,更让指导毕业设计的质量与教师个人荣誉、工作量认定、年终推优、职称申报等切身利益挂钩,大大激发了他们指导毕业设计的热情。
(2)面向计算机实际应用,实行师生双向选题机制。选题应是一个双向的过程,老师应根据学生的基础、兴趣,结合现在社会对人才的需要同学生一起来拟定题目。以往,毕业设计选题往往因与市场实际需求脱钩,造成毕业设计题目太陈旧、老化,达不到毕业设计训练目的。造成这一现象的根本原因一方面由于部分的选题工作是老师先拟订好题目,有些题目已经不适合当下市场动态需求,所做毕业设计题目无实际价值,从而挫伤学生积极性;另一方面,有部分学生自拟题目虽紧跟应用需求,但往往因毕业设计任务工作量过大或过小,甚至不切学生基础实际而无终而止。解决这一问题就需要师生在选题时充分沟通。在选题开始时,由师生一方先提出初步选题,然后让对方提出修改意见,教师在选题时重点把握好选题是否有新意、是否可行、是否有应用价值等;而学生则根据自身基础和兴趣最终确定是否选择该选题。例如作为计算机专业指导教师,根据移动互联网应用的最新进展,为学生提出的关于无线网ZigBee技术应用、基于Android系统的手机控制软件、洪泛法无线路由算法改进等题目。而学生则根据自身基础与兴趣将上述题目结合某个具体应用,如将上述教师拟定题目方向具体确定为:无线网ZigBee智能路灯控制技术、基于Android系统手机版的车辆北斗定位软件开发、基于ZigBee无线技术的洪泛法路由算法改进与实现等。应用技术型计算机专业的特点是相关技术更新很快,师生通过双向磨合选题,使得最终选题既能结合学生基础和兴趣,又能针对应用实际,从而让师生双方最大程度达成一致,为接下来的毕业设计成果更有生命力和市场前景打下基础。
(3)师生协作、循序渐进,创新毕业设计指导方法。再好的选题,如果没有创新的指导方法,毕业设计指导也可能沦为机械重复劳动,最终致使学生只能按部就班,缺乏创新,实践能力得不到锻炼提高,更谈不上创新能力的培养。我们在具体实施中,首先是针对每个学生基础采用师生协作、循序渐进式指导。如,有学生选择“无线网ZigBee技术应用”方面的选题。那么,首先开题以后一段时间内(如:一周时间内),要求学生完成查阅有关ZigBee技术方面的资料任务,并汇总多位学生所查阅到的文献,接下来由指导教师与学生协商将资料分类并再分发给不同学生,并在接下来一段时间内(如:一周时间内)师生围坐到一起,轮流让学生汇报所学到的最新内容和体会,期间,教师和其他学生可以随时互动提问,要求被提问教师或学生做出解答,通过师生明确分工、共同协作,加快了基础阶段的学习进度。这样再持续一段时间(如:再两周时间内)相互学习之后,指导教师就可以根据学生具体选题安排他们先做一些小实验,再做一些中等难度实验,进而持续延伸到综合性实验,在这个实验过程中,教师不仅注重学生所提出的问题,更要为学生给予方法和思路上的充分交流与指点。通过这种方法不仅让所有学生动手能力得以最快速度提升,而且锻炼了他们的语言组织能力和表达能力,同时也激发了师生团结协作意识。通过上述师生协作、循序渐进式推进,指导教师全程参与指导,既要扮演好自身角色,也要及时掌握每个学生毕业设计进程,当学生遇到问题时教师更多时候是不能替代学生毕业设计工作,而是要给予方法上的指导,最大程度挖掘学生潜能和创新意识。创新毕业设计指导方法,无论对学生还是对教师来说都是一个重要的能力提升环节。
3改革效果
改革现有计算机毕业设计方法对于培养应用技术型人才具有十分重要的意义。多年来,我们坚持人才培养质量观,积极探索并改进现有毕业设计指导方法,收到了良好的成效。每年指导的计算机专业学生毕业设计大多数均在良好以上,30%以上被认定校级优秀等级;多名教师被授予校级优秀指导教师等荣誉称号;20多篇论文获省毕业设计一、二等奖;先后2次获得省优秀毕业设计创新团队称号;毕业设计期间师生协作发表了30多篇高质量论文,同时获得10多项国家发明、实用新型专利,申请了20多项计算机软件著作权。毕业生质量不断得到提升,产生了巨大的社会效益。这些成绩的取得,一方面要从学校、院校层面加强毕业设计制度建设和落实,另一方面从教师自身角度要有不断改革意识和方法。只有这样,应用技术型院校计算机专业毕业设计质量才能不断提高,才能为社会培养更多的实用型人才。
4结语
1.1分层技术的基本概念
所谓的分层技术其实就是对计算机软件结构中其内部层次所存在依赖关系的阐述,一般来说,计算机软件的开发往往要保证软件运行的过程中有着一定的可靠性和灵活性,并不仅仅局限于单一功能,而要尽可能最大限度地实现软件的多种功能。
1.2分层技术的特点
首先分层技术将计算机软件适当地进行扩展,按照功能的不同分解计算机软件复杂的系统,适当改造和升级计算机软件,从根本上修改系统中某一功能层以及上下层。其次分层技术不仅仅将软件开发的效率有效提升,同时对于软件运行的可靠性同样有着一定的保障。计算机软件在开发的过程中,通过改造原有的计算机系统,一方面将复杂软件开发的时间缩小,另一方面对于新软件产品的质量有着实质性的保障。最后分层技术在计算机软件开发中的应用,便于计算机软件的再次使用,通过对分层模式的利用,进而定义功能层次的接口,实现软件的自行开发,并对标准接口进行利用,其端口的无缝隙对接也就在某种程度上最大限度地实现。
2分层技术在计算机软件开发中的应用
随着时代经济的发展以及网络技术的普及,计算机软件开发备受关注。同时计算机软件开发技术的发展,打破了传统计算机软件单项业务处理模式,进而趋向于多层次计算机软件业务处理。就其实质性而言,目前计算机软件开发中所采用的分层技术由刚开始的二层和三层,逐渐发展为现如今的四层和五层。现本文对其在计算机软件开发中的应用进行分析探讨。
2.1双层技术在计算机软件开发中的应用
计算机软件开发中双层技术的应用不仅仅将软件开发的效率有效提高,同时也使软件开发所需的时间在某种程度上有所缩短。所谓的双层技术主要由客户端和服务器两个端点组成,首先客户端主要是提供界面供用户使用,并将某种状态下出现的相关逻辑关系进行处理;服务器主要是对客户信息的接收,并在某种程度上将用户所需要的信息进行一定的整合,再次传递到客户端。分层技术在计算机软件开发中应用的前提,是要保证计算机的服务器有着较好的效能,同时也要保证用户数量相对较少。一旦用户数量相对较多,计算机软件在实际的运行中,不仅仅出现系统上的错误,同时也在一定程度上使得软件运行速度相对较慢,很难实现用户的真正需求。
2.2三层技术在计算机软件开发中的应用
所谓的三层技术主要是在计算机软件开发中双层技术的基础上进行完善。相对于双层技术,三层技术不仅仅使得应用服务器在某种程度上得到增加,同时对于计算机使用用户数据的存储也有着一定的优势。三层技术的应用,一方面使得计算机信息访问的效率有所提高,同时另一方面从根本上实现了计算机与人之间的信息的真正交互,计算机工作的效益明显提高。三层技术主要有业务处理层次、界面层次以及数据层次三个方面。业务处理层次主要是分析用户的真正需求,并发出一定的请求,对数据进行处理和提取;界面层主要是对用户真正需求进行主要的搜集,通过对信息进行一定的加工,进而将数据搜集的结果传递给业务处理层次;而数据层次主要是对业务处理层的申请进行审核,并对数据库相关信息进行查询,进行科学的分析之后将处理结果传递给业务层。三层技术虽然在一定程度上提高了计算机工作的效率,但是面对复杂的用户环境,很难从根本上科学地分开界面层、业务处理层以及数据库层。
2.3四层技术在计算机软件开发中的应用
四层技术是在三层技术的基础上进行完善的,主要有业务处理层、Web层、数据库层以及存储层。其在软件开发中的应用过程,首先是业务处理层对用户的需求进行分析,进而将数据层处理的结果传递给Web层,通过进行数据的交换和数据访问的代码将数据库与计算机对象之间的关系进行直观地反映。
2.4中间件技术在计算机软件开发中的应用
随着数据通信与计算机网络技术的蓬勃发展,在计算机软件开发过程中,中间件技术相对来说是一种独立性的系统软件,从根本上将异构与分布集成带来的各种复杂技术加以屏蔽,将计算机软件开发过程中技术上的难度有效降低。中间件技术不仅仅将开发的周期缩短,而且可从根本上科学优化操作系统、应用软件以及数据库之间的某种关系,同时对于系统的安全运行以及软件开发风险的降低有一定的保障性作用,真正实现了计算机运行过程中各系统资源的优势互补。
3结语
关键词:JAVA;虚拟机;J2ME;信息终端
1引言
Java语言是由美国SUN公司在1995年设计的,原是为机顶盒这种嵌入式系统设计的,但并没有在嵌入式领域得到发展,随着Internet的普及JAVA占领了PC端和Server端,现在Java又回到了嵌入式领域。为了和PC端、Server端的Java相区别,用于嵌入式系统的Java被称为Java2MicroEdition,简称J2ME。
以嵌入式产品的典型——手机来说,我们可以看到,手机软件经历了三个阶段,最早只有基本的语音通话服务,其后手机上增加了电话本、短消息和游戏等简单的应用功能,去年又增加了通过WAP方式访问Internet的功能。
现在手机厂商还存在两个普遍的问题:一个是缺乏开放的编程平台,另一个是只能通过WAP方式访问Internet,没有其他方式实现。
通过应用J2ME技术开发手机的应用软件,我们就可以解决这两个问题:
首先,Java语言是跨平台运行的,软件开发商可以很容易地开发应用程序,也可以方便地安装到手机中;
其次,J2ME提供了HTTP、TCP等高级Internet协议,Java程序可以自由的访问Internet。
2J2ME结构分析
图1J2ME应用示意图
Java内部分三层,从下到上分别是VM(虚拟机)、Configration(配置层)和Profile(框架层)。
VM负责建立Java虚拟机,解释Java字节码;Configration建立了核心类库,功能少(比如没有UI),主要面向水平市场;Profile建立了高级类库,功能丰富,面向垂直市场。
针对手机内存少、速度慢和IO差的特点,J2ME针对VM、Configration和Profile3层做了特殊的实现:
在虚拟机层,在手机上移植KVM,只需要几百K内存就可以运行;
在配置层,J2ME规定了连接有限设备配置(Connected,LimitedDeviceConfigration),简称CLDC。它适用于有双向网络连接,但是硬件资源有限的设备;
在框架层,J2ME规定了移动信息设备框架(MobileInformationDeviceProfile),简称MIDP。它适用于手机或双向寻呼机。
3J2ME与WAP的关系
图2WAP与手机(J2ME)的关系
J2ME与WAP并没有直接竞争关系,而是共存互助。
WAP包括2层内容:一层是无线Internet传输层,针对无线的特点制定了WDP、WTP等等协议;另一层是应用层,也就是WAPBrowser,WAP为了适应低速网络的限制,简化了Internet标准的HTML,制定了WML标准。
那么J2ME在传输层和应用层又是什么呢?在传输层,J2ME提供了一组面向应用程序的高层协议,包括HTTP和TCP(或UDP等),实际的传输可以基于WAP实现,也可以基于其他方式(比如CSD或GPRS等)。在应用层,J2ME提供了全功能的Java开发环境,可以用Client/Server方式来访问Internet上的所有数据。如果需要的话,软件开发商甚至可以开发出HTMLBrowser。
所以J2ME与WAP并没有竞争关系,而是面向不同领域的两套解决方案。如果是面向浏览的应用,比如新闻、天气预报等,可以继续使用WAP方案;如果是需要智能处理的应用,比如email、股票等,就更适合用J2ME实现。
4J2ME中虚拟机KVM
KVM是Java虚拟机;是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。引入Java语言虚拟机后Java语言在不同平台上运行时不需要重新编译。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
KVM由五部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆(Garbage-collected-heap)、一个方法区域。这五部分是Java虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。
5J2ME未来应用
Motorola是J2ME的主要支持者,第一个在手机上移植了KVM,又领导全球手机厂家制定了MIDP规范。日本已经将J2ME开发的手机投入到商业应用,主要是游戏、聊天、证券等交互信息应用领域。
成都华好网景公司最近推出采用J2ME开发的手机地图浏览器,首家实现以J2MEMIDP方式支持Java手机,在OkMap地图服务器的支持下,可对多个城市进行地图浏览、单位查找、街道查找、按类型进行最近目标查找、公交换乘咨询、两点间距离估算等操作。
北京科银京成公司与SUN公司合作推出了基于他们自己开发的操作系统平台的JAVA虚拟机,并可以实现面向手机和PDA的应用。
美国硅谷一些公司也在国内成立了分公司,专门推广JAVA在手机和PDA等终端产品上的应用。
目前在手机市场上已经出现的应用JAVA的产品有:
(1)2001年4月,美国Nextel通信公司宣布推出两款由摩托罗拉公司生产的JAVA手机,i85s售价为200美元,i50sx售价为150美元。这是美国市场上首先推出的JAVA手机。同时支持WAP功能;
(2)2001年6月底,摩托罗拉公司推出天拓A6288,支持J2ME开发程序;
(3)日本J-Phone公司从2001年7月中旬开始上市两种内置对应“Java”应用软件和3D的数码相机的手机;
(4)西门子公司2001年6月推出一款6688I的手机是世界上首部KJAVA手机,可以下载任何用KJAVA计算机语言编写的应用程序,包括各种游戏软件;
我们预计在未来的两至五年内,大多数新的信息设备将与Internet连接,这将导致用户使用这些设备的方式产生根本性的变化。用户无论何时、何地和使用何种设备均可方便地传递网页内容、企业数据和个人数据。
这些新信息设备上网的一个显著后果是比现今的设备更加趋向于可自定制化和个人化。过去的设备有与硬件相关的程序代码。与此不同,现在新的信息设备将允许用户从Internet下载新的服务和应用程序来定制设备。
现在已经有一些无线设备厂商正在制造新的蜂窝手机,可使用户下载诸如交互游戏、网上银行、订票系统和无线协作等等的应用程序。
6J2ME开发信息终端技术
目前,信息终端的产品代表就是手机和PDA,但是他们的功能都很有限,随着J2ME的发展,未来的信息终端功能可以无限拓展。
按照J2ME的层次结构,我们分析采用J2ME开发信息终端的技术。
?J2ME中KVM软件平台的开发;
目前,有很多信息终端产品开发商都开发了适用于自己产品的KVM软件平台,也有一些软件供应商采用开放的技术开发面向各类嵌入式产品的KVM平台,结合具体的信息终端再进行二次开发,完成针对具体产品的KVM。
关于KVM软件平台的开发,我们认为需要注意两个问题:
首先,为了支持用户和信息终端提出的灵活性的和可定制性的要求,KVM应用平台必须设计成模块化和可缩放化。
其次,随着设备制造商开发新的设备家族,KVM软件平台技术应该提供范围广泛的框架层、配置层和虚拟机,它们针对适应不同的应用程序、不同的需求、不同的内存,进行过最优化处理。
关于对Internet的访问,在使用KVM应用平台后可以解决:
(1)浏览器方式访问Internet的功能有限;
(2)不能直接访问Internet,需要Gateway过滤;
(3)只显示WML,不能显示复杂格式图形;
(4)在线交易增加服务器负荷,速度慢;
(5)不能访问本地存储区;
?J2ME配置层的应用
在配置层,J2ME规定了连接有限设备配置CLDC,它适用于有双向网络连接,但是硬件资源有限的设备;该层软件的开发主要实现硬件设备的标准配置,随着设备的不同实现不同的配置。
这一层对于用户可见度要低一些,但对框架层非常重要。它针对“水平”市场的需求,定义了Java虚拟机的最小功能集和Java类库的最小集合。在某种意义上,配置层定义了开发者在所有设备上都可以使用的Java特性和类库的“最小公分母”。
?在框架层按照MIDP规范开发的各种API;
框架层针对不同的设备,在配置层的基础上规定了附加的API。为了满足不断更新的令人兴奋的应用程序,框架层可以扩充新的Java库类。
?面向具体信息终端的应用程序;
具有J2ME的KVM、配置层和框架层后的信息终端,可以实现各种功能的应用程序,目前已经实现的功能包括交互性游戏、聊天、电子邮件、证券交易等;根据我们的分析,未来的信息终端将会根据市场的需要具备客户自由定制、功能专用、信息多样等特点。
7结束语
J2ME是专门面向嵌入式并且对资源要求较少的产品的开发工具,尤其适合在无线通信产品上网络应用软件的开发。相信随着无线网络速率的提高,J2ME工具的应用和产品开发将进入一个高速发展的时期。
参考文献
[1]王克宏,等。Java嵌入技术[M].北京:清华大学出版社,1998.
[2]SUNMicrosystems。KVM白皮书[EB/OL]/docs/kvm/kvmwp_o_contents.htm,2000-5-19.
[3]孙立,等。J2ME开发循序渐进[EB/OL]/docs/whatIsKjava-CN/frame.htm,9Nov.2000.
摘要:嵌入式技术已在人们生活中得到广泛应用;移动计算更是给人们的生活带来了极大的方便。有移动计算技术推动发展的新的数据库技术让人耳目一新。嵌入式移动数据库技术因此产生。主要论述了嵌入式移动数据库的特点及应用,嵌入式移动数据库管理系统(EMDB)的功能需求及特点,嵌入式移动数据库的系统结构。
关键字:嵌入式移动计算嵌入式移动数据库EMDB系统结构
1引言
随着移动计算技术的发展,移动数据库逐步走向应用,在嵌入式操作系统中加入移动数据库,也越来越显示出其重要性。
1.1嵌入式系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般由嵌入式微处理器、硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
嵌入式系统一般指非PC系统,它包括硬件和软件两部分。硬件包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分包括操作系统软件(OS)(要求实时和多任务操作)和应用程序编程。有时设计人员把这两种软件组合在一起。应用程序控制着系统的运作和行为;而操作系统控制着应用程序编程与硬件的交互作用。
1.2移动计算
移动计算是一种新型的技术,它使得计算机或其它信息设备,在没有与固定的物理连接设备相连的情况下,能够传输数据。移动计算的作用在于,将有用、准确、及时的信息与中央信息系统相互作用,分担中央信息系统的计算压力,使有用、准确、及时的信息能提供给在任何时间、任何地点需要它的任何用户。移动计算环境比传统的计算环境更为复杂和灵活。典型的移动计算环境有[1]:
(1)智能计算设备+无线网络。通过无线网络,智能计算设备可以随时进入MCE主网络;
(2)智能计算设备+调制解调器+电话网络。在不同地点,将调制解调器和附近的电话相连接,通过电话网进入MCE主网络;
(3)移动用户+传统工作站+传统有线网络。移动用户在不同场地使用静态计算机获得MCE的服务。
1.3嵌入式移动数据库
数据库技术一直在随着计算的发展而不断进步。凡是有数据的地方,就要用到数据库来协助管理数据。移动计算也是对数据的处理,离开对数据的管理、处理,计算机就毫无意义。移动计算同时又强调其移动性,传统的PC机要做到移动,同时在苛刻的环境下作到良好的运作也是不可能的。此时,嵌入式很好的满足了移动计算对移动客户端计算的要求。三者从这一点上结合就产生了当今数据库的一个新的发展空间:嵌入式数据库技术。移动数据库是指支持移动计算环境的分布式数据库。由于移动数据库系统通常应用在诸如掌上电脑、PDA、车载设备、移动电话等嵌入式设备中,因此,它又被称为嵌入式移动数据库系统。
2嵌入式移动数据库的特点及其应用
2.1嵌入式移动数据库特点
嵌入式移动数据库在实际应用中必须解决好数据的一致性(复制性)、高效的事务处理、数据的安全性等问题。
(1)数据的一致性
移动数据库的一个显著特点是,移动终端之间以及与服务器之间的连接是一种弱连接。即低带宽、长延迟、不稳定和经常性的断开。为了支持用户在弱环境下对数据库的操作,现在普遍采用乐观复制方法(Optimisticreplication或Lazyreplication)允许用户对本地缓存上的数据副本进行操作。待网络重新连接后再与数据库服务器或其它终端交换数据修改信息,并通过冲突检测和协调来恢复数据的一致性。
(2)高效的事务处理
移动事务处理要解决在移动环境中频繁的、可预见的、拆连情况下的事务处理。为了保证活动事务的顺利完成,必须设计和实现新的事务管理策略和算法,方法如下:
根据网络连接情况来确定事务处理的优先级,网络连接速度高的事务请求优先处理。
根据操作时间来确定事务是否迁移,即长时间的事务操作将全部迁移到服务器上执行,无需保证网络的一直畅通。
根据数据量的大小来确定事务是上载执行还是下载数据副本执行后上载。
事务处理过程中,网络断接处理时采用服务器发现机制还是采用客户端声明机制。
事务移动(如:位置相关查询)过程中的用户位置属性的实时更新。
完善的日志记录策略。
(3)数据的安全性
许多应用领域的嵌入式设备是系统中数据管理或处理的关键设备,因此嵌入式设备上的数据库系统对存取权限的控制比较严格。同时,许多嵌入式设备具有较高的移动性、便携性和非固定的工作环境,也带来潜在的不安全因素。同时某些数据的个人隐私性又很高,因此在防止碰撞、磁场干扰、遗失、盗窃等对个人数据安全的威胁上需要提供充分的安全性保证。保证数据安全的主要措施如下:
对移动终端进行认证,防止非法终端的欺骗性接入。
对无线通信进行加密,防止数据信息泄漏。
对下载的数据副本加密存储,以防移动终端物理丢失后的数据泄密[2]。
2.2嵌入式移动数据库应用
目前,嵌入式移动数据库有两种应用,可划分为水平应用和垂直应用。所谓水平应用,是指应用方案能够用于多种不同行业,只需要极少的定制工作;而垂直应用则针对特定行业的应用,数据处理具有独特性。与水平应用相比,垂直型应用具有明显的行业特殊性,不同领域的应用之间差别较大,结果表示和服务器数据库的管理也有很大不同。主要涉及保险、银行业、航班信息、政府部门等具体的行业领域。如图所示[3]:
图1嵌入式移动数据库的应用分类
3嵌入式移动数据库管理系统(EMDBMS)的特性
3.1嵌入式移动数据库管理系统的功能需求
移动计算环境中的数据库管理系统,是一种动态分布式数据库管理系统。由于嵌入式移动数据库管理系统运行在移动计算的环境之下,应用于嵌入式操作系统之上,所以它有自己的功能需求:
(1)微小内核结构
考虑到嵌入式设备的资源有限,嵌入式移动DBMS应采用微型化技术实现,可在满足应用的前提下,紧缩其系统结构以满足嵌入式应用的需求。
(2)对标准SQL的支持
嵌入式移动DBMS应能提供对标准SQL的支持。支持SQL92标准的子集,支持数据查询(连接查询、子查询、排序、分组等)、插入、更新、删除多种标准的SQL语句,以充分满足嵌入式应用开发的需求。
(3)事务管理功能
嵌入式移动DBMS应具有事务处理能力,可自动维护事务的完整性、原子性等特性;支持实体完整性和引用完整性。
(4)完善的数据同步机制
数据同步是嵌入式数据库最重要的特点。通过数据复制,可以将嵌入式数据库或主数据库的变化情况应用到对方,以保证数据的一致性。
(5)支持多种连接协议。
嵌入式移动DBMS应支持多种通信连接协议。可以通过串行通信、TCP/IP、红外传输、蓝牙等多种连接方式,实现与嵌入式设备和数据库服务器的连接。
(6)完备的嵌入式数据库的管理功能
嵌入式移动DBMS应具有自动恢复功能,可进行嵌入式数据库管理,并能够提供数据的备份和恢复,保证用户数据安全可靠。支持多种嵌入式操作系统嵌入式移动DBMS应能支持WindowsCE、PalmOS等多种目前流行的嵌入式操作系统,这样才能使嵌入式移动数据库管理系统不受移动终端的限制。
3.2嵌入式移动数据库管理系统的特点
基于以上分析不难得出嵌入式移动数据库的管理系统应具有如下特点:
(1)提供多种数据同步方式。具有上载同步、下载同步和完全同步三种同步方式。
(2)具有完善的冲突检测机制,和灵活的冲突解决方案,具有冲突日志记录功能。企业级应用中冲突是不可避免的,不同的数据库系统认为冲突发生的位置是不一样的。解决冲突的规则可以是系统预定义的也可以是用户自定义的。
(3)支持快速同步。系统同步时,只传递变化的数据,即增量上下载,节省了大量的同步时间。
(4)支持表的水平分割和垂直分割复制,最大限度地降低了嵌入式数据库的大小。
(5)支持异构数据源连接同步。可以用支持ODBC的异构数据源,作为主数据库和嵌入式设备上的数据库,以进行数据同步。
(6)具有主动同步的功能。允许用户对系统提供的同步事件自定义过程实现,并提供最大灵活度的同步过程。
4嵌入式移动数据库的数据管理模式
图2数据管理模式
嵌入式数据库的应用分为个人应用和企业级应用。在个人应用中,与外界较少交换数据,而且不必考虑多个数据库的数据一致性。在企业级应用中,嵌入式数据库要与企业级数据库交换数据,构成分布式数据库系统,支持复杂的业务活动。
在数据库三级应用模式中,EMDB系统一般采用EMDB+同步/复制服务器+企业级DB,如我们见到的IBM提供的嵌入式设备和移动企业级应用解决方案就是由3部分组成:DB2Everyplace嵌入式数据库、DB2EveryplaceSyncServer和UniversalDatabase企业级数据库。在此模式中,EMDBS由移动设备中的EMDBMS和固定节点上的同步/复制服务器这两部分构成。这种方案的指导思想是将DBMS的功能分解,简化移动设备中的功能,进而减少对移动设备资源的需求[4]。
5嵌入式移动数据库的系统结构
(1)数据库服务器DBSVR(DatabaseServer)
可以是大型数据库系统,如:Oracle,Sybase,DB2,SQLServer,一般为固定结点。每个DBSVR上维护本地数据库的一个完整的副本,服务器之间由可靠的高速互联网连接在一起,构成一个传统意义上的分布数据库系统。
图3典型嵌入式移动数据库的系统结构
(2)移动支持结点MSS(MobileSupportStation)
进行分布式事务处理,控制EMDB和DBSVR之间的数据交换并支持一个无线单元(cell),具有无线联网能力和同步功能,MSS也位于高速网络中。服务器可以与MSS为同一台机器。
(3)位置服务器LS(LocationServer)
(4)可信部分
由固定网络以及网络上的固定主机组成,固定主机分为两类:一类是不带无线通讯的主机,如DSSVR和LS;另一类是带有无线通讯接口MSS。
(5)移动客户机MC(MobileClient)
MC的处理能力与存储能力相对于服务器来说非常有限,且具有移动性(即可以出现在任意一个无线单元中),在它上面保存一部分数据库副本,并通过EMDB对本地数据进行管理,可以通过无线链路与一个MSS通信,通过MSS上的ODBC接口,EMDB可以与DBSVR进行数据交换。从而与整个固定网络连通,也可以接受由MSS发送的广播信息。它会经常与服务器断接(指MC无法与任意一个联机通信)即使在与服务器保持连接时,由于MC所处的网络环境多变,MC与服务器之间的网络带宽相差很大,且可靠性较低,网络延迟较大。
(6)本地数据库Rep(Replication)数据库副本
(7)EMDB
嵌入式移动数据库,工作方式为:每当MC发出一个查询请求Q1时,它首先查询本地数据库(移动子集上),若满足查询条件要求则直接返回给MC,否则就向VS提交查询请求,由VS代替MC完成查询并将结果返回给MC(前提是两者处于连接状态)。若MC处于断接状态,则也只能在MC上执行本地查询。若在断接期间更新了MC上的数据,则该数据将在VS再次连接时,进行数据重集成,通过一致性维护算法来保证一致性。主要EMDB的应用模式都是立足于嵌入式设备作客户端,在嵌入式设备上运行一个精巧的EMDB,在通过同步或复制技术与企业级数据库连接。这种应用模式在支持嵌入式设备的同时,还支持移动设备,甚至无线移动设备,构成基于移动环境的应用[5]。
6结束语
现在,世界已经进入了后PC机时代。信息电器如个人数字助理、web可视电话、移动电话的GPS或W-CDMA产品、TV机顶盒、电视会议机、数码相机等嵌入式设备已经在人们生活中广泛应用。相信随着科技的发展,嵌入式移动数据库技术也必将给人们的生活带来更大的方便和改变。
参考文献
[1]冯玉才李东等.一种移动数据库管理系统的体系结构,计算机研究与发展[J],2001年
[2]黄军政.蔡瀛捷.移动计算推动数据库移动,中国计算机用户[J],2004年9月第36期
[3]周克江.嵌入式移动数据库及其应用问题研究,湖南第一师范学报[J],2004年9月第4卷第3期
关键词数据库扫描多表联结子查询
1如何优化Parse
1.1SQL语句的Parse处理步骤:
1)计算语句值
2)共享池中有无与此语句值相同的语句?
3)共享池中有与此语句字符完全匹配的语句?
4)准备要运行的SQL语句
5)为新语句在共享池中创建空间
6)将语句存放在共享池中
7)修改共享池图,标明语句的值和在共享池中的位置
8)执行准备好的SQL语句
最理想的是,语句只执行1、2、3和8步来进行处理。不经过2、3步来测试被传给Oracle的语句要使用1~8步进行处理。只经过1、2、3、8的SQL语句要比经过1~8步的语句更为有效。
1.2在共享池中重用SQL语句
当SQL语句被传递给Oracle处理时,其秘诀是重复使用已经在共享池中的语句,而不是让Oracle在接受语句时去准备新的语句。前面表明,如果Oracle接受了一个与共享池中的语句相一致的语句,就重用共享池中的语句。
Oracle提供在数据库中存储代码的能力。当应用系统开始运行时,从数据库中读取代码(可用PL/SQL语句编制)并像其它语句那样传递到共享池中去处理。从数据库中取出的代码是编译过的并驻留在共享池中。
可以利用数据库中存储的程序代码设计应用系统,检查所有的事务处理以及主要的通用的过程,研究现有的应用系统并把主要的处理程序转换为数据库中存储的程序代码。在Oracle中存储代码可以通过过程、程序包、函数、触发器等来实现。
2如何优化Execute和Fetch
2.1避免无计划的全表扫描
全表扫描连续从表读取所有数据,而不管数据是否与查询有关。避免不必要的全表扫描有两个充足理由:1)全表扫描没有选择性
2)过全表扫描读取的数据很快从SGA的缓冲区移走(如果正在扫描的表不是“高速存储”的表)
在基于规则优化的情况下,如果下列任何条件在SGA语句出现,就要对一个表进行全表扫描。
1)该表无索引
2)对返回的行无任何限定条件(如无Where语句)
3)对数据表与任何索引主列相对应的行无限定条件。例如,在City-State-Zip列上创建了三列复合索引,那么仅对State列有限定条件的查询不能使用这个索引,因为State不是索引的主列。
4)对索引主列的行有限定条件,但条件或者是NULL或者是不相等。例如,City列上存在索引,在所有下列情况下都不会使用索引。
Wherecityisnull
Wherecityisnotnull
Wherecity!=’liaoning’
5)对索引主列的行有限定条件,但条件在表达式里使用。例如,如果在City列上索引,那么限定条件
WhereCity=’liaoning’
可以使用索引。然而,如果限定条件是
WhereUPPER(City)=’liaoning’
那么不会使用City列上的索引,因为City列在UPPER函数里。如果将City列与文本字符串联结在一起,也不会使用索引。例如,如果限定条件是
WhereCity||’x’like‘liaoning%’
那么不会使用City列上的索引。
6)对索引主列的行有限定条件,但条件使用Like操作以及值以‘%’开始或者值是一个赋值变量。例如,在所有下列情况下都不会使用索引:
WhereCitylike‘%aonin%’
WhereCitylike:City_Bind_Variable
如果表小、索引列无选择性,基于开销的优化器可能决定使用全表扫描。
2.2只使用选择性索引
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
如果使用基于开销的最优化,优化器不应该使用选择性不好的索引。
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
索引的选择性是指索引列里不同值的数目与表中记录数的比。如果表有1000个记录,表索引列有950个不同值,那么这个索引的选择性就是950/1000或者0.95。最好的可能性选择是1.0。依据非空值列的唯一索引,通常其选择性为1.0。
2.3管理多表联结
Oracle提供了3个联结操作:NESTEDLOOPS、HASHJOIN和MERGEJOIN。MERGEJOIN是一组操作,在所有行被处理完之前,它不返任何记录给下一操作。NESTEDLOOPS和HASH是行操作,因此会很快将第一批记录返回给下一个操作。
在每个联结选项里,必须执行一些步骤以获取最好的联结性能。如果没有适当地优化联结操作,那么联结所需的时间也许随着表的增长而呈指数级地增长。
2.4管理包含视图的SQL语句
如果查询包含视图,优化器有两种执行查询的方法:首先解决视图然后执行查询,或者把视图文本集成到查询里去。如果首先执行视图,那么首先完成全部的结果集,然后用其余的查询条件做过滤器。
首先解决视图会导致查询性能下降的问题,这取决于所涉及表的相对大小。如果视图被集成到查询里,那么查询的条件也可以应用于视图里,并且可以使用一个小一些的结果集。然而在一些情况下,也许可以通过视图分离组操作提高查询性能。
如果一个视图包含集合的操作(如Groupby、SUM、COUNT或者DISTINCT),那么视图不能被集成到查询里去。
不使用组或者没有集合操作的视图的SQL语法可以被集成到大的查询里去。
2.5优化子查询
当使用自查询时,也许会碰到几个独特的问题。涉及子查询的查询潜在问题如下:
?也许在执行完查询的剩余部分前执行子查询(与执行分组功能的视图相似)。
?子查询也许要求特定的提示,但这些提示不直接与调用该子查询的查询有关
?可以作为单个查询执行的子查询也许被代替写成几个不同的子查询。
?也许在使用notin子句或者notexists子句时,不能在最有效的方式下进行子查询的存在查询。
1)当执行子查询时
如果一个查询包含子查询,那么优化器有两种完成查询的方法:首先完成子查询,然后完成查询(“视图的方法”),或者将子查询集成到查询里去(“联结”的方法)。如果首先解决子查询,那么整个子查询的结果集将首先被计算,并且用查询条件的剩余部分做过滤器。如果没有使用子查询去进行存在检查,那么“联结”方法将通常要比“视图”方法完成得好。
如果一个子查询包括集合操作,如groupby,SUM或者DISTINCT,那么不能集成子查询到查询的其余部分里去。非集成的子查询限制了提供给优化器的选项。
2)如何组合子查询
一个查询可以包含多个子查询,使用的子查询越多,集成或者重写它们到大的联结里就越困难。既然有多个子查询使集成困难,就应该尽可能地组合多个子查询。
3)怎样进行存在检查
有时子查询不返回行(记录),但可以进行数据正确性检查。在相关表里的记录或者存在或者不存在的逻辑检查,称为存在检查。可以使用exists和notexists子句提高存在检查的性能。
2.6管理对非常巨大的表的访问
随着表增长到比SGA的数据块高速缓冲区存储器的空间显著大时,需要从另一个角度优化对这个表的查询。
1)问题
当表和它的索引小的时候,在SGA里可以有高度的数据共享。多用户读表或索引范围扫描可以反复使用同一个块。随着表的增长,表的索引也在增长。随着表和它的索引增长到比SGA里提供的空间大时,范围扫描需要的下一行将在SGA里找到的可能性变小,数据库的命中率将减小。最后,每一个逻辑读将要求一个单独的物理读。对使用非常大的表的优化方法着眼于特别的索引技术和有关索引的选择。
2)管理数据接近
在访问非常大的表期间,如果倾向于继续使用索引,那么应该关注数据接近,即逻辑相关记录的物理关系。为了使数据最大限度地接近,应该连续往表里插入记录。记录按通常在表的范围扫描里使用的列排序。
3)避免没有帮助的索引扫描
如果要对大表使用索引扫描,那么不能假定索引扫描将比全表扫描执行得更好。不紧跟表访问的索引唯一扫描或范围扫描执行得比较好,但紧跟通过RowID的表访问的索引范围扫描也许执行得差。随着表增长到比数据块高速缓冲存储器大得多,最终,索引扫描和全表扫描间的平衡点打破。
4)创建充分索引的表
如果表中的数据相当稳定,充分索引一个表是很有用的。创建一个复合索引,它包括所有在查询期间通常选择的列。在查询期间,查询要求的所有数据可以通过索引访问提供,不需要任何表访问。
5)并行选项
可以把一个数据库任务,比如Select语句,分为多个单元的工作,由多个Oracle进程同时执行。这种能够允许数据库的单个查询活动由多个协调的进程透明地进行处理的能力,称为并行查询选项(PQO)。
并行选项调用多个进程来利用空闲的系统资源,以减少完成任务所需要的时间。并行选项并不减少处理过程所要求的资源数量,而是把处理的任务分散给多个CPU。为了从并行选项中得到最大的好处,应该使CPU和磁盘上的I/O不要满负荷使用。因为并行的目的是使更多的CPU和磁盘同时参与处理数据库的命令,一个缺乏CPU和I/O资源的服务程序是不能从并行选项中得到好处的。
2.7使用UNIONALL而不是UNION
最常用的集操作是UNION操作,UNION操作使多个记录集联结成为单个集。UNION操作的数学定义是返回记录的单个集并且没有重复的行,所以在合并结果集里,Oracle只返回不同的记录。
当UNION操作用作SQL语句的一部分时,唯一性要求强迫Oracle移走重复的记录。Oracle的移走重复记录的功能是SORTUNIQUE操作,它与使用DISTINCT子句时执行的操作类似。
UNIONALL操作允许重复。UNIONALL不要求SORTUNIQUE操作,从而节省了开销。UNIONALL是一个行操作,所以当其变为有效就返回给用户。而UNION包括SORTUNIQUE集操作,在全部记录的集的排序结束前,不返回任何记录给用户。
当UNIONALL操作产生巨大的结果集时,不需要任何排序便返回记录给应用的事实意味着第一行检索的响应时间更快,并且在许多情况下,可以不用临时段完成操作。
在有些情况下,UNIONALL和UNION不返回同样的结果。如果在应用环境中,结果集并不包含任何重复的记录,则可以把UNION转换成UNIONALL。
2.8避免在SQL里使用PL/SQL功能调用
对于增加PL/SQL的使用,许多用户试图利PL/SQL功能的优势产生可重复使用的代码。其中一个强迫重复使用PL/SQL功能的方法是在SQL语句里使用。例如,可以创建一个将国际货币转换为US$的函数。这个函数称为US$。示例如下:
selecttransaction_type,US$(amount,currency)
frominternational_transaction
whereUS$(amount,currency)>1000;
执行前面的SQL语句没有所期望的那样好。在测试时,它的性能大约比下面得出相同结果的SQL语句慢大约几十倍。
selecttransaction_type,
amount*exchange_rateUS$
fromexchange_rateer,international_transactionit
whereer.currency=it.currency
andamount*exchange_rate>1000;
响应时间不同的原因是混合PL/SQL和SQL时,Oracle使用的机制不同。在SQL查询里嵌入PL/SQL功能时,在执行时,Oracle将调用分成两部分:用带有赋值变量的SQL语句代替功能调用以及对每一个函数调用的无名PL/SQL块。
selecttransaction_type,:a1
frominternational_transaction
where:a1>1000
和
BEGIN
:a1:=US$(:amount,:currency);
END
对在international_transaction表里的每一行,将执行在前面示例里显示的无名块两次。无名块调用导致查询响应时间的剧增。应该避免在SQL语句里使用PL/SQL功能调用。
参考文献
[1]瓮正科,王新英著.Oracle8.XForWindowsNT实用教程[M].北京:清华大学出版社,1999.
[2]萨师萱,王珊著.数据库系统概论[M].北京:高等教育出版社,2000.2.
[3]EyalAronoff,KevinLoney,NooraliSonawalla著,李逸波、王华驹、马赛红、曲宁等译.Oracle8性能优化和管理手册[M].北京:电子工业出版社,2000.1.
写计算机论文,必须具有1定的理论基础,除了应该具有1般的哲学、逻辑学等基础外,主要应该具有计算机学、心理学发及学科教学方面的基础。教师要做好“平时烧香”工作,经常系统的看1些计算机专著,广泛涉猎计算机报刊,特别是与自已所教学科有关的报刊。此外,也要做好“临时抱佛脚”工作,结合拟将撰写论文的选题学习相关理论。
毕业设计和毕业论文是本科生培养方案中的重要环节.学生通过毕业论文,综合性地运用所学知识去分析,解决一个应用问题,在完成毕业论文的过程中,将所学知识进行合理的运用,它既是一次检阅,又是一次锻炼.不少学生在作完毕业设计后,感到自己的实践动手,动笔能力得到提高,增强了跨入社会去竞争的自信心.以下内容希望能对学生毕业论文有所帮助. 关于本专业毕业论文选题
计算机专业毕业论文的撰写前提,是先要求学员结合自己的工作实际,完成一定的应用型课题(项目)设计/开发工作,然后在课题(项目)完成的基础上,学习并研究相关学科专业领域知识,将自己的实际工作加以
总结,以形成毕业论文.这也就是我们所要求的:论文一定要在自己的工作基础上撰写出来, 切勿上网下载或找几篇文章拼凑.
计算机专业的应用很广泛,几乎遍及各行各业,因此论文选题的的范围也很广泛.网络学员应该结合自己的本职工作,选择一个适合自己的课题/项目和方向,加以研究,并完成课题/项目的设计和开发.在开发过程中,需要学习相关的应用技术和工具.课题/项目开发前,一定要进行计划,要按软件工程要求的那样进行问题描述,软件需求分析,总体设计,详细设计与实现,最后是测试,在整个过程中,要像软件工程要求的那样,撰写文档.在课题/项目的开发设计中,要注意及时记录和小结开发工作中成功经验和所存在的问题,出现问题时,可以查资料,或向老师及同学请教.通常,在开发完成之后,学员会形成自己的观点和经验,这些观点和经验正是论文写作的宝贵基础.当然光有观点和经验是不够的,还应该在理论的高度进行提升,即以专业理论来指导自己的论文撰写工作.因此,从这一意义上将,论文不是一份软件工程文档,工作汇报或工作总结,而是对自己实践工作进一步提升.
现在通过例子加以说明.假如一学员在中学教初中物理,平时见过或做过一些初中物理课件,也知道学校的工资,人事等管理已经计算机化.该学员初步可以选择的论文题目就是初中物理课件的制作(或××初中物理课件的设计与实现),或中学工资管理系统和人事管理系统的开
发(或××中学工资管理系统的设计与实现),这一论文题目同时也是学员要设计和开发的内容.在确定题目后,将自己的构思与指导老师及时进行沟通,以得到老师的指导.在此基础上,可按照前面所讲述的方法,实现该系统的全部或部分(可视学员需求和时间而定),为此学员在结合软件工程的要求,学习课件制作工具的使用,或应用系统开发工具的使用.当课题(部分)完成后,就可以开始对论文的框架进行构思.
事实上,计算机理论与应用专业有很多热点问题值得研究的问题.
对于理论问题的选择,选题可以参考计算机中文核心期刊上相关作者已经发表的文章所涉及的内容,要注意的几点是,研究者应该具有:1)较好的数学基础;2)教扎实的本专业理论知识;3)一定的研究能力;4)较多的参考资料(至少能够找得到,或知道如何找).
对于应用问题的选择,则广泛得多.例如应用领域的管理系统的开发,这一选题中可以考虑的问题有基于网络/Web的应用系统,或者选择基于单机的应用系统开发.
教师根据社会需求所拟定的选题是:院系行政教学,科研和研究生信息管理系统,本科生学籍管理系统等. 相关选题可以本文参考附录.
二,是本专业论文写作的特点,写作要点
本科毕业论文通常有如下四种类型:
1.1 完成一个不太大的实际项目或在某一个较大的项目中设计并完成一个模块(如应用软件,工具软件或自行设计的板卡,接口等等),然后以工程项目总结或科研报告,或已发表的论文的综合扩展等形式完成论文. 这类项目的写作提纲是:
1) 引言(应该写本论文研究的意义,相关研究背景和本论文的目标等
内容.);
2)×××系统的设计(应该写该系统设计的主要结论,如系统的总体设计结论(包括模块结构和接口设计),数据库/数据结构设计结论和主要算法(思想)是什么等内容.);
3)×××系统的实现(主要写为了完成该系统的设计,要解决的关键问题都有什么,以及如何解决,必要时应该给出实验结果及其分析结论等.);
4)结束语(应该总结全文工作,并说明进一步研究的目标和方向等).
1.2 对一个即将进行开发的项目的一部份进行系统分析(需求分析,平台选型,分块,设计部分
模块的细化).例如对一个大中型企业管理信息系统中的财务部分进行调研,分析和设计等,这类工作可以没有具体编程,但应得到有关方面的初步认可,有一定的工作量.这类论文的重点是收集整理应用项目的背景分析,需求分析,平台选型,总体设计(分块),设计部分模块的细化,使用的开发工具的内容.论文结构一般安排如下: 1)引言(重点描述应用项目背景,项目开发特色,工作难度等) ;2)项目分
5.1 学术论文要求文字流畅,层次清晰,词藻不能过分华丽,近年国内外在计算机方面的论文的语言较以前生动,但用词都以准确,不过分夸张为度。
5.2 标题要能反映内容。如有新意更好。例如,下面题目是个不好的题目:"图像处理的某些问题的研究",论防火墙技术"等,其中的"某些问题"不如换成最中心的词汇。论防火墙技术题目太大,不适合本科生作。
5.3 学术刊物上论文摘要一般 300 字左右,需要较高的综合能力。而学生毕业论文摘要可以写一页( 1000 字左右),因此活动空间较大,要好写一些。
摘要可以在全文写完后再写。要简明,
中英文摘要应一致,要突出自己的工作,要提供几个 key words 。
写英文摘要时,可先用英文的习惯和用语写摘要 ( 可以借助于电子词典),然后英译汉 , 用中文摘要去将就英文摘要。反过来,如果先写好中文摘要,再汉译英,则很难把英文摘要写得地道。
为了使得英文表达地道、准确,可以读十几篇相关研究方向的论文的摘要,注意一些表达词的使用,如 present, implementation, propose, give, argue 等。
平行的内容宜用平行的句型。例如下面的例子中,一句主动,一句被动,语感就非常糟糕: "This paper proposes a new algorithm and a prototype is presented.....".
5.4 前言部分要写问题背景,动机,要说明自己工作的工作有用,有意义(才能鼓励读者读下去),通常在介绍国内外工作后,用"但是"一转,指出前人工作的不足,引出自己的工作。在前言中简述自己作的主要结果,(例如明确地列出几条,说明本文的主要工作,主要成果)。前言部分的末尾介绍文章的组织情况,各节内容。
5.5 突出特色,一个项目中工作很多,有些是同行皆知,自己也无创新的,可以略写,要多写自己遇到的特殊困难和创造的特殊解决方法。使人家读了能学到东西,看到作者的创意。为了突出特色,还可以在一节中分成小标题写,一个问题一小段,与计算机相关的论文中还可以把数据结构和程序片段夹叙夹议呈现出来,比只用汉字解释得更清楚。
5.6 上升到理论,一般硕士论文会要求这一点。如果本科生能够在毕业论文中得出有意义的定理或命题,一般会认为是好成果。可能会被推荐到杂志上发表,或在考研、求职中得到承认。
5.7 各部分应详略得当。一般地,毕业论文应该主要写作者的见解和工作,把自己的创新写深写透。综述要有述有评有比较。只要是作了实验,写了程序,一般是想写的太多,写不完。反之,会感到空虚,没有写的,有的学生抄书来充篇幅,效果不好。一般地介绍相关工作(前人的成果)部分不应该超过总篇幅的 1/6 。
5.8 完整的论文应包括测试、运行结果及分析(图表或曲线)。
5.9 结论,小结。说明解决了什么问题,有什么创新,下一步工作主要内容等。
返回目录
六、参考文献及引用
参考文献是论文写作中的重要一环,带着问题读文献或杂志上的论文,不但注意学习学术内容,同时也注意学习选题方法、格式、标准的套话、起承转合的语言和方式,参考文献的写法,字体的运用等等。在论文中明确给出参考文献的出处,既代表着对前人成果的继承,也代表了对他人研究成果的尊崇,是科学研究中应培养的正确的科学态度和做人准则。
参考文献的写法:按参考文献在论文中出现的顺序,用编码的方式给出,如 [1] , [2] ,等。参考文献包括专著、学术期刊、学术会议、技术报告等。
七、 摘要样板
学术刊物上论文摘要一般 300 字左右,需要较高的综合能力。而学生毕业论文摘要可以写到 1000 字,因此活动空间较大,要好写一些。下面是可行写法之一。
1. 介绍项目意义背景, 100-200 字。
2. 本文作的主要工作, ( 1 ),( 2 ), ( 3 ) ,..... , 400 - 600 字
论文关键词:杭州师范大学,钱江学院,毕业设计,毕业论文,任务书,示范
二、主要内容和基本要求(指明本课题要解决的主要问题和大体上可从哪几个方面去研究和论述该主要问题的具体要求)
论文基本内容:
随着国内移动通信的快速普及,基于手机等移动终端的移动商务应运而生,从而为旅游业开辟出一条全新路径。杭州作为一个旅游城市,论文可以从移动电子商务的发展现状入手,分析旅游业应用移动电子商务的情况,重点指出其存在的问题,最后提出相应的对策。
基本要求:
广泛查阅资料;理论联系实际;观点正确;论文要言之有物,切忌空泛;严格遵守论文格式规范;按规定的进度完成各项任务。
在撰写毕业论文期间,应完成如下工作:
1、应查阅大量的文献资料(必须查阅15篇以上的参考文献,其中,外文原文参考文献至少2篇),于2011年1月15日前完成不少于2000字的文献综述和译成中文后不少于2000字的外文译稿,同时提供外文的封面、封底、目录和所翻译的正文的复印件。
2、在完成“文献综述”、“外文翻译”的基础上,进行进一步的研究,于1月30日前完成不少于2000字的开题报告。
3、在同意开题后,认真撰写毕业论文,须在2010~2011第二学期开学注册时(2月19-20日)向指导老师上交不少于8000字的毕业论文(设计)完整初稿。
4、根据指导老师的指导意见,对论文进行多次修改,直到指导老师认为可以通过为止。
5、必须在2011年4月15日之前完成论文定稿(正文不少于8000字,不含附录的字数)。
6、认真准备论文答辩。
三、起止日期及进度安排
起止日期:
2010
年
12
月
2
日 至
2011
年
5
月
14
日
进度安排:
序号
时间
内容
1
2011.1.5之前
确定论文题目、指导老师下达任务书
2
2011.1.6-2011.1.15
完成文献综述和外文翻译定稿
3
2011.1.16-2011.1.30
完成开题报告定稿
4
2011.1.31-2011.2.20
完成完整的论文初稿
5
2011.2.21-2011.4.15
进行多次的论文修改,完成论文定稿
6
2011.3.1-2011.3.10
毕业论文中期检查
7
2011.5.14
论文答辩
四、推荐参考文献(理工科专业应在5篇以上,文科类专业应在8篇以上,其中外文文献至少2篇。)
[1] 袁剑君, 陈志辉. 我国旅游信息化发展状况、问题与对策[J]. 长沙铁道学院学报(社会科学版) , 2009,(01).
[2] 杭志, 徐德智, . 移动电子商务中的服务组合研究[J]. 计算机技术与发展 , 2010,(04).
[3] 李文学. 四川电信与省旅游局深度合作着力提升旅游信息化服务水平[J]. 通信与信息技术 , 2010,(01).
[4] 蔡安宁, 尚正永, 马明栋. 杭州旅游地理信息系统的开发[J]. 计算机系统应用 , 2007,(08).
[5] 杭志, 徐德智, . 移动电子商务中的服务组合研究[J]. 计算机技术与发展 , 2010,(04) .
[6] 为移动电子商务(M-commerce)做好准备[J]. 信息方略 , 2008,(02)
[7] 汪礼俊, 廖瑾. 移动电子商务:现代生活的新诠释[J]. 上海信息化 , 2010,(05).