一种图数据和关系数据一体化存储和管理的方法和数据库技术

技术编号:35867814 阅读:13 留言:0更新日期:2022-12-07 11:01
本发明专利技术公开了一种图数据和关系数据一体化存储和管理的方法和数据库,包括根据用户的建表操作请求,创建相应的数组索引T_ARRAY,用于定位记录的偏移地址;建表操作请求包括创建普通表操作请求、创建顶点表操作请求和创建边表操作请求;仅在建表操作请求为创建顶点表操作请求时,再建立一辅助数组V_ARRAY;仅在建表操作请求为创建边表操作请求时,再建立一辅助数组E_ARRAY;后续针对这些辅助数组进行表的增/删/改/查/表转换操作;本发明专利技术可有效避免在关系数据库和图数据库之间进行数据迁移、避免采购两套不同的数据库产品、避免学习新的应用开发接口和操作语言。开发接口和操作语言。开发接口和操作语言。

【技术实现步骤摘要】
一种图数据和关系数据一体化存储和管理的方法和数据库


[0001]本专利技术属于数据存储和管理领域,具体涉及一种图数据和关系数据一体化存储和管理的方法和数据库。

技术介绍

[0002]传统的关系型数据库在对大量存在关联性的数据进行分析时存在性能瓶颈,而图数据库通过邻接数组相关技术克服了关系数据库处理数据关联性分析的性能瓶颈问题,其多层数据关联性分析性能相比关系数据库实现了一个到几个数量级的提升,因此越来越多的用户把关系数据库中的数据通过类似ETL(抽取/转换/加载)的工具迁移到图数据库中来进行进一步的分析。
[0003]虽然通过上述步骤可以实现高效的数据关联性分析操作,但是也存在几个方面的问题。首先,数据在不同类型的数据库之间进行迁移,很容易出现各种不兼容的问题,需要人工干预。其次,购买两套数据库系统也意味成本费用的增加(包括软件购买成本和两份数据的存储成本)。最后,图数据库的应用开发接口和操作语言也和关系数据库完全不同,有很高的学习和应用开发代价。

技术实现思路

[0004]专利技术目的:为解决
技术介绍
中提及的数据在不同类型的数据库之间进行迁移存在的不兼容问题以及成本高的问题,本专利技术提出了一种图数据和关系数据一体化存储和管理的方法和数据库,避免在关系数据库和图数据库之间进行数据迁移、避免采购两套不同的数据库产品、避免学习新的应用开发接口和操作语言。
[0005]技术方案:一种图数据和关系数据一体化存储方法,包括以下步骤:
[0006]根据用户的建表操作请求,创建相应的数组索引T_ARRAY,用于定位记录的偏移地址;所述的建表操作请求包括创建普通表操作请求、创建顶点表操作请求和创建边表操作请求;
[0007]仅在建表操作请求为创建顶点表操作请求时,再建立一辅助数组V_ARRAY,其结构表示为:last_out_e_id|last_in_e_id|
[0008]仅在建表操作请求为创建边表操作请求时,再建立一辅助数组E_ARRAY,其结构表示为:out_vid|prev_out_e_id|in_vid|prev_in_e_id|
[0009]其中,last_out_e_id表示该顶点的最新的一个出边在辅助数组E_ARRAY中的下标,last_in_e_id表示该顶点的最新的一个入边在辅助数组E_ARRAY中的下标;out_vid是起始顶点在辅助数组V_ARRAY中的下标,prev_out_e_id是起始顶点的上一个出边在辅助数组E_ARRAY中的下标,in_vid是终止顶点在辅助数组V_ARRAY中的下标,prev_in_e_id是终止顶点的上一个入边在辅助数组E_ARRAY中的下标;
[0010]根据用户的增操作请求,获取普通表/顶点表/边表对应的数组索引T_ARRAY的可用数组下标,在可用数组下标对应的数组单元中填入待插入记录的偏移地址;对于顶点表,
同时对辅助数组V_ARRAY中的数组单元的值根据是否有出边或入边进行设置;对于边表,同时对辅助数组E_ARRAY中的数组单元的值根据用户的增操作请求进行设置。
[0011]进一步的,所述的对于顶点表,同时对辅助数组V_ARRAY中的数组单元的值根据是否有出边或入边进行设置,具体包括:
[0012]将对应的辅助数组V_ARRAY中的数组单元的last_out_e_id和last_in_e_id的值均设置为特殊值,用于表示新增的顶点没有出边和入边。
[0013]进一步的,所述的对于边表,同时对辅助数组E_ARRAY中的数组单元的值根据用户的增操作请求进行设置,具体包括:
[0014]若用户的增操作请求中未指定起始/终止顶点的数据来源,则将对应的辅助数组E_ARRAY中的数组单元的out_vid、prev_out_e_id、in_vid、prev_in_e_id的值均设置为特殊值,用于表示新增的边没有指定起始/终止顶点,也没有指定起始顶点的上一个出边、终止顶点的上一个入边;
[0015]若用户的增操作请求中已指定起始/终止顶点的数据来源,则从待插入的边记录中取出起始顶点的KEY/终止顶点的KEY,并基于起始顶点的KEY/终止顶点的KEY找到对应的起始/终止顶点的ID,在起始顶点所在顶点表的辅助数组V_ARRAY中找到对应数组单元的last_out_e_id值,将起始顶点的ID和last_out_e_id值填入到辅助数组E_ARRAY中新插入的边记录所在数组单元的out_vid和prev_out_e_id中;在终止顶点所在顶点表的辅助数组V_ARRAY中找到对应数组单元的last_in_e_id值,并将终止顶点的ID和last_in_e_id填入到辅助数组E_ARRAY中新插入的边记录所在数组单元的in_vid和prev_in_e_id中;最后将新插入的边记录对应的数组下标值填入到起始顶点所在辅助数组V_ARRAY对应数组单元的last_out_e_id中以及填写到终止顶点所在辅助数组V_ARRAY数组对应数组单元的last_in_e_id。
[0016]进一步的,在所述的创建相应的数组索引T_ARRAY的同时,将相关约束作为二级索引,二级索引的叶子节点用于存放对应记录在辅助数组V_ARRAY/辅助数组E_ARRAY中的下标。
[0017]本专利技术公开了一种图数据和关系数据一体化管理方法,包括:
[0018]基于一种图数据和关系数据一体化存储方法,对记录进行存储,得到普通表、顶点表、边表中的一种或多种;
[0019]根据用户的删操作请求,将记录所在表对应的数组索引T_ARRAY中的标记位进行设置即可;
[0020]所述一种图数据和关系数据一体化存储方法为上述公开的一种图数据和关系数据一体化存储方法。
[0021]本专利技术还公开了一种图数据和关系数据一体化管理方法,包括:
[0022]基于一种图数据和关系数据一体化存储方法,对记录进行存储,得到普通表、顶点表、边表中的一种或多种;
[0023]获取用户的表转换操作请求:
[0024]若该表转换操作请求为普通表转换为顶点表,则给普通表新增一个顶点表独有的辅助数组V_ARRAY,该辅助数组V_ARRAY的数组单元数和普通表原先的记录数保持一致,以及辅助数组V_ARRAY中的last_out_e_id和last_in_e_id均设置在特殊值,上述操作完成后
将该普通表标记为顶点表;
[0025]若该表转换操作请求为普通表转换为边表,则给普通表新增一个边表独有的辅助数组E_ARRAY,该辅助数组E_ARRAY的数组单元数和普通表原先的记录数保持一致,并判断该表转换操作请求是否指定起始/终止顶点的数据来源,若没有,则将辅助数组E_ARRAY中的out_vid、in_vid、prev_out_e_id和prev_in_e_id均设置为特殊值;若该表转换操作请求已指定起始/终止顶点的数据来源,则获取起始和终止顶点的KEY值,并根据KEY值在起始/终止顶点表中查找到对应的起始/终止顶点I本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图数据和关系数据一体化存储方法,其特征在于:包括以下步骤:根据用户的建表操作请求,创建相应的数组索引T_ARRAY,用于定位记录的偏移地址;所述的建表操作请求包括创建普通表操作请求、创建顶点表操作请求和创建边表操作请求;仅在建表操作请求为创建顶点表操作请求时,再建立一辅助数组V_ARRAY,其结构表示为:last_out_e_id|last_in_e_id|;仅在建表操作请求为创建边表操作请求时,再建立一辅助数组E_ARRAY,其结构表示为:out_vid|prev_out_e_id|in_vid|prev_in_e_id|;其中,last_out_e_id表示该顶点的最新的一个出边在辅助数组E_ARRAY中的下标,last_in_e_id表示该顶点的最新的一个入边在辅助数组E_ARRAY中的下标;out_vid是起始顶点在辅助数组V_ARRAY中的下标,prev_out_e_id是起始顶点的上一个出边在辅助数组E_ARRAY中的下标,in_vid是终止顶点在辅助数组V_ARRAY中的下标,prev_in_e_id是终止顶点的上一个入边在辅助数组E_ARRAY中的下标;根据用户的增操作请求,获取普通表/顶点表/边表对应的数组索引T_ARRAY的可用数组下标,在可用数组下标对应的数组单元中填入待插入记录的偏移地址;对于顶点表,同时对辅助数组V_ARRAY中的数组单元的值根据是否有出边或入边进行设置;对于边表,同时对辅助数组E_ARRAY中的数组单元的值根据用户的增操作请求进行设置。2.根据权利要求1所述的一种图数据和关系数据一体化存储方法,其特征在于:所述的对于顶点表,同时对辅助数组V_ARRAY中的数组单元的值根据是否有出边或入边进行设置,具体包括:将对应的辅助数组V_ARRAY中的数组单元的last_out_e_id和last_in_e_id的值均设置为特殊值,用于表示新增的顶点没有出边和入边。3.根据权利要求1所述的一种图数据和关系数据一体化存储方法,其特征在于:所述的对于边表,同时对辅助数组E_ARRAY中的数组单元的值根据用户的增操作请求进行设置,具体包括:若用户的增操作请求中未指定起始/终止顶点的数据来源,则将对应的辅助数组E_ARRAY中的数组单元的out_vid、prev_out_e_id、in_vid、prev_in_e_id的值均设置为特殊值,用于表示新增的边没有指定起始/终止顶点,也没有指定起始顶点的上一个出边、终止顶点的上一个入边;若用户的增操作请求中已指定起始/终止顶点的数据来源,则从待插入的边记录中取出起始顶点的KEY/终止顶点的KEY,并基于起始顶点的KEY/终止顶点的KEY找到对应的起始/终止顶点的ID,在起始顶点所在顶点表的辅助数组V_ARRAY中找到对应数组单元的last_out_e_id值,将起始顶点的ID和last_out_e_id值填入到辅助数组E_ARRAY中新插入的边记录所在数组单元的out_vid和prev_out_e_id中;在终止顶点所在顶点表的辅助数组V_ARRAY中找到对应数组单元的last_in_e_id值,并将终止顶点的ID和last_in_e_id填入到辅助数组E_ARRAY中新插入的边记录所在数组单元的in_vid和prev_in_e_id中;最后将新插入的边记录对应的数组下标值填入到起始顶点所在辅助数组V_ARRAY对应数组单元的last_out_e_id中以及填写到终止顶点所在辅助数组V_ARRAY数组对应数组单元的last_in_e_id。...

【专利技术属性】
技术研发人员:付新姜久文赵远方沈忱于骞
申请(专利权)人:达梦数据技术江苏有限公司
类型:发明
国别省市:

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

1