一种图-关系数据库混合存储的方法和装置制造方法及图纸

技术编号:24251452 阅读:29 留言:0更新日期:2020-05-22 23:31
本发明专利技术涉及本发明专利技术涉及数据库领域,具体涉及一种图‑关系数据库混合存储的方法和装置。其主要步骤为:根据图对象的顶点数据或边数据产生行记录,行记录包含顶点和边的连接关系;根据图类型获得行记录的标签ID,每一个图标签对应唯一一个标签ID;为行记录分配行ID,所述行ID在每个标签ID下唯一;根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,每个B+Tree对应一种图标签;根据行记录的在B+Tree中的逻辑顺序,获得行记录所在的数据库文件页;将行记录存储至相应的数据库文件页。本发明专利技术可以减少存储空间和对数据结构的额外维护,并使得查询时能够以点为中心进行搜索,提高数据库的插入、查询效率和响应速度。

A hybrid storage method and device of graph relational database

【技术实现步骤摘要】
一种图-关系数据库混合存储的方法和装置
本专利技术涉及数据库领域,特别是涉及一种图-关系数据库混合存储的方法和装置。
技术介绍
关系数据库基于实体-关系模型实现,但是在关系数据库的具体实现中,关系和实体被人为分割开,只能通过主、外键进行关联,导致查询基于大量关系是性能无法忍受,直接导致了图数据库的出现。图数据库直接基于现实世界的实体和关系建模,相较于传统的关系数据库更简单一定,且更使用与分析多层次的复杂关系,更能适应当今海量的数据处理形式。但是,对于基于关系数据库或键值数据库实现的非原生图数据库,不能直接以图的数据结构进行存储,而需要使用关系数据库或键值数据库的存储方式来保存图信息,将图结构转换为关系数据库或键值数据库的数据行结构,存储在关系数据库的文件页中,将图形数据存储在关系表或键值表中,将图查询转换为基于关系表查询或键值查询。对于这种非原生图数据库的存储方式和查询方式,如果要处理连续、复杂或不断变化的数据会有很大难度,并且还会有一些功能缺陷,以及性能、完整性、易用性和可扩展性方面的风险。鉴于此,如何克服该现有技术所存在的缺陷,解决非原生图数据库在进行大数据量查询时性能和应用程序响应速度降低的现象,是本
待解决的问题。
技术实现思路
针对现有技术的以上缺陷或改进需求,本专利技术解决了图数据结构存储至关系数据库或键值数据库时存储效率、插入效率、查询效率较低的问题。本专利技术实施例采用如下技术方案:第一方面,本专利技术提供了一种图-关系数据库混合存储的方法,具体为:根据图对象的顶点数据或边数据产生行记录,行记录包含顶点和边的连接关系;根据图类型获得行记录的标签ID,每一个图标签对应唯一一个标签ID;为行记录分配行ID,行ID在每个标签ID下唯一;根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,每个B+Tree对应一种图标签;根据行记录的在B+Tree中的逻辑顺序,获得行记录所在的数据库文件页;将行记录存储至相应的数据库文件页。优选的,行记录具体为:包括顶点行记录和关系行记录;顶点行记录根据图对象的顶点数据产生,包含该顶点所在关系链表中的头节点,每个顶点行记录拥有至少一个数据库外部主键构建的辅助索引;关系行记录根据图对象的边数据产生,包含该边的起点和终点数据,以及起点的上一个关系的数据,和终点的下一个关系的数据。优选的,若行记录为顶点行记录,根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,具体为:以顶点行记录的外部主键为主键,标签ID和行ID为值建立顶点索引;根据标签ID确定顶点索引所在的B+Tree;以外部主键作为B+Tree中的键值,确定顶点索引在B+Tree中的位置,将顶点索引插入B+Tree中。优选的,若行记录为关系行记录,根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,具体为:以关系行记录的外部主键为主键,标签ID和行ID为值建立关系索引行记录,根据标签ID确定关系索引所在的B+Tree;根据行ID确定关系索引在B+Tree中的位置,将关系索引插入B+Tree中;根据关系行记录中一个顶点的辅助索引,通过顶点索引查找关系起点和终点的标签ID和行ID;根据起点和终点的信息,将行记录起点的前一个关系、起点的后一个关系、终点的前一个关系、终点的后一个关系赋值给行记录;将关系行记录中相应的关系信息赋值给起点和终点所在的顶点行记录。优选的,将关系行记录中相应的关系信息赋值给起点和终点所在的顶点行记录之前,还包括:根据关系行记录的起点和终点的标签ID和行ID得到起点和终点的顶点行记录;根据起点和终点所在的关系链表,对起点和终点相关的关系头节点进行更新。优选的,获得行记录所在的数据库文件页,具体为:根据行记录的行ID查找行记录在B+Tree中的位置,根据行记录在B+Tree中的存放位置,获得行记录在文件页中的具体插入位置,行记录在文件页中的逻辑顺序与行记录的索引在B+Tree的子节点中的排列顺序相对应。优选的,还包括:每个文件页中保存文件中每个空闲空间的首地址列表,插入行记录时根据空闲空间的首地址列表获得行记录的插入地址。优选的,若行记录所在的文件页没有足够的空间供当前行记录插入,还包括:申请新一个的文件页;将当前文件页中的行记录按照外部主键大小排序,并按顺序平均分为两部分,外部主键值较大的行记录保存在当前文件页中,外部主键值较小的行记录插入新申请的文件页中;根据当前行记录的外部主键值判断当前行记录应插入的文件页和插入位置;根据拆分后的两个文件页的外部主键值,更新B+Tree中当前行记录所在节点的父节点信息。优选的,还包括:每个文件页都保存该文件页保存的所有行记录的目录,插入行记录前,先将行记录在文件页中的偏移位置存入目录中的相应位置。另一方面,本专利技术提供了一种图-关系数据库混合存储的装置,具体为:包括至少一个处理器和存储器,至少一个处理器和存储器之间通过数据总线连接,存储器存储有可被至少一个处理器执行的指令,指令在被处理器执行后,用于完成权利要求1-9任一的图-关系数据库混合存储的方法。与现有技术相比,本专利技术实施例的有益效果在于:通过B+Tree的数据结构对图结构的点、边进行存储,并且将图结构中的关系作为点、边存储的一部分附着其上。通过该存储方法,可以减少存储空间和对数据结构的额外维护,并使得查询时能够以点为中心进行搜索,提高查询效率。本专利技术提供了一种图-关系数据库混合存储的方法和装置,其目的在于使用特定的数据结构将图数据库的数据结构存储进非原生图数据库文件中,以提高非原生图数据库的插入、查询效率和响应速度。【附图说明】为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种图-关系数据库混合存储的方法流程图;图2为本专利技术实施例提供的一种图-关系数据库混合存储的方法实施例中使用的图模型的示意图;图3为本专利技术实施例提供的一种图-关系数据库混合存储的方法实施例中使用的关联关系结构的示意图;图4为本专利技术实施例提供的一种图-关系数据库混合存储的方法中B+Tree数据结构的示意图;图5为本专利技术实施例提供的另一种图-关系数据库混合存储的方法的流程图;图6为本专利技术实施例提供的一种图-关系数据库混合存储的方法文件和文件页数据结构示意图;图7为本专利技术实施例提供的一种图-关系数据库混合存储的方法文件页数据结构示意图;图8为本专利技术实施例提供的一种图-关系数据库混合存储的方法行记录数据结构示意图;图9为本专利技术实施例提供的另一种图-关系数据库混合存储的方法数据结构示意图;图10为本专利技术实施例提供的另一种图-关系数据库混合存储的方法数据结构示意图;图11为本专利技术实本文档来自技高网...

