基于XML格式的数据转换技术的设计与应用

更新时间:2024-01-28 作者:用户投稿原创标记本站原创 点赞:16567 浏览:70590

【摘 要】针对煤炭集团公司建设“一站式”综合信息管理平台过程中,各个不同业务系统中相关联的数据实体,由于表示方法、业务实体、业务系统采用的技术以及存储数据库的类型等的不同,导致大量异构数据需要转换.本文通过提出一种基于XML格式的数据转换方法,根据目标业务实体的复杂结构和目标数据实体的数据生成规则,把复杂的数据转换过程分解为一个或多个简单的数据转换单元,大大提高了数据转换的效率和准确性,具有较和高的实际应用价值.

【关 键 词】XML;数据转换;业务实体;映射单元;信息平台;异构数据

Abstract:Accordingtotheprocessofbuilding“CoalGroupCompanyone-stop”integratedinformationmanagementplatform,thedataentitiesrelatedtovariousbusinesssystems,becausetherepresentation,thebusinessentity,businesssystemadoptsthetechnologyofthedatabaseandthestoragetypeisdifferent,resultinginalargenumberofheterogeneousdataconversion.ThispaperpresentsamethodofconvertingXMLformatbasedonthedata,accordingtotheplexstructureandthetargetdataentitybusinessentitydatagenerationrules,toconverttheplicatedprocessofdataintooneormoresimpledataconversionunit,whichgreatlyimprovestheefficiencyandaccuracyofthedatatraner,andhashigherpracticalapplicationvalue.

Keywords:XML;DataConversion;Businessentity;Mappingunit;Informationplatform;Isomerousdata

1.引言

随着煤炭行业信息化的发展,通过集成的业务系统推进财务业务一体化,建立包含人、财、物、生产、采购、物资、设备管理高度集成的“一站式”综合信息管理平台,在不影响各业务系统正常运行的前提下,打破各业务系统信息数据的壁垒,完成系统的集成整合,通过对各系统的关键数据进行提取、数据的挖掘和分析,为领导决策提供信息支撑,实现各类用户一次登录系统按需享用资源的综合信息平台,成为各大煤炭集团公司综合信息化管理平台建设的一种趋势.煤炭企业在信息化建设的过程中,在不同的时期,基于不同的需求,逐步搭建和积累了多个信息系统.这些信息系统建设满足单个部门业务的需求,承建厂家采用的技术也不尽相同,因而在搭建“一站式”综合信息管理平台过程中,涉及到大量的异构数据的转换.基于上述情况,本文提出一种基于XML格式的数据转换方法,通过这种技术方法,根据目标业务实体的复杂结构和目标数据实体的数据生成规则,把复杂的数据转换过程分解为一个或多个简单的数据转换单元,解决异构系统中数据中的转换问题.

2.XML技术

XML(ExtensibleMarkupLanguage,可扩展标准语言)是SGML(StandardGeneralizedMarkupLanuage,标准通用标记语言)的子集,其目标是允许普通的SGML在web上以目前HTML(HypertextMarkupLanguage)的方式被怎么写作、接收和处理.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)识别目标业务实体的数据表组成以及数据表之间的关系:主从和平行.

(2)根据目标业务实体的结构,从主表到子表依次为每个目标表创建映射并设置单元.

创建映射并设置单元可进一步描述为以下几个子步骤:

1)设置映射单元对应的目标数据表;

2)设置映射单元对应的数据来源;

3)设置源数据的取数范围;

4)设置源数据的分组依据;

5)设置映射单元的触发条件;

6)设置映射单元的映射规则.

识别每个目标表的数据生成规则,对于同一个目标表,如果存在不同数据生成规则(比如数据源不同、分组依据不同、执行条件不同、映射规则不对),要为该数据表针对每一个数据生成规则创建多个同级的映射单元;如果该目标表存在子表,按照同样的方式依次为每个子表创建对应的映射单元,依次类推.

(3)如果存在同层级的映射单元,对同层级的映射单元进行编排顺序.

4.应用

本文为说明此转换方法,以一个抽象的事例及一个具体的事例说明转换数据的转换过程.

示例:应用系统A中的BizA业务数据转换为应用系统B中的BizB业务数据.BizA的数据结构如表2所示.

表2BizA的主表:AM_Table

字段数据类型说明

AM_Col1String主键

AM_Col2String

AM_Col3String

表3AM_Table的子表:AS_Table

字段数据类型

AM_Col1String外键,主表AM_Table的主键

AS_Col1String主键

AS_Col2String

AS_Col3String

AS_Col4Int枚举值:0,1;默认值为0

表AM_Table和表AS_Table是主从关系.BizB的数据结构如下:

表4BizB的主表:BM_Table字段数据类型说明

BM_Col1String主键

BM_Col2String

BM_Col3String

表5BM_Table的子表:BS_Table

字段数据类型

BM_Col1String外键,主表BM_Table的主键

BS_Col1String主键

BS_Col2String

BS_Col3String

表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步骤设置属性如下:

属性属性值

编号BM_TablUnit

名称BM_TablUnit

描述BM_Tabl对应的映射单元

目标数据表BM_Tabl

取数来源AM_Tabl

取数范围

分组依据AM_Col1

执行条件

执行顺序1

上级映射单元

映射规则设置BM_Col1等于AM_Col1

BM_Col2等于AM_Col2

BM_Col3等于AM_Col3

(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,并设置属性如下:

属性项属性值

编号BS_TablUnit1

名称BS_TablUnit1

描述BS_Tabl对应的映射单元

目标数据表BS_Tabl

取数来源AS_Tabl

取数范围AS_Col4等于0

分组依据AS_Col1

执行条件AS_Col4等于0执行顺序1

上级映射单元BM_TablUnit

映射规则设置BS_Col1等于AS_Col1

BS_Col2等于AS_Col2

(6)针对第二个生成规则创建BS_Tabl的第一个映射单元BS_TablUnit2,并设置属性如下:

属性项属性值

编号BS_TablUnit2

名称BS_TablUnit2

描述BS_Tabl对应的映射单元

目标数据表BS_Tabl

取数来源AS_Tabl

取数范围AS_Col4等于1

分组依据AS_Col1

执行条件AS_Col4等于1

执行顺序2

上级映射单元BM_TablUnit

映射规则设置BS_Col1等于AS_Col1

BS_Col3等于AS_Col3

步骤三:设置映射单元的顺序.

同一层级映射只有一个映射单元时无需设置顺序,在本实例中BM_TablUnit不需要设置执行顺序;如果同一层级有多个映射单元时,需要设置其相对顺序,在本实例中设置BS_TablUnit1的执行顺序为1,BS_TablUnit2的执行顺序为2.数据交换系统将根据映射单元的层级顺序和执行顺序进行逐个执行映射单元.

5.结语

使用本文的方法可以把复杂的数据转换过程分解为简单的映射单元;同时根据映射单元之间的关系以及同层级映射单元的执行顺序可以有规律的执行数据转换过程;而且映射单元具有较好的可配置型和扩展性.本文方法对煤矿企业尤其是大型煤业集团建设“一站式”综合管理信息平台过程中,在涉及到各个不同业务系统中具有交叉性实体的数据转换方面具有较大的推广价值.