基于结构的异构数据模型映射方法研究

2010-10-17 07:46赵凤芝王振雷刘学爽
关键词:数据项数据模型树形

赵凤芝,王振雷,刘学爽,饶 平

(大庆石油学院计算机与信息技术学院,黑龙江大庆163318)

模型是系统的抽象,是用一种给定的形式化语言对系统的功能、结构和行为进行描述[1].同一系统不同抽象层次的模型,在组织结构和信息表达方式上有着较大的差异,称之为模型描述的异构性.模型描述的异构性表现为三个层次:语法、结构和语义.而模型映射的成效主要依赖于模型之间的结构差异.这种差异对映射规则的定义有重要的影响,当二者以相同的结构和行为展示模型元素时,其映射关系是很容易定义的.如果两个模型之间的结构描述差异很大,即模型之间的相似度较小,直接映射就很困难[2].

本文研究的源模型是半结构化数据模型,目标模型是关系数据库模型.针对这两种模型的种种差异,分别分析他们的结构特征,依据目标模型的分析原理,找到源模型的模式构造原理,采用树形结构对两种模型进行描述.找到源模型和目标模型的映射关系,最终形成映射文件,完成模型之间的映射[3].

1 模型映射的基本思想

模型映射是根据一组规则(称为映射规则),建立源模型和目标模型之间的对应关系.映射之前,源模型和目标模型的描述均已存在.模型映射有时也称数据映射[4].

模型间数据映射的体系结构如图1.

图1 数据模型映射体系结构

这里称源数据模型为SDM(Source Data Model),称目标数据模型为TDM(Target Data Model).我们通过本身属性对其进行结构描述,然后从描述后的模型中找到映射关系,形成映射文件,最终完成源模型到目标模型的数据映射[5].

2 目标数据模型的描述

本文研究的目标数据模型(TM)是基于关系数据库的数据模型.在关系数据库中,数据模型是以二维表为主要形式存在的,因此如何描述二维表的结构是数据模型描述的主要内容.实体和数据项这两个属性描述了二维表的基本结构.

2.1 实体

实体的属性包括实体名称、实体代码和实体描述等.实体之间存在父子关系,即某一实体在逻辑上是另一个实体的父实体,同理,某一实体也可能是另一实体的子实体,这种关系只是一种逻辑上的关系,但对关系之内的每一个实体来说都是一个独立的实体.这种关系不是必需的并且父子关系的存在不影响父实体和子实体的各个属性.

2.2 数据项

数据项必须是实体的一部分,数据项的描述不能脱离实体.数据项之间不存在约束关系.数据项可以作为实体的唯一标识,可以是一个数据项,也可以十多个数据项联合起来唯一标识一个实体.用来唯一标识实体的数据项也称为主码.

2.3 模型表示

树形结构图的根节点是目标模型的一个总括,子节点对应的是目标数据库中的实体表.实体之间的关联是通过实体之间的约束来表示的.实体之间,一个实体为父实体,另一个和其有约束关系的实体为子实体,通过关联数据项产生关联,对应的数据项为父属性和子属性见图2.叶子节点对应的是目标数据库中的数据项.通过对这样树形结构的分析,可以清晰的看出直接的层次描述关系.所以我们完全可以应用树形结构描述这个目标模型.

图2 目标模型的树形结构图

3 源数据模型的描述

本文研究的源数据模型(SM)是半结构化数据模型.这种数据模型无论是在数据上还是结构上都给数据的处理带来了很大的困难.因此,可以把一个半结构化数据的实例看成一个结构树来展开,从根对象到某个叶子对象构成一条路径,节点就是对象标识,连接两个节点的边就是属性.这种描述形式的一个显著优点是模式和数据采用一种数据模型.区域块和区域数据项这两个属性描述了半结构化数据的基本结构.

3.1 区域块

区域块是由区域数据项(Block Data Item,记为B-DI)构成,每一个区域数据项描述区域块的某一方面的特征,是区域块的属性之一.根据分块规则,我们认为块和块之间存在着嵌套关系.区域块之间通过约束规则,如主外键约束等联系在一起.

3.2 区域数据项

由2部分组成,包括,数据名称和数据本身.两者合在一起称为区域数据项,在一个半结构化数据实例中,是由多个数据单元构成.对于半结构化数据来说,这种数据多为展示数据,如web数据、报表数据等.

3.3 模型表示

树形结构图的根节点是源模型的一个总括,子节点对应的是源模型中的区域块.区域块之间的关联是通过区域数据项之间的约束来表示的.一个半结构化数据源模型可以由多个区域块组成,每个区域块可以由多个区域数据项组成.通过对此源模型的树形结构分析,我们完全可以应用树形结构描述这个源模型,见图3.

图3 源模型的树形结构图

4 源模型和目标模型的映射算法

经过前几节的系统分析,本文将源模型和目标模型都用树形结构来表示.下面给出源模型和目标模型之间的映射算法.

在源模型中,定义P为源模型中区域块的数量.定义M为某一个区域块含有区域数据项的数量.在目标模型中,定义Q为目标模型中包含实体的数量.对于一个区域块和一个实体之间的相似度,表示为

其中:B表示区域块,E表示实体,N表示该实体中包含所有数据项的数量,m表示在该实体中包含区域块中区域数据项的数量,m≤M.

为了确定源模型子树与目标模型子树的相似度,我们需将源模型的每一棵子树与目标模型的每一棵子树相比较.假设两棵子树计算所得的相似度数值的个数为Q个,对得到的Q个数值进行归类.分子相同的为一组,分组进行比较.

