摘 要:网格环境下的数据库研究是一个比较新的研究领域。在数据库访问架构的基础上,提出基于XML Schema 的数据查询方法,并详细分析了该查询方式的特点。
关键词:数据库网格; XML Schema
一、引言
随着网格以及数据网格技术的蓬勃发展,很多研究者开始致力于解决如何将数据库资源集成到网格环境中。另一方面, XML 数据库相继出现。XML 数据库网格正是这一领域的新发展, XML 数据的广泛应用造成XML 数据量指数级的增长,要求更有效的数据管理能力和更快、更精确的查询。因此网格环境中对 XML 数据库资源的访问与查询技术是重点研究的内容之一。
1 基于网格服务的数据库访问架构
网格服务用于解决服务发现、动态服务创建、服务生命周期管理等与临时服务有关的问题。本文采用 Web Service 技术来对数据库进行发布共享,通过数据库服务,可以屏蔽数据库的异构性、地理位置信息,达到用户的透明访问。而且可以设置用户的使用权限,使得不同的用户按照权限的不同获取不同的数据。
元数据服务是进行数据库集成与访问的一项重要内容和关键技术。数据服务从各种数据存储系统中抽象出共同的存储系统抽象模型,并定义相应功能,把多个存储系统抽象为一个虚拟的一体化数据存储和访问系统,面向用户为不同的数据存储系统提供一套功能完备、语法规范的统一存储和访问 API,屏蔽数据对象的异构性和分布性。数据服务需要元数据库服务的支持才能实现数据访问和管理的功能。当用户通过高层统一访问接口提出查询请求时,数据服务使用元数据服务中所提供的元数据与底层XML 数据库建立连接,然后调用具体的API 接口实现对数据库的查询操作。
2 数据库共享访问
如何使广泛分布的、数量庞大的数据库资源被有效的共享访问是数据库网格要解决的问题之一。考虑到网格的多域环境,本文利用元数据检索子系统将用户的查询请求映射到其他逻辑域,并返回该逻辑域的数据服务地址,从而利用数据服务提供的统一API 接口对底层数据库资源进行共享访问。另外,通过用户逻辑视图的管理机制使用户视图得到统一,从而屏蔽底层数据库资源的分布性和异构性,使数据库的共享访问对用户透明。
2.1 多域数据库共享访问机制
网格环境下海量数据库资源的共享访问就是多个逻辑域之间的数据库共享访问。其类型分直接访问和间接访问两种。
当用户连接到逻辑域A 的数据服务器上时,访问该逻辑域的数据库资源就属于直接访问。当用户要对其他逻辑域上的数据库资源进行访问时,这就必然引起多个逻辑域的跨域访问问题。本文将各个逻辑域的元数据以树型结构进行组织和管理,为系统提供了高效的和可扩展的元数据服务。在此基础上,引入了一个元数据检索子系统,灵活地实现了多个逻辑域之间的跨域数据访问。
2.2 数据库共享访问模式
考虑到用户操作和访问数据的灵活性,将数据服务为用户提供的数据库共享访问模式分为两种:基于数据库连接的数据库共享访问和基于数据库操作的数据库共享访问。
基于数据库连接的数据库共享访问:为实现这种共享访问,我们结合系统中数据库资源的组织与管理方式、数据库特有的属性设计了数据库连接元数据,通过为数据库访问服务提供相应的数据库连接元数据服务来实现这种数据库共享访问模式。
基于数据库操作的数据库共享访问:为了实现这种共享访问模式,我们对数据库操作又进行了统一命名,并结合数据库资源的组织和管理方式设计了数据库操作元数据的数据结构,通过为数据库访问服务提供相应的元数据服务(包括数据库连接元数据服务、数据库操作元数据服务)来实现这种数据库访问模式。
3 数据模糊查询方式
查询技术在数据库领域是一个传统的而又一直吸引研究者关注的重要技术。在基于网格服务的数据库访问架构中,对底层异构数据源的操作和访问以Web 服务的方式封装,为用户提供统一的API 接口。
目前,原生 XML 数据库普遍支持基于XPath/XQuery 语言的查询,使用这类数据库接口属于精确查询。为了使用户在不了解数据文件结构的前提下进行查询操作,本文提出了一种数据模糊查询方式。这种方式是在对XML 模式进行解析的基础上,选择某些相关的元素建立索引,然后进行关键字查询,最后返回的是一个包含用户查找关键字的结果集合。
3.1 XML模式分析
XML模式可以对XML 结构、约束以及元素的名字、类型等信息进行详细的描述,所以通过对XML 模式的分析,可以提取出用户需要查询的信息,然后通过检索机制在数据库中获取相匹配的数据,实现查询过程。
1. DTD 作为XML的模式,较早发布的 DTD(文档类型定义)标准存在不少缺陷。
2. XML Schema 作为一种XML模式,在描述XML 结构、约束以及元素的名字、类型等信息方面具有其他模式无法比拟的优势。它的提出正是针对DTD 的缺点而设计的,具有强大的功能。
(1) XML 用户在使用XML Schema 的时候,不需要为了理解XML Schema 而重新学习,节省了时间;
(2) 由于 XML Schema 本身也是一种XML,所以许多的XML 编辑工具、API开发包、XML语法分析器可以直接的应用到XML Schema 上,而不需要修改;
(3) 作为 XML 的一个应用,XML Schema 理所当然的继承了XML 的自描述性和可扩展性,这使得XML Schema 更具有可读性和灵活性;
3.2 XS-Query 的提出
任何一个数据库系统都有自己的查询接口,原生XML 数据库提供了两种查询方式:XPath 和XQuery。从上面对XML 模式的分析可以看出,XML Schema 在描述XML 文档方面更具有优势,并且最重要的是,XML Schema 本身就是一种XML,我们可以像处理XML一样来处理XML Schema 文档。如何让用户在不知道数据库中XML文档结构的情况下进行查询,本文提出了XS-Query 查询策略。
3.3 查询匹配过程
XS-Query 查询分两部分:一是对数据文件建立索引;二是根据建好的索引进行关键字匹配。在建索引时,首先要对数据文件的模式,即XML Schema 文档进行解析,获取有用的元素信息。可以对解析得到的元素全部进行索引,也可以根据用户的需要选择某些元素建立索引文件。
XML Schema 主要有八种元素:
(1)
(2) < ElementType > 对于XML 文档中的查询查询来说,该元素并没有实际意思,所以解析XML Schema 文档不需要获
(3) < element >解析XML Schema 文档时不仅要获得< element >元素,更要取其name 属性的值。
(4) < AttributeType >元素定义了Schema 中使用的属性类型,不需要获取。
(5) < attribute >元素给XS-Query 查询带来了很大的灵活性,用户不仅可以通过元素名称来查询,还可以根据属性来查询。
其他
通过对 XML Schema 进行解析并建好索引,执行查询就比较快速而简单了。用户在文本框中输入关键字后,只需利用已经建好索引文件在指定元素(选择进行索引的元素)中进行关键字的匹配,最后即返回含有该关键字的元素。
4 小结
总之,网格数据库访问与查询系统在网格环境下为用户提供了对地理分布、异构数据库资源的透明访问,为用户提供了单一的逻辑数据库视图和统一的数据库服务接口,使用户可以更方便、更高效地使用网格中的数据库资源。
参考文献:
.计算机工程与应用,2006(2).171-175.