一种实体联系图ERD图生成方法及设备与流程

文档序号:20949129发布日期:2020-06-02 20:02阅读:490来源:国知局
一种实体联系图ERD图生成方法及设备与流程

本发明涉及通信技术领域,特别涉及一种实体联系图erd图生成方法。本发明同时还涉及一种erd图生成设备。



背景技术:

erd图(entityrelationshipdiagram,实体联系图)提供了表示实体类型、属性和联系的方法,是用来描述现实世界的概念模型。erd图是概念数据模型的高层描述所使用的数据模型或模式图,它为表述这种实体联系模式图形式的数据模型提供了图形符号。构成erd图基本要素如下:

实体(entity):客观上可以相互区分的事物就是实体,实体可以是具体的人和物,也可以是抽象的概念与联系。关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体。在erd图中用矩形表示,矩形框内写明实体名。

属性(entityattributes):实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。

关系(relationship):信息世界中反映实体内部或实体之间的关联。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。在erd图中用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。

基于实体、属性和关系三个基本要素,erd图在数据库领域被主要用来帮助收集需求、数据库设计、数据库调试以及数据集成。目前,数据库设计过程中的cdm(conceptualdatamodel,概念数据模型设计)或pdm(physicaldatamodel,物理数据模型设计)中的实体对应dbms(databasemanagementsystem,数据库管理系统)中表,cdm或pdm的关系(一对一、一对多、多对多)映射到dbms外键(foreignkey),通过外键表达实体之间的关系。如果dbms数据库表有外键定义和外键约束,通过ddl(datadefinitionlanguage,数据库模式定义语言)语句可以逆向生成erd图。较多的数据库工具都是通过外键逆行生成erd图。

发明人在实现本发明的过程中发现,现有的dbms数据库逆向生产erd图依赖于外键,如果没有外键无法生成实体的关系。而在目前某些环境(互联网环境)下,出于成本以及设备性能的考虑,dbms设计模式不推荐外键约束,因此很多dbms表没有外键;另外目前的ods(operationaldatastore,操作数据存储)的数据仓库也不推荐外键,无法完整逆向出erd图。

由此可见,如何在不依赖于外键的前提下基于数据库生成erd图,成为本领域技术人员亟待解决的技术问题。



技术实现要素:

针对现有技术中只能依赖于外键的前提下生成erd图,本发明提供了一种实体联系图erd图生成方法,该包括:

将数据库中各实体的物理名称以及各属性的物理名称进行分词处理;

将所述分词处理后的词所对应的原型词进行同义词合并,以生成规范化词;

根据所述规范化词集中各词的词频属性值以及逆文本频率属性值生成与各所述实体以及各所述属性对应的向量;

根据所述向量确定各所述实体与各所述属性之间的相似度;

根据所述相似度生成与所述数据库对应的erd图。

优选地,所述规范化词集中各词的词频属性以及逆文本频率属性生成与各所述实体以及各所述属性对应的向量,还包括:

将所述规范化词集划分为与所述实体对应的实体集合以及与所述属性对应的属性集合;

确定所述实体集合以及所述属性集合中各个词的权重值,所述权重值根据所述词频属性值以及所述逆文本频率属性值生成;

根据各所述实体在所述实体集合中对应的词的数量以及权重值生成与各所述实体对应的向量,以及根据各所述属性在所述属性集合中对应的词的数量以及权重值生成与各所述属性对应的向量。

优选地,根据各所述实体在所述实体集合中对应的词的数量以及权重值生成与各所述实体对应的向量,还包括:

通过词向量神经网络模型将各所述实体在所述实体集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选地,根据各所述属性在所述属性集合中对应的词的数量以及权重值生成与各所述属性对应的向量,还包括:

通过词向量神经网络模型将各所述属性在所述属性集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选地,根据所述向量确定各所述实体与各所述属性之间的相似度,还包括:

获取各所述实体对应的向量与各所述属性对应的向量之间的夹角余弦值;

根据所述夹角余弦值生成各所述实体与各所述属性的相似度矩阵。

相应的,本发明还提出了一种实体联系图erd图生成设备,包括:

处理模块,用于将数据库中各实体的物理名称以及各属性的物理名称进行分词处理;

第一生成模块,用于将所述分词处理后的词所对应的原型词进行同义词合并,以生成规范化词;

第二生成模块,用于根据所述规范化词集中各词的词频属性值以及逆文本频率属性值生成与各所述实体以及各所述属性对应的向量;

