元数据提取

2024-06-18

元数据提取(精选七篇)

元数据提取 篇1

随着Internet的蓬勃发展和WWW的普遍应用,网上的电子资源已经成为人们获取信息的主要来源。目前人们主要依靠搜索引擎来检索、查询信息。但是很多搜索引擎都是基于关键字查找和全文检索技术,其返回的结果对于用户来说过于庞大, 且很多都是无用的信息,因此用户很难从中挑选出他们真正需要的资源。如何在浩如烟海的数字化文档中高效、准确地定位用户感兴趣的文档,元数据在这一过程中起到了举足轻重的作用。用户可以通过元数据结构检索更方便地发现他们所需要的文献资源。因此,很有必要对元数据信息进行自动的抽取、标引和整理工作,以方便让人们能更直接、更方便地找到所需要的文献资料。

目前用于元数据提取的方法主要有基于正则表达式的[1]、基于规则的[2]和基于机器学习的[3,4]。基于正则表达式的需要专家事先定义这些表达式,然后根据定义的表达式来提取元数据信息。基于规则的也需要首先构造抽取的规则集。但这些基于表达式的和基于规则的提取算法比较复杂、适应性差、抽取精度不高。而基于机器学习的方法是近几年发展起来的最流行的一种方法,它用于支持强健的、适应性强的元数据的自动提取。

文献[3]采用隐马尔可夫模型HMM(Hidden Markov Models)来进行文本的信息抽取。采用HMM模型存在的主要问题是没有考虑文本的上下文特征信息和文本词汇本身包含的特征信息,而这些信息对于实现正确的信息抽取是非常有用的。文献[4]使用最大熵马尔可夫模型MEMM(Maximum Entropy Markov Models)来进行信息抽取。由于该模型能够考虑文本的上下文特征信息和文本词汇本身包含的特征信息,从一定程度上可以改善提取性能。但是MEMM本身存在标记偏差的问题。而条件随机场CRF(Conditional Random Fields)[5]是由Lafferty等人在2001年提出的一种新的无向图模型。它克服了HMM模型所要求的严格的独立性假设,并且也避免了MEMM模型存在的标注偏置问题。许多实验[6]表明CRF在自然语言处理领域都取得了很好的实验效果,因此它能很好地适用于元数据的提取任务。但是在传统的标记方法中,是把文本中的每一个单词看成标注对象,并运用Viterbi算法来进行解码,从而获得最优的标注结果。本文在文本分块的基础上,提出了一种启发式搜索算法,来对学术论文头部的元数据信息进行提取。实验表明:在相同的概率模型的基础上,该算法有着较好的实验效果。

1 条件随机场

CRF是一个在给定输入节点的条件下计算输出节点条件概率的无向图模型。对于给定的节点输入值,它能计算指定节点输出值的条件概率。线性链是CRF中常见的特定图结构。它由指定的输出节点顺序链接而成。一个线性链与一个有限状态机相对应,可用于解决序列数据的标注问题。

给定一个观察序列x=x1x2…xn,则其对应的标记序列y=y1y2…yn的概率为:

ΡΛ(y|x)=1ΖΛ(x)exp(i=1Τkλkfk(yt-1,yt,x,t))(1)

其中ZΛ(x)是归一化因子,使得在给定输入上的所有可能的状态序列的条件概率之和为1。 fk(yt-1,yt,x,t)是整个观察序列和相应标记序列中位置为tt-1的标记的特征函数,λk是在训练中得到的与每个特征fk相关的权重。

建立CRF模型需要解决参数估计问题,目前用于估计最大似然参数值的方法有GIS算法、IIS算法等。本文采用L-BFGS算法来对模型进行训练,L-BFGS算法是一种用于解决大规模数据优化问题的快速算法。

另外为CRF模型选择合适的特征集也是至关重要的。针对抽取论文头部元数据信息这一任务,本文考虑了局部特征、版面特征、外部词典特征和状态转移特征等作为模型的特征集合。

2 基于CRF的元数据提取

2.1 文本分块和特征提取

在一篇学术论文中,引言前的部分都称其为论文的头部,其中主要包括标题、作者、机构、地址、摘要、关键词、网址、日期、邮编等共15个部分。每一部分称之为一个状态,每个状态和要抽取的一个域相关联。根据论文头部的特点,在进行提取前, 提出了一种文本分块技术来对文本进行预处理,将输入数据序列划分成语义块,以这些可观察的语义块序列为条件来预测每个状态相关联的域。且基于提高效率的要求,在“abstract”出现之前,根据文本的结构,我们以“,”、“:”、换行或三个以上的空格作为分隔符,来对文本进行比较细致的分块。而在“abstract”出现之后,只以换行作为分隔符,来对文本进行粗略的分块。

为了直观显示文本分块的过程,本文采用有穷自动机的形式来表示。

假设:

∑1={单词}

∑2 ={", ,:,(,),{,},[,],| ,* ,&,space }

Q={ S1,S2 ,S3,S4}

∑3={Tspace ,; ,comma} ∑4={abstract}

∑5=∑1—∑4 ∑6={N,E}

其中space表示空格,Tspace表示三个以上的空格,E表示文件结束,N表示换行,w∈∑1,x∈∑2, y∈∑3, z∈∑4 , u∈∑5,V∈∑6。 S1、S2、S3、S4表示转移状态。

文本分块的状态转换图如图1所示。

在分块过程中,有些单词属于特征词,像机构组织中的“Department”、“University”等。如果利用分块中含有的特征词这一信息,则能确定这个块的状态。因此在文本分块的同时结合块中含有的语义特征和结构特征,对特殊块采取向前向后搜索策略来确定其状态。

用于提取这些特征的特征提取规则可以表示为:

1) 状态集合S

S={title,author,affiliation,address,note,email ,date,

abstract,phone,keyword,web,degree,pubnum,intro,page}

2) 结构特征集合SC

αA | B | C |…| Z βa | b | c |…| z γ→0| 1 | 2 |…|9

month1={January,February,…,December,Jan,Feb,…,Dec}

year1={1990,1991,…,2007} year2={90,91,…,07}

month2={1,2,…,12} day={1,2,…,31}

SC={α.α(α|β)* | (α|β)+ @(β| .)+ | + | m1d,y1 | (m1|m1,)y1 |m2/d/y2 | y1_m2_d }

3) 语义特征集合TC

TC = {Introduction,http,University,Department,Center ,College,Lab(s),Laboratory(ies),Page,keywords,key words,}

4) 各个状态对应的特征提取规则R

(1) Rauthor=α.α(α|β)*

(2) Remail=(α|β)+ @(β| .)+

(3) Rkeyword={keyword,key words}

5) 向前搜索策略:若块x的状态为 author时,若前一块的格式为α.α(α|β)*,则其状态也为 author

6) 向后搜索策略:若块x的状态为email时,若后一块的格式为(α|β)+ @(β| .)+,则其状态也为email

在对文本进行分块预处理的过程中运用特征提取规则,则可以确定某些特殊块的状态。

2.2 基于CRF的概率模型和启发式搜索算法

给定一个由公式(1)定义的条件随机场模型,在已知输入数据序列x的情况下,最可能的标记序列由式(2)得到:

y*=argmaxypΛ(y|x)(2)

设一篇学术论文的头部为x,在进行文本分块后,所产生的串表示为x=(x1x2…xn),则对应的状态串为y=(y1y2…yn)。对于x来说,需要搜索概率最大的y*作为x的状态输出。

