元数据关系的图形化显示方法及装置的制作方法

文档序号:6341404阅读:299来源:国知局
专利名称:元数据关系的图形化显示方法及装置的制作方法
技术领域
本发明涉及元数据领域,具体涉及一种元数据关系的图形化显示方法及装置。
背景技术
在企业级数据仓库中,涉及的表和程序非常多,通过元数据的概念与特点,对上下文关系描述,利用元数据关系解析建立起对象之间的关系。其关系表可以描述为一个四元组的对象[关系名、输入对象、输出对象、转换规则]。这种数据关系在数据仓库的正向建模、逆向工程和程序理解等都发挥着重要的作用,可以帮助软件工程师理解仓库系统。基于元数据自动解析程序已经对系统收集建立了要进行分析的接口、表、程序、字段、应用之间的关系。如何将这些关系直观地呈现出来,目前主要采用的是通过表格进行展示的。虽然表格可以完整展示数据流图的关系,但不够直观,且现有的显示方法需要人工参与,自动化程度不高。

发明内容
本发明的第一目的是提出一种自动化的元数据关系的图形化显示方法。本发明的第二目的是提出一种自动化的元数据关系的图形化显示装置。为实现上述第一目的,本发明提供了一种元数据关系的图形化显示方法,包括将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到对应的前驱元数据对象为空或者其他前驱元数据对象为空时,停止持续执行的操作,得到待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到对应的后驱元数据对象为空或者其他后驱元数据对象为空时,停止继续执行的操作,得到待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;根据第一关系链表及第二关系链表,图形化显示待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。为实现上述第二目的,本发明提供了一种元数据关系的图形化显示装置,包括第一处理模块,用于将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到对应的前驱元数据对象为空或者其他前驱元数据对象为空时,停止持续执行的操作,得到待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;第二处理模块,用于将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到对应的后驱元数据对象为空或者其他后驱元数据对象为空时,停止继续执行的操作,得到待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;图形化显示模块,用于根据第一关系链表及第二关系链表,图形化显示待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。本发明各个实施例中,通过根据该第一关系链表及第二关系链表进行元数据对象关系的图形化显示,将待分析的元数据对象的前面相关的元数据对象(即前驱元数据对象)和其后续的相关元数据对象(即后驱元数据对象),在同一流程图中自动建立的易读性强的元数据对象流程图。


