基于XML及其数据过滤的高速信息查询系统的设计

(整期优先)网络出版时间:2019-02-04
/ 2
摘 要 随着信息时代的到来,人们查询需要的信息变得越来越繁琐。本文则是从当前信息查询系统的一些缺点入手,提出了一种通过XML及其数据过滤相结合的方法来构造一种高速信息查询系统,并且给出了相关的实现技术和关键部分XML数据过滤的实现方法。

关键词 XML ; 数据过滤 ; 信息查询 ;XQuery


1 引言

随着网络的迅速发展和信息的爆炸式增长,人们需要在繁多的数据中寻找所需的信息变得越来越困难,因此,信息查询系统的研究与发展成为一个热点问题。然而,当前的信息查询系统存在一些普遍的缺陷与弱点:信息查询存在盲目性和偶然性,缺乏明确的目标,查询效率低、查询速度慢、

不能找到有效数据;并且在当前研究的一些高效的信息查询系统多是基于查询语言的优化或查询策略的改变。本文则从具有可伸缩性的路由机制入手介绍了一种基于XML及其数据过滤的高速信息查询系统设计方案。

2 系统模型

本系统采用三层结构:即界面层、中间层和数据层。其结构如图1所示:

1118503355.jpg

图1

(1) 界面层

即信息查询的目标信息输入层和查询结果的输出层。它可以采用网络浏览器作为用户的交互界面。

(2) 中间层

将输入的查询目标转化为XML文档中将查询要求转化为XQuery表达式(为了更好的发挥XML的特性,我们采用XQuery 作为信息查询语言),然后通过XML数据过滤从将多种异构数据库集成的XML文档中将众多的查询信息通过不同的数据过滤策略查找出我们要查询的信息,并将查询结果通过XML文档返回给界面层。

(3) 数据层

由于当前数据库的类型、品牌和运行平台各不相同,我们需要将各种不同的数据进行整合来形成一种异构数据库集成的XML文档来供XML数据过滤从中查询信息。

3 实现相关技术

(1)XML

随着WEB服务的广泛应用,为了更好的描述信息数据,XML的重要性也越来越突出,XML凭借其平台无关性以及同各种数据库数据格式的简便转化等优越性让其成为了当前网络信息传输的重要载体。

(2)XQuery语言

XML 查询技术的发展也伴随着XML技术的广泛应用而发展。各种XML查询语言相继问世,例如早期的XML-QL、XQL、UnQL,后来的Quilt、Xpath以及XQuery。XQuery语言是当前普遍应用的一种基于XML的数据查询和查询的语言。XQuery是在Quilt基础上发展起来的语言。在W3C的极力推动和各界的大力支持下,XQuery逐渐在这些语言中脱颖而出成为事实上的工业标准。 XQuery语言的基本结构是表达式,它由关键词、符号、操作数构成。XQuery表达式的模式包括:路径表达式、元素构造符、FLEW表达式、算子和函数表达式、条件表达式、限定表达式、列表表达式、数据类型表达式。

(3) 数据层中基于XML的异构数据库信息集成

由于XML文档和数据库数据在结构上存在很多差异。XML文档是嵌套的多层次结构、数据长度和类型都不规则,数据间的关系通过父元素与子元素的嵌套形式实现;关系型数据库中的数据是以二维表的形式存在,数据间的关系通过主外键的方式体现。因此在数据转化过程中可以采用XML与数据库模式的映射机制。XML信息存入关系数据库需要利用XML Schema与关系模型的对应关系,将XML文档转化为关系数据库。它包括两种方法:一种是将XML文件作为数据库的表的一个字段列入一段中(作为一个CLOB对象存入)。另一种方法是将XML文件拆分,将其属性、元素等分别作为字段存储到数据库中,并保持原来数据之间的关系。第一种方式虽然保存了XML的结构,但是它将XML作为一个字段直接存入数据库的表中,但在查询过程中由于没有使用关系数据库的优势,因此查询效率很低。第二种方法将XML文档进行拆分,再作为表格的字段存入表中,这种方式很好的保存了原有关系数据库字段之间的关系,可以利用关系数据库的查询工具有效的提高查询效率。本文采用的就是第二种转化方式,下面给出了一段代码采用此方式的映射结构图:

<?xml version="1.0" ?>

<CATALOG>

<CD>

<TITLE>Empire </TITLE>

<ARTIST>Bob</ARTIST>

<PRICE>10.90</PRICE>

<YEAR>1985</YEAR>

</CD>

<CD>

<TITLE>Hide</TITLE>

<ARTIST>Tylor </ARTIST>

<PRICE>9.90</PRICE>

<YEAR>1988</YEAR>

</CD>

<CD>

<TITLE>Hits</TITLE>

<ARTIST>Dolly</ARTIST>

<PRICE>9.70</PRICE>

<YEAR>1982</YEAR>

</CD>

</CATALOG>

映射后形成的表如下:

TITLE

ARTIST

PRICE

YEAR

Empire

Bob

10.90

1985

Hide

Tylor

9.90

1988

Hits

Dolly

9.70

1982

从上述映射结构表我们也可以看出采用XML文件拆分法的转化方式非常有利于应用关系数据库中的SQL语句进行查询。

4 XML数据过滤的设计与实现

对于不同的XML数据需要定义不同的过滤策略和方法,并且要充分利用查询语言和查询路径的特点来充分的过滤XML数据来提高查询效率。对于查询语言XQuery来说,选择正确的优化方法改写XQuery表达式可有效的提高查询效率;为了更好的提高查询效率可以通过网络路由管理XQuery表达式的优化,并且通过设计良好的网络路由策略实现并行优化机制,不但提高了查询性能也提高了查询速度。具体的XML数据过滤的模型结构如图2所示:

1118518810.jpg


图2 XML数据过滤

基于XML数据过滤的工作步骤如下:

(1)将界面层用户输入的查询目标信息即查询请求用XML查询语言XQuery表达式表示出来。

(2)通过XML查询解释器将XQuery表达式进行合理的转化与分析,并且选择恰当的路由数据过滤策略对转化为XML文档的数据库信息通过SQL语句查询。在此过程中基于XML路由的数据过滤策略通过网络传输中的路由器的搭配的不同而产生了两种数据过滤策略。

一种策略是数据共享策略:每个XML路由器都完全管理XQuery表达式,负载平衡器根据负载平衡策略把XML文档分配给唯一的XML路由器,XML路由器根据其相应的索引结构使用匹配算法找到相应的XQuery表达式。其结构如图3所示。

1118519493.jpg


图3 数据共享策略

另一种策略是过滤共享策略:每个路由器都平等的共享XQuery表达式,并且管理一套各不相同的XQuery表达式,所有路由器都参与XML文档的过滤。其结构如图4:

1118525668.jpg

图4 过滤共享策略

这两种策略都是采用了并行机制,由多个多层索引结构组织的XML路由器过滤时间和空间消耗。第一种策略能增大并行处理文件的个数。第二种策略能最小化过滤延时时间。

(3)将SQL查询的结果转化成XML文档。

(4)将XML文档中的查询结果通过界面层呈现给用户。

5 结论

本文从当前信息查询系统的一些缺点入手,提出了一种新颖的基于XML并且通过路由搭配实现并行优化进行数据过滤的方法来构造一种高速信息查询系统,并且给出了相关的实现技术和关键部分XML数据过滤的实现方法。当然该系统的设计也存在不足,例如数据过滤策略以及查询过程中SQL语句优化方法的灵活选择设定方面还存在缺陷,因此,在将来的工作中,将对这些方面进行更深入的研究。

参考文献

1 甄玉刚,刘璐莹,康建初. 基于XML的异构数据库集成系统构架与开发. 计算机工程. 2006.1

2 蒋桂梅,宋阳秋. XML查询语言XQuery及其查询优化. 福建电脑. 2005.8

3 王士贤. 从XML到关系数据库映射技术研究. 计算机与数字工程. 2005.6

4 刘宁,谭三. WEB服务中的XML数据过滤方法. 西华大学学报自然科学版. 2006.1

5 雷刚越,任胜兵. 基于XML的数据集成研究. 中国科技信息. 2005.23

6 (美) Elliotte Rusty Harold 著. 马云,钟萍等译. 北京:电子工业出版社. 2002