论文部分内容阅读
XML己成为Web上表示和交换数据的标准格式。随着XML技术的不断发展和完善,涌现出大量XML文档。如何有效管理大规模XML数据,如何对XML数据进行高效的查询,已成为当前数据库技术领域的一个重要课题。
传统关系数据库由于数据模型的差异而无法胜任大规模XML数据管理工作,而原生XML数据库需要完全重新实现关系数据库已非常成熟的理论和技术,造成人力和物力上的巨大浪费。本人所在实验室承担的国家863目标导向课题“无缝集成关系数据库引擎研制与关键技术研究”提出了“在传统关系型数据库中无缝集成XML数据管理引擎”的解决方案,本文的主要工作是基于该方案设计了原生XML查询引擎,实现了XML数据查询功能。
在存储方案奠定的基础上,本文在关系数据库PostgreSQL中无缝集成了原生XML查询引擎,实现XML查询处理功能。本文总结了建立该查询引擎的三方面工作:第一,制定遵循SQL/XML标准的查询语句,符合关系数据库用户使用习惯;第二,在查询引擎各组件层面上实现与关系数据库查询引擎的无缝连接,不影响原关系数据库的查询性能;第三,实现W3C推荐的XML查询语言XQuery,包括FLWOR表达式、路径表达式、比较表达式、内置函数等,为用户提供丰富的XML查询功能。
在XPath路径表达式求值方面,学习和分析了现有的结构连接算法,并在此基础上提出一种基于多索引结构的XML查询处理方法,该方法对路径表达式进行分割,对含有连续“父亲-孩子”轴值的路径片段利用路径索引直接获得结果,最大程度上减少了结构连接的次数,从而有效减少了结构连接中比较操作的CPU时间开销和读取节点的磁盘I/O开销。实验表明,该算法与传统算法相比,查询性能提高了数倍,且随着数据规模的增大,性能的提升更加明显。