论文部分内容阅读
随着信息化发展速度的不断加快,XML技术发挥的作用越来越重要。目前,XML在多领域的数据表示、建模分析等方面都有广泛的应用。然而建立在多维度基础上的XML数据查询却比较复杂。人们通常习惯于使用简单的关键字进行查询,而不用了解复杂的查询语法和数据库模式。通过为XML数据库建立关键字索引,能够使数据库具备对XML数据关键字的高效查询功能,提高检索效率,拓展数据库的功能性。传统关系数据库已经发展得比较成熟,基于关系数据库的关键字查询能为人们提供方便灵活的检索服务,具有较大的市场。而XML作为数据表示的一个开放的标准,在信息领域也具有较强的活力。对关系与XML的统一管理以及实现对XML数据关键字检索就具有很重要的意义。本文在由北京大学、东北大学、上海实方软件有限公司共同开发的关系-XML双引擎数据库管理系统CoSQLRX基础之上,参考PostgreSQL数据库管理系统等相关技术,设计实现了利用XML关键字索引进行查询的功能。文中首先对CoSQLRX数据库的特点进行阐述,包括其体系结构及对XML的支持。在此基础上介绍了系统中XML数据关键字索引的设计。系统将结构索引作为XML数据关键字索引的基础,按节点切分文档,记录下编码等模式信息并抽取文本,再通过倒排索引建立起文本信息与文档结构的关系。考虑到文本相关信息对查询的影响,将单词的词频、词位都记录进索引项,这既能实现词组查询功能,又为结果重要度的计算提供了支持。在实现上,结构索引的搭建利用了TOAST技术,将结构索引本身作为大对象嵌入到文档中。倒排索引以entry树的形式存在,根节点能以链表、B+树等灵活的方式保存索引项。插入数据时,索引项数能随数据量的增多而作自由扩展。查询方面,本文分别考虑了单关键字与多关键字词组查询的各自特点,尤其对于词组查询,由于在索引设计中已经存入了词位,查询时即根据词位信息进行索引项的判别。最后,本文进行了实验测试与分析。文中采用XMark测试基准对系统中XML文档上的关键字索引进行了测试。实验结果表明,本文所设计的XML数据关键字索引在时间、空间的代价消耗上都比较稳定,索引有着良好的可扩展性。