③表中主键映射的属性或元素定义为key属性,外键映射的属性或元素定义为keyref属性。根据表中的主键/外键关系,创建子元素,若一个表中的外键作为另一个表中的主键或主键的一部分,则同一字段为外键的表映射为父元素,而另一个表映射为子元素。
如下列两个表:
部门(部门号int(6),电话char(10),部门名称char(18))
员工(员工号int(6),姓名char(20),住址char(20),部门号(int(6))
由于员工表中的“员工号”为主键,“部门号”为外键,与部门表中的主键“部门号”关联,转换为XML Schema如下:
2.2查询处理器的查询分配
查询处理器的查询分配是将用户基于总体视图的查询分解为对各个数据源的子查询,并发送到相应的数据源。查询分配器在执行检索分配时,要参照公共模型的信息,将子查询准确的发送至各个目标数据源。
在XML作为数据交换语言的基础上,通用查询分配方式主要有两种:GAV(Global As view)方法和LAV(Local As view)方法。GAV方法是目前集成系统中描述集成模式到数据源的映射的常用方法之一,GAV方法要求为集成视图中的每一个虚拟关系(或虚拟对象类)R写一个查询,明如何从信息源到R的元组进行对应。这种方法的特点是查询转简单,但灵活性较差。LAV方法则相反,它要求为每一个数据源S给出一个对集成视图的查询,说明集成视图中的哪些元组可在S中找到,其优点是灵活性强,但查询转换相对麻烦[5]。所以本系统采用采用GAV方法。
方法描述如下:
①将接收的用户检索请求通过DOM解析器(Document Object Model)转换成XML格式文档,得到转换后的XML Schema定义。
②在XML Schema的Query元素复合数据类型定义中,设子元素Item表示查询的项目,Form子元素表示查询的目标表名,Where子元素描述查询条件,其中,Item和Form子元素可以有任意多项。
③在查询的分配过程中,通过遍历公共模型,查询分配器找出Form元素值所在的异构数据源,同时找出Item元素值中每一项对应的数据表,然后进行XML子查询文档的构建。
3 结论
一直以来,异构数据库集成问题很难解决,XML技术的发展为该问题的解决提供了手段。本文论述的基于XML中间件的异构数据库集成方案,可以实现异构数据库的集成、共享及利用,提高企业信息系统的整体效能。本方案具有以下优点:①能够转换来自不同数据源的数据为统一格式的XML数据,可提高网络传输速度。②采用XML Schema而不是DTD描述数据,具有更好的表现能力。③通过注册器,实现了数据源的“即插即用”。④具有一定的扩展性和可移植性。⑤适合Web应用,便于用户通过Internet访问等。
参考文献
[1] 张志檩.中间件——技术产品应用[M].北京:中国石化出版社,2002.
[2]丁月华.基于XML的异构数据源集成与交换的实现[J].计算机应用与软件,2006,23(10) : 134-140.
[3]杨芳,陶世群.基于XML异构数据库系统的集成设计[J].计算机工程与设计, 2005, 26(7): 1907 -1909.
[4] Chelsea Valentine, Lucinda Dykes, Ed tittel. XML Schema数据库编程指南[M].北京:电子工业出版社,2002.
[5] 梁利姣,吴国平.一种基于XML的异构数据源集成方案[J].现代计算机,2004,18(3):27-29.
[6] Shyh-Kwei Chen , Ming-Ling Lo, Kun-Lung Wu. A practical approach to extracting DTD-conforming XML documents from heterogeneous data sources[J]. Information Sciences , 2006, 176(7):820–844.
[7] Sanjay Madria, Kalpdrum Passi, Sourav Bhowmick. An XML Schema integration and query mechanism system[J]. Data & Knowledge Engineering, 2007,65(2):266-303.