一种基于邻接表结点状态和优先级的ER图绘制方法及装置制造方法及图纸

技术编号:24251519 阅读:58 留言:0更新日期:2020-05-22 23:33
本发明专利技术提供一种基于邻接表结点状态和优先级的ER图绘制方法及装置,属于涉及数据库、邻接表、ER图绘制、平衡展示、视知觉等领域,本发明专利技术包括以下步骤:S1:读取数据库表结构;S2:生成基于邻接表的实体关系模型;S3:结合结点度和视觉位置优先级绘制ER图。本发明专利技术按照结点度降序绘制结点,科学利用绘制界面的空间区域,能够充分展示度较大结点的复杂关联信息;本发明专利技术基于视知觉顺畅感受来安排结点关联实体的绘制顺序,同时考虑结点相邻位置已绘制关联实体的分布情况,可以提高用户阅读ER图的流畅性和愉悦感;从整体上提高ER图绘制的展示效果和用户体验。

A drawing method and device of Er graph based on node state and priority of adjacency table

【技术实现步骤摘要】
一种基于邻接表结点状态和优先级的ER图绘制方法及装置
本专利技术涉及数据库、邻接表、ER图绘制、平衡展示、视知觉技术,尤其涉及一种基于邻接表结点状态和优先级的ER图绘制方法。
技术介绍
ER图(EntityRelationshipDiagram)也称为“实体-联系图”,是数据库设计中实体关系模型的图形化描述,可以直观展示所涉及实体以及它们之间的联系,是描述信息世界概念模型的有效方法。ER图是相关人员理解数据库系统的最佳工具,在数据库设计、开发、维护、重构等阶段具有重要的作用。在数据库设计过程中,建模人员需要根据ER图来理解待处理对象,并通过原型推演、场景分析、迭代优化不断完善,最终形成满足需要的概念模型。在数据库开发过程中,编程人员需要根据ER图适配数据库系统,生成对应的各种数据表,以及数据库操作代码。在数据库维护过程中,运维人员需要根据ER图维护数据库完整性,保证其稳定运行。在数据库重构过程中,开发人员使用ER图适配新的业务系统、应用场景和性能需求,提高应用迁移和产业升级的效果。由此可知,完整、全面、科学地绘制ER图,并向用户直观呈现,在信息化系统建设中具有重要的意义和价值。ER图由结点和边所构成,其绘制过程主要包括结点和边两方面的绘制。目前,在ER图结点绘制中存在下述两方面问题:一方面,结点绘制的先后顺序存在问题。结点的度可以视为实体所关联信息的丰富程度,度较大结点关联的实体多,具有丰富的“实体-关系”信息;如果把这些度较大的结点排在后面绘制,那么在绘制界面上留给这些结点的可用空间就很少,无法充分展示其关联信息。另一方面,结点绘制的空间位置存在问题。在绘制结点所关联的多个实体时,其绘制的空间位置没有按照人机工学进行统一规范,未必符合用户的审美规律,视觉感受不佳。结点绘制中存在的上述问题,会导致边绘制中出现交叉、重叠、环绕等问题。结点和边两方面的绘制问题叠加在一起,视觉效果不佳,在一定程度上影响用户体验。面对上述问题,需要设计新的ER图绘制方法。
技术实现思路
本专利技术提出了一种基于邻接表结点状态和优先级的ER图绘制方法,以解决当前ER图绘制中存在的结点绘制先后顺序问题和结点绘制空间位置问题,提高ER图绘制的展示效果和用户体验。本专利技术的技术方案是:一种基于邻接表结点状态和优先级的ER图绘制方法,包括以下步骤:S1:读取数据库表结构;S2:生成基于邻接表的实体关系模型;S3:结合结点度和视觉位置优先级绘制ER图。进一步的,所述步骤S2中生成的实体关系模型,具有下述特征:S21:实体表示数据库中存在的数据表,关系是任何两张数据表之间的关系类型;S22、关系类型包括4种:1:1、1:N、M:1、M:N,其对应的类型值分别为1、2、3、4;S23:每个实体对应一个结点,所有结点构成的数组称为邻接表的结点表;S24;每个结点对应一个边集,存储和该结点存在关系的其它结点的存储位置,以及彼此之间的关系;S25:所有结点边集的集合,称为邻接表的边表。进一步的,所述步骤S3具体包括:S31:生成有序结点表和有序边集;所述步骤S31具体包括:S311:将结点表所有结点按照度进行降序排列,形成有序结点表;S312:对每个结点对应边集中所有元素按照对应结点的度进行降序排列,形成有序边集;S313:返回所生成的有序结点表和有序边集;S32:初始化结点状态数组VertStatusArray,所有元素值均为1;S33:绘制ER图;所述步骤S33具体包括:S331:选择有序结点表中第一个结点VA;S332:判断是否满足VertStatusArray[VA]!=3,如果满足,那么转S333,否则转S339;S333:绘制VA及其边集的结点和连接关系;所述步骤S333具体包括:S3331:判断是否满足VertStatusArray[VA]!=2,如果满足,那么转S3332,否则转S3333;S3332:在屏幕空余位置上方的中央绘制VA;S3333:绘制VA边集的结点;所述步骤S3333具体包括:S33331:计算结点VA正下方和水平两侧已经绘制结点数DA,VA边集中状态值为1的结点个数RA;S33332:判断是否满足DA==0,如果满足,那么转S33333,否则转S33334;S33333:在结点VA正下方和水平两侧完全绘制VA边集中状态值为1的结点,转33337;所述步骤S33333具体包括:S333331:判断是否满足RA==1,如果满足,那么转S333332,否则转S333333;S333332:将VA边集中RA个状态值为1的结点绘制在VA正下方,转S333339;S333333:判断是否满足RA==2,如果满足,那么转S333334,否则转S333335;S333334:将VA边集中RA个状态值为1的结点绘制在VA水平两侧,转S333339;S333335:判断是否满足RA==3,如果满足,那么转S333336,否则转S333337;S333336:将VA边集中RA个状态值为1的结点绘制在VA正下方和水平两侧,转S333339;S333337:判断是否满足RA>3,如果满足,那么转S333338,否则转S333339;S333338:将VA边集的前3个结点绘制在VA正下方和水平两侧,其余RA-3个结点均匀绘制在VA正下方和水平两侧构成的直角区域内;S333339:返回完全绘制的结点;S33334:判断是否满足0<DA<3,如果满足,那么转S33335,否则转S33336;S33335:在结点VA正下方和水平两侧部分绘制VA边集中状态值为1的结点,转S33337;所述步骤S33335具体包括:S333351:判断是否满足0<RA<=3-DA,如果满足,那么转S333352,否则转S333353;S333352:将VA边集中RA个状态值为1的结点绘制在VA正下方和水平两侧的空余位置,转S333356;S333353:判断是否满足RA>3-DA,如果满足,那么转S333354,否则转S333356;S333354:把VA边集中前3-DA个状态值为1的结点绘制在VA正下方和水平两侧空余位置;S333355:把VA边集中其余RA-3+DA个状态值为1的结点均匀绘制在VA正下方和水平两侧构成的直角区域内;S333356:返回部分绘制的结点;S33336:在结点VA周围的直角区域内均匀绘制VA边集中状态值为1的结点;所述步骤S33336具体包括:S333361:判断是否满足RA>0,如果满足,那么转S333362,否则转S333363;S333362:将VA边集中RA个状态值为1的结点均匀绘制在VA正本文档来自技高网
...

