基于XML格式的数据转换技术的设计与应用
2014-03-16天地常州自动化股份有限公司
天地(常州)自动化股份有限公司 王 仁
1.引言
随着煤炭行业信息化的发展,通过集成的业务系统推进财务业务一体化,建立包含人、财、物、生产、采购、物资、设备管理高度集成的“一站式”综合信息管理平台,在不影响各业务系统正常运行的前提下,打破各业务系统信息数据的壁垒,完成系统的集成整合,通过对各系统的关键数据进行提取、数据的挖掘和分析,为领导决策提供信息支撑,实现各类用户一次登录系统按需享用资源的综合信息平台,成为各大煤炭集团公司综合信息化管理平台建设的一种趋势。煤炭企业在信息化建设的过程中,在不同的时期,基于不同的需求,逐步搭建和积累了多个信息系统。这些信息系统建设满足单个部门业务的需求,承建厂家采用的技术也不尽相同,因而在搭建“一站式”综合信息管理平台过程中,涉及到大量的异构数据的转换。基于上述情况,本文提出一种基于XML格式的数据转换方法,通过这种技术方法,根据目标业务实体的复杂结构和目标数据实体的数据生成规则,把复杂的数据转换过程分解为一个或多个简单的数据转换单元,解决异构系统中数据中的转换问题。
2.XML技术
XML(Extensible Markup Language,可扩展标准语言)是SGML(Standard Generalized Markup Lanuage,标准通用标记语言)的子集,其目标是允许普通的SGML在web上以目前HTML(Hypertext Markup Language)的方式被服务、接收和处理。XML被设计成易于实现,且可在SGML和HTML之间互相操作[1]。
XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。这些标识必须根据某些通用的原理来创建,XML标记描述的是稳定内容的结构和含义。它具有:可扩展性、结构性、平台独立性的优点[2]。基于这些优点,本文将各个业务平台中的数据库数据转换成统一的XML格式,再将XML格式转换成最终的数据库。
3.数据转换
本文介绍的基于XML格式的数据转换,基本原则是根据目标业务实体的复杂结构和目标数据实体的数据生成规则[3],把复杂的数据转换过程分解为一个或多个简单的数据转换单元。这种细微的数据转换单元在本文中称为映射单元。这种数据转换方法,其内容主要包括映射单元以及映射单元的分解方法。
3.1 业务实体
业务实体的数据结构定义,采用数据模型来描述业务数据结构[4]。业务数据定义映射到关系型数据库中是一组具有主从关系或关联关系的表或视图的集合,因此,业务数据是一组数据集,每个数据集是一个二维表结构,包括列集和行集。在数据转换过程中,数据转换的源在本文中称为源业务实体,数据转换的目标在本文中称为目标业务实体;其中源业务实体包含的表称为源表,目标业务实体包含的表称为目标表[6]。
3.2 映射单元
映射单元的结构属性包括:编号、名称、描述、目标数据表、取数来源、源数据的取数范围、源数据的分组依据、映射单元的执行条件、执行顺序、上级映射单元、映射规则[7]。表1是对映射单元的结构属性的详细描述。
映射单元之间的关系是由目标表间的关系确定的,主从关系的数据表对应的映射单元其关系也是主从关系,平行数据表对应的映射单元其关系也是平行关系[5],具体关系参照图1所示。
图1 映射单元关系图
3.3 分解方法
映射单元的分解依据有两个:
(1)目标业务实体的数据结构;
(2)目标表的数据生成规则。
表1 映射单元结构属性
映射单元的分解步骤如下:
(1)识别目标业务实体的数据表组成以及数据表之间的关系:主从和平行。
(2)根据目标业务实体的结构,从主表到子表依次为每个目标表创建映射并设置单元。
创建映射并设置单元可进一步描述为以下几个子步骤:
1)设置映射单元对应的目标数据表;
2)设置映射单元对应的数据来源;
3)设置源数据的取数范围;
4)设置源数据的分组依据;
5)设置映射单元的触发条件;
6)设置映射单元的映射规则。
识别每个目标表的数据生成规则,对于同一个目标表,如果存在不同数据生成规则(比如数据源不同、分组依据不同、执行条件不同、映射规则不对),要为该数据表针对每一个数据生成规则创建多个同级的映射单元;如果该目标表存在子表,按照同样的方式依次为每个子表创建对应的映射单元,依次类推。
(3)如果存在同层级的映射单元,对同层级的映射单元进行编排顺序。
4.应用
本文为说明此转换方法,以一个抽象的事例及一个具体的事例说明转换数据的转换过程。
示例:应用系统A中的BizA业务数据转换为应用系统B中的BizB业务数据。BizA的数据结构如表2所示。
表2 BizA的主表:AM_Table
表3 AM_Table的子表:AS_Table
表AM_Table和表AS_Table是主从关系。BizB的数据结构如下:
表4 BizB的主表:BM_Table
表5 BM_Table的子表:BS_Table
表BM_Table和表BS_Table是主从关系。
该实例是一个典型的数据交换的例子,其中BizA是源业务实体,BizB为目标业务实体。BizA和BizB的数据转换过程的分解步骤如下:
步骤一:识别目标业务实体BizB的数据结构。
确认目标业务实体BizB有数据表BM_Table和BS_Table,而且两者为主从关系。
步骤二:创建并设置映射单元。
(1)创建并设置主表BM_Tabl对应的映射单元;
1)识别数据表BM_Tabl的数据的生成规则,只有一种生成规则:
BM_Col1=AM_Col1
BM_Col2=AM_Col2
BM_Col3=AM_Col3
2)创建主表BM_Tabl对应的映射单元BM_TablUnit,并按照图6步骤设置属性如下:
(2)判断BM_Tabl是否有子表,如果有设置其子表对应的映射单元;
(3)按照主映射单元BM_TablUnit的创建和设置过程,创建并设置子表BS_Table的映射单元;
(4)识别数据表BS_Table的数据的生成规则,两种:当AS_Col4=0时BS_Col2=AS_Col2,而BS_Col3不参与映射;当AS_Col4=1时BS_Col3=AS_Col3,而BS_Col2不参与映射;
(5)针对第一个生成规则创建BS_Tabl的第一个映射单元BS_TablUnit1,并设置属性如下:
(6)针对第二个生成规则创建BS_Tabl的第一个映射单元BS_TablUnit2,并设置属性如下:
步骤三:设置映射单元的顺序。
同一层级映射只有一个映射单元时无需设置顺序,在本实例中BM_TablUnit不需要设置执行顺序;如果同一层级有多个映射单元时,需要设置其相对顺序,在本实例中设置BS_TablUnit1的执行顺序为1,BS_TablUnit2的执行顺序为2。数据交换系统将根据映射单元的层级顺序和执行顺序进行逐个执行映射单元。
5.结语
使用本文的方法可以把复杂的数据转换过程分解为简单的映射单元;同时根据映射单元之间的关系以及同层级映射单元的执行顺序可以有规律的执行数据转换过程;而且映射单元具有较好的可配置型和扩展性。本文方法对煤矿企业尤其是大型煤业集团建设“一站式”综合管理信息平台过程中,在涉及到各个不同业务系统中具有交叉性实体的数据转换方面具有较大的推广价值。
[1]赵晓,陈桦,侯勃峰等.一种实现数据库数据到XML文档的转换方法[J].西安工业大学学报,2007(04).
[2]傅清平.异构数据库中数据转换技术[J].江西煤炭科技,2007(3):55-57.
[3]陈绣瑶.基于XML Schema的XML文档和关系数据库的映射研究[J].现代计算机,2009(1):149-150.
[4]柏森.数据挖掘中的半结构化数据[J].计算机与信息技术,2007(5):27-29.
[5]吴共庆,陈恩红.一种基于XML的半结构化数据存储方法[J].计算机工程,2004,30(10):57-59.
[6]黄海燕.保持约束的XML数据和关系数据相互转换技术研究[D].长沙:中南大学,2008.
[7]薛卫萍.实现异构数据库间数据的转换[J].计算机与数字工程,2004,32(6):86-88.