论文部分内容阅读
关系数据库是企业信息系统的核心,大量的关键性商业数据都需要由关系数据库来管理。然而随着XML成为数据交换技术的非正式标准,企业在实际应用中对XML数据管理的需求越来越多。基于关系数据库的XML-Enabled方法、Native XML数据库等解决方案先后被提出,但在可用性方面均难以满足现有的数据管理需求。因此现在学术界和工业界普遍认同的一种方案是关系数据引擎和纯XML引擎并列的混合型数据库管理系统。 然而,由于技术上和工程上的复杂性,混合型数据库技术一直处于商业垄断状态。在这个背景下,国家863计划PXRDB项目启动,旨在研究关系数据和XML数据无缝结合的混合型数据管理平台。PXRDB是在PostgreSQL8.3.7基础上开发的,实现了包括子树划分的原生XML存储的自适应存储方案,倒排索引、路径索引等多种XML索引,混合数据访问的细粒度并发控制以及混合查询处理引擎。本文的研究是PXRDB项目的一部分,主要工作是XQuery引擎的实现和查询优化。 本文详细介绍了PXRDB中XQuery引擎的架构和实现方法,并且详细分析了XQuery查询处理的语法分析、静态查询分析、访问路径标注、查询计划生成等阶段的工作原理。PXRDB中实现了两类查询优化,第一类是基于启发式规则的XQuery优化,包含三个查询重写规则,主要思想是利用倒排索引、值索引、路径索引等来提高了XQuery查询在单个文档上的执行效率。然而,我们观察到这种优化对系统来说是局部的,在某些情况下,比如符合关系选择条件的元组较多时,甚至会起到负面的效果,因此我们提出并实现了混合查询的优化算法,其核心思想是将原先的标量式查询处理方法转换为集合查询处理方法。建立了代价模型对两种执行方式进行了分析。最后通过实验来评估了优化算法的性能、可扩展性及代价模型的合理性,并对PXRDB进行了XQuery功能符合性测试和TPC-C性能测试。