确定模块,用于根据所述向量确定各所述实体与各所述属性之间的相似度;

第三生成模块,用于根据所述相似度生成与所述数据库对应的erd图。

优选的,所述第二生成模块,具体用于:

将所述规范化词集划分为与所述实体对应的实体集合以及与所述属性对应的属性集合;

确定所述实体集合以及所述属性集合中各个词的权重值,所述权重值根据所述词频属性值以及所述逆文本频率属性值生成;

根据各所述实体在所述实体集合中对应的词的数量以及权重值生成与各所述实体对应的向量,以及根据各所述属性在所述属性集合中对应的词的数量以及权重值生成与各所述属性对应的向量。

优选的,所述第二生成模块,还具体用于:

通过词向量神经网络模型将各所述实体在所述实体集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选的,所述第二生成模块,还具体用于:

通过词向量神经网络模型将各所述属性在所述属性集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选的,所述确定模块,具体用于:

获取各所述实体对应的向量与各所述属性对应的向量之间的夹角余弦值;

根据所述夹角余弦值生成各所述实体与各所述属性的相似度矩阵。

由此可见,通过应用本申请的技术方案,该方法将数据库中各实体的物理名称以及各属性的物理名称进行分词处理,将分词处理后的词对应的原型词进行同义词合并,以生成规范化用词,根据规范化词集中各词的词频属性生成与各实体以及各属性对应的向量,再根据该向量确定实体和属性之间的相似度,最后根据相似度生成与数据库对应的erd图。本申请的技术方案能够在不依赖于外键的前提下快速地生成准确的erd图,从而提高逆向工作的适应性和效率。

附图说明

图1为本申请实施例公开的一种实体联系图erd图生成方法的流程示意图;

图2为本申请实施例公开的一种实体联系图erd图生成方法中相似度矩阵图;

图3为本申请实施例公开的一种实体联系图erd图生成方法中分词处理过程示意图;

图4为本申请实施例公开的一种实体联系图erd图生成方法中分词处理结果示意图;

图5为本发明实施例提出的一种实体联系图erd图生成方法的设备的结构示意图。

具体实施方式

如背景技术所述,现有技术中普遍是通过利用外键的方式生成erd图,但外键也存在着各种缺点,例如数据库需要维护外键的内部管理、外键等于把数据的一致性事务(指在一个事务执行之前和执行之后数据库都必须处于一致性状态)实现,全部交给数据库服务器完成、当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗服务器资源(cpu、内存等)、外键还会因为需要请求对其他表内部加锁而容易出现死锁情况。因此,在某些环境或者行业中并不会使用外键,尤其是互联网行业,用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受io能力限制,且不能轻易地水平扩展。

为此,针对无法通过外键生成erd图的情况,本申请公开了一erd图生成方法,用以在不依赖于外键的前提下快速地生成准确的erd图,从而提高逆向工作的适应性和效率。如图1所示,包括以下步骤:

步骤101、将数据库中各实体的物理名称以及各属性的物理名称进行分词处理。

数据库中的数据是通过表示实体和属性之间的关系从而生成erd图,实体是指客观上可以相互区分的事物,实体可以是具体的人和物,也可以是抽象的概念与联系,关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质,属性是实体所具有的某一种特性,属性不能脱离实体,属性是相对于实体而言的。

为了使计算机能够识别理解实体和属性的物理名称的含义,需要对实体和属性的物理名称进行分词处理,分词处理是指将实体和属性的物理名称转化为词的表达。

在具体的应用场景中,本申请技术方案具体为先把长词/长句按照字典切分成词,再寻找词的最佳组合方式,包括最大匹配分词算法、最短路径分词算法、基于n-grammodel的分词算法等,也可以是基于字的分词,即由字构词,先把句子分成一个个字,再将字组合成词寻找最优的切分策略,同时也可以转化成序列标注问题,包括生成式模型分词算法、判别式模型分词算法、神经网络分词算法等。在能够实现将长词/长句子切分为词,再寻找词的最佳组合方式的基础上,以上分词的方式均属于本申请的保护范围。

步骤102、将所述分词处理后的词对应的原型词进行同义词合并,以生成规范化词。

在本申请优选的实施方案中,为了实现分词语料的资源共享,需要对分词处理后的词进行规范化处理,换言之,即是将分词后的词(复数、过去式等)统一规范为词原型,并且,将这些词原型基于词典方式、同义词词典、其他等任一或组合方式进行同义词合并。在具体的应用场景中,可以将同义词词典收录进系统,根据同义词词典对各同义词的划分来将规范后的词原型进行同义词合并。