【技术保护点】
1.一种图-关系数据库混合存储的方法,其特征在于:/n根据图对象的顶点数据或边数据产生行记录,所述行记录包含顶点和边的连接关系;/n根据图类型获得行记录的标签ID,每一个图标签对应唯一一个标签ID;/n为行记录分配行ID,所述行ID在每个标签ID下唯一;/n根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,每个B+Tree对应一种图标签;/n根据行记录的在B+Tree中的逻辑顺序,获得行记录所在的数据库文件页;/n将行记录存储至相应的数据库文件页。/n

【技术特征摘要】
1.一种图-关系数据库混合存储的方法,其特征在于:
根据图对象的顶点数据或边数据产生行记录,所述行记录包含顶点和边的连接关系;
根据图类型获得行记录的标签ID,每一个图标签对应唯一一个标签ID;
为行记录分配行ID,所述行ID在每个标签ID下唯一;
根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,每个B+Tree对应一种图标签;
根据行记录的在B+Tree中的逻辑顺序,获得行记录所在的数据库文件页;
将行记录存储至相应的数据库文件页。


2.根据权利要求1所述的图-关系数据库混合存储的方法,其特征在于,所述行记录具体为:
包括顶点行记录和关系行记录;
所述顶点行记录根据图对象的顶点数据产生,包含该顶点所在关系链表中的头节点,所述每个顶点行记录拥有至少一个数据库外部主键构建的辅助索引;
所述关系行记录根据图对象的边数据产生,包含该边的起点和终点数据,以及起点的上一个关系的数据,和终点的下一个关系的数据。


3.根据权利要求2所述的图-关系数据库混合存储的方法,其特征在于,若所述行记录为顶点行记录,所述根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,具体为:
以顶点行记录的外部主键为主键,标签ID和行ID为值建立顶点索引;
根据标签ID确定顶点索引所在的B+Tree;
以外部主键作为B+Tree中的键值,确定顶点索引在B+Tree中的位置,将顶点索引插入B+Tree中。


4.根据权利要求3所述的图-关系数据库混合存储的方法,其特征在于,若所述行记录为关系行记录,所述根据行记录的标签ID和行ID将行记录的索引保存在相应的B+Tree中,具体为:
以关系行记录的外部主键为主键,标签ID和行ID为值建立关系索引行记录,根据标签ID确定关系索引所在的B+Tree;
根据行ID确定关系索引在B+Tree中的位置,将关系索引插入B+Tree中
根据关系行记录中一个顶点的辅助索引,通过顶点索引查找关系起点和终点的标签ID和行ID;
根据起点和终点的信息,将行记录起点的前一个关系、起点的后一个关系、终点的前一个关系、终点的后一个关系赋值给行记录;
将关...

【专利技术属性】
技术研发人员:刘本亮唐俊魏星寇德朋纪翔宇
申请(专利权)人:四川蜀天梦图数据科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1