附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一并用于解释本发明,并不构成对本发明的限制。在附图中图1为本发明的元数据关系的图形化显示方法的实施例一流程图;图2为本发明的元数据关系的图形化显示方法的实施例二流程图;图3-8为本发明的元数据关系的图形化显示方法的实施例示意图;图9为本发明的元数据关系的图形化显示装置的实施例结构图。
具体实施例方式以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。方法实施例图1为本发明的元数据关系的图形化显示方法的实施例一流程图。如图1所示, 本实施例包括步骤102 将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到对应的前驱元数据对象为空或者其他前驱元数据对象为空时,停止持续执行的操作,得到待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;步骤104 将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到对应的后驱元数据对象为空或者其他后驱元数据对象为空时,停止继续执行的操作,得到待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;步骤106 根据第一关系链表及第二关系链表,图形化显示待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。本实施例通过根据该第一关系链表及第二关系链表进行元数据对象关系的图形化显示,将待分析的元数据对象的前面相关的元数据对象(即前驱元数据对象)和其后续的相关元数据对象(即后驱元数据对象),在同一流程图中自动建立的易读性强的元数据对象流程图。图2为本发明的元数据关系的图形化显示方法的实施例二流程图。图3-8为本发明的元数据关系的图形化显示方法的实施例示意图,现联合图2-图8进行解释说明。如图 2所示,包括步骤202,根据待分析元数据对象,加载所有相关的元数据对象,建立对应的关系链表,其中该所有相关的元数据对象包括待分析元数据对象的前驱的所有对象和后驱的所有对象等;具体解释如下步骤1,创建分析对象节点,具体如根据待分析的对象,从数据库中查找此对象的信息,包括对象的ID,类型、名称,根据返回的对象信息创建链表的第一个节点;步骤2,进行关系节点分析创建,具体包括节点前驱关系分析建立(步骤2. 1-2. 4) 及节点后驱关系分析建立(3. 1-3. 4);如步骤2. 1,根据待分析的对象节点,建立此对象的前驱关系,如根据要分析的对象从数据库中查找此对象的所有直接前驱对象,可能没有找到前驱对象也可能包含一个或多个前驱对象,分别如下步骤2. 2,如果没找到前驱对象,则设置待分析节点的前驱节点为空,结束;步骤2. 3,如果找到一个前驱对象,创建此前驱对象对应的节点,将此前驱对象对应的节点赋给上一节点(如待分析的对象对应的节点)的前驱首节点,且此前驱对象对应的节点的兄弟节点为空,返回到步骤2. 1继续操作;步骤2. 4,如果找到多个前驱对象分别为每个前驱对象创建一个节点,选取某个前驱节点赋给上一步节点(如待分析的对象对应的节点)的前驱首节点,其它前驱对象对应的节点增加到此节点的兄弟节点数组中,分别对每个前驱对象对应的节点进行步骤2. 1 的分析;步骤3. 1,根据传入待分析的对象节点,建立此对象的后驱关系,如根据待分析的对象从数据库中查找此对象的所有直接后驱对象,可能没有找到后驱对象也可能包含一个后驱或多个后驱,分别如下步骤3. 2,如果没找到对象,则设置分析节点的后驱节点为空,结束;步骤3. 3,如果找到一个对象,创建此对象的节点,将此节点赋给分析节点的后驱首节点,此节点的兄弟节点为空,返回到步骤3. 1 ;步骤3. 4,如果找到多个对象,分别为每个对象创建一个节点,选取某个节点赋给上一步节点的后驱首节点,其它节点增加到此节点的兄弟节点数组中,分别对每个节点进行步骤3. 1的分析;经过上述步骤1及2的操作后,可以得到节点关系链表,节点关系链表的数据结构可以表示为,该数据结构对应的直观表示如图3所示
Node= { nodeid:string,
Nodename:string, Nodetype string,
preNode:Node, aftNode:Node, brotherNodes:Iist of Node
}其中,Node表示节点,nodeid表示节点标识,Nodename表示节点名称,Nodetype 表示节点类型;preNode表示前驱节点,aftNode表示后驱节点;brotherNodes表示兄弟节点,list of Node表示多个节点;本领域技术人员可以理解,建立的节点关系链表包括两个部分所有前驱节点组成的对应为第一关系链表,所有后驱节点组成的对应为第二关系链表;步骤204,根据上述步骤202建立的节点关系链表,计算整个流程图的层次及其每个节点所在的层,每层的节点数,具体操作时可以用二维数组将节点分层存储,即 DFD [layers] [nodes],其中layers表示层数,nodes表示节点所在层中的序号,例DFD[3] [2]表示第3层第2个节点;具体算法如下1.从关系链表循环递归查找前驱节点(preNode)为空的所有节点,保存到数组中,作为第一层的节点,依次计算其后续节点的层次;2.计算节点层次方法为从当前分析节点出发到其直接后续的节点只存在一个路径,则其后续节点的层次为其当前分析节点层次+1 ;如果存在多个路径,则转步骤3 ;其中,是否存在多路径的查找算法简述如下首先取当前分析节点的后续节点,循环递归回溯查找此后续节点的前驱节点,如果存在一个前驱节点为当前节点,则说明从当前节点到目标节点存在着多路径,同时将路径保存到临时路径数组中,假设存在2个路径,则数组内容示例如下[ {当前节点,节点Ml,节点M2,节点M3,目标节点},{当前节点,节点Ni,节点N2,节点N3,节点N4,目标节点}]3.存在多个路径节点采用短路径优先算法来计算目标节点层次;从临时的路径数组中,循环对每一数组中的每一个节点找出最小层次的节点,目标节点的层次为最小层次+1 ;步骤206,计算每一节点的关系数;用relation [layers] [nodes]来表示节点的关系系数,如relation [2] [3]表示第2层第3个节点的所有前趋和后续节点关系数之和;初始时,节点的关系数为所有前驱节点关系数与所有后续节点关系数之和,然后再此基础上进行关系系数的调整,调整算法如下步骤6. 1,对于同层的每个节点,查找每个节点的前驱节点,如查到节点a的前驱节占.
I— /、、、 步骤6. 2,如果该前驱节点的所有后继节点与节点a属于同一层,则该节点a的前趋关系数relafion [layers] [nodes]进行加1操作,否则进行步骤6. 3 ;步骤6. 3,对于同层的每个节点,查找每个节点的后驱节点,如查找节点a的后驱节占.
I— /、、、 步骤6. 4,若这个后驱节点的所有前驱节点与节点a属于同一层,则该节点a的后继(也成为后驱)关系relation [layers] [nodes]进行加1操作,否则进行步骤6. 5 ;步骤6. 5,遍历完各层所有节点。步骤208,根据步骤204及步骤206的计算结果进行节点布局,输出每个节点的坐标位置[X,y];具体如首先,计算出节点的存储数组DFD[layerS] [nodes]的总层数及各层节点数,以总层数Totallayers作为横向布局总行数(或总列数),取各层节点数中的最大值Colmax作纵向布局总列数(或总行数);纵向跨度步长为=Colstep =画布宽度/Colmax ;横向跨度步^为:rowstep =01 '! '] /Totallayers其次,以层次号先后次序布局各层,即第0层、第1层、第2层....第η层;其中, 在每一层中,将关系数最大的节点放置在纵坐标轴中心线,其它节点关系数由大到小,上下以co 1st印间隔布局;再次,层与层之间及同层节点横向之间rowst印间隔布局;步骤210,从节点关系链表中取所有连接关系,对每个连接,确定连接的箭头方向及类型,进行连接处理;其中,如图5所示,任何两节点X,y的连线,有六种相对位置类型, 根据这六种位置类型计算连续的箭头方向;节点之间的连线类型可以包括直线、B样条曲线、拐点直线;具体如下如图6所示,若χ节点和y节点之间不存在任何节点,则从X到y的直线相连;如图7所示,若χ节点和y节点之间存在节点,且都在χ、y下方或上方,则从χ到y的数据流用上凸或下凹曲线相连;如图8所示,若χ节点和y节点之间有节点存在,且既分布在χ、y 连线,上方和下方,则采用拐点曲线连接;步骤212,输出DFD图;优选地,考虑到与其它系统的集成或具有交互能力,还可以输出DFD图的XML描述信息。本领域技术人员可以理解,以上元数据对象可以是数据仓库中的对象,以提供图形表达数据仓库中对象的依赖关系;根据各种元数据对象类型,实现表与表,程序与表之间的上线关系通过图形进行展示,在呈现内容较多,数据流向关系复杂,自动化建立的流程图在易读性上也能达到理想的效果。本实施例通过根据该第一关系链表及第二关系链表进行元数据对象关系的图形化显示,将待分析的元数据对象的前面相关的元数据对象(即前驱元数据对象)和其后续的相关元数据对象(即后驱元数据对象),在同一流程图中自动建立的易读性强的元数据对象流程图;优选地,利用同层节点间的关系数来布局同一层的节点,最大限度的避开数据流的交叉。装置实施例图9为本发明的元数据关系的图形化显示装置。图1-8所示的各方法实施例均可应用于本实施例。本实施例包括第一处理模块90,用于将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到对应的前驱元数据对象为空或者其他前驱元数据对象为空时,停止持续执行的操作,得到待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;第二处理模块92,用于将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到对应的后驱元数据对象为空或者其他后驱元数据对象为空时,停止继续执行的操作,得到待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;图形化显示模块94,用于根据第一关系链表及第二关系链表,图形化显示待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。
具体操作时,该图形化显示模块94可以包括层次确定子模块940,用于将最后一次查找得到的前驱元数据对象的层次置为零,计算后续各个元数据对象的层次,得到总的层数;统计子模块942,用于统计每个层中包含的元数据对象的数量,元数据对象为待分析的元数据、所有前驱元数据对象或者所有后驱元数据对象;显示控制子模块944,用于将总的层数作为行数,并将层次对应行次,以及将每层的元数据对象的数量中的最大值作为列数,将属于每层的每一元数据对象分别放置在对应行次中的一列进行图形化显示;或者将总的层数作为列数,并将层次对应列次,以及将每层的元数据对象的数量中的最大值作为行数,将属于每层的每一元数据对象分别放置在对应列次中的一行进行图形化显示。层次确定子模块940可以包括层次优化单元940a,用于在计算每一元数据对象的层次时,判断对应的元数据对象到其他的元数据对象中的任一元数据对象的路径数是否大于一条,并在大于一条时,将对应的元数据对象的前驱元数据对象中所属最小层次加 1后作为对应的元数据对象的层次;在计算后续各个元数据对象中每一元数据对象的层次后,得到总的层数。该显示控制子模块可以包括944 控制单元944a,用于将总的层数作为行数,并将层次对应行次,以及将每层的元数据对象的数量中的最大值作为列数;显示单元944b,用于计算每层的每一元数据对象的前驱元数据对象的数量及后驱元数据对象的数量之间的和,计算得到的和作为对应元数据对象的关系数;将属于每层的各元数据对象按照关系数由大到小的次序依中心列向两侧各列分别放置,进行图形化显示。本实施通过图形化显示模块64根据该第一关系链表及第二关系链表进行元数据对象关系的图形化显示,将待分析的元数据对象的前面相关的元数据对象(即前驱元数据对象)和其后续的相关元数据对象(即后驱元数据对象),在同一流程图中自动建立的易读性强的元数据对象流程图;优选地,通过显示单元94 利用同层节点间的关系数来布局同一层的节点,最大限度的避开数据流的交叉。最后应说明的是以上仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种元数据关系的图形化显示方法,其特征在于,包括将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到所述对应的前驱元数据对象为空或者所述其他前驱元数据对象为空时,停止所述持续执行的操作,得到所述待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到所述对应的后驱元数据对象为空或者所述其他后驱元数据对象为空时,停止所述继续执行的操作,得到所述待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;根据所述第一关系链表及第二关系链表,图形化显示所述待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。
2.根据权利要求1所述的元数据关系的图形化显示方法,其特征在于,根据所述第一关系链表及第二关系链表,图形化显示所述待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系的步骤包括将最后一次查找得到的前驱元数据对象的层次置为零,计算后续各个元数据对象的层次,得到总的层数;统计每个层中包含的元数据对象的数量,所述元数据对象为所述待分析的元数据、所有前驱元数据对象或者所有后驱元数据对象;将所述总的层数作为行数,并将层次对应行次,以及将所述每层的元数据对象的数量中的最大值作为列数,将属于每层的每一元数据对象分别放置在对应行次中的一列进行图形化显示;或者将所述总的层数作为列数,并将层次对应列次,以及将所述每层的元数据对象的数量中的最大值作为行数,将属于每层的每一元数据对象分别放置在对应列次中的一行进行图形化显示。
3.根据权利要求2所述的元数据关系的图形化显示方法,其特征在于,所述计算后续各个元数据对象的层次,得到总的层数的步骤包括在计算每一元数据对象的层次时,判断对应的元数据对象到其他的元数据对象中的任一元数据对象的路径数是否大于一条,并在大于一条时,将所述对应的元数据对象的前驱元数据对象中所属最小层次加1后作为所述对应的元数据对象的层次;在计算所述后续各个元数据对象中每一元数据对象的层次后,得到总的层数。
4.根据权利要求2或3所述的元数据关系的图形化显示方法,其特征在于,所述将属于每层的每一元数据对象分别放置在对应行次中的一列进行图形化显示的步骤包括计算每层的每一元数据对象的前驱元数据对象的数量及后驱元数据对象的数量之间的和,所述计算得到的和作为对应元数据对象的关系数;将属于每层的各元数据对象按照关系数由大到小的次序依中心列向两侧各列分别放置,进行图形化显示。
5.根据权利要求4所述的元数据关系的图形化显示方法,其特征在于,所述将属于每层的各元数据对象按照关系数由大到小的次序依中心列向两侧各列分别放置的步骤之后还包括根据所述第一关系链表及第二关系链表,在连接两个元数据对象时,判断所述两个元数据对象之间存在其他的元数据对象,在不存在其他的元数据对象时,利用直线连接所述两个元数据对象;在存在位于所述两个元数据对象下方的其他的元数据对象时,利用上凸曲线连接所述两个元数据对象;在存在位于所述两个元数据对象上方的其他的元数据对象时,利用下凹曲线连接所述两个元数据对象;在存在分别位于所述两个元数据对象连线的上方及下方的其他元数据对象时,利用拐点曲线连接所述两个元数据对象。
6.根据上述权利要求1-3中任一项所述的元数据关系的图形化显示方法,其特征在于,还包括将所述待分析的元数据作为对应的待分析的节点;在查找得到的每一前驱元数据对象后将每一前驱元数据对象作为对应的前驱节点;所述第一关系链表对应为第一节点关系链表;在查找得到的每一后驱元数据对象后将每一后驱元数据对象作为对应的后驱节点;所述第二关系链表对应为第二节点关系链表。
7.—种元数据关系的图形化显示装置,其特征在于,包括第一处理模块,用于将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到所述对应的前驱元数据对象为空或者所述其他前驱元数据对象为空时, 停止所述持续执行的操作,得到所述待分析的元数据对象及查找得到的所有前驱元数据对象的第一关系链表;第二处理模块,用于将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到所述对应的后驱元数据对象为空或者所述其他后驱元数据对象为空时, 停止所述继续执行的操作,得到所述待分析的元数据对象及查找得到的所有后驱元数据对象的第二关系链表;图形化显示模块,用于根据所述第一关系链表及第二关系链表,图形化显示所述待分析的元数据、查找得到的所有前驱元数据对象及查找得到的所有后驱元数据对象间的关系。
8.根据权利要求7所述的元数据关系的图形化显示装置,其特征在于,所述图形化显示模块包括层次确定子模块,用于将最后一次查找得到的前驱元数据对象的层次置为零,计算后续各个元数据对象的层次,得到总的层数;统计子模块,用于统计每个层中包含的元数据对象的数量,所述元数据对象为所述待分析的元数据、所有前驱元数据对象或者所有后驱元数据对象;显示控制子模块,用于将所述总的层数作为行数,并将层次对应行次,以及将所述每层的元数据对象的数量中的最大值作为列数,将属于每层的每一元数据对象分别放置在对应行次中的一列进行图形化显示;或者将所述总的层数作为列数,并将层次对应列次,以及将所述每层的元数据对象的数量中的最大值作为行数,将属于每层的每一元数据对象分别放置在对应列次中的一行进行图形化显示。
9.根据权利要求8所述的元数据关系的图形化显示装置,其特征在于,所述层次确定子模块包括层次优化单元,用于在计算每一元数据对象的层次时,判断对应的元数据对象到其他的元数据对象中的任一元数据对象的路径数是否大于一条,并在大于一条时,将所述对应的元数据对象的前驱元数据对象中所属最小层次加1后作为所述对应的元数据对象的层次;在计算所述后续各个元数据对象中每一元数据对象的层次后,得到总的层数。
10.根据权利要求8或9所述的元数据关系的图形化显示装置,其特征在于,所述显示控制子模块包括控制单元,用于将所述总的层数作为行数,并将层次对应行次,以及将所述每层的元数据对象的数量中的最大值作为列数;显示单元,用于计算每层的每一元数据对象的前驱元数据对象的数量及后驱元数据对象的数量之间的和,所述计算得到的和作为对应元数据对象的关系数;将属于每层的各元数据对象按照关系数由大到小的次序依中心列向两侧各列分别放置,进行图形化显示。
全文摘要
本发明提供了一种元数据关系的图形化显示方法及装置,其中,该方法包括将待分析的元数据对象作为输出对象查找对应的前驱元数据对象,并持续执行将每次查找得到的前驱元数据对象分别作为输出对象查找对应的其他前驱元数据对象,直到前驱元数据对象为空时,停止操作得到第一关系链表;将待分析的元数据对象作为输入对象查找对应的后驱元数据对象,并继续执行将每次查找得到的后驱元数据对象分别作为输入对象查找对应的其他后驱元数据对象,直到后驱元数据对象为空时,停止操作得到第二关系链表;根据第一关系链表及第二关系链表,图形化显示上述各元数据对象间的关系。本发明实现在同一流程图中自动建立的易读性强的元数据对象流程图。
文档编号G06F17/30GK102567430SQ201010624119
公开日2012年7月11日 申请日期2010年12月31日 优先权日2010年12月31日
发明者王全胜, 赵静 申请人:中国移动通信集团湖北有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1