姜楠 文必龙 林宗斌
摘要:随着互联网技术和web的迅速发展,现代企业间以及企业内部需要彼此将资源共享,但是不同企业间的数据源,结构,格式都是不大相同的。由此我们发现多源异构数据不能共享问题。于是提出了基于元模型驱动的多源异构数据的统一建模技术。该技术是通过建立数据字典的元模型对各类的异构数据进行统一的描述,然后通过数据的映射关系在建立起统一数据模型。最后该系统已经成功的应用在多源物品交易平台数据资源整合中。
关键词:多源异构数据;元数据;元模型;映射模式;转化规则
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)12-0004-02
Abstract: with the rapid development of Internet technology and web, modern enterprises and enterprises need to share resources with each other, but the data sources, structures and formats between different enterprises are not the same. So we find that the problem of multi-source heterogeneous data can not be shared. Therefore, a unified modeling technology based on meta model driven multi-source heterogeneous data is proposed. The technology is to describe all kinds of heterogeneous data through the metamodel of the data dictionary, and then establish a unified data model through the mapping of the data. Finally, the system has been successfully applied to data resource integration of multi-source goods trading platform.
Key words: multi-source heterogeneous data; metadata; metamodel; mapping mode and transformation rule
1 背景
随着计算机的迅速发展,使得现代企业的数据存储量越来越大。随之企业逐渐从一个孤立的数据源转向为一个不断通过网络与外界交换信息的实体。企业实现数据共享可以更充分地使用现有的数据资源,更好的挖掘数据,减少数据的采集等。但是实现共享数据时,不同用户共享的数据可能来源不同,其数据的内容,格式和质量千差万别,有时甚至会出现数据格式不能转化和数据转换后不正确等严重问题。随后人们提出了数据集成的方法:数据集成是对异构数据的统一表示、储存和管理[1]。通过数据集成的系统可以对不同的数据源进行统一操作。实现异构数据集成方法包括两种:基于中间插件的数据集成[2]和基于模式数据[3]的数据集成方法。但是都没有对各类数据以元模型统一的描述和管理。
于是該文针对上述问题提出基于元模型驱动的方法对多源异构数据统一进行平台建模。该平台是通用的、面向业务的、而非传统意义上面向编程人员的开发平台。该文详细说明多源异构数据进行元模型构建的过程。基于该多源异构的统一建模,我们成功地实现多个物品交易平台的数据整合与分享系统。
2 元模型构建
元数据驱动[4]:数据在程序中不是被加工的对象,而是通过元数据值的改变来改变程序的行为,控制程序的运行,这样称为元数据驱动。按照传统的定义,元数据是描述数据的数据。元数据的典型表现为对象的描述,即对数据库、表、列、列属性(类型、格式、约束等)以及主键/外键关联等的描述。
2.1 标准化元模型
元模型已经在各个领域已经得到很多的应用,其中元模型本身的属性和结构也存在着很大的差异要想实现对元模型和元数据统一的管理,就要有效地将各类元模型进行统一的描述[5]。以往的项目元模型为例,这些元模型具有以下不同:①描述模型种类不同。②元模型领域不同。③结构设计差异大。④语义表述不同。⑤所在的数据库环境不同。
鉴于元模型存在的差异性,要想对元模型进行统一建模和访问,则元模型必须要满足一定的规范。我们要建立元模型描述规范标准,然后对元模型建立惊醒标准化。该规范用于各类元模型进行一定的约束,其规范如下表1(元模型规范标准表):
2.2 元-元模型设计
为了实现元模型的管理,必须要构建一个能够描述所有元模型的元-元模型。元-元模型的定义是建立在元模型所需要的概念元素的基础上,也为元模型的相互联系、实现互相操作建立了语意基础[6]。一套元模型是多个元实体组成,元实体又包含了多个元属性,原属性由原属性名称、元属性数据类型和元属性值等组成。数据异构中数据类型异构就是其中异构的一个方面。要建立与实现一个无关元模型时,要保证数据类型的独立性。要解决这个方面的异构就要构建一个独立的数据类型体系,称为逻辑数据类型体系。逻辑数据类型就是要保证数据类型的独立和标准化。所以采用与国际建模技术标准中的路基数据类型。为了给数据统一描述和表述提供了基础,设计了物理数据库类型。同时为了解决储存方式上的差异,我们使用类物理数据类型进行映射到逻辑数据类型的方式得以消除。元-元模型的逻辑关系如下图1所示。
3 元数据映射模式
映射模式[7] 为源数据库数据表字段到目标数据库数据表字段之间的映射关系,每一类映射关系为一类映射模式。每一类映射模式的实质是一类数据转换的规则,将每一类映射模式抽象为一个数据转换规则函数。
3.1 数据转换规则函数及其识别映射模式算法
数据转换规则函数:基于映射关系X映射到Y源数据库中记录Fs中对应于属性X的数据 xi,到目标记录Ft中对应于属性Y的数据yi的一系列变换、运算等转换处理过程,为映射关系X映射Y下的转换规则函数为 F,记为 F(xi,yi )或yi =F(xi ),xi∈F S ,yi ∈F T 。这里需要说明,不同映射关系下的规则函数参数类型、个数存在差异。转换规则函数主要包括直接映射、主键映射、外键关键字映射、多级映射等[8]。
对于这么多映射规则,必须有一个识别映射模式,通过调用对应映射转换规则函数,实现映射识别与转换过程的自动处理算法。算法如下:
IF!=null THEN
{ f (Ai,Bi)记住ni}
FOR each ni∈ DO
{识别ni 在 中的映射模式识别modeli};
{调用相应的映射转化规则函数};
FOR each MODEL ∈
IF MODEL ==modeli THEN
Fmodel(var1,var2,…);
END IF
END FOR
END FOR
END IF
3.2 主键字段映射规则映射及其算法
基于主键字段映射规则映射对于转换规则是十分重要的。主键映射是指源表的主键字段仍然是目标表中组件的字段,只是源表和目标表的主键的字段存储的值不同。由于描述的不同,需要将源表中主键存储的值变为目标主键字段的值,并且要建立中间表来保存两者值之间对应的关系。
基于主键映射字段的转化函数:F主键(S<主键字段>,T<主键字段> ,TX<中间表>),其中转换函数参数包括S为源主键字段,T为目标主键字段,TX为中间表。下面是基于主键字段映射规则的数据转换处理过程算法:
IF S<主键字段>==T<主键字段> THEN
SELECT T <主键字段> FROM T<目标表>
IF T<主键字段>.Value !=S<主键字段>.Value THEN
{判断T主键字段值与S主键字段值的关系}
CREATE TA;BLE TX;{将两者关系储存到中间表中};
END IF;
END IF;
通过建立标准的转换规则函数及参数的元数据,实现对异构数据模型字段间映射关系的描述,使得该基于映射关系的数据库之间的数据转换得到灵活实现。
4 实现实例
图2是基于元模型驱动为物品交易领域提出的异构数据管理解决方案。随着社会的推进,共享数据对于各大企业十分重要,尤其是對同一领域的各大企业间的数据交流。但是各个企业间的数据存在多元异构的特性,于是我们设计一个可以让多元异构数据实现统一的web服务平台。该服务平台同过模型驱动实现建模,搭建速度快,同时保证了系统的正确性和灵活性。同时将一个建模系统设计成分离式管理,降低开发难度。满足了当下企业的需求。通过此平台我们也验证了通过元模型驱动可对多源异构数据的统一。下图为系统体系结构图。
5 结束语
该文提出的基于元模型驱动对异构数据源进行建模,解决了数据异构和数据标准化不足的问题,但是研究还存在许多需要进一步研究和解决的问题,这也是下一步需要研究的内容:映射规则必须手工完成,这导致系统的在映射灵活性不强。必须人工干预。
参考文献:
[1] 刘金晶, 曹文洁. 基于本体论的多源异构数据集成方法研究[J]. 软件导刊, 2018, 17(3): 198-200.
[2] 鲍亮, 陈平. 基于插件技术的异构数据集成[J]. 计算机工程, 2006(20): 86-88.
[3] 刘云汉. 基于Web Service的异构数据集成平台设计与实现[J]. 电脑知识与技术, 2017, 13(30): 19-22.
[4] 李海峰, 吴慧中. 元模型驱动的产品生命周期管理系统的设计与实现[J]. 计算机集成制造系统, 2005(7): 963-968.
[5] 宋旭东, 闫晓岚, 刘晓冰, 等. 数据仓库ETL元模型设计[J]. 计算机仿真, 2010, 27(9): 106-108, 119.
[6] 周芳, 文必龙, 王守信,等. 基于元元模型的多维元数据管理研究与实现[J]. 计算机工程与设计, 2006(10): 1797-1799, 1804.
[7] 苗立志, 张书亮, 闾国年. 通用映射模式下GML关系数据库存储研究[J]. 计算机应用研究, 2009, 26(11): 4124-4127.
[8] 陈大军. 移动数字图书馆平台的研究与设计[D]. 大连: 大连理工大学, 2015.