取论文的头部x,在进行分块后x=x0x1…xnxn+1,n表示分块的总数。x0表示开始块<start>,xn+1表示头部文件的结束<end>。状态集合y={y0,y1,…,y13,y14},yk*表示当前块为xk时,则其正确状态的输出。我们采用状态图G={V(VE)}来表示,如图2所示。

在图2中每个顶点表示一个状态,顶点集V可分割成n+2个不相交的子集。即V=(v0v1…vnvn+1),v0和vn+1的顶点个数均为1;其中各个顶点的权值为对应块的发射概率,各条边的权值为对应的状态转移概率。论文头部x的输yk*就是从候选状态标记图中搜索出满足式(2)的最佳路径。

根据上面定义的语义特征和结构特征,利用特征提取规则已经确定了部分块的状态。对于剩余块的状态本文提出了一种启发式搜索算法(其核心是A*算法)来确定其状态。该算法的核心思想是在搜索过程中的每一步都估计一个评分,然后选择一个最优的节点来进行下一步的运算。本文定义的启发估价函数如式(3):

f(i,k)=g(i,k)+h(i,k)

这里1≤kn(k表示当前块) 0≤i≤14 (i表示状态数) (3)

其中g(i,k)表示目前已知的由初始节点(0,0)到达当前节点(i,k)的最优路径g*(i,k)的估计值;h(i,k)表示由当前节点到目标节点的最优路径h*(i,k)的启发预测估计值。这两个函数可以通过式(4)、(5)来计算:

g(i,k)=g(j,k-1)+c1(i,j) (4)