【技术保护点】
1.一种基于邻接表结点状态和优先级的ER图绘制方法,其特征在于,/n包括以下步骤:/nS1:读取数据库表结构;/nS2:生成基于邻接表的实体关系模型;/nS3:结合结点度和视觉位置优先级绘制ER图。/n

【技术特征摘要】
1.一种基于邻接表结点状态和优先级的ER图绘制方法,其特征在于,
包括以下步骤:
S1:读取数据库表结构;
S2:生成基于邻接表的实体关系模型;
S3:结合结点度和视觉位置优先级绘制ER图。


2.根据权利要求1所述的方法,其特征在于,所述步骤S2中生成的实体关系模型,具有下述特征:
实体表示数据库中存在的数据表,关系是任何两张数据表之间的关系类型。


3.根据权利要求2所述的方法,其特征在于,
关系类型包括4种:1:1、1:N、M:1、M:N,其对应的类型值分别为1、2、3、4。


4.根据权利要求3所述的方法,其特征在于,
每个实体对应一个结点,所有结点构成的数组称为邻接表的结点表;
每个结点对应一个边集,存储和该结点存在关系的其它结点的存储位置,以及彼此之间的关系;
所有结点边集的集合,称为邻接表的边表。


5.根据权利要求1所述的方法,其特征在于:所述步骤S3具体包括:
S31:生成有序结点表和有序边集;所述步骤S31具体包括:
S311:将结点表所有结点按照度进行降序排列,形成有序结点表;
S312:对每个结点对应边集中所有元素按照对应结点的度进行降序排列,形成有序边集;
S313:返回所生成的有序结点表和有序边集;
S32:初始化结点状态数组VertStatusArray,所有元素值均为1;
S33:绘制ER图;所述步骤S33具体包括:
S331:选择有序结点表中第一个结点VA;
S332:判断是否满足VertStatusArray[VA]!=3,如果满足,那么转S333,否则转S339;
S333:绘制VA及其边集的结点和连接关系;所述步骤S333具体包括:
S3331:判断是否满足VertStatusArray[VA]!=2,如果满足,那么转S3332,否则转S3333;
S3332:在屏幕空余位置上方的中央绘制VA;
S3333:绘制VA边集的结点;所述步骤S3333具体包括:
S33331:计算结点VA正下方和水平两侧已经绘制结点数DA,VA边集中状态值为1的结点个数RA;
S33332:判断是否满足DA==0,如果满足,那么转S33333,否则转S33334;
S33333:在结点VA正下方和水平两侧完全绘制VA边集中状态值为1的结点,转33337;所述步骤S33333具体包括:
S333331:判断是否满足RA==1,如果满足,那么转S333332,否则转S333333;
S333332:将VA边集中RA个状态值为1的结点绘制在VA正下方,转S333339;
S333333:判断是否满足RA==2,如果满足,那么转S333334,否则转S333335;
S333334:将VA边集中RA个状态值为1的结点绘制在VA水平两侧,转S333339;
S333335:判断是否满足RA==3,如果满足,那么转S333336,否则转S333337;
S333336:将VA边集中RA个状态值为1的结点绘制在VA正下方和水平两侧,转S333339;
S333337:判断是否满足RA>3,如果满足,那么转S333338,否则转S333339;
S333338:将VA边集的前3个结点绘制在VA正下方和水平两侧,其余RA-3个结点均匀绘制在VA正下方和水平两侧构成的直角区域内;
S333339:返回完全绘制的结点;
S33334:判断是否满足0<DA<3,如果满足,那么转S33335,否则转S33336;
S33335:在结点VA正下方和水平两侧部分绘制VA边集中状态值为1的结点,转S33337;所述步骤S33335具体包括:
S333351:判断是否满足0<RA<=3-DA,如果满足,那么转S333352,否则转S333353;
S333352:将VA边集中RA个状态值为1的结点绘制在VA正下方和水平两侧的空余位置,转S333356;
S333353:判断是否满足RA>3-DA,如果满足,那么转S333354,否则转S333356;
S333354:把VA边集中前3-DA个状态值为1的结点绘制在VA正下方和水平两侧空余位置;
S333355:把VA边集中其余RA-3+DA个状态值为1的结点均匀绘制在VA正下方和水平两侧构成的直角区域内;
S333356:返回部分绘制的结点;
S33336:在结点VA周围的直角区域内均匀绘制VA边集中状态值为1的结点;所述步骤S33336具体包括:
S333361:判断是否满足RA>0,如果满足,那么转S333362,否则转S333363;
S333362:将VA边集中RA个状态值为1的结点均匀绘制在VA正下方和水平两侧构成的直角区域内;
S333363:返回均匀绘制的结点;
S33337:返回绘制的VA边集结点;
S3334:绘制VA和其边集结点的连接关系;所述步骤S3334具体包括:
S33341:获取VA在ER图中的位置Loc_VA;
S33342:读取VA对应的边集EdgeSetRTA;
S33343:读取EdgeSetRTA的第一个元素PTRT_VB;
S33344:从PTRT_VB中获取对应结点指针PT_VB和关系类型RT_VB;
S33345:根据PT_VB获取对应结点VB;
S33346:获取VB在ER图中的位置Loc_VB;
S33347:绘制从Loc_VA到Loc_VB的线段Line_AB;
S33348:根据RT_VB在Line_AB两端标记关系类型;
S33349:返回绘制的连接关系;
S3335:将VA边集中状态值为1结点的状态值修改为2;
S3336:修改结点VA状态VertStat...

【专利技术属性】
技术研发人员:王功明王建华
申请(专利权)人:浪潮软件股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1