毕业论文 XML数据查询方法研究.doc_第1页
毕业论文 XML数据查询方法研究.doc_第2页
毕业论文 XML数据查询方法研究.doc_第3页
毕业论文 XML数据查询方法研究.doc_第4页
毕业论文 XML数据查询方法研究.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

内容摘要XML自W3C组织提出之后,逐渐成为因特网中数据表示和数据交换的新标准,越来越多的组织使用XML描述信息。随着XML信息交流的增多,如何快速的从大量的XML数据中进行高效的数据查询已经成为众多研究者所关注的问题。本文从存储角度出发,研究了不同的存储方式所对应的不同查询方式。各种查询方式有不同的使用环境,本文将对各种方式进行详细介绍。关键词:XML数据查询 XML数据查询方法研究1 XML简介1.1 研究背景及意义在当今的IT业中,XML(Extensible Markup Language,可扩展标识语言)越来越成为一个热门的话题。XML是由W3C(万维网联合组织)制定的标准,具有良好的数据存储格式、可扩展性、高度结构化和便于网络传输等优点,从而成为了新一代的Web语言。XML提供了直接处理数据的通用方法,为基于Web的应用提供一个描述数据和交换数据的有效手段,有利于信息的表达和结构化组织。因此,可以更好地满足网络时代在电子商务远程教育、数据库与引擎等领域的多态信息的交互、传输和再现的需求。越来越多的数据使用XML的标准进行表示和存储,如何对XML文档进行有效的查询是一个热点研究问题。1.2 XML的产生 目前,WEB上的通用标识语言是超文本标识语言HTML(HyPertext Markup language),正是由于HTML的出现,才使得Internet迅速发展到今天这样庞大的规模。HTML来自SGML (standard Generalizes Markup Language,标准通用标记语言),SGML是一种用标记来描述文档资料的通用语言,它包含了一系列的DTD(Document Type Definition,文档类型定义)规范,DTD中定义了标记的含义,因而SGML的语法是可以扩展的。但是SGML十分复杂、庞大、不易学,在计算机上实现也比较困难。鉴于这些原因,WEB的发明者根据当时计算机技术的能力,提出了HTML语言。HTML语言只使用了SCML中的很小一部分标记,为了便于计算机上实现,HTML规定的标记是固定的,即HTML语法是不可扩展的,它不需要包含DTD。HTML以其简单精练的语法、极易掌握的通用性与易学性,使Web网页可以接近于每个普通人,互联网也得以迅猛发展。 然而,电子商务、电子图书、远程教育等全新领域的异军突起,逐渐发展成为互联网世界重要的组成部分,随之而来的是Web文件的复杂化、多样化、智能化,于是高容量、高信息量、高效率便为网络信息传输技术发展的追求。与此同时,还有另一种需求变得愈发广泛而迫切,即数据能否根据不同用户不同需求而有不同的效果、不同的形式表现出来。这一切都是HTML所不能满足的,开发一种新的Web页面语言已势在必行。由于HTML只使用一组固定的元素类型,不可扩展,所以不能针对特定文档类型而设计,而且创建之后经历多年一直没有非常严格的定义。因此随着Web的互操作性和多样性受到专用格式化标记的日益威胁时,Web标准化组织W3C (Worldwide Web Consortium,万维网联盟)建议使用一种精简的SGML版本XML应运而生。1.2.1 半结构化数据概念 特点及数据描述XML数据的特点之一就是半结构化,半结构化数据是介于完全结构化数据和完全无结构的数据之间的之中数据形式,具有自描述性。一些数据源(如Web)的数据并非像传统的结构化数据那样有严格的数据格式和数据类型,即为半结构化数据。半结构化数据的特点是没有事先给定的数据模式,或者数据模式对数据的约束不强,模式的规模比较大,模式是经常变动的,数据未赋予严格的类型。它具有以下特点:(1)先有数据,后有模式。一般是先进行查询,查询结果即为数据结构及其模式。(2)用于描述数据的结构信息,而不是对数据结构进行强制性约束。(3)规模可能很大,甚至超过源数据的规模,而且因数据的不断更新而处于动态的变化过程中。(4)不讲求精确性,可能描述其中一部分结构,也可能根据数据处理的不同阶段的视角而不同。(5)非常灵活,能满足网络这种复杂分布式环境的要求。(6)加大了数据处理的难度。1.2.2 HTML与XMLHTML: 即超文本标识语言,是编制Web页面文档的语言,它定义结构化文本类型和标识这些文本类型。HTML 所含的标识符定义包括:文档结构,字形字体,版面布局,链接,等超文本文档结构,这些标识符使Web浏览器能够阅读和重新格式化任何Web页面。HTML 的最新版本是HTML4.0,它支持OBJECT标记和层叠风格表单(CSS)。通过支持ISO10646字符集,它支持任何语言所需的标识,为作者插入对象和脚本提供了途径,并在文件中支持格式项。但HTML仅关注Web浏览器的页面安排,缺乏对结构化数据的表示能力,它采用单一固定语法,缺乏可扩展性,因此难以用于如数据处理,刷新排列,存储,转发,交换,加密及签名等操作,因此难以满足电子商务对大量动态数据使用统一数据格式进行表示和管理的需要。XML(Extensible Markup Language-可扩充的标识语言)为网页编辑的可移植性,平台独立性,系统兼容性,资源整合与管理等提供了完整的解决方案,逐渐成为电子商务的新的基石。XML也是从SGML发展而来,它是设计的元语言,而不是像HTML那样具有的固定标记集的标记语言。XML可以建立用户自己的标记和类别文件。简单而言,XML 和HTML的本质区别是: HTML标记是用来描述怎样在屏幕上显示信息,解决人机交互问题,而XML是用来描述信息是什么,解决机器之间的交互问题。1.3 XML技术 XML是标准通用标记语言SGML的一个子集,从SGML中经过精心修剪而来的XML既保持了SGML的功能,同时又减少了SGML的复杂性。和HTML相比,XML是面向内容的,具有更多的语义、良好的可扩展性、简单易用、自描述等特点,适用于WEB上的数据交换。 XML包含三要素:DTD(Document Type Definition文档类型定义)或XML模式(Schema)、可扩展样式语言XSL(Extensible Style Language)以及可扩展链接语言XLL (Extensible Link Language)。其中,XSL用于规定XML文档呈现样式的语言,它使数据与其表现形式相互独立;而XLL用于扩展目前WEB上已有的简单链接。文档类型定义(DTD)是一套关于标记符的语法规则,规定可以在文档中使用哪些标记符,应该按什么次序出现,哪些标记符可以出现于其它标记符中,哪些标记符有属性等。因为XML本身不是一种语言,而是定义语言的一个系统,想使用XML进行数据交换的组织可以定义它们自己的DTD。1.4 XML特点XML的优势之一是它允许各个组织、个人建立适合自己需要的标记集合,并且这些标记集合可以迅速地投入使用。这一特征使得XML可以在电子商务、政府文档、司法、出版、CAD/CAM、保险机构、厂商和中介组织信息交换等领域中一展身手,针对不同的系统、厂商提供各具特色的独立解决方案。XML的最大优点在于它的数据存储格式不受显示格式的制约。一般来说,一篇文档包括三个要素:数据、结构以及显示方式。XML把文档的三要素独立开来,分别处理。首先把显示格式从数据内容中独立出来,保存在样式单文件中,这样如果需要改变文档的显示方式,只要修改样式单文件就可以了。XML的自我描述性能够很好地表现许多复杂的数据关系,使得基于XML的应用程序可以在XML文件中准确高效地搜索相关的数据内容,忽略其他不相关部分。XML还有其他许多优点,比如它有利于不同系统之间的信息交流,完全可以充当网际语言,并有希望成为数据和文档交换的标准机制。总体说来,XML主要具有以下的一些重要特性: 半结构化半结构化是XML的一大特点。用户可以通过文档类型定义规范为XML定义语法、数据结构以及元素类型,并且可以根据用户的需要增加、删除标记。XML文档可以用不同的样式进行显示。利用标记自身所包含的语义,XML可以将异构的数据集成在一起。利用XML的半结构化性可以解决异构数据转换的问题。 自描述性 XML文档通常包含一个文档类型声明,因而XML文档是自描述的。不仅人能读懂XML文档,计算机也能处理。XML表示数据的方式真正做到了独立于应用系统,并且数据能够重用。XML文档被看作是文档的数据库化和数据的文档化。 可扩展性 XML允许使用者创建和使用他们自己的标记而不是HTML的有限词汇表。这一点至关重要,企业可以用XML为电子商务和供应链集成等应用定义自己的标记语言,甚至特定行业一起来定义该领域的特殊标记语言,作为该领域信息共享与数据交换的基础。 灵活性HTML很难进一步发展,就是因为它是格式、超文本和图形用户界面语义的混合,要同时发展这些混合在一起的功能是很困难的。而XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。所以,Web用户所追求的许多先进功能在XML环境下更容易实现。当然,XML作为一个新建立的标准,还有许多不足之处:它在强调了数据结构的同时,语义表达能力上略显不足。另外,XML的有些技术尚未形成统一的标准,充分支持XML的应用处理程序还不多,甚至浏览器对XML的支持也是有限的。尽管如此,我们仍然可以预言,随着人们对XML认识的逐渐深入,XML必将成为网络技术不可缺少的一员。1.5 XML查询概述XML数据查询与XML数据存储方式密切相关,在确定存储方式后,选择合适的查询语言,可以对Internet中的大量数据进行灵活的查询。XML数据的物理存储格式对查询处理的效率有很大的影响,不同的存储方式配合不同的查询语言和查询方式,会在查询效率上有很大的不同。现今较为流行的是利用关系数据库系统管理XML数据,它可以保证XML数据的一致性和完整性。与此同时,关系数据库产品在市场上占的比重较大,包括WEB上的后台服务器所用的数据库一般也是关系数据库,那么如果用关系数据库存储XML数据的话,就能够比较方便地在两者之间进行数据格式的转换。所以,用关系数据库来存储和查询XML数据是一种方便可行的方法,而且比较容易实现企业应用的迁移。存储方式及查询方式确定之后,需要设计一种方便、易用的XML查询语言,供用户及上层应用程序检索XML文档。目前,己经有多种面向XML数据的查询语言,如Lorel,XML-QL,XML-GL,XQL,XSLT,Quilt,xQuery等。下文将对XML文本存储数据查询作详细介绍。3 文本存储中XML数据查询方法对于一般的XML文档,有多种查询语言可以对其进行查询,只是它们各有侧重,下面我们通过实例对它们分别介绍。以下是简单的XML文档: 文档students 文档courses 文档scs3.1 XPath3.1.1 XPath简介XPath J Clark. XML Path Language (XPath) EB.OL. /TR/xpath.(XML定位语言)是XML路径语言,是W3C关于查询部分XML文档的通用语言标准。XPath是实现XML数据的周游语言,是其他查询语言的基础。XPath通过定义一系列规则来指定对XML文档树型结构的访问方式,并给出从某个结点起的查询路径,搜索文档。使用XPath可以在XML层次结构中快速定位和提取信息,它的内建函数提供了全面的功能,可以方便的处理数值及文本数据。可以这样理解XPath,如果将XML文档看成DOS目录结构,XPath就是cd,dir等目录操作命令的集合。3.1.2 XPath文本查询实例XPath主要用于对XML文档选定部分的定位及导航,XPath主要是对一个文档的查询。如对上面的students.xml中的student的sno进行查询:其输出结果为:“95001” “95002”3.1 XSLT 根据W3C 刘秋香, 张永胜. 对XPath,XLink和XPointer的分析研究J. 微机发展. 2005 (10): 19-22的规范说明,最早设计XSLT(XML Systlesheet Language Transormation)的用意是帮助XML文档转换为其它文档。但是随着技术的发展,XSLT已不仅仅用于将XML转换为HTML或其它文本格式。如今,XSLT是一种应用于操作XML文档的完整高级语言,用于转换XML文档结构。3.2.1 XSLT主要功能及特点 XSLT最主要的功能是将XML转换为HTML,XSLT含有类似数据查询的语法,是一种转换XML文档的语言。XSLT中包含了一系列的模板规则与命令来控制数据的结构 W3C. XSL Transformations (XSLT) 1.0. W3C Recommendation EB/OL (1999-11-16). /TR/1999/REC-xslt-1999.11.16.,它具有以下特点: (1)XSLT基于严格的XML文档格式,可以自动使用XML的所有词汇设备。XSLT可以容易地将期望的XML输出块嵌入样式表,如多个简单的样式表可以写为期望输出文档的模板,并且可以将一些特殊指令嵌入文本中,以便插入输入中的变量数据或计算某个值。 周兆滨,等.XSLT应用于数据编程的研究J. 制造业自动化, 2003(12): 93-95. 周顺平, 等. 使用XSL表现XML的几种方法J. 计算机与现代化,2002(5): 7-10. (2)XSLT样式表是易于移植的,任何符合XSLT推荐标准的处理程序都可以使用它。 (3)基本处理范例是模式匹配。XSLT样式表包括一组模板规则,每条规则都使用以下方式:“如果在输入中遇到此条件,则生成下列输出”。XSLT将输入XML文档视为树状结构,每条模板规则都适用于树中的一个节点,模板规则本身可以决定下一步处理哪些节点,因此不必按照输入文档的原始顺序来扫描输入。(4)XSLT是用XPath子语言来引入输入树中的节点。3.2.2 XSLT文本查询实例XSLT适合对单独的XML文档进行查询。如对上面的students.xml中的学号和姓名进行查询,可采用如下格式:结果如下:3.3 XQueryXQuery D. Chamberlin, etal. XQuery1.0: An XML query languageEB/OL./TR/xquery/. World Wide Web Consortium. XQuery 1.0: An XML Query LanguagesEB/OL(2002-11-15).W3C Working Draft. /TR/2002/WD-xquery-20021115.工作组的任务是创建一种灵活的查询语言以便从XML文档中抽取数据。目前W3C所公布的最新XQuery草案是2003年11月12日的版本,它还在不断的修订和完善之中。作为一种新型的查询语言,XQuery汲取了其它多种查询语言的优点,适用于各种类型的XML数据源的查询,不仅查询功能强大,而且简洁灵活且易于实现。同时,XQuery还具有从多种数据库中检索信息的特点,它能对各种数据和文档进行查询。3.3.1 XQuery查询原理XQuery建立在XPath规范之上,其核心是能够通过XPath表达式从文档中选择特殊的节点序列。XQuery是一种将查询表示成表达式的功能语言,通过它所支持的多种表达式,它的查询可以有多种不同的形式,XQuery还允许通过嵌套类SQL的子句来创建复杂查询,以及通过将XML构造器直接包括在输出中来创建复杂结果。XQuery模块包括三个部分:命名空间和模式声明、函数定义、查询表达式,其中模式声明和函数定义不是必须的。 XQuery的特性之一是利用功能强大的FLWR表达式进行查询 万常选. XSL数据库技术M.北京:清华大学出版社,2005: 13-38.。FLWR表达式是一种典型的能够完成具有某种实际意义的查询的表达式。FLWR表达式包含模式匹配、过滤选择和结果构造三种操作。FLWR语句是XQuery所具有的最接近于SQL的语句。FLWR表达式是由FOR-LET-WHERE-RETURN四个关键字定义的子句构成的,在最新的标准中则更新为“FLWOR”,其中O代表Order by子句。FLWOR表达式可以完成很多在XSLT中难以完成的任务。它支持迭代并且可以把变量绑定到中间结果,对两个或多个文档进行连接和重构数据时这种表达式非常有用。每个FLWOR表达式都有一个或多个for子句、一个或多个let子句、一个可选的where子句、一个order by子句以及一个return子句。for子句通过将节点绑定到变量以便继续循环遍历序列中的每一个节点;let子句为一个变量赋一个值或一个序列;return子句定义每个元组要返回的内容;对于where子句,如果其有效布尔值为真,那么该元组就被保留,并且它的变量绑定用在return子句中,如果其有效布尔值为假,那么该元组就被废弃。3.3.2 XQuery文本查询实例(1)简单查询 XQuery在查询方面有类似于SQL的结构,易于理解,易于设计。如对上面的scs.xml进行查询并返回所有成绩大于90的学生的sno和grade的结果,可采用如下的方式:结果为:“950

温馨提示

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

评论

0/150

提交评论