[发明专利]一种应用层的数据库事务实现方法和系统有效
申请号: | 202210251737.5 | 申请日: | 2022-03-15 |
公开(公告)号: | CN114579604B | 公开(公告)日: | 2022-09-20 |
发明(设计)人: | 杨万勇;杨耀庭;华健;张兵 | 申请(专利权)人: | 北京梦诚科技有限公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F16/2453;G06F16/27 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 贾然 |
地址: | 100080 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 数据库 事务 实现 方法 系统 | ||
本发明提出一种应用层的数据库事务实现方法和系统。其中,方法包括:在数据库基础上在应用层做的一层中间件实现的应用层的数据库事务,使用上开启事务的时候跟传统数据库完全一样上一样,使用者完全不用关心在哪一层实现的事务功能,对他们来说使用事务就是几条简单的sql语句,只要熟悉其它关系数据库的,在使用当前数据库事务时完全没有障碍。本发明提出的方案,在使用该应用层数据框架后,开发人员把原本用于处理数据补偿的那部分时间节省下来,把时间和精力投入到业务功能开发中去,极大的提升了产品开发效率,同时也降低了对开发人员水平的要求。开发同等复杂度的模块,相比之前用时大约缩短了30%的时间,大大节省了开发成本。
技术领域
本发明属于数据库事务领域,尤其涉及一种应用层的数据库事务实现方法和系统。
背景技术
通常意义上的数据库事务是指包含了一个序列的对数据库的读/写操作。包含有以下两个目的:
为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法。
当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰。
当事务被提交给了数据库管理系统(DBMS),则DBMS需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。
完备的数据库事务应具有ACID4个特性:
A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;
C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即 A账户只要减去了100,B账户则必定加上了100;
I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;
D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。
对于单条SQL语句,数据库系统自动将其作为一个事务执行,这种事务被称为隐式事务。
要手动把多条SQL语句作为一个事务执行,使用BEGIN开启一个事务,使用COMMIT提交一个事务,这种事务被称为显式事务
对于两个并发执行的事务,如果涉及到操作同一条记录的时候,可能会发生问题。因为并发操作会带来数据的不一致性,包括脏读、不可重复读、幻读等。数据库系统提供了隔离级别来让我们有针对性地选择事务的隔离级别,避免数据不一致的问题。
SQL标准定义了4种隔离级别,分别对应可能出现的数据不一致的情况,如下表1:
表1
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京梦诚科技有限公司,未经北京梦诚科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210251737.5/2.html,转载请声明来源钻瓜专利网。