h(i,k)=minj((h(j,k+1)+c2(j,i))(5)

由于x0和xn+1分别表示论文头部的开始和结束,所以g(0,0)=0,h(0,n+1)=0。函数c1(i,j)、c2(j,i)分别表示正向搜索和反向搜索时相应的父子节点之间的代价。

若块xk的状态yk*在分块预处理的过程中运用特征提取规则已经确定为yj,则在路径搜索的过程中其花费的代价是可以计算的。由式(5)得知,对于任意的一对父子节点((i,k),(j,k+1)),h(i,k)≤h(j,k+1)+c2(i,j)是恒成立的,且终点h(0,n+1)=0。由此可以看出定义的启发搜索函数h(i,k)满足A*的约束条件,该算法是单调的且代价是最小的,因而减少了搜索过程中的扩展的节点数,加快了搜索速度。当算法搜索到任何块xk时,则已经找到了该块的正确状态,并将其作为正确状态的输出,从而避免了重复搜索。

2.3 元数据提取流程

基于启发式搜索的元数据信息提取的详细抽取过程可以描述如下:

·训练部分

(1) 初始化模型,包含标题、作者、关键词等15个状态。

(2) 对训练文本进行分块预处理,将已标注好的文本序列转换为标记的文本分块序列,并利用特征提取规则确定部分块的状态。

(3) 采用L-BFGS算法和特征选择建立CRF模型。

·抽取部分

(1) 对输入的论文头部进行分块预处理,将文本序列转换为文本分块序列,并运用特征提取规则确定部分块的状态。

(2) 结合CRF概率模型分别计算各个分块的释放概率和状态转移概率,并利用启发式搜索算法来进行计算。

(3) 求解最优值,输出元数据的状态标记序列。

3 实验结果与分析

本文采用美国CMU大学CORA搜索引擎研制组提供的数据集[7]进行了测试,该数据集提供了935篇用HTML语言标记好的计算机科研论文头部的数据,随机选用其中的835篇作为训练数据, 剩余的100篇作为测试数据。并以状态精确度、状态召回率作为算法的评价性能,定义如下:

各状态精确度=

各状态召回率=

测试结果如表1所示,同时与基于单词和运用Viterbi 算法所得到的结果进行了对比。

通过分析表中的数据可以看出,表1中基于分块和启发式搜索的精确度和召回率比基于单词和Viterbi算法的精确度和召回率都有了很大的提高。因为在以块为单位进行抽取时,由于一个分块只属于一个状态,要么标记正确,要么标记错误。而以词为单位时,如果一个分块的某个单词标记错误,则这个分块也就标记错了。但是从表中的数据可以看出,Title状态的召回率相比之下并没有很大的提高,这是因为title状态没有明显的特征词。对比两种算法也说明了当模型和训练语料一定时,有效的算法能搜索到更接近模型最优解的最近解,从而也说明了启发式搜索算法的有效性。

另外,启发式搜索算法由于在文本分块过程中已经确定了部分块的状态,因此其时间开销相对来说也要小。这是因为启发式搜索算法减少了搜索空间,因而降低了时间复杂度,提高了搜索效率。但是实验中也表明随着训练文本的增加,标记时间也会增加。这是因为当样本数量增加时,词汇量也随之增加,从而也会增加标注时间。

4 结束语

本文借助条件随机场在自然语言处理方面的优势,在运用条件随机场概率模型的基础上采用了一种文本分块技术,并提出了一种启发式搜索算法来对论文头部的元数据进行抽取。实验结果表明该方法在精确度和召回率方面都有了明显的提高。

如何在现有分块的基础上更加严谨地划分状态以及对搜索算法的进一步改进和优化,提高算法效率和实现元数据信息的进一步精确提取将是今后研究的方向。

参考文献

[1]李朝光,张铭,邓志鸿.论文元数据信息的自动抽取[J].计算机工程与应用,2002,21(6):189-235.

[2]狄涤,周竞杨,潘金贵.基于规则的HTML文档元数据提取[J].计算机工程,2004,30(9):85-165.

[3]刘云中,林亚平,陈治平.基于隐马尔可夫模型的文本信息抽取[J].系统仿真学报,2004,30(3):507-510.

[4]Freitag D,McCallum A,Pereira F.Maximum Entropy Markov Models for Information Extraction and Segmentation[C]//Proceedings of the Seventeenth International Conference on Machine Learining.SanFran-cisco:Morgan Kaufrnann,2000:591-598.

[5]Lafferty J,McCallum A,Pereira F.Conditional Random Fields:Proba-bilistic Models for Segmenting and Labeling Sequence Data[C]//Proc of the18th Int Conf on Machine Learning.San Francisco,2001:282-289.

[6]周俊生,戴新宇,尹存燕,等.基于层叠条件随机场的中文机构名自动识别[J].电子学报,2006,34(5):805-809.

正交试验法优选元胡止痛片提取工艺 篇2

关键词:元胡止痛片,正交试验,延胡索乙素,提取工艺

0 引言

元胡止痛片是《中国药典》2010版一部收载的中药品种,由元胡、白芷组成,具有理气、活血、止痛的作用,常用于气滞血瘀的胃痛、胁痛、头痛及痛经[1]。该品种为半浸膏片,即全部元胡及部分白芷的浸膏与其余白芷细粉制粒压片而成。笔者采用正交试验法对其提取工艺进行优选,为优选该制剂的生产工艺提供依据。

1 实验材料

1.1 实验用仪器

本实验所 用仪器 :SF-75型锤击式 粉碎机 ; WCSJ20型万能粗 碎机 ;1793型索氏提 取器 ; R-210/R-215旋转蒸发仪;SHB-III型循环水式多用真空泵;HH-Z型数显水浴锅、电加热套;TD-100多功能微型提取浓缩机组;CHW-5型槽型混合机; YK-90型摇摆式颗粒机;CT(CT-C)型热风循环烘箱;XYP-7小型旋转式压片机;labcoatingⅠ实验型高效包衣机;MB25型快速水分测定仪;JWI-700W计重电子台秤;1/1 000电子天平;岛津LC2010AC型高效液相色谱仪;300 m L带刻度玻璃烧杯;药典筛。

1.2 原辅料

本实验所用的原料:元胡、白芷等药材购自安徽省亳州市药材总公司中药材公司,辅料淀粉购自山东聊城安信药用辅料有限公司,药用乙醇购自新乡市先丰医药新材料有限公司,浅黄色醇溶包衣粉购自安徽山河辅料公司,以上原辅料经公司检验符合质量标准。

2 方法与结果

2.1 提取工艺因素水平确定

已知因素提取3次;选择提取时间(A)、乙醇浓度(B)、乙醇用量(C)3个影响因素,每个因素设3个水平。L9(34)正交试验[2]因素水平设计如表1所示。

按处方比例称取元胡445 g、白芷57 g,分别过万能粗碎机粗碎成0.2~0.5 mm颗粒,按设计的正交试验先浸泡12 h,再进行提取,滤过,滤液合并, 水浴真空减压浓缩,浸膏加入白芷细粉166 g,置热风循环烘箱干燥后,用锤击式粉碎机粉碎成100目细粉,测定延胡索乙素百分比含量。

2.2 实验方法与结果

采用L9(34)正交表安排试验,以粉碎后浸膏混合粉延胡索乙素百分比含量为考察指标。试验安排及结果如表2所示,方差分析结果如表3所示。

从综合评分结果直观分析可知,方差分析各因素两水平间均无显著性差异,影响最大的因素为C, 因素主次顺序为C>A>B。综合考虑最佳提取工艺为A3B3C2,即:提取3次、提取210 min、乙醇浓度70%、乙醇用量11倍量。

2.3 验证试验

2.3.1 最佳提取工艺条件验证

按以上最佳提取工艺,制备3批(批量10 000片) 元胡止痛片。

取元胡4 450 g、白芷570 g,分别过万能粗碎机粗碎成0.2~0.5 mm颗粒,TD-100多功能微型提取浓缩机组提取3次。第1次:先浸泡12 h,提取90 min,70%乙醇5倍量;第2次:提取60 min, 70%乙醇3倍量;第3次:提取60 min, 70 % 乙醇3倍量。浸膏加入白芷细粉1 660 g、淀粉约500 g置槽型混合机50%乙醇制软材,摇摆式颗粒机14目制粒,热风循环烘箱60℃干燥,14目整粒。小型旋转式压片机26 r/min压片,每片片重0.25 g。实验型高效包衣机10%包衣液浓度(60%乙醇:浅黄色包衣粉配制),设定进气温度为80~ 90℃;出风温度为60~75℃,喷雾压缩空气压力0.4~0.5 MPa,包衣机转速为8 r/min,控制包衣喷浆压力为0.35~0.4 MPa,蠕动泵调节喷浆流量为130 g/min;片床温度控制为50℃包薄膜衣。

对每批颗粒(按每片延胡索乙素) 含量、压片每片延胡索乙素含量及薄膜衣每片延胡索乙素含量进行检测, 证明提取工艺的实用性。

2.3.2 合格标准

每片醋延胡索以含延胡索乙素计不得少于75μg。

2.3.3 检测结果对比

每批取样1次进行检测,以确认其重现性,结果如表4所示。

检测结果表明,颗粒每片含量、素片含量、薄膜衣片含量等均符合质量标准,表明优选的元胡止痛片提取工艺可行。

3 结语

基于元数据的作战实验数据共享 篇3

关键词:元数据,数据库,数据共享

0 引言

实验数据是科学实践活动的重要产品,也是后续科学研究工作的重要依据和素材。再强大的科研团队、学术带头人,其占有的时间资源、物质资源毕竟是有限的。因此,对现有各方数据的充分利用是推动科研工作又好又快发展的一条捷径,数据共享则是通向这条捷径的必由之路,作战实验数据共享也为作战相关问题研究工作的向上发展提供了新的有力支撑。

1 作战实验数据共享的意义

随着计算机仿真技术、网络通信技术等高新技术的迅猛发展,作战实验作为公认的认识战争的重要方法,是研究军事问题的重要科学实践活动,在作战方案评估、作战结果预测及作战方法研究等军事活动中发挥的作用日益突出。尤其是近年来,作战实验受到的重视程度越来越高,很多单位和部门都建立了不同类型、不同规模、不同作用的作战实验系统,各种作战实验系统的建设的成果也越来越多,应用的范围也越来越广,但同时也存在以下不足。一方面,多数作战实验系统彼此独立,在研究相对单一条件下的军事问题方面有独到之处,但由于系统间不能实现互联、互通和互操作,数据不能共享,在面对一体化联合作战等复杂条件下的军事问题的研究时则受到很大限制,作战实验系统的规模效应、集群效应和综合效应没能显现。另一方面,在多年来作战实验的过程中生成了类型众多、数量庞大的科学实验数据,同时积累了丰富的军事经验和研究技能,这些数据的作用和深加工潜力甚至超过了作战实验系统本身,但是目前尚没有做到对这些宝贵的数据进行有效的资源整合和共享,数据的重复利用率很低,不利于信息价值的充分发掘,造成了资源的浪费。因此,数据共享已成为制约作战实验系统发展的瓶颈。

2 数据共享的方式

科学数据资源对国民经济、社会、环境发展的重要价值赢得了广泛的认同和重视。地质、海洋、气象、测绘、环境、农业等许多领域和部门已建立了多个科学数据共享平台,并制定了相应的规范和技术标准,尤其是由我国科技部主导的“科学数据共享工程”于2003年启动以来,更是将我国的数据共享工作提升到了新的高度。归纳起来,目前较普遍采用的数据共享方式主要有以下三种。

2.1 集中共享的数据共享方式

集中共享是数据共享研究中最早采用的一种共享模式,其核心是把所有参与共享的数据库统一复制或移植到共享平台上,由共享平台集中管理并向用户提供统一的数据使用服务接口,从而实现数据共享。集中共享的架构比较简单,但是在这种共享模式下,一旦数据源发生了变化就需要把新数据重新移植到共享平台,对平台维护的要求较高,否则会出现用户从共享平台访问到的数据版本滞后于数据源版本的情况。因此,该方式比较适用于各数据源更新不太频繁或数据量不太大的数据共享环境。

2.2 分布共享的数据共享方式

分布共享不再需要将数据源集中,而是依托于以共享平台服务器为核心的计算机网络,共享源数据库可以位于网络上的任何节点,共享平台提供统数据源及访问用户间的数据服务接口,但不参与数据源的管理和维护。相对于集中共享,分布共享方式可以保证所有用户访问到的共享数据都是最新有效版本。位于不同节点数据源的数据库结构和数据格式的差异性很大,共享数据的准确定位与提取依赖的核心技术主要是是搜索引擎技术及数据库中间件技术。类似于ODBC和JDBC的数据库中间件技术现在已经比较成熟,可以实现共享异构数据库资源的目的。

2.3 基于元数据的数据共享方式

元数据已经有比较悠久的历史,许多国家或领域给元数据下过各式各样的定义,但核心意思基本一致。前文提到的我国科学数据共享工程将元数据定义为数据的数据。元数据可以用既定的相同格式来对各种不同类型和结构的数据或信息资源进行描述和诠释,同时给数据源打上了统一、规范的包装。我们也可以理解为是对于数据的注解或全面指南,通过元数据可以反映出描述对象的内部特性和外部特征。元数据对内容和结构都比较简单的数据可能意义不是很大,但对内容信息量大、结构复杂的数据或数据集则非常有意义。基于元数据的数据共享方式首先要根据共享的需求和数据源的特点来制定元数据的内容和格式标准,然后按照标准由数据源生成对应的元数据信息,由共享平台对这些元数据统一管理,当用户向平台提出数据共享服务申请时,平台首先对元数据集进行检索,然后通过检索到的元数据信息索引或链接到对应的数据源进行相应的数据服务操作,从而实现数据共享。采用元数据的方式使共享平台直接管理的数据量级大幅降低、共享资源的结构更加明晰,提高了数据资源管理的效率,也提高了数据检索和定位的速度,更重要的是能更有助于用户更便捷、准确地得到感兴趣的数据。基于元数据的数据共享方式也可以根据需要与前述的两种方式结合应用。

3 基于元数据的作战实验数据共享

作战实验数据共享的目的,一是多个作战实验系统同时工作进行联合作战实验时实现互联、互通和互操作;二是实验结果分析和军事理论中能方便、准确地对各实验系统历史数据进行查询。达成数据共享目的的核心是实现对分布在各个独立作战实验系统中的异构数据快速索引和正确定位。基于元数据的共享方式是解决这个问题的有效途径。

3.1 作战实验数据共享体系结构

基于元数据的作战实验共享平台共分为三个层次结构,分别是:数据层、服务层和应用层。各层次所包含的要素及作用如图1所示。用户通过应用层提出数据操作申请后,共享平台首先在服务层元数据库中检索相应的元数据信息,然后根据元数据属性信息中指示从数据层提取对应的数据源数据。

3.2 数据层

数据层主要由参与数据共享的各作战实验系统的数据源构成,这些数据库中所包含的数据正是我们共享的对象。由于开发过程中各作战实验系统彼此独立,所以这些数据库的类型多样,有Oracle数据库,有SQL Server数据库,有Access数据库,有DB2数据库,还有XML数据库等等,而且空间上处于分布的状态;数据库结构和数据格式更是千差万别;作战实验的特点决定了各系统的数据之间可能存在部分的交叉重叠。数据源的这些特点也正是数据共享所破解的难点。

3.3 服务层

服务层的服务内容主要有两项,即元数据服务和数据源服务。作战实验所涉及到数据的类型很多,若仅使用一种元数据对所有数据源进行描述,则元数据的属性项目数量会非常庞大,而这些属性值又大部分为空值,这样就会导致生成的元数据甚至比数据源本身还复杂。所以,应按照数据源的作用和属性特点对其分类,属性相近的划为一类,由一种元数据对该类进行描述,并为每种类型制定元数据标准。元数据服务的流程为数据源首先经过分类器进行分类,然后由各类元数据标准模型对其标准化,生成与之对应的元数据,同类元数据可以组成一个元数据集,各元数据集构成元数据库,完成数据源到元数据之间的映射。数据源服务主要是指与数据源访问相关的服务。数据共享不是简单的远程读写数据,它的意义在于提高数据的利用价值,使用户从共享到的数据中获取到准确、正确、尽可能多的信息。因此,数据源服务包含数据元素提取、异构数据分析、数据语义转换及数据质量评估等多个服务过程。比如,当用户向共享平台提交了某一关键词的数据查询请求,平台首先在元数据库中检索与关键词相关的元数据,数据元素提取服务将按照检索到的元数据信息中指示的数据源位置,在各作战实验系统数据库中把相关数据逐条定位,做好提取准备,然后根据元数据中指明的数据访问协议、参数对数据元素进行提取;因为提取出来的多条数据可能原本隶属于若干类型和结构不同的数据库,所以要通过异构数据分析服务判别数据异构的形式和程度,是系统异构还是数据库异构或者是语法异构;进而通过数据语义转换服务将数据规格化,转换为一致的语义形式;为挖掘数据的信息值提高其利用价值,数据质量评估服务利用评估模型将对检索到的数据进行质量评价供用户参考,评估内容包括数据完整性、数据精度、数据来源、数据生产时间以及对应元数据中体现的其他重要属性和外部特征;最后,把数据、数据质量评估结果、数据外部关联信息呈献给用户。

3.4 应用层

应用层的主要由与数据操作、数据管理及元数据管理功能相关的程序模块构成,例如数据浏览、数据查询、数据订制、数据下载、数据维护、数据分发及元数据管理等。用户通过应用层接口同共享平台交互,使用共享数据。管理人员也通过应用层对数据源和元数据库进行管理和维护。

4 结论

建立以元数据为基础的作战实验数据共享平台是一条解决当前军事问题研究中所面临的数据共享问题的有效途径,本文在此方面仅展开了初步的研究,无论是研究的范围、深度和广度都还不够。下一步将围绕共享平台的体系结构,开展可靠性、安全性、容错性等方面的研究。

参考文献

[1]牛晓琳,季民,赵志.刚基于元数据管理的数据共享研究[J].舰船电子工程,2006,(1).

[2]严冬梅,尚翔.论科技创新的基石:科学数据共享[J].科学管理研究,2005,23(1).

基于元数据的数据交换系统研究 篇4

随着信息技术的发展,业务领域的变化频率越来越高,业务流程再造的速度越来越快,数据模型不断升级,导致数据迁移需求不断增加,跨部门业务融合也导致数据交换的需求持续增加。因此,建设一个数据交换平台迫在眉睫。该平台不仅可以提供点到点的系统间数据交换,还能实现点到面的跨部门、跨业务的数据集成,对整体数据资产提供有力支撑。

目前,主流的数据库产品大多提供了数据迁移工具,但这些工具一般只适用于数据的导入、导出,并且只能支持一个或几个特定类型的数据库[1]。现在的问题是用户使用的数据库产品种类众多,比如格式化的数据库有Oracle、SQL Server、DB2、MySQL、Access、Sqlite、达梦、金仓等;半结构化的数据格式有xls、csv、json、xml等;NoSQL类型的数据库有MongoDB、Redis、HBase等。无论是数据迁移还是数据集成,均需要在它们之间交换共享数据。如果工具只支持一对一的数据转换,就可能需要开发、维护、学习使用一批这样的工具[2]。因此一个通用的数据交换系统是实现数据迁移和数据集成重要的基础工具。

1 数据交换过程

一个典型的数据交换过程包括以下几个步骤:数据抽取、数据转换、数据加载[3],为了顺利实现数据交换,还需要对以上几个过程加以控制,这就是人们常说的ETL(Extract Transform Load),这里加上了控制(Control),简称为ETLC,如图1所示。

数据抽取,就是从数据源中获取数据。进行数据抽取是进行数据交换的首要步骤,它是指从异构的数据源中获取需要的数据。这里的异构数据源既包括传统的结构化数据库(支持SQL标准)、半结构化数据文件(如XML文件、JSON文件、XLS文件等),还包括不断涌现的NoSQL数据库(如:MongoDB、Memcached、HBase等)。建立一个通用的数据访问接口是获取不同数据源数据的关键。

数据转换,就是根据目标数据源的要求转换数据,实现异构数据源之间的数据转换是进行数据交换的重点。完成从异构数据库中提取数据之后,为了满足目标数据库对数据的要求,需要对其进行相应的转换。建立一系列数据转换规则是满足不同数据转换要求的关键。

数据加载,就是将数据加载到目标数据源。进行数据加载是达成数据交换目标的最后一环,它需要按照事先制定的加载策略,将经过转换的、符合要求的数据有针对性地加载到目标数据库中。

过程控制,就是启动、记录数据抽取过程。对数据交换过程进行控制是数据交换的有效保障。针对不同的数据交换需求,应能够自动地启动交换任务,收集、记录交换过程中的日志和异常信息,为掌握交换事务,及时发现和处理各种异常提供支撑。

2 数据交换元数据

通过对数据交换过程的分析可以看出,进行数据交换的基础是对数据源及其映射关系进行描述,数据交换过程需要对数据抽取、数据转换、数据加载、过程控制进行描述。元数据是对数据资源的规范化描述,对于数据交换过程中涉及到的数据源以及交换行为,可以抽象为以下几类元数据。

2.1 数据源描述元数据

数据交换实质就是数据从一个数据源通过抽取、转换、加载到另一个数据源,因此,数据交换的基础就是要对数据源进行详尽描述。

数据源按其类型不同,可概括为结构化数据库、半结构化数据文件、NoSQL数据库。无论何种类型的数据源,在进行数据交换时,首先都要知道如何访问,这就需要描述数据源所属的数据库类型、数据库版本、数据库名称、数据库的URL、访问数据库的用户名与密码等信息。

数据库逻辑上是由数据表组成,在进行数据交换时,要知道需要交换的数据在哪张表里,因此需要描述数据表信息,包括表的名称、表的语义描述、表所属的数据库等。

数据表是由一系列字段构成的,在进行数据交换时,最小的粒度是数据从源端的某张表的一个字段至目标端一张表的某个字段,因此对表字段的描述至关重要。字段的描述信息包括:字段的名称、字段的语义描述、字段所属的数据表、字段类型、字段的约束信息等。

通过以上分析,对数据源的描述可以归纳为三元组,记为D(Db,Dt,Df),其中Db为数据库描述信息,Dt为数据表的描述,Df为数据字段的描述,其逻辑关系如图2所示。

2.2 数据映射元数据

数据交换是不同数据源之间的数据转换,最终反映的是数据字段之间的映射关系。对于异构数据的交换,这种映射关系不仅包括不同数据要素之间的对应关系,还包括字段之间的转换规则。因此对于数据映射的描述,可以用四元组表示,记为R(Rd,Rt,Rf,Rc),其中Rd为源端数据源与目标端数据源的对应关系,Rt为源端数据表与目标端数据表的对应关系,Rf为源端数据字段与目标端数据字段的对应关系,Rc为源端数据字段与目标端数据字段的转换规则,其逻辑关系如图3所示。

2.3 交换操作元数据

实现异构数据交换的核心功能是进行ETL[4],即抽取、转换和加载,为了提高整个ETL过程的可控性、灵活性、通用性,需要对每个操作过程加以控制,因此交换操作元数据由数据抽取元数据、数据转换元数据、数据加载元数据和操作控制元数据组成。

2.3.1 数据抽取元数据

数据抽取就是按照事先制定的抽取策略将需要的数据从源端数据源抽取出来,对于数据抽取元数据的描述可用三元组表示,记为E(Ed,Es,Ep)。其中Ed为源端数据源,包括数据源连接信息和结构信息,Es为数据抽取范围,包括需要抽取的表及字段信息的集合和每张表内需要抽取的内容范围,Ep为抽取策略,分为手动抽取、定时抽取、准实时抽取等。

2.3.2 数据转换元数据

数据转换就是根据目标数据结构与源数据结构的映射关系,按照转换规则,将从源端数据库抽取出来的数据转换为与目标数据库相适应的数据,描述数据转换元数据可用四元组表示,记为T(Ts,Td,Te,Tr)。其中Ts为源端数据库,包括数据结构信息,Td为目标数据库,包括目标数据库结构信息,Te为需要转换的数据,是数据抽取结果的实例,Tr为源端数据结构与目标端数据结构的映射关系,是数据映射的实例。

2.3.3 数据加载元数据

数据加载就是将特定的、经过转换的数据加载到目标数据库中,描述数据加载元数据可用三元组表示,记为L(Ld,Lt,Lp)。其中Ld为目标数据库,包括数据库连接信息和结构信息,Lt为需要加载的数据,是数据转换结果的实例,Lp为数据加载策略,分为先清空后加载、增量加载、直接追加转载等。

2.3.4 操作控制元数据

数据交换需求,可以抽象为一个交换任务,一个交换任务是由若干个数据交换操作过程来实现的,为了使数据交换的各部分有机协调工作,需要操作元数据控制整个数据交换过程,描述操作元数据可用五元组表示,记为C(Ct,Cd,Cs,Cr,Cl)。Ct为与一次交换任务相关的信息,Cd为当前交换操作的目标数据库,Cs为当前交换操作的源数据库,Cr为当前交换操作关联的数据映射集合,Cl为当前交换操作过程产生的日志信息结合。

3 设计实现

3.1 系统逻辑

基于以上数据交换元数据,一个通用的数据交换系统框架由5层结构组成,分别是数据源层、数据访问层、元数据层、交换功能层和应用层,如图4所示。

数据源层:需要进行数据交换的所有数据源,能够支持数据源动态地加入或退出。

数据访问层:功能模块访问数据源的统一接口,它为上层的功能应用屏蔽了异构数据源访问差异,其核心是为不同类型的数据源建立相应的适配器。

元数据层:存储数据交换功能的元数据,它是数据交换功能的驱动源。

交换功能层:由实现数据抽取转换的各功能模块组成,包括数据抽取功能、数据转换功能、数据、数据加载功能和过程控制功能等。

应用层:提供数据源注册管理、数据映射编辑、数据交换策略管理、交换任务管理、交换任务执行、交换日志管理等用户交互操作界面。

3.2 系统应用流程

数据交换系统应用流程包括:

(1)注册数据源。按照数据源描述元数据的要求,将需要进行数据交换的数据源加入到交换系统中,详细描述数据源相关信息,包括连接信息和数据结构信息。

(2)编辑数据映射。根据数据交换需求,针对参与交换的源数据库和目标数据库的结构差异,建立字段级数据映射关系,选择相应的数据转换函数。

(3)数据交换任务管理。创建数据交换任务,设置交换策略。选择源数据库和目标数据库,确定任务启动方式(手动或自动)、启动时间、间隔周期等参数;根据数据抽取、数据转换和数据加载元数据要求,描述数据抽取范围、数据抽取策略、数据加载策略等。

(4)数据交换任务执行。根据交换任务启动策略,启动一个交换任务。系统完成数据抽取、数据转换、数据加载等动作,并记录任务执行过程中的相关日志信息。

(5)数据交换日志管理。查看相关任务执行过程中的日志信息。

4 结语

本文通过分析数据交换过程,提炼出数据交换的元数据模型,基于这些元数据模型构建了通用的数据交换系统。实践表明,基于元数据驱动的数据交换系统,屏蔽了异构数据源的差异,适应了数据映射规则的多样可扩展特性,满足了交换策略的灵活可定制要求。通过该系统,可以集中管理异构数据源,进行异构数据之间的转换,具有良好的适应性、灵活性、通用性和可扩展性,为进行大规模的数据迁移和数据集成提供了基础支撑。

参考文献

[1]张朝晖,徐立臻,董逸生.一种基于SOA的企业集成平台[J].计算机工程,2011,37(5):115-119.

[2]邓新莉,张四平,刘珊,等.基于中间件平台的异构数据交换与集成[J].四川兵工学报,2011,32(3):26-28.

[3]邹卫国,郭建胜,王毅.基于XML的异构数据交换研究[J].中国管理信息化,2009,12(24):184-189.

[4]王盼卿,刘增良,陶源.基于元数据的ETL工具集成研究[J].2009,25(12):58-61.

基于数据元的数据交换规范研究 篇5

1 数据层面上的数据异构

信息系统一般可以分为三个层面:数据层面、业务处理逻辑层面和表示层面。其中数据层面是整个系统的基础和核心,数据层面上的数据异构是导致系统之间难以进行数据交换的主要原因。典型的数据层面上的数据异构现象主要有以下几个方面:

1)名称不一致:即对同一个概念采用不同的名称命名。名称不一致造成人和计算机都难以寻找数据之间的对应关系。

