[发明专利]一种基于关系型数据库的回溯数据查询方法及系统有效
申请号: | 202010229649.6 | 申请日: | 2020-03-27 |
公开(公告)号: | CN111460000B | 公开(公告)日: | 2021-01-12 |
发明(设计)人: | 谭凌 | 申请(专利权)人: | 谭凌 |
主分类号: | G06F16/2458 | 分类号: | G06F16/2458;G06F16/22;G06F16/23;G06F16/2455;G06F16/28 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郭浩辉;麦小婵 |
地址: | 510000 广东省广州*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 关系 数据库 回溯 数据 查询 方法 系统 | ||
本发明公开了一种基于关系型数据库的回溯数据查询方法,可以使业务逻辑的程序开发人员在开发编写业务程序时不需要因为支持“回溯查询”这个需求,而大量的额外的增加或者修改业务代码,例如在不需要支持“回溯查询”时只需要在代码中执行一次更新元组语句,那么在使用本发明时支持“回溯查询”的情况下,程序代码中同样也只需要行一次一模一样更新元组语句,没有额外的业务逻辑出现,使代码易于维护,可读性高,开发更简单;而由于支持“回溯查询”而产生的额外的转换,执行等工作都是由本发明涉及的方法和系统自动完成的,不需要大量改变业务逻辑代码。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于关系型数据库的回溯数据查询方法及系统。
背景技术
在开发数据信息系统时,几乎都要使用关系型数据库(例如MySQL,SQLServer等),关系数据库存储的是当前最新的数据状态,以往时刻的数据状态是不能查询到的。而在很多时候需要回溯查询以往的数据状态,目前现有技术是在数据库中单独建立某些字段的日志表,当数据有更新是需要更新业务逻辑要用到的主表,同时向对应字段的日志表中插入记录,记录某个字段在某个时刻从某某值更新为某某值。当需要回溯查询时,先查询主要表,同时要分别查询日志表,将相关字段替换成过去某时刻的状态,然后返回结果。
可见,上述传统的回溯查询方法做法复杂,由于要满足“支持回溯查询”的需要,原本简单的程序代码将变得十分复杂:1、在“写数据库”时(增加,删除,更新等操作):原本只需要执行一次INSERT语句、DELETE语句或者UPDATE语句。但是为了支持“回溯查询”需要在多个字段的日志表中插入数据如何改变的信息和变动的时间,有多少字段就要在多少个对应表中插入记录。程序代码的复杂度剧增,代码难以维护和调试。2、在“读数据库”时(查询操作):原本只需要执行SELECT语句。但是为了支持“回溯查询”需要查询多个字段日志表,拼接结果再返回结果。当查询涉及多个原始数据表时,程序的复杂度将进一步增加。
因此,目前市面上亟需一种新的回溯数据查询策略,在程序开发人员无需进行额外的代码编辑工作的情况下,实现回溯数据查询,使得代码易于维护,可读性高,令程序开发更简单。
发明内容
本发明提供了一种基于关系型数据库的回溯数据查询方法及系统,以解决技术问题,从而,进而实现
为了解决上述技术问题,本发明实施例提供了一种基于关系型数据库的回溯数据查询方法,包括:
在数据库需要支持回溯查询的数据表中,额外增加两个“日期时间”类型字段,分别代表某元组的“起始时间”和“终止时间”。同时定义一个特殊值代表“当前”含义,称其为NOW值。NOW值必须你能够填入“起始时间”和“终止时间”字段,且不具有业务含义。
在配置文件中确定约束方式、确定支持回溯查询的表的名称、设置这些表中代表起始时间和终止时间的字段名、确定NOW值的表达式、获取当前时间的SQL表达式字符串,得到支持回溯查询配置文件;
接收原始新增元组语句,当通过所述支持回溯查询配置文件判断所述原始新增元组语句对应的表属于支持回溯查询的表时,将所述原始新增元组语句中要新增的行中的起始时间设置为事务执行时间,以及将所述原始新增元组语句中要新增的行中的终止时间设置为NOW值,生成新的新增元组语句,执行并提交所述新的新增元组语句;
接收原始删除元组语句,当通过所述支持回溯查询配置文件判断所述原始删除元组语句中涉及的表属于支持回溯查询的表时,提取所述原始删除元组语句中的删除条件;对同一表建立更新语句,对所有终止时间为NOW的元组,将所述原始删除元组语句中的删除条件作为所述更新语句的更新条件,并将所述更新语句中的终止时间字段值设置为事务执行时间,得到新的更新语句,执行并提交所述新的更新语句;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于谭凌,未经谭凌许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010229649.6/2.html,转载请声明来源钻瓜专利网。