首页 > 范文大全 > 正文

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

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于XML格式的数据转换技术的设计与应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

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

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

Abstract:According to the process of building“Coal Group Company one-stop”integrated information management platform,the data entities related to various business systems,because therepresentation,the business entity,business system adopts the technology of the database and the storage type is different,resulting in a large number of heterogeneous data conversion.This paper presents a method of converting XML format based on the data,according to the complex structure and the target dataentity business entity data generation rules,to convert thecomplicated process of data into one or more simple dataconversion unit,which greatly improves the efficiency and accuracy of the data transfer,and has higher practical applicationvalue.

Key words:XML;Data Conversion;Business entity;Mapping unit;Information platform;Isomerous data

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)识别目标业务实体的数据表组成以及数据表之间的关系:主从和平行。

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

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

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

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

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

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

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

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

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

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

4.应用

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

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

表2 BizA的主表:AM_Table

字段 数据类型 说明

AM_Col1 String 主键

AM_Col2 String

AM_Col3 String

表3 AM_Table的子表:AS_Table

字段 数据类型

AM_Col1 String 外键,主表AM_Table的主键

AS_Col1 String 主键

AS_Col2 String

AS_Col3 String

AS_Col4 Int 枚举值:0,1;默认值为0

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

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

BM_Col1 String 主键

BM_Col2 String

BM_Col3 String

表5 BM_Table的子表:BS_Table

字段 数据类型

BM_Col1 String 外键,主表BM_Table的主键

BS_Col1 String 主键

BS_Col2 String

BS_Col3 String

表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.结语

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

参考文献

[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.

基金项目:基于GIS的图形展示组件(项目编号:14SY003)。

作者简介:王仁(1985―),男,江苏常州人,大学本科,助理工程师,主要从事辅助运输监控系统开发工作。