论文部分内容阅读
随着XML逐渐成为数据表示和数据交换的标准,XML在越来越多的领域得到了广泛的应用,XML文档的数量也在逐渐增多,如何从大量的XML文档中搜索出用户满意的结果已经成为数据库领域一个重要的研究方向。本文依托于国家863数据库重大项目“无缝集成的关系-XML双引擎数据库管理系统研制及其示范应用”,设计并实现了XML关键字查询的功能。文中将XML关键字查询分为带有复杂结构和不带有复杂结构的关键字查询。带有复杂结构的关键字查询即为结构查询,它能够精确的表达用户的查询要求,但同时对用户要求很高,要求用户掌握复杂的查询语言,了解XML文档的模式信息,适用于高级程序员或数据库管理员;不带有复杂结构的关键字查询即为关键字查询,它对用户要求低,适合于广大的普通用户,用户只需输入感兴趣的一个或多个关键字,系统就会返回满足用户查询意图的结果。文中首先介绍了关键字查询的设计,包括存储XML文档信息的XmlInfoRelation表的结构,存储索引词及索引词的各种信息的倒排索引和关键字查询及结构查询用到的一些算法。XmlInfoRelation表中存储了XML文档的文本内容和模式信息,是XML文档的另一种表示形式,倒排索引建立在表中的文本列上,在倒排索引中,存储了每个索引词在XML文档中的详细位置信息。在此基础上,提出了一个适合本系统的关键字查询算法CoSQLRXSE,并与ILE算法进行了比较。其次,介绍了关键字查询的具体实现过程。以一个XML关键字查询实例来具体介绍关键字查询具体涉及到的数据结构和算法,接下来对所有的数据结构和算法分为三个方面进行实现方面的介绍,这三个方面包括从倒排索引中或扫描XML文档来提取所需要的查询信息,根据查询条件对提取的信息进行判断,将满足查询条件的XML文档或文档片段返回给用户。最后,本文进行了实验测试与分析。文中采用XMark测试基准对系统中不同规格的XML文档进行关键字查询测试。实验结果表明,本文所设计的XML关键字倒排索引能够显著的加快查找速度,本文提出的算法能够很好的结合系统存储的特点,高效的返回查找结果。