CN114637811A - 数据表实体关系图生成方法、装置、设备及存储介质 - Google Patents
数据表实体关系图生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114637811A CN114637811A CN202210255798.9A CN202210255798A CN114637811A CN 114637811 A CN114637811 A CN 114637811A CN 202210255798 A CN202210255798 A CN 202210255798A CN 114637811 A CN114637811 A CN 114637811A
- Authority
- CN
- China
- Prior art keywords
- index
- data table
- data
- entity
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及人工智能技术,揭露了一种数据表实体关系图生成方法,包括:获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;根据所述对应关系,利用预设画图工具生成实体关系图。此外,本发明还涉及区块链技术,数据表可存储于区块链的节点。本发明还提出一种数据表实体关系图生成装置、电子设备以及存储介质。本发明可以提高数据表关系获取的效率。
Description
技术领域
本发明涉及人工智能技术领域,尤其涉及一种数据表实体关系图生成方法、装置、电子设备及计算机可读存储介质。
背景技术
随着互联网的发展,数据库中数据表越来越多,查看数据库的表关系越来越困难。
历史上数据库中的表关系是由外键关系进行标识,了解一个项目的底层数据存储结构,可直接依据外键建立ER关系图,随着互联网用户增加,外键关系的大量使用会给使数据表结构牵扯太多,造成程序无法灵活的操作数据。
现有数据库中外键基本已被废弃,表与表直接的关系也不再由数据库强关联,而是由代码控制数据之间的关系,开发者需要从页面逐层进入,找出接口,利用接口找到数据落地方式和位置,利用数据关系设计图及相关业务人员协助,才能得到一个项目的数据关系。
综上所述,当前获取数据表关系的方法效率低。
发明内容
本发明提供一种数据表实体关系图生成方法、装置及计算机可读存储介质,其主要目的在于解决获取数据表关系的方法效率低的问题。
为实现上述目的,本发明提供的一种数据表实体关系图生成方法,包括:
获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
根据所述对应关系,利用预设画图工具生成实体关系图。
可选地,所述根据所述索引查询所述数据表,得到查询结果,包括:
选取所述数据库中任意一数据表的所述索引中的主键索引;
选取所述数据库中其他数据表的所述索引中的非主键索引;
将所述主键索引与所述非主键索引进行匹配,得到查询结果。
可选地,所述根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系,包括:
根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果及数据表关系类型;
根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表;
提取所述主表及子表中对应的字段信息,利用所述字段信息、所述索引、所述数据表关系类型得到所述主表与所述子表之间的对应关系。
可选地,所述根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果,包括:
选取所述数据库中任意一存在关联的所述数据表的所述索引中的主键索引;
选取所述数据库中其他存在关联的所述数据表的所述索引中的非主键索引;
利用预设SQL脚本,根据所述主键索引及所述非主键索引对所述数据表进行等值连接计算,得到等值连接计算结果。
可选地,所述根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表,包括:
选取所述等值连接计算结果中次数多的数据表做为子表;
选取所述等值连接计算结果中次数少的数据表做为主表。
可选地,所述根据所述对应关系,利用预设画图工具生成实体关系图,包括:
从所述对应关系中提取具有预设规则的字段信息做为实体;
从所述对应关系中提取所述实体对应的特征做为属性;
从所述对应关系中提取所述实体间的映射关系及映射基数;
根据所述实体、所述属性、所述映射关系及所述映射基数,利用预设的实体关系图生成工具,生成实体关系图。
可选地,所述根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图之后,所述方法还包括:
根据预设的映射规则,将所述实体关系图映射为关系表。
为了解决上述问题,本发明还提供一种数据表实体关系图生成装置,所述装置包括:
查询模块,用于获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
分析模块,用于根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
画图模块,用于根据所述对应关系,利用预设画图工具生成实体关系图。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的数据表实体关系图生成方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据表实体关系图生成方法。
本发明实施例通过获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图,直接从所述数据表的索引中提取所述数据表之间的关系,无需通过外键或开发人员从页面入手反推数据关系,提升了数据表关系的获取效率。因此本发明提出的数据表实体关系图生成方法、装置、电子设备及计算机可读存储介质,可以解决获取数据表关系方法效率较低的问题。
附图说明
图1为本发明一实施例提供的数据表实体关系图生成方法的流程示意图;
图2为图1所示数据表实体关系图生成方法中其中一个步骤的详细实施流程示意图;
图3为图1所示数据表实体关系图生成方法中其中另一个步骤的详细实施流程示意图;
图4为本发明一实施例提供的数据表实体关系图生成装置的功能模块图;
图5为本发明一实施例提供的实现所述数据表实体关系图生成方法的电子设备的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种数据表实体关系图生成方法。所述数据表实体关系图生成方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述数据表实体关系图生成方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。所述服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
参照图1所示,为本发明一实施例提供的数据表实体关系图生成方法的流程示意图。在本实施例中,所述数据表实体关系图生成方法包括:
S1、获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果。
本发明实施例中,所述预设数据库为关系数据库,所述关系数据库是建立在关系数据库模型基础上的数据库,在一个给定的应用领域中,由所有实体及实体之间联系的集合构成。所述关系数据库中表格每列表示的一个或更多的数据种类,每行包含一个唯一的数据实体。
本发明实施例中,所述索引是对数据库的数据表中一列或多列的值进行排序的一种结构,使用所述索引可快速访问所述数据表中的特定信息。
本发明实施例中,所述索引类型包括:普通索引(normal)、唯一索引(unique)、全文搜索索引(full text)。其中,所述普通索引没有限制;其中,所述唯一索引表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为唯一索引;其中,所述全文搜索索引表示全文搜索的索引,例如在进行长文搜索时,可使用所述全文搜索索引。
本发明实施例中,所述索引的算法常用BTree和Hash,本发明实施例可采用BTree。
详细地,S1中所述根据所述索引查询所述数据表,得到查询结果,包括:
选取所述数据库中任意一数据表的所述索引中的主键索引;
选取所述数据库中其他数据表的所述索引中的非主键索引;
将所述主键索引与所述非主键索引进行匹配,得到查询结果。
本发明实施例中,所述主键索引是所述数据表中的一个或多个字段,它的值用于唯一标识所述数据表中的某一条记录。所述主键索引可以由多个关键字共同组成,并且主键索引的值不能为空也不能重复。
本发明实施例中,所述非主键索引为二级索引,所述非主键索引的叶子节点中保存所述主键索引的值,所述非主键索引与所述主键索引机构相同,但是所述非主键索引的值可以重复。
本发明实施,将所述主键索引与所述非主键索引进行匹配,得到查询结果,所述查询结果分为能从所述主键索引中查询到所述非主键索引相同的值及不能从所述主键索引中查询到所述非主键索引相同的值。
S2、根据所述查询结果判断所述数据表之间是否存在关联。
本发明实施例,当所述查询结果为能从所述主键索引中查询到所述非主键索引相同的值时,表明所述数据表之间存在关联。
本发明实施例,当所述查询结果为不能从所述主键索引中查询到所述非主键索引相同的值时,表明所述数据表之间不存在关联。
当所述数据表与其他数据表之间不存在关联时,S3、将不存在关联的所述数据表做为基础数据表,不做处理。
本发明实施例,所述基础数据表不涉及业务数据,主要存储事例数据及表结构注释等。
本发明实施例中,当所述数据表与其他数据表之间不存在关联关系时,将所述数据表做为基础数据表,存储在预设数据库中,不做进一步处理。
当根据所述查询结果判断所述数据表之间存在关联时,S4、根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系。
详细地,参阅图2所示,所述S4包括:
S41、根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果及数据表关系类型;
S42、根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表;
S43、提取所述主表及子表中对应的字段信息,利用所述字段信息、所述索引、所述数据表关系类型得到所述主表与所述子表之间的对应关系。
本发明实施例中,所述数据表关系类型包括:1:1,1:N,M:1,M:N,其中所述N、M分别为自然数;表示数据表之间的映射关系为1对1,1对多,多对1,多对多。
其中,所述1对1(1:1),例如:对于数据表A与数据表B,所述数据表A中的每一个实体至多与所述数据表B中一个实体有关系;反之,在所述数据表B中的每个实体至多与数据表A中一个实体有关系。
其中,所述1对多(1:N),例如:对于数据表A中的实体与数据表B中至少有N个实体有关系;并且数据表B中每一个实体至多与数据表A中一个实体有关系。
其中,所述多对1(M:1),例如:数据表B中的实体与数据表A中至少有M个实体有关系;并且数据表A中每一个实体至多与数据表B中一个实体有关系。
其中,所述多对多(M:N),例如:数据表A中的每一个实体与数据表B中至少有M个实体有关系,并且所述数据表B中的每一个实体与实体集A中的至少N个实体有关系。
本发明实施例中,所述实体(Entity)是客观存在并可相互区别的事物指某类事物的集合,将每一类数据对象的个体称为实体。
详细地,参阅图3所示,S41中所述根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果,包括:
S411、选取所述数据库中任意一存在关联的所述数据表的所述索引中的主键索引;
S412、选取所述数据库中其他存在关联的所述数据表的所述索引中的非主键索引;
S413、利用预设SQL脚本,根据所述主键索引及所述非主键索引对所述数据表进行等值连接计算,得到等值连接计算结果。
本发明实施例中,所述预设SQL脚本为统计两个表中联结字段相等的ID数量。例如:SELECT count(DISTINCT t.id),count(DISTINCT m.id)FROM t_s_user_ext01 tinner join t_s_user01 m on m.id=t.user_id,其中DISTINCT t.id子为非主键值去重后的数值;(DISTINCT m.id)主为主键去重后的数据值;t_s_user_ext01为其中一数据表的表名;t_s_user01为另一数据表的表名;id为所述数据表t_s_user01的主键值;t.user_id为所述数据表t_s_user_ext01的非主键值。
其中,所述等值连接计算利用等值连接(inner join)运算语句实现,所述等值连接为组合两个表中的主键索引及非主键索引,当存在至少一个匹配时,返回两个表中联结字段相等的行。
进一步地,所述根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表,包括:
选取所述等值连接计算结果中次数多的数据表做为子表;
选取所述等值连接计算结果中次数少的数据表做为主表。
本发明实施例中,例如所述等值连接计算结果为所述数据表t_s_user_ext01为3,所述数据表t.user_id为2,则所述数据表t.user_id为主表,所述数据表t_s_user_ext01为子表。
本发明实施例中,所述对应关系,包含所述数据表的关联的所有字段信息及字段之间的关联关系。
本发明实施例中,通过所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系,直接从所述数据表的索引中提取所述数据表之间的关系,无需通过外键或开发人员从页面入手反推数据关系,提升了数据表关系的获取效率。
S5、根据所述对应关系,利用预设画图工具生成实体关系图。
本发明实施例中,所述预设画图工具可选用DbSchema、PowerDesigner、ERStudio等工具。
本发明实施例中,所述实体关系图为ER图(Entity Relationship Diagram),由实体、属性、映射关系、连线组成。其中,所述实体为相互区分的事物就是实体,实体可以是具体的人或物,用矩形框表示;其中所述属性实体所具有的某一特性,一个实体可由若干个属性来表征,用椭圆形表示;其中所述映射关系反映实体内部或实体之间的关联,用菱形表示。
详细地,所述S5包括:
从所述对应关系中提取具有预设规则的字段信息做为实体;
从所述对应关系中提取所述实体对应的特征做为属性;
从所述对应关系中提取所述实体间的映射关系及映射基数;
根据所述实体、所述属性、所述映射关系及所述映射基数,利用预设的实体关系图生成工具,生成实体关系图。
本发明实施例中,所述具有预设规则的字段信息主要为根据业务需求确认的客观存在并可以相互区别的事物。例如学生学课***中,学生、老师、课程均为实体。
本发明实施例中,所述映射基数为所述映射关系的个数,例如实体A与实体B之间可以存在一对一联系、一对多联系、多对多联系等。
进一步地,当生成所述实体关系图之后,各个实体关系图发生属性冲突、命名冲突、结构冲突、冗余数据及冗余的实体间联系时,需修改或重构实体关系图,除此之外还可以用规范化理论消除所述冗余数据及冗余的所述实体间联系。
本发明实施例中,所述根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图之后,所述方法还包括:根据预设的映射规则,将所述实体关系图映射为关系表。所述关系表包含行(不能重复)、列(属性)、主键、外键;所述外键为表示了两个关系表之间的相关联系。所述关系表更能直观、详细地展示所述数据表之间的关联关系,能让开发人员清晰的看到所述数据库中各个数据表之间的关联关系。
本发明实施例通过获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图,直接从所述数据表的索引中提取所述数据表之间的关系,无需通过外键或开发人员从页面入手反推数据关系,提升了数据表关系的获取效率。因此本发明提出的数据表实体关系图生成方法,可以解决获取数据表关系方法效率较低的问题。
如图4所示,是本发明一实施例提供的数据表实体关系图生成装置的功能模块图。
本发明所述数据表实体关系图生成装置100可以安装于电子设备中。根据实现的功能,所述数据表实体关系图生成装置100可以包括查询模块101、分析模块102、画图模块103。本发明所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述查询模块101,用于获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果。
本发明实施例中,所述预设数据库为关系数据库,所述关系数据库是建立在关系数据库模型基础上的数据库,在一个给定的应用领域中,由所有实体及实体之间联系的集合构成。所述关系数据库中表格每列表示的一个或更多的数据种类,每行包含一个唯一的数据实体。
本发明实施例中,所述索引是对数据库的数据表中一列或多列的值进行排序的一种结构,使用所述索引可快速访问所述数据表中的特定信息。
本发明实施例中,所述索引类型包括:普通索引(normal)、唯一索引(unique)、全文搜索索引(full text)。其中,所述普通索引没有限制;其中,所述唯一索引表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为唯一索引;其中,所述全文搜索索引表示全文搜索的索引,例如在进行长文搜索时,可使用所述全文搜索索引。
本发明实施例中,所述索引的算法常用BTree和Hash,本发明实施例可采用BTree。
详细地,所述查询模块101中所述根据所述索引查询所述数据表,得到查询结果,用于:
选取所述数据库中任意一数据表的所述索引中的主键索引;
选取所述数据库中其他数据表的所述索引中的非主键索引;
将所述主键索引与所述非主键索引进行匹配,得到查询结果。
本发明实施例中,所述主键索引是所述数据表中的一个或多个字段,它的值用于唯一标识所述数据表中的某一条记录。所述主键索引可以由多个关键字共同组成,并且主键索引的值不能为空也不能重复。
本发明实施例中,所述非主键索引为二级索引,所述非主键索引的叶子节点中保存所述主键索引的值,所述非主键索引与所述主键索引机构相同,但是所述非主键索引的值可以重复。
本发明实施,将所述主键索引与所述非主键索引进行匹配,得到查询结果,所述查询结果分为能从所述主键索引中查询到所述非主键索引相同的值及不能从所述主键索引中查询到所述非主键索引相同的值。
所述分析模块102,用于根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系。
本发明实施例,根据所述查询结果判断所述数据表之间是否存在关联。
本发明实施例,当所述查询结果为能从所述主键索引中查询到所述非主键索引相同的值时,表明所述数据表之间存在关联。
本发明实施例,当所述查询结果为不能从所述主键索引中查询到所述非主键索引相同的值时,表明所述数据表之间不存在关联。
当所述数据表与其他数据表之间不存在关联时,将不存在关联的所述数据表做为基础数据表,不做处理。
本发明实施例,所述基础数据表不涉及业务数据,主要存储事例数据及表结构注释等。
本发明实施例中,当所述数据表与其他数据表之间不存在关联关系时,将所述数据表做为基础数据表,存储在预设数据库中,不做进一步处理。
当根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系。
详细地,参阅图2所示,所述所述分析模块102,用于:
根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果及数据表关系类型;
根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表;
提取所述主表及子表中对应的字段信息,利用所述字段信息、所述索引、所述数据表关系类型得到所述主表与所述子表之间的对应关系。
本发明实施例中,所述数据表关系类型包括:1:1,1:N,M:1,M:N,其中所述N、M分别为自然数;表示数据表之间的映射关系为1对1,1对多,多对1,多对多。
其中,所述1对1(1:1),例如:对于数据表A与数据表B,所述数据表A中的每一个实体至多与所述数据表B中一个实体有关系;反之,在所述数据表B中的每个实体至多与数据表A中一个实体有关系。
其中,所述1对多(1:N),例如:对于数据表A中的实体与数据表B中至少有N个实体有关系;并且数据表B中每一个实体至多与数据表A中一个实体有关系。
其中,所述多对1(M:1),例如:数据表B中的实体与数据表A中至少有M个实体有关系;并且数据表A中每一个实体至多与数据表B中一个实体有关系。
其中,所述多对多(M:N),例如:数据表A中的每一个实体与数据表B中至少有M个实体有关系,并且所述数据表B中的每一个实体与实体集A中的至少N个实体有关系。
本发明实施例中,所述实体(Entity)是客观存在并可相互区别的事物指某类事物的集合,将每一类数据对象的个体称为实体。
详细地,参阅图3所示,所述根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果,用于:
选取所述数据库中任意一存在关联的所述数据表的所述索引中的主键索引;
选取所述数据库中其他存在关联的所述数据表的所述索引中的非主键索引;
利用预设SQL脚本,根据所述主键索引及所述非主键索引对所述数据表进行等值连接计算,得到等值连接计算结果。
本发明实施例中,所述预设SQL脚本为统计两个表中联结字段相等的ID数量。例如:SELECT count(DISTINCT t.id),count(DISTINCT m.id)FROM t_s_user_ext01t innerjoin t_s_user01 m on m.id=t.user_id,其中DISTINCT t.id子为非主键值去重后的数值;(DISTINCT m.id)主为主键去重后的数据值;t_s_user_ext01为其中一数据表的表名;t_s_user01为另一数据表的表名;id为所述数据表t_s_user01的主键值;t.user_id为所述数据表t_s_user_ext01的非主键值。
其中,所述等值连接计算利用等值连接(inner join)运算语句实现,所述等值连接为组合两个表中的主键索引及非主键索引,当存在至少一个匹配时,返回两个表中联结字段相等的行。
进一步地,所述根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表,用于:
选取所述等值连接计算结果中次数多的数据表做为子表;
选取所述等值连接计算结果中次数少的数据表做为主表。
本发明实施例中,例如所述等值连接计算结果为所述数据表t_s_user_ext01为3,所述数据表t.user_id为2,则所述数据表t.user_id为主表,所述数据表t_s_user_ext01为子表。
本发明实施例中,所述对应关系,包含所述数据表的关联的所有字段信息及字段之间的关联关系。
本发明实施例中,通过所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系,直接从所述数据表的索引中提取所述数据表之间的关系,无需通过外键或开发人员从页面入手反推数据关系,提升了数据表关系的获取效率。
所述画图模块103,用于根据所述对应关系,利用预设画图工具生成实体关系图。
本发明实施例中,所述预设画图工具可选用DbSchema、PowerDesigner、ERStudio等工具。
本发明实施例中,所述实体关系图为ER图(Entity Relationship Diagram),由实体、属性、映射关系、连线组成。其中,所述实体为相互区分的事物就是实体,实体可以是具体的人或物,用矩形框表示;其中所述属性实体所具有的某一特性,一个实体可由若干个属性来表征,用椭圆形表示;其中所述映射关系反映实体内部或实体之间的关联,用菱形表示。
详细地,所述画图模块103,用于:
从所述对应关系中提取具有预设规则的字段信息做为实体;
从所述对应关系中提取所述实体对应的特征做为属性;
从所述对应关系中提取所述实体间的映射关系及映射基数;
根据所述实体、所述属性、所述映射关系及所述映射基数,利用预设的实体关系图生成工具,生成实体关系图。
本发明实施例中,所述具有预设规则的字段信息主要为根据业务需求确认的客观存在并可以相互区别的事物。例如学生学课***中,学生、老师、课程均为实体。
本发明实施例中,所述映射基数为所述映射关系的个数,例如实体A与实体B之间可以存在一对一联系、一对多联系、多对多联系等。
进一步地,当生成所述实体关系图之后,各个实体关系图发生属性冲突、命名冲突、结构冲突、冗余数据及冗余的实体间联系时,需修改或重构实体关系图,除此之外还可以用规范化理论消除所述冗余数据及冗余的所述实体间联系。
本发明实施例中,所述根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图之后,所述方法还包括:根据预设的映射规则,将所述实体关系图映射为关系表。所述关系表包含行(不能重复)、列(属性)、主键、外键;所述外键为表示了两个关系表之间的相关联系。所述关系表更能直观、详细地展示所述数据表之间的关联关系,能让开发人员清晰的看到所述数据库中各个数据表之间的关联关系。
详细地,本发明实施例中所述数据表实体关系图生成装置100中所述的各模块在使用时采用与上述图1至图3中所述的数据表实体关系图生成方法一样的技术手段,并能够产生相同的技术效果,这里不再赘述。
如图5所示,是本发明一实施例提供的实现数据表实体关系图生成方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11、通信总线12以及通信接口13,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如数据表实体关系图生成程序。
其中,所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(ControlUnit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行数据表实体关系图生成程序等),以及调用存储在所述存储器11内的数据,以执行电子设备的各种功能和处理数据。
所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备的内部存储单元,例如该电子设备的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备的应用软件及各类数据,例如数据表实体关系图生成程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述通信总线12可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
所述通信接口13用于上述电子设备与其他设备之间的通信,包括网络接口和用户接口。可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备与其他电子设备之间建立通信连接。所述用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的数据表实体关系图生成程序是多个指令的组合,在所述处理器10中运行时,可以实现:
获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
根据所述对应关系,利用预设画图工具生成实体关系图。
具体地,所述处理器10对上述指令的具体实现方法可参考附图对应实施例中相关步骤的描述,在此不赘述。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。所述计算机可读存储介质可以是易失性的,也可以是非易失性的。例如,所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
根据所述对应关系,利用预设画图工具生成实体关系图。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种数据表实体关系图生成方法,其特征在于,所述方法包括:
获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
根据所述对应关系,利用预设画图工具生成实体关系图。
2.如权利要求1所述的数据表实体关系图生成方法,其特征在于,所述根据所述索引查询所述数据表,得到查询结果,包括:
选取所述数据库中任意一数据表的所述索引中的主键索引;
选取所述数据库中其他数据表的所述索引中的非主键索引;
将所述主键索引与所述非主键索引进行匹配,得到查询结果。
3.如权利要求1所述的数据表实体关系图生成方法,其特征在于,所述根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系,包括:
根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果及数据表关系类型;
根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表;
提取所述主表及子表中对应的字段信息,利用所述字段信息、所述索引、所述数据表关系类型得到所述主表与所述子表之间的对应关系。
4.如权利要求3所述的数据表实体关系图生成方法,其特征在于,所述根据所述索引及所述索引类型,分析存在关联的所述数据表,得到等值连接计算结果,包括:
选取所述数据库中任意一存在关联的所述数据表的所述索引中的主键索引;
选取所述数据库中其他存在关联的所述数据表的所述索引中的非主键索引;
利用预设SQL脚本,根据所述主键索引及所述非主键索引对所述数据表进行等值连接计算,得到等值连接计算结果。
5.如权利要求3所述的数据表实体关系图生成方法,其特征在于,所述根据所述等值连接计算结果对存在关联的所述数据表进行分类,得到主表及子表,包括:
选取所述等值连接计算结果中次数多的数据表做为子表;
选取所述等值连接计算结果中次数少的数据表做为主表。
6.如权利要求1中所述的数据表实体关系图生成方法,其特征在于,所述根据所述对应关系,利用预设画图工具生成实体关系图,包括:
从所述对应关系中提取具有预设规则的字段信息做为实体;
从所述对应关系中提取所述实体对应的特征做为属性;
从所述对应关系中提取所述实体间的映射关系及映射基数;
根据所述实体、所述属性、所述映射关系及所述映射基数,利用预设的实体关系图生成工具,生成实体关系图。
7.如权利要求1-6中任一项所述的数据表实体关系图生成方法,其特征在于,所述根据所述对应关系及所述字段信息,利用预设画图工具生成实体关系图之后,所述方法还包括:
根据预设的映射规则,将所述实体关系图映射为关系表。
8.一种数据表实体关系图生成装置,其特征在于,所述装置包括:
查询模块,用于获取预设数据库中所有数据表的索引及索引类型,根据所述索引查询所述数据表,得到查询结果;
分析模块,用于根据所述查询结果判断所述数据表之间存在关联时,根据所述索引及所述索引类型,分析存在关联的所述数据表得到主表及子表以及所述主表与所述子表之间的对应关系;
画图模块,用于根据所述对应关系,利用预设画图工具生成实体关系图。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任意一项所述的数据表实体关系图生成方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的数据表实体关系图生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255798.9A CN114637811A (zh) | 2022-03-15 | 2022-03-15 | 数据表实体关系图生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255798.9A CN114637811A (zh) | 2022-03-15 | 2022-03-15 | 数据表实体关系图生成方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114637811A true CN114637811A (zh) | 2022-06-17 |
Family
ID=81948830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210255798.9A Pending CN114637811A (zh) | 2022-03-15 | 2022-03-15 | 数据表实体关系图生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114637811A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303342A (zh) * | 2023-02-01 | 2023-06-23 | 北京三维天地科技股份有限公司 | 一种逆向模型的构建方法及*** |
CN116501757A (zh) * | 2023-06-20 | 2023-07-28 | 鹏城实验室 | 一种基于er图的模拟数据构造方法及装置 |
-
2022
- 2022-03-15 CN CN202210255798.9A patent/CN114637811A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116303342A (zh) * | 2023-02-01 | 2023-06-23 | 北京三维天地科技股份有限公司 | 一种逆向模型的构建方法及*** |
CN116303342B (zh) * | 2023-02-01 | 2023-09-12 | 北京三维天地科技股份有限公司 | 一种逆向模型的构建方法及*** |
CN116501757A (zh) * | 2023-06-20 | 2023-07-28 | 鹏城实验室 | 一种基于er图的模拟数据构造方法及装置 |
CN116501757B (zh) * | 2023-06-20 | 2023-10-03 | 鹏城实验室 | 一种基于er图的模拟数据构造方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114637811A (zh) | 数据表实体关系图生成方法、装置、设备及存储介质 | |
CN103262076A (zh) | 分析数据处理 | |
CN114979120B (zh) | 数据上传方法、装置、设备及存储介质 | |
CN113887941B (zh) | 业务流程生成方法、装置、电子设备及介质 | |
CN112115152A (zh) | 数据增量更新及查询方法、装置、电子设备及存储介质 | |
CN113672781A (zh) | 数据查询方法、装置、电子设备及存储介质 | |
CN105302730A (zh) | 一种检测计算模型的方法、测试服务器及业务平台 | |
CN112231417A (zh) | 数据分类方法、装置、电子设备及存储介质 | |
CN114840531B (zh) | 基于血缘关系的数据模型重构方法、装置、设备及介质 | |
CN112949278A (zh) | 数据核对方法、装置、电子设备及可读存储介质 | |
CN113806434A (zh) | 大数据处理方法、装置、设备及介质 | |
CN114398346A (zh) | 数据迁移方法、装置、设备及存储介质 | |
CN113434542B (zh) | 数据关系识别方法、装置、电子设备及存储介质 | |
Ritze | Web-scale web table to knowledge base matching | |
CN111538768A (zh) | 基于n元模型的数据查询方法、装置、电子设备及介质 | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN114238375B (zh) | 指标查询方法、装置、电子设备及存储介质 | |
CN115062023A (zh) | 宽表优化方法、装置、电子设备及计算机可读存储介质 | |
CN115774717A (zh) | 数据搜索方法、装置、电子设备及计算机可读存储介质 | |
CN113254446B (zh) | 数据融合方法、装置、电子设备及介质 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN114491196A (zh) | 基于信息粒度的信息导出方法、装置、设备及介质 | |
CN114637866A (zh) | 数字化新媒体的信息管理方法及装置 | |
CN111553133B (zh) | 报表生成方法、装置、电子设备及存储介质 | |
CN114490666A (zh) | 基于数据需求的图表生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |