论文部分内容阅读
随着XML成为信息表示与交换的实质标准,互联网上涌现出大量XML文档。XML文档数量与规模的与日俱增为数据库领域提出了新的课题,如何有效的管理XML数据并在此基础上支持高效的XML查询、更新机制受到了广泛的关注,成为了研究的热门。基于传统关系数据库的XML管理方案由于关系数据模型与XML数据模型本质上的差异致使其无法胜任大规模XML数据管理的工作;原生XML方案符合XML数据模型要求,但原生XML数据库的搭建需要完全重新实现经典关系数据库中已经非常成熟的诸多理论和技术,造成人力和物力上的浪费。作者所在实验室承担的国家863目标导向课题《无缝集成关系数据库引擎研制与关键技术研究》提出了一种在传统关系型数据库中无缝集成XML数据管理引擎的XML数据管理解决方案,既保持了XML数据特征,又在最大程度上重用了关系数据库的各成熟模块,取得了良好的效果。本文的主要工作是该863课题中的一个子课题:XML数据更新。基于底层存储方案,在开源关系数据库PostgreSQL中无缝集成了XML数据更新引擎。在XML更新引擎设计与实现方面的主要工作包括以下两个方面:第一,在学习W3C在XML更新领域的标准——XQuery Update Facility 1.0以及关系数据库中XML数据进行XML操作的推荐标准——SQL/XML:2003的基础上,设计符合关系数据库用户使用习惯的XML更新语法;第二,分析PostgreSQL更新执行流程,在PostgreSQL执行引擎的各个组件中无缝集成XML更新功能。此外,在对一篇符合XML模式约束(有效)的XML文档进行更新后,应保证其仍然有效。相对于传统的更新后整体验证,增量式验证方法提高了验证效率,从而提升了XML更新引擎的性能。本文在对XML元素序列模型进行了适当简化的基础上,提出了一种增量式验证的方法并在上述更新引擎中加以实现,实验表明,该方法可以有效的完成XML数据验证并且性能明显优于整体验证。