2)定义不一致:即同一个名称所描述的概念不一定相同。定义不一致会造成人们对数据含义理解的歧义。

3)数据类型不一致:即存储数据时采用的数据类型不一致。数据类型不一致在数据交换时会导致数据溢出或者数据不兼容等问题。

4)数值表示不一致:即数据表达格式的不一致,包括计量单位、有效数字位数等。数值表达格式不一致会造成数值理解错误。

3 数据元的基本概念

数据元是用一组属性描述其定义、标识、表示和允许值的数据单元[1]。数据元可以理解为不可再分的数据的基本单元,是组成数据结构的基本元素。

数据元的基本模型如图2所示。

数据元由对象类、特性和表示三部分组成。对象类是我们所要研究的现实世界或抽象概念中事物的集合,例如人、汽车、房子等。特性是某个对象或实体的特征,是对象有别于其他成员的依据,例如人的姓名、性别等。表示描述数据元被表达的方式,包括数据类型、值域等,必要时也包括度量单位、字符集等。数据模型中的实体对应于对象类,属性对应于特性和表示。

数据元也可以看成是由数据元概念和表示组成。数据元概念是能以数据元的形式表示的一种概念[3]。一个数据元概念由一个对象类和一个特性组成。一个数据元概念可以与多种不同的表示方式结合,组成多个数据元。特性与表示可以组成与对象类无关的通用数据元。通用数据元可以作为制定数据元的模板使用。

