论文部分内容阅读
近年来,随着Internet的迅猛发展,XML(ExtensibleMarkupLanguage)已经成为数据交换和表示的主要标准。由于XML具有良好的可扩展性和跨平台性,越来越多的信息以XML文件的形式进行交换和存储。XML数据的一个缺点是存在较大的数据冗余,会造成存储空间的浪费、查询效率的降低。因此对XML数据进行有效压缩和查询成为一个重要的研究领域。
目前已有的XML数据压缩技术例如XMILL运用结构和内容分离的思想能够取得两倍于传统的压缩技术GZIP的压缩效率,但是它们并不支持压缩数据流之上的查询处理。如果希望查询数据,则只能解压缩全部数据。但是频繁的解压缩会造成系统资源大量的损耗,因此本文提出了一种基于XML数据流的压缩技术XQC(XMLQueryCompression),实时完成XML数据流的压缩和解压缩,同时在压缩的数据上应用XML的查询技术XPath获得所需信息。该方法以私有的元素和属性值为压缩粒度,在哈夫曼编码的基础上采用了一种与上下文无关的压缩模式来保持原XML文件的结构。点查询(指精确查询)直接在压缩文档上执行,解压缩的操作被限制在最终返回给用户的查询结果部分;范围查询中需要对查询谓词中的元素和属性值进行解压,而不需要对整个文档解压。
本文分析了当前XML数据压缩与查询的研究现状和目前已有XML数据压缩方法的不足,并指出了研究主题及目标。对数据压缩的基本原理,XML的数据模型,XML的数据压缩,和XML的查询语言进行介绍。重点阐述了XQC系统的重要组成结构和主要功能。实验表明在XML数据流环境中,相比较于XMILL技术,由于XQC采取了同构压缩技术和两次SAX文件扫描,因此在数据压缩率和压缩时间的性能稍低。但是压缩性能的降低换来的是在压缩数据之上查询的执行效率的较大提高。