[发明专利]一种基于关系型数据库的回溯数据查询方法及系统有效
申请号: | 202010229649.6 | 申请日: | 2020-03-27 |
公开(公告)号: | CN111460000B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 谭凌 | 申请(专利权)人: | 谭凌 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/22;G06F16/23;G06F16/2455;G06F16/28 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郭浩辉;麦小婵 |
地址: | 510000 广东省广州*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 关系 数据库 回溯 数据 查询 方法 系统 | ||
1.一种基于关系型数据库的回溯数据查询方法,其特征在于,包括:
在配置文件中确定约束方式、确定支持回溯查询的表的名称、设置这些表中代表起始时间和终止时间的字段名、确定NOW值的表达式、获取当前时间的SQL表达式字符串,得到支持回溯查询配置文件;
接收原始新增元组语句,当通过所述支持回溯查询配置文件判断所述原始新增元组语句对应的表属于支持回溯查询的表时,将所述原始新增元组语句将要新增的行中的起始时间设置为事务执行时间,以及将所述原始新增元组语句将要新增的行中的终止时间设置为NOW值,生成新的新增元组语句,执行并提交所述新的新增元组语句;
接收原始删除元组语句,当通过所述支持回溯查询配置文件判断所述原始删除元组语句对应的表属于支持回溯查询的表时,提取所述原始删除元组语句中的删除条件;对同一表建立更新语句,对所有终止时间为NOW的元组,将所述原始删除元组语句中的删除条件作为所述更新语句的更新条件,并将所述更新语句中的终止时间字段设置为事务执行时间,得到新的更新语句,执行并提交所述新的更新语句;
接收原始更新元组语句,当通过所述支持回溯查询配置文件判断所述原始更新元组语句对应的表属于支持回溯查询的表时,获取当前时刻T1,根据原始更新元组语句生成三条新语句;在同一个事务中依次执行三条新语句并提交事务;其中,生成的三条新语句包括:1、对所有终止时间为NOW的元组,根据原始更新元组语句的更新条件,生成复制元组语句,将待更新所有元组进行复制,将所有新复制出的元组的起始时间设置为T1,终止时间设置为NOW;2、根据原始更新元组语句,生成第一新更新语句,将所有被复制的元组的终止时间设为T1;3、根据原始更新元组语句,生成第二新更新语句,在新复制出的元组上执行原始更新元组语句所涉及的更新动作;
接收原始查询语句,对所述原始查询语句中的嵌套语句进行递归拆分,直至最内层的查询语句为单一查询语句,从最内层依次对单一查询语句进行处理,将一个占位字符串替代处理好的单一查询语句进行替换,拼接到上一层的查询语句中,依次递归直至最外层的查询语句被处理完成,然后依次将占位符替换为对应的处理好的单一查询语句,生成得到转换后的嵌套查询语句。
2.如权利要求1所述的基于关系型数据库的回溯数据查询方法,其特征在于,所述设置起始时间字段和终止时间字段的步骤中,包括:
将数据库中数据表中原本的唯一约束的字段或者字段组,与设置的终止时间字段组成组合唯一约束。
3.如权利要求2所述的基于关系型数据库的回溯数据查询方法,其特征在于,所述确定NOW值的表达式的步骤中,所述NOW值对所述组合唯一约束有效。
4.如权利要求1所述的基于关系型数据库的回溯数据查询方法,其特征在于,在所述根据原始更新元组语句生成三条新语句,在同一个事务中依次执行三条新语句并提交事务时,还包括:
当判断发生异常或者错误时,则回滚事务。
5.如权利要求1所述的基于关系型数据库的回溯数据查询方法,其特征在于,所述对单一查询语句进行处理的步骤,包括:
从原始查询语句中提取出全部表名和别名;
从原始查询语句中提取出查询条件,并根据所述查询条件和所述表名或别名生成新的查询条件;
将新的查询条件替换原始查询语句中的查询条件,生成新的查询语句。
6.如权利要求5所述的基于关系型数据库的回溯数据查询方法,其特征在于,所述查询条件包括查询当前时刻和查询过去时刻。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谭凌,未经谭凌许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010229649.6/1.html,转载请声明来源钻瓜专利网。