步骤103、根据所述规范化词集中各词的词频属性值以及逆文本频率属性值生成与各实体以及各所述属性对应的向量。

tf-idf(termfrequency–inversedocumentfrequency)是一种用于信息检索与数据挖掘的常用加权技术,tf意思是词频(termfrequency),指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数(termcount)的归一化,以防止它偏向长的文件。idf意思是逆文本频率指数(inversedocumentfrequency),是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取以10为底的对数得到,该步骤主要为用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度,也就是计算某一字词的重要性。

在本申请优选的实施方案中,为了得到实体和属性的物理名称在其对应的集合中的重要值,具体为,将规范化后的词集划分为与实体对应的实体集合和与属性对应的属性集合,并计算各实体集合和属性集合中各个词的权重值,该权重值的计算是依据词频属性值以及逆文本频率属性值生成的。

进一步的,在本申请优选的实施方案中,为了更好的计算实体和属性之间关系以便生成erd图,本申请采用了将实体的物理名称和属性的物理名称转化为向量的方式来展示实体和属性之间的关系,根据实体在实体集合中对应的词的数量以及权重值生成与该实体对应的向量,具体是通过word2vector(产生词向量的相关模型)将各实体在其实体集合中对应的词分别映射为子向量,再根据各子向量、权重值、以及词数量生成所述实体向量,其中,word2vector是一群用来产生词向量的相关模型,这些模型为浅而双层的神经网络,word2vector模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,并且,词向量具有良好的语义特性,能将词语的不同句法和语义特征分布到它的每一个维度去表示。

需要指出的是,以上具体实施方案虽然以具体的模型以及映射方式进行了说明,但相关模型的种类以及映射方式并不局限于此,任何本领域的技术人员能思之的变化都应落入本申请的保护范围,

s104、根据所述向量确定各所述实体与各所述属性之间的相似度。

在本申请优选的实施方案中,为了更方便得到实体和属性之间的关系,具体是计算实体和属性对应的向量的余弦相似度来得到实体和属性之间的关系,但是本申请得到向量之间的相似度并不仅限于通过计算余弦相似度得到,任何本领域技术人员可思之的替代方案都应纳入本申请的保护范围之内。

其中,余弦相似度是通过测量两个向量的夹角的余弦值来度量它们之间的相似度,结果是与向量的长度无关的,仅仅与向量的指向方向相关,计算两个向量的余弦值,就可以知道两个文本相似度情况。

具体的,先获取各实体对应的向量与各属性对应的向量之间的夹角余弦值,该夹角余弦值用来评估实体对应的向量与属性对应的向量之间的相似度,再根据该夹角余弦值生成实体与属性之间的相似度矩阵,如图2所示。

s105、根据所述相似度生成与所述数据库对应的erd图。

在本申请优选的实施方案中,通过上述操作便得到实体和属性之间的相似度,最后根据其相似度便能得到不依赖于外键从而生成的展示实体关系模型的erd图。

通过应用本申请的技术方案,将数据库中各实体的物理名称以及各属性的物理名称进行分词处理;将分词处理后的词对应的原型词进行同义词合并,以生成规范化用词;根据规范化词集中各词的词频属性生成与各实体以及各属性对应的向量;再根据该向量确定实体和属性之间的相似度;最后根据相似度生成与数据库对应的erd图。本申请提出的实体联系图erd图生成方法不依赖于外键,提高逆向工作的适应性和效率。

为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。

步骤201、将数据库中各实体的物理名称以及各属性的物理名称进行分词处理。

在具体的应用场景中,进行分词处理输入的是dbms的ddl语句(tokenizer/parser的输入),进行分词处理的过程如图3所示,分词后的结果如图4所示。

步骤202、将得到的分词处理后的词对应的词原型进行同义词合并,以生成规范化词。

在具体的应用场景中,将分词后词(word:复数、过去式)规范化成词原型,并基于词典方式进行合并,在具体的应用场景中,可以将同义词词典收录进系统,根据同义词词典对各同义词的划分来将规范后的词原型进行同义词合并。

步骤203、根据规范化后的词集中各词的词频属性值以及逆文本频率属性值生成与各所述实体与各所述属性对应的向量。

在具体的应用场景中,将规范化后的词集划分到实体对应的实体集合以及属性对应的属性集合中。