4 领域数据元目录

数据元理论主要以数据元目录的形式发挥作用。数据元目录是列出并定义了全部相关数据元的一种信息资源[4]。数据元目录中的数据元一般包括标识符、名称、定义、数据类型、计量单位、允许值、等基本属性信息。

数据元目录一般是在一定的领域范围内使用的,它为领域内所涉及概念的名称、定义、数据类型、表示格式等以数据元的形式作了规范、统一的定义,并为每个数据元分配一个全局唯一的标识符。标准化的数据元目录是领域内唯一的、共同遵守的数据字典,可以为消除数据异构、实现数据的标准化提供统一的参照标准。

5 基于数据元的数据交换规范

基于数据元的数据交换以标准化的领域数据元目录为继基础,通过建立数据项与数据元之间的关联以及数据转换关系,以标准化的XML文件为载体发送和接收数据,实现数据交换。

具体操作流程为:

1)在所有需要进行数据交换的系统中建立映射关系表,记录每个数据项与数据元的映射关系(Relation Mapping),其中包含数据元标识符(Data Element_ID)、数据项标识符(Data Item_ID)和转换规则(Transform Formula)三项内容。转换规则包括数据类型转换、计量单位换算等。若系统中数据项的数据类型与数据元的数据类型不能实现转换,则需要根据实际情况对系统的数据类型作必要的修改。

