论文部分内容阅读
XML在各行各业的广泛应用产生了海量的XML数据,目前工业界和学术界基本上都采用XML数据库的方式来对其进行管理。而为了保障XML数据库的查询性能,对XML查询的优化就显得格外重要。
论文基于南开大学自主研制的无缝集成关系型数据库PostgreSQL的纯XML管理引擎DiReX,重点研究了XML的标准查询语言XQuery的核心语句(FLWOR语句和XPath语句)的查询计划生成以及优化问题。
针对FLWOR查询,本文在借鉴成熟的关系代数以及目前主流的XQuery查询代数的基础上,提出了一个新的XQuery查询代数——DiReXA。在DiReXA中,重点定义了XQuery查询的若干操作符,并且对其中的FLWOR查询的关键变量进行了划分。在DiReXA查询代数的指导下,本文实现了FLWOR语句的查询计划生成。同时,在查询计划的生成过程中融入了对FLWOR查询的两个局部优化——where子句的谓词还原优化以及首变量的路径还原优化。
针对XPath路径表达式查询,本文充分利用底层存储提供的多种索引结构(标签索引、属性索引以及结构摘要索引),提出了XPath精简查询树的概念。通过对XPath原始查询树进行片段的合并与分裂,重写为一棵简化了的并且能够充分利用上述索引结构进行结点快速定位的精简查询树,在加快XPath查询片段结点定位速度的同时,减少了结构连接的次数,从而达到提高XPath路径表达式查询性能的目的。
最后,本文设计相关实验,在不同规模的XML测试数据集上验证FLWOR查询优化(where子句的谓词还原优化和首变量的路径还原优化)以及XPath精简查询树重写优化的有效性。实验结果显示,上述优化是切实有效的。