【技术实现步骤摘要】
数据库执行错误恢复方法、数据库访问方法及装置
本专利技术涉及计算机
,尤其涉及一种数据库执行错误恢复方法、数据库访问方法及装置。
技术介绍
事务具有原子性、一致性、隔离性和持久性等特点。所谓原子性是指事务的整个过程如原子操作一样,最终要么全部成功,要么全部失败。这种原子性是从最终结果来看的,而从最终结果来看整个过程是不可分割的。数据库中的事务是指对数据库执行一批操作,这些操作最终要么全部执行成功,要么全部失败,不会存在部分成功的情况。例如,用户A给用户B转账100元操作,操作的过程包括将A账户扣100元和给B账户加100元两个操作。如果事务满足原子性,那么最终只有两种结果:一种是,A账户减少100元,B账户增加100元,用户A给用户B转账100元操作成功;另一种是,A、B两个账户都没有发生变化,用户A给用户B转账100元操作失败。在执行转账100元操作的过程中,如果出现一个操作不成功,但另一个操作成功,就会违反事务的原子性,此时,就需要对另一个操作进行数据库回滚,否则,就会出现一个账户扣了钱而另一个账户没加钱, ...
【技术保护点】
1.一种数据库执行错误恢复方法,其特征在于,包括:/n当数据库执行出现错误时,查找数据库执行的计算流图中已执行完的出度为零的节点;/n在数据库执行的计算流图中,查找已执行完的出度为零的节点所属SQL语句的所有节点;/n根据所述SQL语句的属性修改所述SQL语句的节点,以消除执行所述SQL语句的节点对数据库所产生的影响;/n输出修改节点后的所述SQL语句的计算流图,以使所述数据库通过执行修改节点后的所述SQL语句的计算流图实现回滚。/n
【技术特征摘要】 【专利技术属性】
1.一种数据库执行错误恢复方法,其特征在于,包括:
当数据库执行出现错误时,查找数据库执行的计算流图中已执行完的出度为零的节点;
在数据库执行的计算流图中,查找已执行完的出度为零的节点所属SQL语句的所有节点;
根据所述SQL语句的属性修改所述SQL语句的节点,以消除执行所述SQL语句的节点对数据库所产生的影响;
输出修改节点后的所述SQL语句的计算流图,以使所述数据库通过执行修改节点后的所述SQL语句的计算流图实现回滚。
2.如权利要求1所述的数据库执行错误恢复方法,其特征在于,在数据库执行的计算流图中,查找已执行完的出度为零的节点所属SQL语句的所有节点,包括:
在数据库执行的计算流图中,依次查找每个已执行完的出度为零的节点的各级子节点,直到查找到入度为零的子节点,得到该已执行完的出度为零的节点所属SQL语句的所有节点。
3.如权利要求1所述的数据库执行错误恢复方法,其特征在于,当数据库执行出现错误时,查找数据库执行的计算流图中已执行完的出度为零的节点,包括:
当数据库执行出现错误时,分别根据数据库执行的计算流图中节点的执行状态标识和出度信息确认节点是否已执行完和节点的出度是否为零。
4.如权利要求1所述的数据库执行错误恢复方法,其特征在于,
根据所述SQL语句的属性修改所述SQL语句的节点,以消除执行所述SQL语句的节点对数据库所产生的影响之前,所述方法还包括:
根据已执行完的出度为零的节点所属SQL语句的所有节点生成所述SQL语句的计算流图;
根据所述SQL语句的属性修改所述SQL语句的节点,包括:
根据所述SQL语句的属性修改生成的所述SQL语句的计算流图中的节点。
5.如权利要求4所述的数据库执行错误恢复方法,其特征在于,根据已执行完的出度为零的节点所属SQL语句的所有节点生成所述SQL语句的计算流图,包括:
根据每个已执行完的出度为零的节点所属SQL语句的所有节点生成一条所述SQL语句的计算流图。
6.如权利要求4所述的数据库执行错误恢复方法,其特征在于,根据已执行完的出度为零的节点所属SQL语句的所有节点生成所述SQL语句的计算流图,包括:
在多个已执行完的出度为零的节点分别对应的SQL语句存在共同节点的情况下,根据多个所述SQL语句的所有节点生成一个相应的计算流图。
7.如权利要求1所述的数据库执行错误恢复方法,其特征在于,根据所述SQL语句的属性修改所述SQL语句的节点,以消除执行所述SQL语句的节点对数据库所产生的影响,包括:
若所述SQL语句为修改类型的语句,则将所述SQL语句的节点修改为执行反向操作的节点,以消除执行所述SQL语句的节点对数据库所产生的影响;
技术研发人员:鄢贵海,陈宇豪,龚施俊,
申请(专利权)人:中科驭数北京科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。