论文部分内容阅读
因特网的快速发展,已深入到了全世界的每一个角落,其包含的信息量呈爆炸式增长,比如网页、用户交换文档、RSS新闻等,由于这些数据很难以某种固定的结构化方式表达,所以这些信息多以半结构化形式展现。由于这种松散的结构,使得大量用户更青睐于使用半结构化数据,以至于其在现实世界中所占比例越来越大。面对网络时代信息的爆炸式增长,海量半结构化信息的产生速度和传播速度已经远远超过了人们的处理能力。现在,XML已成为互联网上数据的表示和交换的事实上标准。 半结构化数据以XML为主要代表。XML结构数据具有很好的表现力,在计算机中,其可以方便表达,以及被各种软件识别和利用,同时,人们也更能从中直接理解这些信息。所以无论对于今天、还是明天,XML半结构化数据格式都表现出了强有力的生命力。关系数据库已经发展了几十年,无论其理论还是实践都发展到了非常成熟的阶段,但是对于XML之类的半结构化格式数据,表现出了不足的一面,主要表现在无法正确理解、有效存储、高效查询半结构化数据。所以,尽管XML半结构化数据可以方便和快捷的呈现在互联网中,但是如何能有效地存储这些半结构信息并且进行分析、处理等操作是需要考虑的问题。 由于在Internet中,XML是被广泛应用的半结构化数据形式之一,所以各种处理XML的方法随之而产生,比如Xpath、Xquery等等。当Internet中XML数据增多的时候,常规的处理和存储方法已不再满足需要。由此,研究人员很自然想到应用数据库存储XML数据的方法。并经过多年的发展,产生了使用关系数据库中存储XML数据,以及只存储XML数据的原生数据库,或者两者相混合的方法。 近年来,在XML查询处理中,查询效率一直是研究的重点。在这方面,XML索引的研究是一个重点方向。尽管现在已有支持XML数据处理的数据库,但如果没有索引的支持,其查询处理性能将是很低的。 本文主要针对目前XML查询处理效率不高,对现有的XML索引技术深入地进行研究、并加以改进,提出了改进方法。主要工作包括: 1、全面分析现有的XML技术,包括XML技术的发展、XML模式、XML的查询方式,包括Xpath和Xquery,XML数据库的情况,并深入研究了现有的XML的索引技术,比较了多种索引的优缺点。 2、在深入研究现有的XML索引技术基础之上,本文提出了一种动态索引的算法,其为了更有效支持在XML查询中的Twig查询。本文提出的XML动态索引是基于已有的DataGuides索引和Dewey编码,在其基础之上提出了XML索引Cache机制,缓存部分频繁查询的结果,以提高XML查询速度效率,特别是XML查询中经常会遇到的。Twig分支查询。针对本文提出的XML索引Cache机制,对各种查询提出了相关的算法,以有效利用XML索引Cache机制。同时,本文提出的XML索引Cache是逐步建立的过程,其会根据用户在查询过程中逐步调整,以达到频繁更新的目的,同时,也节省了其初期建立XML索引Cache的时间和占用的磁盘空间。 3、针对本文提出的XML动态索引机制和相关算法,基于Java和Jdom编程环境加以实现,并进行了相关实验。根据不同大小的XML文档,分别进行实验,对其得出的实验结果数据进行比较。得出相关结论,本文提出的XML索引Cache占用磁盘空间相对较小,增长缓慢,对比其它的查询方法,比如在没有索引的情况和有DataGuides索引的情况下,基于XML索引Cache机制的查询效率得到了有效的提高。这种查询在XML文档的单分支查询中效果还不太明显,但在XML文档中的。Twig查询,其大大提高了查询效率,减少了查询处理时间,主要原因在于其减少了查询中的Join操作和减少了不必要的扫描中间结果。最后得出了本文提出的高效Twig查询动态索引机制和相关算法的先进之处。