首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于数组索引的外键引用和连接查询的实现方法、装置、设备及存储介质 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:达梦数据技术(江苏)有限公司

摘要:本发明公开了一种基于数组索引的外键引用和连接查询的实现方法、装置、设备及存储介质,基于引用列值对引用表和被引用表的查询,都直接基于引用数组索引和被引用数组索引进行,避免通过B树B+树LSM树访问引用表所需进行的大量比较,提升查询性能。

主权项:1.一种基于数组索引的外键引用和连接查询的实现方法,其特征在于,包括如下步骤:步骤1、系统针对所有含有主键或者唯一性约束对应的索引记录的值中都自动记录一个递增的序号,从0开始;步骤2、系统在创建或者修改引用表时指定建立数组索引结构;创建引用表时,通过指定选项来自动针对引用表创建引用数组索引,同时针对被引用表也自动创建一个被引用数组索引;通过SQL语句在引用表内设置外键约束,从而自动创建引用数组索引和被引用数组索引;被引用数组索引的成员如下:[0]|address|latest_ref_fk_id|[1]|address|latest_ref_fk_id|......[N]|address|latest_ref_fk_id|其中中括号括起来的数字表示是数组下标,address表示引用表中物理记录在数据文件中的地址,latest_ref_fk_id表示具有相同外键值的上一条引用数组索引的下标ID;引用数组索引结构成员如下:[0]|Address|prev_ref_fk_id|[1]|Address|prev_ref_fk_id|......[N]|Address|prev_ref_fk_id|其中中括号括起来的数字表示是数组下标,Address表示被引用的物理记录在数据文件中的地址,prev_ref_fk_id表示被引用的物理记录对应在引用数组中最后一次被引用对应的引用数组索引的下标ID;步骤3、在系统运行过程中,关系数据库KV系统数据处理系统中的工作线程进程解析接收到的操作请求,确定操作类型;具体为:a当操作类型是被引用表插入数据时,在主键索引唯一性索引的值中记录递增的序号,并在操作成功后,向被引用数组最后追加一条记录,该记录的Address是对应的物理记录在数据文件中的地址,latest_ref_fk_id为-1,表示还没有被引用;b当操作类型是被引用表删除数据时,先检查对应的主键唯一性列值是否还有被引用,被引用则报错,否则就删除记录,并将被引用数组中对应下标的Address项设置为-1,表示已经被删除;c当操作类型是被引用表更新数据时,进行常规操作;d当操作类型是引用表插入数据时,根据被引用表中记录的序号,找到被引用数组索引中对应下标的数组单元;e当操作类型是引用表中删除数据时,进行删除操作,并登记已删除数据的引用列和地址信息,接下来根据引用列值,在被引用表的普通索引中找到引用列值对应的序号,然后基于序号对应的下标在被引用数组索引找到latest_ref_fk_id值,最后以latest_ref_fk_id值为下标在引用数组索引中查看address值,如果address值和登记的删除数据的地址信息匹配,则将address修改为-1即可,如果不匹配,则继续根据prev_ref_fk_id在引用数组索引中找前面相同引用列值的记录,直到地址信息匹配并修改为-1,即完成删除操作;f当操作类型是引用表更新数据时,如果更新的不是引用列,则进行常规操作,如果更新的是引用列,需要对引用数组索引和被引用数组索引进行按照步骤e、d做删除和插入的操作;g当操作类型是基于外键列查找引用表记录时,先在外键所关联的被引用表的主键唯一索引中,查找到对应外键列值的被引用数组下标ID1,然后从被引用数组索引中获取latest_ref_fk_id对应的值ID2,并在引用数组第ID2个单元获取address值ADDR1和prev_ref_fk_id值PREV1,ADDR1不为-1就表示该地址对应的物理记录是一条符合的条件的记录,接下来继续在引用数组中以PREV1为下标,查找符合条件的记录,直到prev_ref_fk_id为-1表示已经找到所有的记录,最后基于获取到的所有地址,把所有的符合条件的物理记录都返回给用户即可;h当操作类型是基于引用被引用列的值做引用表和被引用表的等值连接查询时,先在被引用表中基于被引用的主键唯一索引查找到被引用数组下标ID1和该记录在数据文件中的地址ADDR1,然后从被引用数组索引中获取latest_ref_fk_id对应的值ID2,并在引用数组第ID2个单元获取address值ADDR2和prev_ref_fk_id值PREV1,ADDR2不为-1就表示该地址对应的物理记录是一条符合的条件的记录,接下来继续在引用数组中以PREV1为下标,查找符合条件的记录,直到prev_ref_fk_id为-1表示已经找到所有的记录,最后基于获取到的所有地址,把所有的符合条件的物理记录都返回给用户;步骤4、执行对应的操作。

全文数据:

权利要求:

百度查询: 达梦数据技术(江苏)有限公司 一种基于数组索引的外键引用和连接查询的实现方法、装置、设备及存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。