2)系统发送数据时,根据映射关系将每个数据项编写成一个XML数据节点(Data Node),然后把所有的数据节点组织成一个XML文件(磁盘文件或内存文件)发送给接收方。数据节点中包含数据元标识符和数据(Data),编写数据节点时需要根据映射关系中的转换规则将数据转换成与数据元的数据类型、表示等一致的标准的数据。

3)接收方收到XML文件后,根据本系统的映射关系表将每个数据节点中的数据转换成符合本系统的数据。

因为所有的映射关系表都是以同一个数据元目录为参考标准的,网络中传输的数据又都是根据该目录进行标准化的数据,任何遵守这一套交换规范的系统只需要建设一个映射关系表就可以很方便的与其他所有遵守这一规范的系统进行数据交换。

6 结束语

数据元的标准化是数据标准化的核心内容,但数据元理论的作用却不仅仅是数据标准化,制定数据交换规范也只是其很小的一部分功能。本文在分析了数据异构的各种现象和介绍了数据元理论的基本概念的基础上,制定了一套可复用的数据交换规范,有效避免了建立数据映射关系的重复劳动,使异构系统之间的多方互联变得简单易行。

摘要:针对信息系统之间的数据异构导致数据交换困难的问题,研究利用数据元理论制定一套基于数据元的、统一的、可复用的数据交换规范,以实现异构信息系统之间高效的数据交换。

关键词:数据元,数据异构,数据交换,可复用

参考文献

[1]GB/T18391—信息技术数据元的规范与标准化[S].

[2]SDS/T2132—2004数据元标准化的基本原则与方法[S].

[3]ISO/IEC11179—2004.Information technology-Metadata registries(MDR)[S].

基于数据元的数据集成技术研究 篇6

近年来,基于本体[2—5]的数据集成方法研究受到了高度的关注。基于本体的数据集成方法是建立全局本体和具体数据源的局部本体,以及全局本体和局部本体、局部本体之间的映射关系,完成异构数据源之间语义上的映射,最后将这种语义上的对应关系转换为数据查询,完成数据集成。但是基于本体的研究方法仅考虑了模型概念的外延即概念之间的关系,没有考虑概念的内涵,对实体属性的语义只能依靠自然语言描述或分析模型的结构,缺少对数据模式元素进行精确描述的语义方法。本文提出的基于数据元的数据集成方法,通过对概念的内涵进行形式化的语义描述,可以实现不同模型之间,乃至实例级的语义映射。

1数据元简介

数据元是用一组属性描述定义、标识、表示和允许值的数据单元,是在一定的环境下不必要再细分的最小数据单位。数据元是可识别和可定义的,每个数据元都有其基本属性,如:名称、定义、数据类型、精度、值域等。一个数据元由数据元概念和表示两部分组成。数据元概念(Data Element Concept)是能以数据元的形式表示,且以任何特定的表示法无关的一种概念。当一个表示被联合到一个数据概念时就能够产生一个数据元。按照国家标准,数据元分为数据元概念、通用数据元、应用数据元。通用数据元提供的是一般的内容,而非具体内容,具体内容则由应用数据元提出。如通用数据元可指“日期”、“姓名”,而引伸出来的应用数据元可以更为具体,如“考试日期”、“入学日期”、“学生姓名”、“教师姓名”等。应用数据元规定为一个独立应用的数据范畴。一个应用数据元必须来自某个通用数据元,遵循通用数据元给出的框架。一个数据模型中的数据项由于限定于数据模型的应用范围,因此是一个应用数据元。图1描述了用于数据元结构的术语与传统的数据建模术语的关联,在数据模型中,一个数据项可以等同于一个数据元,数据模型的数据元名称的典型形式是实体名称和实体属性名称的合成,如图2所示。

2 数据元的语义树[6]描述方法

基于数据元的数据集成需要解决的一个关键问题是语义的描述方法,本文采用的是语义树的描述方法,语义树提供了一种形式化的语义描述方式,可以方便地描述数据元的语义。

如图3所示,在数据元的语义树中,描述数据元“表示”的节点是叶子节点,不再受其它节点限定。抽象语义树通常对应一个通用数据元,通过附加规则节点可派生各种应用数据元。在数据元的语义树中,特定节点是根节点,对象类可被其它限定词进一步限定。在对数据模型中的数据项进行描述时,由于数据项与具体应用场景有关,所以在相应的数据元的语义描述上增加应用场景约束,才能真正地描述该数据项在数据模型中的语义。数据项数据元以属性、实体、约束为中心,通过对实体进行直接限定和间接限定,构成对数据模型数据项语义的完整描述,图4所示。

3 基于数据元语义树的映射实现

3.1 语义树中各节点的权值分配规则

设N为语义树T中的任意一个节点,以N为根的子树记为sub(N),N的子节点数为n,N的第i个子节点记为child(N,i),节点N的权记为W(T,N),子树sub(N)的权记为W(sub(N))。语义树中各节点的权值分配规则如下:

(1) W(T)=1;

undefined

undefined

从上可以看出,一棵语义树的权为1,等于语义树中所有节点的权值之和。子树的根节点占子树权的一半,兄弟节点代表的子树具有相同的权。可见,离语义树的根节点越近权越大,代表的语义概念越重要,这符合一般概念定义的逻辑。

3.2 数据元语义树的映射实现举例

假设两个同类数据项X与数据项Y,分属于实体t1和t2,X和Y的语义树分别为Tx和Ty,对Tx和Ty进行比较,结果如图5所示。

比较结果由Tx∩Ty、Ty-Tx、Tx-Ty三部分组成:

(1) Tx∩Ty:数据项相同的部分,是X和Y具备同类性的基础。

(2) Ty-Tx:给出了数据项Y独特的语义约束部分。如Z∈Ty,Z∉Tx,则Z∈Ty-Tx。当Ty-Tx为空时,表示数据项X下的实例只是数据项Y实例的一部分;当Ty-Tx不为空时,表明数据项Y下的实例数据只是数据项X下实例数据的一部分;Ty-Tx用来选择数据实体集。

(3) Tx-Ty:给出了数据项X独特的语义约束部分。如Z∈Tx,Z∉Ty,则Z∈Tx-Ty。当Tx-Ty为空时,表示数据项Y的实例是数据项X实例的一部分;当Tx-Ty不为空时,表明数据项Y下的实例数据只是数据项X下实例的一部分;Tx-Ty用来决定数据项Y的实例筛选条件。

例如,学生信息数据库除了存储全体学生的基本信息外,为了研究男女生英语成绩的差异还建立了男生成绩表和女生成绩表。

(1) 表“学生信息”是用来存放学生基本信息的数据表,其每一个实例描述一个学生的基本信息,包括主键学号、姓名、院系等,院系的值是一组枚举值,包括石油工程学院、化学化工学院、计算机学院、电子科学学院、外国语学院、艺术学院等。

(2) 表“男生英语”用来记录所有院系男生的英语成绩,其中字段学号是外键,引用表“学生信息”中的学号。

(3) 表“女生英语”与表“男生英语”的结构相同,但表中的实例记录的是所有院系女生的英语成绩,其中字段学号是外键,引用表“学生信息”中的学号。

现在,我们需要统计“计算机学院全体学生的英语成绩”,把“计算机学院全体学生的英语成绩”记为X,则其对应的语义树Tx如图6所示:

首先用X的语义树Tx与各数据项语义树进行比较,得到两个侯选数据项:“男生英语.成绩”、“女生英语.成绩”。令Y为“男生英语.成绩”,则对应的语义树Ty如图7所示。

比较X、Y的语义树Tx、Ty。比较结果Tx∩Ty、Tx-Ty、Ty-Tx分别在图6、图7中用虚线框标出。在图6中Tx-Ty中,可以构成路径data_value.achievement.student.department.identifier="计算机学院",而表“男生英语”的其它数据项的路径都没有与之完全匹配的,但外键“学号”与之部分匹配,由于“男生英语.学号”对应的主键是表“学生信息”中的学号,因此在表“学生信息”中查找相应的数据项,得到数据项“院系”的路径与之匹配。因此得到约束条件“学生信息.院系=′计算机学院′”和关联条件“男生英语.学号=学生信息.学号”,两者相与就得到筛选条件“男生英语.学号=学生信息.学号and学生信息.院系=′计算机学院′”。

同理,与图8中的数据项“女生英语.成绩”的语义树比较,得到筛选条件“女生英语.学号=学生信息.学号 and 学生信息.院系=′计算机学院 ′”。将以上结果用关系数据库SQL语句表达,结果是:

(1) select 男生英语.成绩 from 男生英语,学生信息 where男生英语.学号=学生信息.学号 and学生信息.院系=′计算机学院′;

(2) select 女生英语.成绩 from 女生英语,学生信息where女生英语.学号=学生信息.学号 and 学生信息.院系=′计算机学院 ′。

把两个查询结果合并在一起,可以得到“计算机学院全体学生英语成绩”需要的全部数据。

4 结论

由于数据元语义树的子树本身也是一棵树,因此容易处理子映射。在上节的例子中,“计算机学院全体学生英语成绩”不仅映射到了概念相似的数据项“男生英语.成绩”和“女生英语.成绩”,而且映射到了相关的实体和属性“学生信息.院系”,因此相关概念的映射保证了映射概念的语义完整性。在实际项目中,对7 000多条数据元进行了语义描述,通过映射计算,均能得到正确的映射结果。

参考文献

[1] Maurizio L.Data integration:a theoretical perspective.Proceedingsof the ACM SIGACT-SIGMOD-SIGART Symposium on Principles ofDatabase Systems,2002

[2]周刚,郭建胜,石磊.基于本体的异构数据源集成系统分析与设计.北京联合大学学报(自然科学版),2007;21(1):45—48

[3]张磊,吴笑凡,谢强,等.基于Ontology的多数据源语义集成研究.信息系统,2005;28(6):656—659

[4] Irina P,Heli H,Juha T.Semantic interoperability information integra-tion by using ontology mapping in industrial environment.Proceedingsof the 10th International Conference on Enterprise Information Sys-tems,ICEIS 2008,2008;5:465—468

[5]鱼滨,郑娅峰.基于本体的异构数据集成方法及其实现.计算机应用与软件,2007;24(9):30—33

元数据提取 篇7

指挥信息系统一般都是以数据库为后台进行开发的, 其功能与性能测试往往需要一定量的数据为基础。由于安全保密的原因, 在某信息系统的开发过程中不能直接加载真实数据进行测试。因此, 需要测试人员录入模拟数据对系统进行全面测试。若采用手工录入的方法, 以每张表的记录数百万条计, 工作量会非常大, 且此工作没有继承性, 系统的测试工作完成后, 录入的测试数据也不可能在另一个系统测试时再次重用。在实际工作中, 设计一个通用的模拟数据自动生成工具非常必要。该工具根据用户对数据的不同需求, 通过元数据对数据库结构的描述, 按照设定的模拟数据生成规则, 生成海量的模拟数据。以下介绍的是基于Oracle数据库开发的基于元数据、业务规则、样本数据的通用模拟数据生成工具的设计策略。