tf-idf(termfrequency–inversedocumentfrequency)是一种用于信息检索与数据挖掘的常用加权技术,tf为词频(termfrequency,),指的是某一个给定的词语在该文件中出现的频率,并且这个数字是对词数的归一化,以防止该给定的词偏向长文件(同一个词在长文件里可能会比短文件有更高的词数,而无论该词语重要与否)。对特定文件中的词语来说,其重要性可表示为:

以上式子中,分子为该词在文件中出现的次数,分母则是所有字词出现的词数之和。

idf为逆文本频率指数(inversedocumentfrequency),是一个词语普遍重要性的度量,某一特定词语的idf,可以由总文件数目包含词语之文件的数目,再将得到的商取以10为底的对数得到,其公式如下:

并计算tf与idf的乘积:tfidfi,j=tfi,j×idfj

tf-idf倾向于过滤掉常见的词语,保留重要的词语。

进一步的,根据各实体、属性在其实体集合、属性集合中对应的词的数量以及权重值生成与各所述实体、属性对应的向量。

在具体的应用场景中,利用word2vector分别计算实体和属性的向量化,并用一个数值化的向量表示实体和属性,其中,word2vector是一群用来产生词向量的相关模型,这些模型是浅而双层的神经网络,用来训练以重新建构语言学之词文本,在word2ector中词袋模型假设下,词的顺序是不重要的,该模型可用来映射每个词到一个向量,可用来表示词对词之间的关系,由于词向量具有良好的语义特性,且词向量每一维的值可代表一个具有一定的语义和语法上解释的特征,因此,词向量是表示词语特征的常用方式,其实体向量的计算公式如下:

其中,n为实体对应的单词数量,tfidfi为实体名称第i词的tf-idf的值,wordveci为实体名称第i词的词向量。

属性向量的计算公式如下:

其中,n为属性名称对应的单词数量,tfidfi为属性名称第i词的tf-idf的值,wordveci为属性名称第i词的词向量。

步骤204、通过向量的夹角余弦值确定向量之间的相似度。

在具体的应用场景中,通过计算两个向量的夹角余弦值来确定向量之间的相似度,余弦相似度通过测量两个向量的夹角的余弦值来度量它们之间的相似度。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为0到1之间,也就是各实体与各属性之间的相似度,其相似度计算公式如下:

然后通过相似度计算得到的结果可以得到相似度矩阵,例如图2。

步骤205、根据相似度矩阵生成与数据库对应的erd图。

通过应用本申请的技术方案,将数据库中各实体的物理名称以及各属性的物理名称进行分词处理;将分词处理后的词对应的原型词进行同义词合并,以生成规范化用词;根据规范化词集中各词的词频属性生成与各实体以及各属性对应的向量;再根据该向量确定实体和属性之间的相似度;最后根据相似度生成与数据库对应的erd图。本申请提出的实体联系图erd图生成方法不依赖于外键,提高逆向工作的适应性和效率。

为了达到以上目的,本发明还提出了一种实体联系图erd图生成设备,包括:

处理模块,用于将数据库中各实体的物理名称以及各属性的物理名称进行分词处理;

第一生成模块,用于将所述分词处理后的词所对应的原型词进行同义词合并,以生成规范化词;

第二生成模块,用于根据所述规范化词集中各词的词频属性值以及逆文本频率属性值生成与各所述实体以及各所述属性对应的向量;

确定模块,用于根据所述向量确定各所述实体与各所述属性之间的相似度;

第三生成模块,用于根据所述相似度生成与所述数据库对应的erd图。

优选的,所述第二生成模块,具体用于:

将所述规范化词集划分为与所述实体对应的实体集合以及与所述属性对应的属性集合;

确定所述实体集合以及所述属性集合中各个词的权重值,所述权重值根据所述词频属性值以及所述逆文本频率属性值生成;

根据各所述实体在所述实体集合中对应的词的数量以及权重值生成与各所述实体对应的向量,以及根据各所述属性在所述属性集合中对应的词的数量以及权重值生成与各所述属性对应的向量。

优选的,所述第二生成模块,还具体用于:

通过词向量神经网络模型将各所述实体在所述实体集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选的,所述第二生成模块,还具体用于:

通过词向量神经网络模型将各所述属性在所述属性集合中对应的词分别映射为子向量,根据各所述子向量、所述权重值以及所述数量生成所述向量。

优选的,所述确定模块,具体用于:

获取各所述实体对应的向量与各所述属性对应的向量之间的夹角余弦值;

根据所述夹角余弦值生成各所述实体与各所述属性的相似度矩阵。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1