论文部分内容阅读
XML已成为Web上表示和交换数据的标准格式。如何有效管理大量XML文档数据,是当前数据库领域中一个亟待解决的研究课题。传统关系数据库由于数据模型的差异而无法胜任大规模XML数据管理。原生XML数据库以XML数据模型为中心,具有为XML量身定做的存储方案、索引结构和查询引擎,能够用十分自然的方式管理XML文档,克服了传统RDBMS管理XML时存在的固有缺陷。原生XML数据库开发过程中面临的首要问题是重新设计和实现体现XML数据模型的存储方案和索引结构,为高效率XML查询处理和数据更新提供强有力的支持,这正是本文的研究工作。本文首先提出了一种新的原生XML数据存储方案XN-Store。该方案将XML节点作为记录直接存储到分页文件中,建立起原生XML存储的主索引,实现了持久化文档对象模型,从而保持了XML数据原有的树形结构。XN-Store不仅降低了XML文档的存储空间开销,而且实现了XML节点的快速导出和访问操作。作为通用的原生XML存储方案,XN-Store支持各种二级索引的创建,以提高XML查询处理的效率。实验结果表明,XN-Store是一种高性能的原生XML数据库存储方案。基于XN-Store存储方案,本文提出了一套适用于原生XML数据库的索引结构基础框架,包括XML结构索引、XML值索引和XML全文索引,能够适应XML查询处理的基本要求。XML结构索引用于加速XML查询中的结构关系约束;XML值索引和XML全文索引用于加速XML查询中的内容谓词约束。结构摘要索引是一种重要的XML结构索引。本文设计了一种新的XML结构摘要索引rs_index,其特点是将标签路径作为关键字进行逆序存储,从而使带有起始“∥”轴的路径查询转换为高效的B+树前缀匹配。在rs_index结构摘要索引的支持下,路径表达式查询的执行能够充分利用连续的“父亲-孩子”轴作为查询上下文信息,修剪掉大量不必要的搜索空间。本文提出了归约查询树生成算法,基于原生XML索引结构基础框架,化简查询树以减少查询节点的个数,进而有效地降低了结构连接操作的开销,并以统一的方式处理结构关系约束和内容谓词约束。实验表明,该算法能够将XPath路径表达式的平均求值效率提高一个数量级。本文还提出了XN-Store存储方案和各类索引结构的更新策略。动态XML树编码方案BSC利用二进制分数特性解决了节点插入问题。XN-Store的更新机制既保持了节点的文档序,又使更新操作局限于一个页面之内,保证了更新的效率。在XML数据更新的同时,各类XML索引的更新由系统自动维护。此外,针对XML更新的验证问题,本文给出了DTD在原生XML数据库中的存储格式,提出了一种新的XML更新增量验证方法。本文通过一系列实验,比较和验证XN-Store存储方案和XML索引框架的性能。实验表明,基于本文提出的存储方案和索引结构,能够实现高效率的XML查询处理和XML数据更新。