根据上面的归类方法可以得到以下2种情况:

第1种情况(m=M):即实体中包含块中所有区域数据项.相似度记为m/N.对于一个设计合理的数据库来说,一般不会存在一个实体表完全包含所有的区域数据项的情况,因此在这种情况下得到的相似度值,不一定是正确的答案,我们将其作为备选项.

第2种情况(m<M):区域数据项被多个实体表包含.相似度记为m1/N1(m1<M).在这种情况下我们就要考虑实体关联的情况了.实体和实体之间的关联可以分为两层实体关联和多层实体关联.

第1种:2层实体(0-1)关联的情况.

由于无法确定0层实体所关联的1层实体的数量,我们将其再分成两种情况:

1)1层实体数量Q1=1

在1层实体中,若不包含剩余数量M-m1中的任意一个区域数据项,我们便认为0层实体和1层实体的关联在该计算中无意义,并且认为1层的实体为无效实体.

在1层实体中,若全部包含剩余数量M-m1中的区域数据项,该层有效,我们便认为0层实体和1层实体的关联有意义.在此我们设定m2为1层实体包含区域块中的区域数据项的个数,其中m2≥M-m1.

在Q1=1情况下,在树形结构中是实体和实体相连接,但是在计算相似度时我们也是将相连部分分解,单独计算1层中的实体和区域块的相似度.以后如果有实体之间的关联时,仍然是分解后单独计算,不再赘述.所以1层实体与区域块的相似度计算满足公式(1)的要求.取值为m2/N2(m2≥M-m1).所以区域块树与两层实体关联的相似度计算公式为:

其中:m1/N1为0层实体与块树对应的相似度,m2/N2为1层实体与块树对应的相似度.β为我们设定的一个调节参数.

在1层实体中,若包含部分剩余数量M-m1中的区域数据项,转为多层实体的情况.

2)1层实体数量Q1>1

对于这样一对多的实体关联情况来说,我们可以将这样一个实体关联关系拆分见图4、5.

图4 Q1>1的实体关联情况

图5 Q1>1的分解情况

将实体关联分解后,可以看成0层实体与1层实体中任何一个单独实体比较.在此过程中因为1层有多个实体(有效实体)与0层实体关联,每一个实体树都可与区域块树计算得到一个相似度数值.设1层的有效实体个数为t1,因此我们可以得到t1个相似度值.所以Q1>1情况下的相似度计算公式为:

其中:i为1层实体的标号,N2i为1层实体中第i个实体的数据项数目,m2i为1层实体中第i个实体包含块中的区域数据项的数量,调节参数仍为 β.

第2种:多层实体(0-1-2…)的情况.

多层实体情况原理上与2层实体相同,我们以3层实体的情况为例.对于3层实体,分为以下4种情况:1)Q1=1,Q2=1;2)Q1=1,Q2>1;3)Q1>1,Q2=1,4)Q1>1,Q2>1.

此情况类似与Q1=1的情况.依据Q1=1研究,我们设定m3为2层实体包含块中的剩余区域数据项.m3≥M-m1-a,所以两棵树的相似度为

N3为2层实体包含的数据项个数.m3为2层实体包含块中区域数据项的个数.

2)Q1=1,Q2>1

此情况类似与Q1>1的情况.所以两棵树的相似度为

j为3层实体的标号.N3j为2层实体中第j个实体包含的数据项的个数.m3j是第j个实体包含的区域数据项的个数.

同理我们得出

3)Q1>1,Q2=1,

4)Q1>1,Q2>1情况的相似度计算公式:

多层实体的情况依此类推.根据以上映射算法,我们就能计算出源模型和目标模型之间的相似度,找到源模型和目标模型的映射关系,最终形成映射文件来完成模型之间的映射.

5 结 语

本文从模型结构的抽象分析出发,利用树形结构对模型进行描述,对模型间不同层次的映射进行了分类,通过对模型间相似度的计算建立了模型间的映射关系,探讨了模型间映射关系的建立过程以及应遵循的基本原则,可为不同抽象层次模型之间映射关系的正确性验证提供依据,从而对模型驱动的软件开发提供有力的支持.

[1]杨 潇,万建成,侯金奎.一种基于语义重构的模型映射方法[J].计算机工程,2007,12(23):45-47.

[2]殷晓岚,付远彬.企业数据集成模式的研究[J].计算机工程与应用,2002,12(3):253-255.

[3]李文武,金远平,童咪娜.半结构化数据到结构化数据的无损映射[J].东南大学学报,2002,4(10):192-197.

[4]侯金奎,王 锋,张 睿.基于本体语义的模型映射研究[J].计算机科学,2008,35(5):119-122.

[5]文必龙,王 瑞.一种Excel数据到结构化数据的转换方法[J].佳木斯大学学报,2006,24(3):365-367.

猜你喜欢
数据项数据模型树形
苹果高光效树形改造综合配套技术
莱阳茌梨老龄园整形修剪存在问题及树形改造
一种多功能抽签选择器软件系统设计与实现
非完整数据库Skyline-join查询*
基于Python的Asterix Cat 021数据格式解析分析与实现
面板数据模型截面相关检验方法综述
猕猴桃树形培养和修剪技术
休眠季榆叶梅自然开心树形的整形修剪
基于分位数回归的电力负荷特性预测面板数据模型
面向集成管理的出版原图数据模型