论文部分内容阅读
随着计算机和网络技术的不断发展,XML技术的应用得到了不断的扩展,它事实上已经成为数据交换的标准和SOA架构的基石。XML作为一种特殊的半结构化数据,与关系数据模型中的数据是不同的。XML数据库是一个XML数据的集合,这些数据是持久的并且是可操作的。有效地存储和查询XML数据是XML数据库的一个重要方面,影响系统的效率。基于某种特定编码方法的存储和查询,由于其具有广泛的应用价值,已经成为XML数据领域中的研究热点问题之一基于区间的编码和基于路径的编码是当前针对XML文档树的两大类编码方法。由于XML文档树需要根据应用者的要求进行动态更新,目前提出的XML数据编码方法对这一点都不能提供很好的支持,本文就此进行了相关方面的研究。本文分析比较了当前几种比较流行的数据编码方法,提出了一种新的高效的支持动态更新的XML数据编码方法。该编码方法不仅能够快速准确判断XML文档结构树中任意两个结点之间的关系、计算结点所在的层次,而且在插入结点时的二次编码率为零。本文的主要工作如下:(1)对现有的编码方法进行深入的比较分析,指出这些编码方法的不足和在支持XML文档树动态更新上的缺陷。(2)提出了一种新的支持动态更新的高效编码方法,该方法是前缀编码和奇偶编码的一种扩展和变形,该方法采用的编码方案中的结点编码包含以下三个部分:前缀码、奇偶码和顺序码。把当前结点的父亲结点的编码去除结点码间连接符“.”后的字符串当作当前结点的前缀码,同一父结点下的所有子结点的前缀码都相同,前缀码在判断父子关系、兄弟关系和祖先/后裔关系有重要作用,具有前缀编码的优点;奇偶码的初始值为“1”。当在XML文档中插入结点时,奇偶码的编码规则根据实际需要分为高频率更新和大幅度更新,为了区别高频率更新和大幅度更新,引入插入结点间隔因子α,根据间隔因子来高效支持XML文档的动态更新;顺序码是由字母字符串组成的编码,静态编码算法中顺序码表示XML文档中兄弟结点的顺序,动态编码算法中顺序码表示兄弟结点顺序的同时又用于区分前缀码和奇偶码相同的结点。(3)详细阐述了论文提出的编码方案的相关定义及其实现算法;对编码的特性进行了详细介绍,给出了编码更新算法,并结合实例分类讨论了插入结点后编码的更新情况。(4)结合提出的编码方案提出了一种效率较高的XML数据存储策略,并结合提出的编码方法阐述了在这种存储模式下具体的XML数据查询过程。(5)通过实验,将本文编码方法与已有编码方法进行了时间性能、空间性能、二次编码率及查询性能等方面的比较分析。