论文部分内容阅读
XML(eXtensible Markup Language,可扩展标记语言)凭借其结构简单、易于理解、自描述、可扩展、可跨越系统平台等特性,现在已成为Internet上数据表示和数据交换的事实上的标准。随着XML数据的应用日益广泛和深入,针对XML数据的研究也受到人们的关注。如何对XML数据进行有效的存储和查询成为一个研究的热点,而快速有效地查询XML文档的一个重要方法就是为其建立索引。目前XML文档的索引主要有三种类型:路径索引、节点索引、基于串的索引。其中,路径索引可以很好地支持简单路径表达式的查询,但是对于正则路径表达式,路径索引的效果不是很理想。节点索引可以很好地支持正则路径表达式,但是对于长的路径表达式,尤其是在查询产生的中间结果很多的时候,节点索引的结构连接操作会代价高昂。基于串的索引可以支持各种查询而不用进行连接操作,但在处理含有通配符的查询时,由于要转化为简单路径表达式,所以影响了查询的执行效率。节点索引的一个典型例子是XISS(XML Indexing and Storage System,XML索引和存储系统),它以节点编码和三种索引结构为基础,以三种结构连接算法为查询方法,通过把查询路径表达式分解成单个的元素或属性节点的子路径表达式,依次查询子路径表达式形成中间结果,最后通过中间结果之间的结构连接算法得到最终的查询结果。但是XISS中的子路径概念的基本单位是一个元素节点或属性节点,导致查询时结构连接操作的次数过多,因此影响了查询效率。本文的主要工作是:(1)将XISS与路径索引的思想相结合,对XISS的索引结构进行了改进,使得改进后的索引结构既可以灵活处理正则路径表达式,又克服了XISS中结构连接操作次数过多的缺点。改进后的索引结构简写为I-XISS(Improved XISS)。(2)以I-XISS的索引结构为基础,提出了新的分解子路径表达式的算法,使得子路径表达式的基本单位由原来的一个节点变成了一个简单路径表达式,有效减少了子路径表达式的数目。(3)提出了新的查询算法,以I-XISS的索引结构和分解子路径表达式的算法为基础,通过减少中间结果的结构连接操作次数,使得查询时间与查询路径的长度无关,而只与查询路径的复杂度和中间结果的大小有关,有效缩短了XML查询的执行时间。(4)最后构建了一个实验系统,本文提出的索引结构、子路径表达式的分解算法和查询算法在系统中初步实现,并且对改进前后索引结构的查询效率进行了比较,实验数据证明,改进后的索引结构比原来的查询效率有了较大的提高。但是改进后的索引结构在查询功能的完善方面还有很多工作要做,今后的工作是,完善I-XISS中的查询算法,增加I-XISS系统中的修改能力,使系统不仅可以查询XML数据,还可以编辑(插入、删除、修改)XML数据,使I-XISS具有完整的数据库中应有的数据操纵功能,最后还要研究在考虑引用关系时,如何为节点编码并处理路径表达式,使系统可以保存更完整的XML文档信息,适应更复杂的XML数据查询。