2 系统组成及框架

该系统组成及连接关系如图1所示。其中生成规则设置模块主要实现元数据提取与描述、数据表数据量设置和字段数据生成规则设置等功能;模拟数据生成模块根据元数据、规则数据和可作为样本数据的基础数据, 生成目标数据库, 生成的数据可以直接插入目标数据库中, 也可以生成数据文件, 通过Oracle提供的数据加载工具直接加载。

3 系统实现

系统的核心是模拟数据生成模块, 按对数据生成的方式不同, 划分为3个子模块, 每个模块根据测试目的, 实现不同模拟数据的生成。

3.1 基于元数据的测试数据生成法

3.1.1 基本思路

通过注册的元数据或者从数据库管理系统中获得元数据后 (通常以结构性元数据为主) , 工具软件根据数据库中每个表各个字段类型和用户数据数量需求, 自动生成相应的字符型数据、数字数据、日期数据等。

其中, 主键字段赋值根据字段类型可以按照字符字段赋值或数字字段赋值, 并将产生的数值在已生成的数值集中比较, 确保主键值的唯一;字符字段赋值则随机生成不长于字符长度的字符值;数字字段赋值则在字段最小值与最大值之间随机生成一个数字;日期字段赋值则是在最小日期值与最大日期值之间随机生成一个日期值。

3.1.2 基本流程

其生成流程如图3所示。

3.1.3 应用场合

基于元数据的测试数据生成法生成数据速度快, 但生成的数据仅符合数据库表数据结构设计要求, 数据本身不包含特定的含义, 仅限于系统性能测试和压力测试使用。

3.2 基于业务规则的模拟数据生成法

3.2.1 基本思路

基于业务规则生成模拟数据能否满足用户需求, 重点在于业务规则的制定。例如, 要模拟某地区电话号码数据, 那么确定该地区的区号、号码长度、区号和号段范围等规则, 就必须与用户对业务需求进行深度交流来获取。具体实现是通过定义表与表之间的参照关系、字段与字段之间逻辑关系、组合关系以及字段值与基础表数据值的引用关系, 生成意义明确、逻辑合理、关联紧密的模拟数据。

(1) 参照规则:根据关系数据库理论, 外键字段值一定属于它参照表的主键字段值的集合。由于参照的主表不能为空, 因此, 在模拟数据生成过程中, 必须首先生成主表模拟数据, 然后再生成从表数据。

(2) 引用规则:设定一些基础数据表, 然后在某些表的某些字段中引用这些基础数据表的数据, 从而使得生成的数据具有一定的含义。比如姓氏表、名字表, 可用于人员情况中人员姓名。引用规则看起来和参照规则相似, 但参照规则的参照表和被参照表同属于目标数据库;而引用规则中的参照表属于目标数据库, 被参照表属于基础数据库。

(3) 逻辑规则:通过设定一组字段之间的逻辑关系, 确定这组字段数据值大小、先后等关系。比如, 开工日期应早于竣工日期。

(4) 组合规则:将一个字段的值设定为几个特定值的组合。组合规则可以由多个参数组成, 各组合参数可以从基础数据表中取值, 也可以从目标数据库中其他表中取值, 还可以是固定的一个词。比如, “公司名称”字段的值可以设定为“地名”加“通信责任有限公司”, 其中“地名”可以从基础数据库中的地名表取值, “通信责任有限公司”为一个固定词组。

(5) 关联规则:在一个表中, 字段之间存在一定的关联关系。比如, 所在地、经度和纬度3个字段的值, 可以从基础数据表地名标准表中选取一组数据值分别赋给台站情况表中的所在地、经度和纬度字段中。

3.2.2 基本流程

基于业务规则的模拟数据生成的基本流程与基于元数据的测试数据生成流程基本相似, 只是在字段数据生成部分存在一定差别。

(1) 参照规则数据生成流程:

(2) 引用规则数据生成流程:

(3) 逻辑规则数据生成流程:

(4) 组合规则数据生成流程:

(5) 关联规则数据生成流程:

3.2.3 应用场合

基于业务规则的模拟数据生成法生成数据速度稍慢于基于元数据的测试数据生成法, 但生成的数据具有一定的物理意义, 并符合一定的业务规则, 数据本身包含一定的含义, 数据的可理解性更强, 除了可用于系统性能测试和压力测试使用之外, 还可用于系统的培训和演示。

3.3 基于样本数据的仿真数据生成法

3.3.1 基本思路

基于样本数据的仿真数据生成法是利用一定数量的真实数据, 按照设定的偏移规则进行随机偏移, 从而使得数据的真实性下降, 生成类似真实数据的仿真数据。仿真数据生成法实际上就是以真实数据作为基础数据, 并根据字符、数字或日期等类型的字段整体进行偏移规则设置, 也可以对以上字段类型的字段单独进行偏移规则设置。

3.3.2 基本流程

基于样本数据的仿真数据生成的基本流程与基于元数据的测试数据生成流程基本相似。只是在字段数据生成部分存在一定差别, 其字段数据生成的流程如图9所示。

3.3.3 应用场合

基于样本数据的仿真数据生成法生成数据速度较快, 生成的数据与真实数据具有很高的相似度, 物理意义明确、逻辑关系清晰, 数据的可理解性更强。适用于系统的演示和演练。由于该方法的基础是真实数据, 数据偏移过程中需要从真实数据中查找偏移规则中相匹配的某个值, 因此, 生成仿真数据的速度比其他方法稍慢。

4 结语

采用上述方法研制的工具, 在对某研制系统进行性能测试过程中取得了很好的效果。对比实验, 若用手工方式录入一张台站基本情况表, 需录入的字段包含台站名称 (关联引用字段) 、台站类型 (关联引用字段) 、台站状态 (关联引用字段) 、经度 (NUMBER) 、纬度 (NUMBER) , 共20条记录, 花费大约15min, 而用此工具生成5 000条记录的数据, 采用基于元数据的测试数据生成法大约花费3min, 采用基于生成规则的模拟数据生成法大约花费12min, 采用基于样本数据的仿真数据生成法大约花费16min。对比结果表明, 使用该工具大大节省了人力和时间。此工具除运用在系统测试阶段外, 还可应用在系统开设的数据准备阶段, 为保证系统各项功能运行正常, 系统使用前必需准备大量的初始数据, 运用此工具, 可实现初始数据的加载, 避免了人工加载数据的耗时、耗力的弊病。

摘要:信息系统的测试过程中需要大量的数据支撑, 纯手工录入的方式远不能保证系统测试数据的需要。以某指挥信息系统为背景, 以Oracle数据库为平台, 基于元数据、多种生成业务规则和样本数据, 开发了一个通用的模拟数据生成工具。

关键词:元数据,业务规则,样本数据,模拟数据

参考文献

[1]冯梅.通用模拟数据自动生成工具设计[J].现代电子工程, 2007 (4) .

[2]RICK GREENWALD R.Oracle Essentials:Oracle Database[M].CA:O’Reilly Media, Inc., 2008.

上一篇:和谐探究下一篇:农户投资实证分析