[发明专利]一种基于邻接表的数据库实体关系模型提取方法及装置有效

专利信息
申请号: 201910799710.8 申请日: 2019-08-28
公开(公告)号: CN110516010B 公开(公告)日: 2023-06-09
发明(设计)人: 王功明;雷昌然;王建华 申请(专利权)人: 浪潮软件集团有限公司
主分类号: G06F16/28 分类号: G06F16/28;G06F16/25
代理公司: 济南信达专利事务所有限公司 37100 代理人: 阚恭勇
地址: 250100 山东*** 国省代码: 山东;37
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 邻接 数据库 实体 关系 模型 提取 方法 装置
【权利要求书】:

1.一种基于邻接表的数据库实体关系模型提取方法,其特征在于,

包括以下步骤:

S1:数据库表结构标准化;

S2:构造邻接表的顶点表;

S3:构造邻接表的边表;

S4:计算表结构之间的关系类型;

所述步骤S2具体包括:

S21:初始化顶点表为空;

S22:读取第一个标准化后的表结构TS;

S23:构建TS对应的顶点VA,并添加到顶点表中;

具体包括:

S231:新建顶点VA;

S232:将表结构TS的表名设置为顶点VA的表名;

S233:读取表结构TS的第一个属性TA;

S234:将TA的“属性名”添加到顶点VA的属性名数组中;

S235:如果TA的“主键”值为Y,那么转S236,否则转S237;

S236:将TA的“属性名”添加到顶点VA的主键中;

S237:如果TA的“外键”值为Y,那么转S238,否则转S239;

S238:将TA的“属性名”添加到顶点VA的外键中;

S239:判断属性是否读取完毕,如果没有,转S23A,否则转S23B;

S23A:读取下一个属性TA,转S234;

S23B:将顶点VA添加到顶点表中;

S24:判断表结构是否读取完毕,如果没有,转S25,否则转S26;

S25:读取下一个表结构TS,转S23;

S26:返回所生成的顶点表;

所述步骤S3具体包括:

S31:初始化边表为空;

S32:读取顶点表的第一个顶点VA;

S33:构造顶点VA对应的边集EdgeSet;

S331:统计顶点VA外键的属性个数Q;

S332:初始化边集EdgeSet为空,已处理外键集合ProcedKey为空,待测试主键的属性个数K=Q;

S333:初始化已测试外键次数t=0,已测试外键集合TestKeySet为空;

S334:判断t是否等于C(Q,K),如果等于,那么转S33D,否则转S335;

S335:从顶点VA外键中选择K个属性,构成待测试主键集合TestKey;

S336:如果TestKey不是TestKeySet的子集,那么转S337,否则转S335;

S337:更新已测试外键次数t=t+1;

S338:如果TestKey不是ProcedKey的子集,那么转S339,否则转S334;

S339:遍历顶点表,如果存在某顶点VB的主键是TestKey,那么转S33A,否则转S334;

S33A:生成指向VB的指针Pt_VB;

S33B:将Pt_VB添加到EdgeSet的指针链表末尾;

S33C:更新ProcedKey=ProcedKey∪TestKey,转S334;

S33D:更新待测试主键的属性个数K=K-1;

S33E:如果K大于0,那么转S333,否则转S33F;

S33F:返回所生成的边集EdgeSet;

S34:将EdgeSet添加到边表中;

S35:判断顶点表是否读取完毕,如果没有,转S36,否则转S37;

S36:读取下一个顶点VA,转S33;

S37:返回所生成的边表

所述步骤S4具体包括:

S41:读取顶点表的第一个顶点VA;

S42:读取顶点VA对应的边集EdgeSet;

S43:计算VA和EdgeSet对应表结构之间的关系类型,生成新的边集EdgeSetRT;

S431:初始化EdgeSetRT为空;

S432:读取VA对应的表结构TSA;

S433:读取EdgeSet中第一个元素PT_VB;

S434:读取PT_VB对应的表结构TSB;

S435:计算TSA和TSB之间的关系类型RT_VB;

S4351:读取TSA的主键PriKey_A和外键ForKey_A;

S4352:读取TSB的主键PriKey_B和外键ForKey_B;

S4353:计算TSA主键和TSB外键隶属关系PKA_in_FKB;

S43531:如果TSA主键是TSB外键的子集,那么转S43532,否则转S43533;

S43532:PKA_in_FKB=1,转S43534;

S43533:PKA_in_FKB=0;

S43534:返回PKA_in_FKB;

S4354:计算TSB主键和TSA外键隶属关系PKB_in_FKA;

S43541:如果TSB主键是TSA外键的子集,那么转S43542,否则转S43543;

S43542:PKB_in_FKA=1,转S43544;

S43543:PKB_in_FKA=0;

S43544:返回PKB_in_FKA;

S4355:根据PKA_in_FKB和PKB_in_FKA计算RT_VB;

S43551:初始化RT_VB=-1;

S43552:如果PKA_in_FKB==1且PKB_in_FKA==1,那么转S43553,否则转S43554;

S43553:RT_VB=1,转S4355A;

S43554:如果PKA_in_FKB==1且PKB_in_FKA==0,那么转S43555,否则转S43556

S43555:RT_VB=2,转S4355A;

S43556:如果PKA_in_FKB==0且PKB_in_FKA==1,那么转S43557,否则转S43558;

S43557:RT_VB=3,转S4355A;

S43558:如果PKA_in_FKB==0且PKB_in_FKA==0,那么转S43559,否则转S4355A;

S43559:RT_VB=4;

S4355A:返回关系类型RT_VB;

S4356:返回关系类型RT_VB;

S436:将{PT_VB、RT_VB}添加到EdgeSetRT的指针链表末尾;

S437:判断EdgeSet中元素是否读取完毕,如果没有,转S438,否则转S439;

S438:读取下一个元素PT_VB,转S434;

S439:返回所生成的边集EdgeSetRT;

S44:删除边表中的边集EdgeSet;

S45:将边集EdgeSetRT添加到边表中;

S46:判断顶点表是否读取完毕,如果没有,转S47,否则转S48;

S47:读取下一个顶点VA,转S42;

S48:返回更新后的边表。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件集团有限公司,未经浪潮软件集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910799710.8/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top