- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
达梦数据库的XQuery查询优化
达梦数据库的XQuery查询优化
XML(eXtensible Markup Language可扩展标记语言)数据的自我描述性使其具有高度的结构化,良好的存储格式等特点,而且XML文档和HTML一样便于网络传输。因此,XML被广泛应用而成为数据定义,数据交换和数据共享的主要标准。 目前XML 数据库主要研究的方向分为两大块,一是Native XML数据库系统,也称原生或纯XML数据库,如Tamino、Ipedo等;二是XML-enabled 数据库系统,即在已有的关系数据库系统或面向对象数据库系统的基础上扩充对XML的支持,这种数据库的优点在于可以充分利用已有的非常成熟的关系数据库技术。在关系数据库系统上扩展对XML支持的一个重要部分就是实现XQuery查询。 达梦关公司的DM XML支持项目是以达梦关系数据库为平台,扩展了对XML的支持,研究和实现基于关系数据库XQuery查询优化技术,实现了高效的XQuery查询。 XQuery相关概念 XQuery是XML的查询语言,XQuery与XML文档的关系相当与SQL与关系数据的关系。与XQuery紧密相关的一个概念是XPath,他们都是W3C的推荐规范。XPath是XML文档的路径语言,用来在XML文档中对文档数据进行寻址。XQuery是XPath的扩展。目前这两个规范的最新版本是XPath 2.0和XQuery 1.0,前者是后者的严格句法子集,并已成为推荐标准。 XPath表达式通过若干“路径步”在XML文档中进行定位(navigate)。对于每一步(step),一个“轴”(axes)用来描述本步中的中间结果森林所包含文档节点(以及这些节点的子树),XPath表达式中包含13种轴,其中通常使用的children和descendant-or-self轴缩写为 / 和 // 。 FLWOR表达式是XQuery对XPath的重要扩展之一,即for,let,where,order,return表达式的组合。for,let表达式以不同的方式将一个序列绑定到一个变量,这个序列可以是XPath路径表达式返回的节点序列,where,order表达式对这些序列的输出进行过滤和排序,return表达式输出结果序列,这个序列可以是带有绑定变量的路径表达式,而且return表达式支持XML片断的构造。 XML查询优化的概况 传统的数据优化已有成熟的理论和方法:其中普遍采用的是基于代价的优化。如果把这种思想应用到XML的XQuery查询优化,我们就可以看到一些问题。 (1)没有完善的查询代数标准;反观关系数据库的优化理论,正是因为有非常成熟的关系代数语言,能很好的支持查询语义和查询优化,所以关系数据库能成为主流的数据管理方式。 (2)没有精确的代价估计;由于XML数据和关系数据的本身结构和分布特点上的差别决定了探索适合于XML查询代价估计模型的必要性。 (3)没有足够的统计信息;足够精确的统计信息是保证查询优化有效性的基础;缺乏足够的统计信息,是造成估计与实际情况产生误差的重要因素。 目前的XML查询优化主要有下面一些技术: 然后编写关于这2个大字段的Java对象文件TestLob.java,分别定义类型为CLOB和BLOB属性字段为String和byte[]类型,其中由于CLOB是处理大文本类型所以它对应了Java中的String类型,BLOB是处理一些以二进制流形势存储的没有严格定义的大文件所以让它使用byte[]类型,然后分别定义这2个属性的Getter和Setter方法,相关代码如下: 1.表达式重写 通常XML查询用树的形式表达,也称为树模式查询(Pattern Tree Query PTQ)。查询的最小化就是对查询树化简的过程。孟小峰等中提出XQuery的PTQ优化分为两个步骤:首先是不依据任何外部信息的语法优化,然后是根据XML文档的外部信息,如DTD,schema等,进行的语义优化。基于这种处理步骤,优化技术可以分为基于DTD的或独立于DTD的。重写表达式的基本思想是在等价的前提下,按照一定的规则转换XQuery表达式,得到效率更高的表达式,实际上就是对查询模式树的化简。研究认为独立于DTD的优化能力很有限,引入DTD能有更大的优化空间,但目前的算法在优化的彻底性和效率上还有改进的余地。 2.构造查询代数 目前国内外学者已经提出了很多种XML查询代数。这些查询代数或多或少借鉴了关系代数里的一些思想。如Timber的TAX,国内的OrientXA,还有XAL,XOM,OPAL,SAL等。目前的XML代数的着重点还在于查询语义的表达上,没有或很少考虑基于代数之上的查询优化,而且没有统
文档评论(0)