浅析XML的异构数据迁移技术分析
2012-12-31金天昕
金天昕
(无锡南洋职业技术学院,江苏 无锡 214081)
随着互联网地普及、数据库技术地发展及信息化程度地加深,越来越多的数据被存放在异构数据中,同时越来越多的信息系统需要共享异构数据库中数据,因而,目前异构数据库的管理信息系统开发的关键逐渐倾向于不同数据库之间连接、交换和共享功能地实现,使异构数据库中的数据不再是一个“信息孤岛”。
XML异构数据迁移技术
1.异构数据迁移方式
异构数据库的迁移时应根据以下两种方式来考虑该选哪种迁移方式,一种是完整地将源数据库信息移到目标数据库中;另一种是目标数据库中已有相关记录,迁移时只需将源数据库信息根据目标数据库的结构对应迁移上去。
2.库信息地获取
在异构数据迁移过程中,比较关键的环节是库信息地正确获取,尤其是数据库中数据表的相关信息地获取。本文中笔者通过JDBC来连接到数据库,并利用特定SQL语句地执行来将数据表中列数、长度、列名、主键、允许空等基本属性取出,为生成相应的描述该表的XML Schema做充足准备。
“select c.name name,t.name type,c.1ength length,C.isnullable,
(case when (SELECT count(*)FROM sysobjectsWHERE(name in
(SELECT nanle FROM sysindexes
WHERE(id=c.id)AND(indid in
(SELECT indid FROM sysindexkeys
WHERE(id=C.id)AND(colid in
(SELECT colid FROM syscolumns
WHERE(id=C.id)AND(name=C.name)))))))AND
(xtype=PK))>0 then 1'elseO'end)Nkey//取主键
from syscolumns C join systypes t on c.xusertype=t.xusertype
where id= (selectid from sysobjects where name=“+table+”)”//取设计表中的数据,依次为列名、数据类型、长度、允许空、主键。
数据模型映射方法
2.1 基于模式驱动的映射
异构数据库的数据迁移是通过文档结构和数据库结构之间建立的映射关系来完成的,即将数据和数据类型分别映射为XML文档和XML Schema文档的形式。基于模式驱动的映射是指通过一个具体的模型来实现数据库与XML文档之间的相互传送,在该映射过程中除了内嵌SQL命令被依赖外,关系模型被关系数据库依赖,对象模型被面向对象数据依赖,Schema对应的数据模型则被XML文档依赖。基于模式驱动的映射可以将XML Schema文件中的复杂原始类型改为简单化,方便用户数据分割和理解。数据类型有其相对应的规则,即不同的数据库及同一数据库厂商的不同版本的数据库产品之间对数据类型的定义是不同的。
2.2 基于XML Schema的数据库信息建模
在数据库信息与XML Schema之间建立并实现双向映射可以使基于模型驱动实现数据库与XML文档之间数据的双向传输。在生成的XML Schema文档对设计表里面元素的基本属性做了基本的描述,以在异构数据迁移时可以更完整地表述数据库信息,如表名称—ref、长度—value、类型—base、字段名称—name、主键—xs:key,等等。对于XML Schema文档中SQL Server2000数据库内某个表bjdmb的相关信息可以如以下一段编程来表示。
maxOccurs=”unbounded”/>//表中完整数据出现次数
2.3 数据库数据迁移
从数据库映射到XML文档的过程中,可以通过属性中心和元素中心两种形式表示,这两种形式都可以指定这些元素或属性的名字。但前者不可对各字段的先后顺序进行表述,也比较难在属性中保存应用程序操作,因而,一般情况下都选用元素中心的形式来表示,以实现异构数据库间数据交换中XML中间层的构建。下面是一段XML代码指的是中SQL Server2000数据库内一个表bjdmb中的一组数据,即bjdm、bj、njdm的映射。
3.迁移过程可视化控制
迁移过程可视化控制是指用户在前台控制端就可根据迁移的具体要求,通过论文原型迁移平台来完成异构系统间数据的迁移工作。在该迁移过程中,后台异构数据库间具体差异用户可以完全不做考虑。本文中笔者对前台用户可视化界面的设计与实现采用的是JSP和JavaBean系统。
根据异构数据迁移系统的层次结构图我们可以将该系统分为5个模块,即数据库连接模块、数据导入模块、数据操作模块、数据迁移模块和数据展示模块。其中数据库连接模块主要用于实现将要被迁移的源数据库的设定和连接;数据导入模块主要负责源数据库中需要进行迁移的数据的迁移工作;数据操作模块主要功能是用户对转换过程中一些如需修改的表名、列名、库名及需进行添加或删除的字段等转换具体需求地设定;数据迁移模块主要负责交换和关联规则地设定;数据展示模块,顾名思义就是在屏幕上向用户展示迁移过程和结果,以方便用户监控。
[1]庞海涛.XML在异构数据交换中的研究与应用[D].湖北:武汉理工大学硕士论文,2006.
[2]都志辉.XML编程实践[M].北京:清华大学出版社,2002.