【技术实现步骤摘要】
一种基于邻接表结点状态和优先级的ER图绘制方法及装置
本专利技术涉及数据库、邻接表、ER图绘制、平衡展示、视知觉技术,尤其涉及一种基于邻接表结点状态和优先级的ER图绘制方法。
技术介绍
ER图(EntityRelationshipDiagram)也称为“实体-联系图”,是数据库设计中实体关系模型的图形化描述,可以直观展示所涉及实体以及它们之间的联系,是描述信息世界概念模型的有效方法。ER图是相关人员理解数据库系统的最佳工具,在数据库设计、开发、维护、重构等阶段具有重要的作用。在数据库设计过程中,建模人员需要根据ER图来理解待处理对象,并通过原型推演、场景分析、迭代优化不断完善,最终形成满足需要的概念模型。在数据库开发过程中,编程人员需要根据ER图适配数据库系统,生成对应的各种数据表,以及数据库操作代码。在数据库维护过程中,运维人员需要根据ER图维护数据库完整性,保证其稳定运行。在数据库重构过程中,开发人员使用ER图适配新的业务系统、应用场景和性能需求,提高应用迁移和产业升级的效果。由此可知,完整、全面、科学地绘制ER图,并向用户直观呈现,在信息化系统建设中具有重要的意义和价值。ER图由结点和边所构成,其绘制过程主要包括结点和边两方面的绘制。目前,在ER图结点绘制中存在下述两方面问题:一方面,结点绘制的先后顺序存在问题。结点的度可以视为实体所关联信息的丰富程度,度较大结点关联的实体多,具有丰富的“实体-关系”信息;如果把这些度较大的结点排在后面绘制,那么在绘制界面上留给这些结点的可用空间 ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。