CN111125265B - 一种基于关系型数据库数据生成图数据的方法和装置 - Google Patents
一种基于关系型数据库数据生成图数据的方法和装置 Download PDFInfo
- Publication number
- CN111125265B CN111125265B CN201911284276.6A CN201911284276A CN111125265B CN 111125265 B CN111125265 B CN 111125265B CN 201911284276 A CN201911284276 A CN 201911284276A CN 111125265 B CN111125265 B CN 111125265B
- Authority
- CN
- China
- Prior art keywords
- data
- relational database
- node
- graph data
- relationship
- 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.)
- Active
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Abstract
本发明涉及数据库技术领域,提供了一种基于关系型数据库数据生成图数据的方法和装置。方法包括加载关系型数据库到内存中,作为原始数据;确定原始数据的图数据目标类型;其中,所述图数据包括节点、关系、节点属性和关系属性;构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中。本发明提供的技术为使用链表将关系连接起来,也就是链表中的节点是属于该顶点的关系,并且在每一个关系中都保存了对前向关系和后向关系的链接,使得关系的查询更加方便。另外,本发明中的属性和关系都采用ID标识,使得相同的属性可以采用ID引用的方式,减少重复创建相同的值,缩减空间利用。
Description
【技术领域】
本发明涉及数据库技术领域,特别是涉及一种基于关系型数据库数据生成图数据的方法和装置。
【背景技术】
传统关系型数据库指的是采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。目前,大部分数据都存储在传统关系型数据库中,在面对传统关系型数据库进行存储时,需要建立明确的表结构,这使得每个表都存储了职责单一的数据,但是当需要同时查询某些数据的关联性时,就需要同时查询多个表,必须使用多表的联合查询,但是联合查询十分消耗时空间,当表中数据量或者表的张数过多时,联合查询甚至无法完成。
图是指计算机科学中的一种特殊的非线性数据结构,其相较于线性结构的链表、数组和非线性结构的树而言,更加的复杂。一般而言,图由顶点和边构成,顶点和顶点之间可以由边进行连接。
而图数据则是在逻辑上结构与图数据结构相似的一种数据,该数据主要包含节点、关系、节点属性和关系属性等,图数据中的节点对应着图数据结构中的顶点,图数据中的关系对应着图数据结构中的边,而节点属性和边属性则是键值对类型的数据,用于描述节点和边的独有特性。
图数据相较于传统关系型数据具有独特的优势,首先图数据可以免去表结构的建立,可以将原始数据根据需要抽象为图节点数据或者图关系数据,当需要查询图中数据的关联关系时,使用常见的图查询算法即可。
常见的图数据存储数据结构有邻接矩阵,邻接链表等方式,但是这两种方式的问题在于,邻接矩阵消耗空间过于巨大,尤其是针对于稀疏图,存在巨大的空间浪费。鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。常见的使用邻接链表保存图数据的方案中,链表中的元素是顶点,这种方案能存储图数据,但是该方法可能存在一条边被存储多次的情况,从而浪费存储空间。
【发明内容】
本发明要解决的技术问题是常见的图数据存储数据结构有邻接矩阵,邻接链表等方式,但是这两种方式的问题在于,邻接矩阵消耗空间过于巨大,尤其是针对于稀疏图,存在巨大的空间浪费;常见的邻接链表保存图数据可能存在一条边被存储多次的情况,也存在空间浪费。
本发明进一步要解决的技术问题是如何提供一种可供计算机自动化实现的关系型数据库数据生成图数据的方法。
本发明采用如下技术方案:
第一方面,本发明提供了一种基于关系型数据库数据生成图数据的方法,包括:
加载关系型数据库到内存中,作为原始数据;
确定原始数据的图数据目标类型;其中,所述图数据包括节点、关系、节点属性和关系属性;
构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中;
其中,在所述目标类型数据结构中,节点中包括:节点ID、关系ID和节点属性ID;关系包括:关系ID、关系前一节点ID、关系后一节点ID、关系的前一层关系ID、关系的后一层关系ID、关系属性ID;关系属性和节点属性各自包括:属性ID、属性键、属性值和下一个属性ID。
优选的,所述图数据目标类型,包括:节点、关系、节点属性和关系属性,则所述确定原始数据的图数据目标类型,具体包括:
遍历关系型数据库中的一张或者多张数据表,确定每一张数据表中包含相邻表中相同数据项,和/或通过包含相同数据项确定与每一张数据表建立有关联关系的数据表数量;
根据所述每一张数据表中包含所述相邻表中相同数据项数量和/或每一张数据表中包含的关联关系的数据表数量进行排序;
根据其中排序靠前的一张或者多张表中所包含的相邻表中相同数据项作为节点,将各表中其它特征数据作为相应节点的属性值,并利用关系型数据库中数据表与数据表之间关系属性生成相应节点之间的关系和关系属性。
优选的,所述节点属性类由当前属性ID、属性内容和下一个属性ID构成,从而使得同一节点下的一条或者多条节点属性构成属性链表。
优选的,所述构建图数据目标类型数据结构,具体包括:
根据确定作为图数据节点的一个或者多个关系型数据中的键值,以及由关系型数据库中数据表与数据表之间关系属性生成的相应节点之间的关系和关系属性,构建对应于图数据目标类型数据结构的执行脚本文件。
优选的,根据原始数据填充到图数据目标类型的属性信息,具体包括:
将原始数据作为数据源,执行所述脚本文件,得到与所述关系型数据库数据所对应的图数据。
优选的,所述确定原始数据的图数据目标类型之前,还包括:
分析原始数据内容,确定是否与历史建立的图数据类型模板匹配;
若匹配则直接采用相应的图数据类型模板作为图数据目标类型;
其中,所述图数据类型模板包括校园类、企业类和政府类,以及财务类、人事类和管理类中的一种或者多种的组合。
优选的,所述传统关系型数据库,包括:
开源关系型数据库MySQL、开源关系型数据库Maria DB、微软SQL Server关系型数据库、甲骨文Oracle关系型数据库中的一种或者多种。
优选的,在构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中,具体是按照指定的原始数据在关系型数据中前后顺序进行填充时,所述构建图数据目标类型数据结构中的关系中还包括对应于前一节点的相邻后关系和对应于后一节点的相邻前关系。
第二方面,本发明还提供了一种基于关系型数据库数据生成图数据的方法和装置,用于实现第一方面所述的基于关系型数据库数据生成图数据的方法,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的基于关系型数据库数据生成图数据的方法。
第三方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的基于关系型数据库数据生成图数据的方法。
本发明提供的技术为使用链表将关系连接起来,也就是链表中的节点是属于该顶点的关系,并且在每一个关系中都保存了对前向关系和后向关系的链接,使得关系的查询更加方便。另外,本发明中的属性和关系都采用ID标识,使得相同的属性可以采用ID引用的方式,减少重复创建相同的值,缩减空间利用。
进一步,在本发明优选方案中所提出的关系型数据库到图数据转换的方法,抓住了两者之间隐藏的共同属性,使得本发明所提出的生成图数据的方法能够利用计算机实现自动化。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于关系型数据库数据生成图数据的方法流程示意图;
图2是本发明实施例提供的一种基于关系型数据库数据自动化生成图数据中节点生成顺序示意图;
图3是本发明实施例提供的一种基于关系型数据库数据自动化生成图数据的方法流程示意图;
图4是本发明实施例提供的一种基于关系型数据库数据和模板的生成图数据的方法流程示意图;
图5是本发明实施例提供的一种学校信息的关系型数据中学生数据表示意图;
图6是本发明实施例提供的一种学校信息的关系型数据中老师数据表示意图;
图7是本发明实施例提供的一种学校信息的关系型数据中学生成绩数据表示意图;
图8是本发明实施例提供的一种学校信息的关系型数据中对应图数据目标结构示意图;
图9是本发明实施例提供的一种根据学校信息的关系型数据生成图数据示意图;
图10是本发明实施例提供的一种基于关系型数据库数据生成图数据的装置结构示意图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
本发明实施例1提供了一种基于关系型数据库数据生成图数据的方法,如图1所示,包括:
在步骤201中,加载关系型数据库到内存中,作为原始数据。
其中,所述传统关系型数据库,包括:开源关系型数据库MySQL、开源关系型数据库Maria DB、微软SQL Server关系型数据库、甲骨文Oracle关系型数据库中的一种或者多种。
在本发明实施例中,为了提高后续步骤过程中图数据目标类型的确定和相应数据结构的生成,优选的,在加载关系型数据库时候,对于各属性的表格,根据数据库日志,选择一指定时段内生成的、且覆盖各关系型数据表格的,关系型数据进行加载。这样,既能保证对关系型数据库中各典型表格中数据代表的筛选,又能通过时间上的限定保证他们之间存在应有的关联性。
在步骤202中,确定原始数据的图数据目标类型;其中,所述图数据包括节点、关系、节点属性和关系属性。
所述图数据目标类型,更像是一种更具节点和关系搭建起来的框架,其中,节点的数量使得能够支撑起典型的关系即可。即在所述图数据目标类型中,包含了主要的或者全部的关系。
在步骤203中,构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中。
其中,在所述目标类型数据结构中,节点中包括:节点ID、关系ID和节点属性ID;关系包括:关系ID、关系前一节点ID、关系后一节点ID、关系的前一层关系ID、关系的后一层关系ID、关系属性ID;关系属性和节点属性各自包括:属性ID、属性键、属性值和下一个属性ID。
对于现有技术中的邻接链表,常见的方式是使用链表表示邻接的顶点,也就是链表中的节点是顶点,而本发明提供的技术为使用链表将关系连接起来,也就是链表中的节点是属于该顶点的关系,并且在每一个关系中都保存了对前向关系和后向关系的链接,使得关系的查询更加方便。另外,本发明中的属性和关系都采用ID标识,使得相同的属性可以采用ID引用的方式,减少重复创建相同的值,缩减空间利用。
为了进一步清楚的阐述上述实施例中所涉及的节点和关系特性,接下来引用图数据节点使用到的Java类定义进行说明,如下:
class Node
{
int id;
int nextRelationShipId;
int nextPropertyId;
int labelId;
}
上述Nodes类保存了一个图数据顶点(在本发明实施例中也可以理解为节点)信息,其中,成员变量id为4字节整形数,唯一标识当前节点;成员变量nextRelationShipId为4字节整形数,代表这指向当前节点的关系id;成员变量nextPropertyId为4字节整形数,指向当前节点的第一个属性;成员变量labelId为4字节整形数,指向当前节点的标签信息。
图数据关系使用到的Java类定义如下:
class Realtionship
{
int id;
int firstNodeId;
int secondNodeId;
int firstPreviousRelationshipId;
int firstNextRelationshipId;
int secondPreviousRelationshipId;
int secondNextRelationshipId;
int propertyId;
}
上述Relationship类保存了一条图数据中的关系信息。所有成员变量都为4字节整形数,id唯一标识当前关系,firstNodeId为本关系的第一个节点的id,secondNodeId为本关系的第二个节点的id(其中,如果把关系比喻成直线的话,则所述firstNodeId和secondNodeId可以理解为该直线的两个端点),firstPreviousRelationshipId为本关系的第一个节点的前一个关系的id(即上述的关系的前一层关系ID),firstNextRelationshipId为本关系的第一个节点的下一个关系,secondPreviousRelationshipId为本关系的第二个节点的前一个关系,secondNextRelationshipId为本关系的第二个节点的下一个关系(即关系的后一层关系ID),propertyId为关系属性的id。这里特别注意的是,关系本身存在中对前向关系和后向关系的引用,并且是采用id进行引用的。
通过上述的关系类class Realtionship可以看到,相比较实施例1中所描述的关系包含的对象,还至少多出了“firstPreviousRelationshipId”和“secondPreviousRelationshipId”两个差异特征;这是考虑本发明所提出的图数据中,在进行原始输入填充时候,是按照先后顺序填充的,而不是一起并发执行的,以图2为例,其中节点中的标号可以理解为是相应的根据填充顺序先后标定的,进一步以图2为例解释上述的新增参数项“firstPreviousRelationshipId”和“secondPreviousRelationshipId”。此时,若以图2中节点3和节点4之间的关系作为当前关系,则相应的firstNodeId便为节点3,而secondNodeId便为节点4,firstPreviousRelationshipId便为节点2和节点3之间的关系,firstNextRelationshipId便为节点3和节点5之间的关系(需要注意的是,此时节点3和节点6之间的关系,是不会作为节点3和节点4之间关系参数中的firstNextRelationshipId的;而所述节点3和节点6之间的关系ID,则是会作为节点3和节点5之间关系参数中的firstNextRelationshipId的具体内容),secondPreviousRelationshipId在图2所示附图中不存在则为空,secondNextRelationshipId便为节点4和节点7之间关系。
通过上述一条理论可以建立关系之间的链表关系,从而提供了除节点链表以外的第二查找维度,即利用关系链表和关系属性,结合节点链表和节点属性,双重检索维度提供快速的查找功能。
本发明实施例要实现高度自动化,关键在于上述步骤202中的,所述确定原始数据的图数据目标类型,因此,基于本发明实施例,还提供了一种优选的扩展方案用于相应的自动化实现提供了技术支持,如图3所示,具体包括:
在步骤301中,遍历关系型数据库中的一张或者多张数据表,确定每一张数据表中包含相邻表中相同数据项,和/或通过包含相同数据项确定与每一张数据表建立有关联关系的数据表数量。
在具体实现过程中,上述的手段1、确定每一张数据表中包含相邻表中相同数据项;手段2、通过包含相同数据项确定与每一张数据表建立有关联关系的数据表数量;两种手段是可以择其一或者以组合求和方式实现,其中,组合方式能够进一步避免遇到单一手段可能出现结果相同的数据表情况,提高了唯一性概率。
在步骤302中,根据所述每一张数据表中包含所述相邻表中相同数据项数量和/或每一张数据表中包含的关联关系的数据表数量进行排序。
在步骤303中,根据其中排序靠前的一张或者多张表中所包含的相邻表中相同数据项作为节点,将各表中其它特征数据作为相应节点的属性值,并利用关系型数据库中数据表与数据表之间关系属性生成相应节点之间的关系和关系属性。
以将在实施例2中展开描述的图5-图7三张关系型数据表为例,其中图7的表,根据上述步骤301-303为相应计算出来排名第一的数据表,并且,其中的student_id和subjetct_id所对应的学生名字和科目名称,便被作为如图8所示的图数据目标类型中的节点呈现。
在本发明实施例中,所述节点属性类由当前属性ID、属性内容和下一个属性ID构成,从而使得同一节点下的一条或者多条节点属性构成属性链表。
图数据使用到的属性(其中,节点属性和关系属性都可以使用下面所展示的类)的(Java)类定义如下:
class Property
{
int id;
String key;
Object value;
int nextPropertyId;
}
上述Property类保存了一个属性信息,这个属性信息可以是节点的属性信息,也可以是边的属性信息,成员变量id唯一标识当前属性,key为字符串属性键,value为任意类型的属性值,nextPropertyId为下一个属性的id。
通过节点、属性和关系,可以构建出完整的图数据,由于关系保存着与关系第一个节点和第二个节点的前后关系,所以可以很方便的遍历一个节点的所有相关关系,也可以很容易的通过关系找到相邻节点,从而继续根据关系向外扩展。
在本发明实施例中,步骤203中的,所述构建图数据目标类型数据结构,存在一种可行的实现方式,具体包括:
根据确定作为图数据节点的一个或者多个关系型数据中的键值,以及由关系型数据库中数据表与数据表之间关系属性生成的相应节点之间的关系和关系属性,构建对应于图数据目标类型数据结构的执行脚本文件。
基于上述执行脚本文件的生成,相应的根据原始数据填充到图数据目标类型的属性信息,具体包括:
将原始数据作为数据源,执行所述脚本文件,得到与所述关系型数据库数据所对应的图数据。
在本发明实施例实现方式中,除了可以采用上述的分析关系型数据库数据表之间的潜在特性以外,还可以通过结合另一手段实现所述图数据目标类型的确定。而所述另一手段与上述步骤301-303的组合方式至少包括以下两种:第一种、可以是作为上述步骤301-303之前的步骤完成,若成功则可跳过所述步骤301-303;第二种、可以是作为上述步骤301-303之前的步骤完成,并进一步通过步骤301-303进行上述通过模板确定的图数据目标类型的调整。作为两种可能组合方式共同的过程,如图4所示,所述确定原始数据的图数据目标类型之前,还包括:
在步骤401中,分析原始数据内容,确定是否与历史建立的图数据类型模板匹配。
在步骤402中,若匹配则直接采用相应的图数据类型模板作为图数据目标类型;
其中,所述图数据类型模板包括校园类、企业类和政府类,以及财务类、人事类和管理类中的一种或者多种的组合。
实施例2:
本发明实施例提供了一种将学生信息、教师教学科目信息、学生成绩信息转换为图数据的方法。
步骤S1,获取关系型数据库中的学生信息、教师教学科目信息、学生成绩信息数据。相应的表数据如图5-图7所示。
步骤S2,确定关系型数据库信息的图数据类型,在此示例中,将学生信息确定为图数据中的节点类型、教师教学信息确定为图数据节点类型、学生成绩信息确定为图数据关系类型。
步骤S3,构建图数据目标类型数据结构。
图数据节点使用到的(Java)类定义如下:
class Node
{
int id;
int nextRelationShipId;
int nextPropertyId;
int labelId;
}
上述Nodes类保存了一个图数据顶点信息,其中,成员变量id为4字节整形数,唯一标识当前节点;成员变量nextRelationShipId为4字节整形数,代表这指向当前节点的关系id;成员变量nextPropertyId为4字节整形数,指向当前节点的第一个属性;成员变量labelId为4字节整形数,指向当前节点的标签信息。
图数据关系使用到的(Java)类定义如下:
class Realtionship
{
int id;
int firstNodeId;
int secondNodeId;
int firstPreviousRelationshipId;
int firstNextRelationshipId;
int secondPreviousRelationshipId;
int secondNextRelationshipId;
int propertyId;
}
上述Relationship类保存了一条图数据中的关系信息。所有成员变量都为4字节整形数,id唯一标识当前联系,firstNodeId为本联系的第一个节点的id,secondNodeId为本关系的第二个节点的id,firstPreviousRelationshipId为本关系的第一个节点的前一个关系的id,firstNextRelationshipId为本关系的第一个节点的下一个关系,secondPreviousRelationshipId为本关系的第二个节点的前一个关系,secondNextRelationshipId为本关系的第二个节点的下一个关系,propertyId为关系属性的id。这里特别注意的是,关系本身存在中对前向关系和后向关系的引用,并且是采用id进行引用的。
图数据使用到的属性的(Java)类定义如下
class Property
{
int id;
String key;
Object value;
int nextPropertyId;
}
上述Property类保存了一个属性信息,这个属性信息可以是节点的属性信息,也可以是边的属性信息,成员变量id唯一标识当前属性,key为字符串属性键,value为任意类型的属性值,nextPropertyId为下一个属性的id。
通过节点、属性和关系,可以构建出完整的图数据,由于关系保存着与关系第一个节点和第二个节点的前后关系,所以可以很方便的遍历一个节点的所有相关关系,也可以很容易的通过关系找到相邻节点,从而继续根据关系向外扩展。
构建对应的图数据结构之后,与原始数据对应的图逻辑结构如图8。
步骤S4:填充目标图数据结构中的属性信息。
将关系型数据中的信息填充到目标图结构中,以学生信息表中的张三为例,其目标图数据结构为节点,接下来提取学生信息表中的id和值,提取为第一个属性,name和值提取为第二个属性,gender和值提取为第三个属性,将第二个属性的nextPropertyId成员变量指向第一个属性,将第三个属性的nextPropertyId成员变量指向第二个属性,由于第一个属性没有对应的nextPropertyId值,故置为空,关系的属性填充也如此。填充属性后的图数据的结构如图9所示,至此,整个由传统关系型数据库数据转换生成为图数据的流程就已完成。
实施例3:
如图10所示,是本发明实施例的基于人体状态的内容推荐装置的架构示意图。本实施例的基于人体状态的内容推荐装置包括一个或多个处理器21以及存储器22。其中,图10中以一个处理器21为例。
处理器21和存储器22可以通过总线或者其他方式连接,图10中以通过总线连接为例。
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的基于关系型数据库数据生成图数据的方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行基于关系型数据库数据生成图数据的方法。
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的基于关系型数据库数据生成图数据的方法,例如,执行以上描述的图1-图4所示的各个步骤。
值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种基于关系型数据库数据生成图数据的方法,其特征在于,包括:
加载关系型数据库到内存中,作为原始数据;
确定原始数据的图数据目标类型;其中,所述图数据包括节点、关系、节点属性和关系属性;
构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中;
其中,在所述目标类型数据结构中,节点中包括:节点ID、关系ID和节点属性ID;关系包括:关系ID、关系前一节点ID、关系后一节点ID、关系的前一层关系ID、关系的后一层关系ID、关系属性ID;关系属性和节点属性各自包括:属性ID、属性键、属性值和下一个属性ID;
所述确定原始数据的图数据目标类型,具体包括:
遍历关系型数据库中的一张或者多张数据表,确定每一张数据表中包含相邻表中相同数据项,和/或通过包含相同数据项确定与每一张数据表建立有关联关系的数据表数量;
根据所述每一张数据表中包含所述相邻表中相同数据项数量和/或每一张数据表中包含的关联关系的数据表数量进行排序;
根据其中排序靠前的一张或者多张表中所包含的相邻表中相同数据项作为节点,将各表中其它特征数据作为相应节点的属性值,并利用关系型数据库中数据表与数据表之间关系属性生成相应节点之间的关系和关系属性。
2.根据权利要求1所述的基于关系型数据库数据生成图数据的方法,其特征在于,所述节点属性类由当前属性ID、属性内容和下一个属性ID构成,从而使得同一节点下的一条或者多条节点属性构成属性链表。
3.根据权利要求1所述的基于关系型数据库数据生成图数据的方法,其特征在于,所述构建图数据目标类型数据结构,具体包括:
根据确定作为图数据节点的一个或者多个关系型数据中的键值,以及由关系型数据库中数据表与数据表之间关系属性生成的相应节点之间的关系和关系属性,构建对应于图数据目标类型数据结构的执行脚本文件。
4.根据权利要求3所述的基于关系型数据库数据生成图数据的方法,其特征在于,根据原始数据填充到所述图数据目标类型的数据结构中,具体包括:
将原始数据作为数据源,执行所述脚本文件,得到与所述关系型数据库数据所对应的图数据。
5.根据权利要求1所述的基于关系型数据库数据生成图数据的方法,其特征在于,所述确定原始数据的图数据目标类型之前,还包括:
分析原始数据内容,确定是否与历史建立的图数据类型模板匹配;
若匹配则直接采用相应的图数据类型模板作为图数据目标类型;
其中,所述图数据类型模板包括校园类、企业类和政府类,以及财务类、人事类和管理类中的一种或者多种的组合。
6.根据权利要求1-5任一所述的基于关系型数据库数据生成图数据的方法,其特征在于,所述关系型数据库,包括:
开源关系型数据库MySQL、开源关系型数据库Maria DB、微软SQL Server关系型数据库、甲骨文Oracle关系型数据库中的一种或者多种。
7.根据权利要求1-5任一所述的基于关系型数据库数据生成图数据的方法,其特征在于,在构建图数据目标类型的数据结构,并将原始数据填充到所述图数据目标类型的数据结构中,具体是按照指定的原始数据在关系型数据中前后顺序进行填充,所述构建图数据目标类型数据结构中的关系中还包括对应于前一节点的相邻后关系和对应于后一节点的相邻前关系。
8.一种基于关系型数据库数据生成图数据的装置,其特征在于,所述装置包括:
至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行权利要求1-7任一所述的基于关系型数据库数据生成图数据的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284276.6A CN111125265B (zh) | 2019-12-13 | 2019-12-13 | 一种基于关系型数据库数据生成图数据的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911284276.6A CN111125265B (zh) | 2019-12-13 | 2019-12-13 | 一种基于关系型数据库数据生成图数据的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125265A CN111125265A (zh) | 2020-05-08 |
CN111125265B true CN111125265B (zh) | 2020-10-02 |
Family
ID=70498765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911284276.6A Active CN111125265B (zh) | 2019-12-13 | 2019-12-13 | 一种基于关系型数据库数据生成图数据的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125265B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547809A (zh) * | 2015-09-18 | 2017-03-29 | 邻客音公司 | 将复合关系表示在图数据库中 |
CN109376153A (zh) * | 2018-09-27 | 2019-02-22 | 浪潮软件集团有限公司 | 一种基于NiFi的数据写入图数据库的系统及方法 |
CN109726305A (zh) * | 2018-12-30 | 2019-05-07 | 中国电子科技集团公司信息科学研究院 | 一种基于图结构的复杂关系数据存储及检索方法 |
CN110209826A (zh) * | 2018-02-06 | 2019-09-06 | 武汉观图信息科技有限公司 | 一种面向银行风险控制的金融图谱构建与分析方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060190225A1 (en) * | 2005-02-18 | 2006-08-24 | Brand Matthew E | Collaborative filtering using random walks of Markov chains |
US10546021B2 (en) * | 2017-01-30 | 2020-01-28 | Sap Se | Adjacency structures for executing graph algorithms in a relational database |
CN107832407B (zh) * | 2017-11-03 | 2020-08-25 | 上海点融信息科技有限责任公司 | 用于生成知识图谱的信息处理方法、装置和可读存储介质 |
CN109597855A (zh) * | 2018-11-29 | 2019-04-09 | 北京邮电大学 | 基于大数据驱动的领域知识图谱构建方法及系统 |
CN110297872A (zh) * | 2019-06-28 | 2019-10-01 | 浪潮软件集团有限公司 | 一种科技领域知识图谱的构建、查询方法及系统 |
-
2019
- 2019-12-13 CN CN201911284276.6A patent/CN111125265B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547809A (zh) * | 2015-09-18 | 2017-03-29 | 邻客音公司 | 将复合关系表示在图数据库中 |
CN110209826A (zh) * | 2018-02-06 | 2019-09-06 | 武汉观图信息科技有限公司 | 一种面向银行风险控制的金融图谱构建与分析方法 |
CN109376153A (zh) * | 2018-09-27 | 2019-02-22 | 浪潮软件集团有限公司 | 一种基于NiFi的数据写入图数据库的系统及方法 |
CN109726305A (zh) * | 2018-12-30 | 2019-05-07 | 中国电子科技集团公司信息科学研究院 | 一种基于图结构的复杂关系数据存储及检索方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111125265A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220197875A1 (en) | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems | |
JP7419244B2 (ja) | 例によるetlルールの学習 | |
US8762426B2 (en) | Method and system of adapting a data model to a user interface component | |
US9870382B2 (en) | Data encoding and corresponding data structure | |
US20130006968A1 (en) | Data integration system | |
US20050038804A1 (en) | Database system | |
CN102411580B (zh) | 可扩展标记语言文档的检索方法及装置 | |
US10296505B2 (en) | Framework for joining datasets | |
US11100173B2 (en) | Autolayout of visualizations based on graph data | |
CN111324577B (zh) | 一种Yml文件读写的方法及装置 | |
US11461333B2 (en) | Vertical union of feature-based datasets | |
CN106095961B (zh) | 表显示处理方法和装置 | |
CN107122486A (zh) | 一种支持blob的多元大数据融合方法和系统 | |
Miao et al. | Modelhub: Towards unified data and lifecycle management for deep learning | |
CN109933589B (zh) | 用于数据汇总的基于ElasticSearch聚合运算结果的数据结构转换方法 | |
Alyas et al. | Query Optimization Framework for Graph Database in Cloud Dew Environment | |
CN110309214A (zh) | 一种指令执行方法及其设备、存储介质、服务器 | |
CN111125265B (zh) | 一种基于关系型数据库数据生成图数据的方法和装置 | |
Wang et al. | Construction and application of knowledge graph system in computer science | |
RU2605387C2 (ru) | Способ и система для хранения данных графов | |
CN116244301A (zh) | 一种基于有向无环图的时空过程机理模型服务链编排方法 | |
CN113052712B (zh) | 社交数据的分析方法、系统及存储介质 | |
CN115827885A (zh) | 一种运维知识图谱的构建方法、装置及电子设备 | |
US11023674B2 (en) | Generation and application of object notation deltas | |
CN110825846B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |