事务处理概述

一、引言

1、决定数据库应用系统性能的DBMS的关键实现技术------事务处理技术

事务处理技术是为了解决早期的DBMS产品在应用过程中遇到的现实问题而在后续的DBMS产品中加以实现的技术

2、比如在银行系统中,账户转账是常见的业务,是金融学中的交易transcation。若银行用户在ATM机上进行转账操作,从A账户转账1000元到B账户,银行的账户信息一般存储在关系型DBMS所管理的数据库中。假如用户账户信息存储数据库中Accounts关系表中,有账户号码acctNo和余额balance两个属性,同时设定不能透支转账约束,那么如何实现从A账户转账1000元到B账户的操作呢 ?

从用户的观点,资金转账是一个完整的业务,是一笔交易,是一个独立的操作。而在应用系统中,需要再应用程序中嵌入SQL语句,由如下两个数据库操作来完成数据库中数据的更新

但是在应用程序的执行过程中,在执行第一个更新操作之后和第二个更新操作之前,可能会出现计算机停止运转等故障,使得前一个操作完成而后一个操作没有执行,从而导致1000元资金从账户A中支出但并没有存入账户B中,出现了数据库中的数据与业务结果的不一致,对用户来说,要么转账成功,要么不能转账,这是用户所能接受的,而其他错误是不能允许的。

对于两个不同的账户,例如账户B和账户C,同时向同一个账户,例如账户A转账,还可能出现分别从账户B和账户C支出了500元和1000元,而在账户A中却只存入了500元或1000元,而不是存入1500元的现象。两个转账业务可分别正确执行,但并发执行时可能全局结果不对,也出现了数据库中的数据与业务结果不一致的问题。

这些问题会经常出现在DBMS的早期应用中,使得在数据库理论相对成熟后,相当长的一段时间DBMS产品无法广泛应用

二、事务概念的提出

1、1976年,Jim Gray在数据库领域引入了Transaction事务的概念,提出了事务处理技术来解决这些问题,使得DBMS在实现事务处理机制以后得到了广发的引用,成为了数据库技术应用于银行、金融等行业的基础

2、Jim Gray在事务处理技术上的创造性思维和开拓性研究成果,反应在其专著《事务处理:概念与技术》一书中

3、Jim Gray也因此获得了1998年的图灵奖

三、后续

之后,我将会从事务的概念、如何用SQL语言定义一个事务、阐述事务作为数据库的逻辑工作单元应具有的原子性、一致性、隔离性和持久性等特性、事务处理的两个重要方面:数据恢复和并发控制四个部分来进一步学习事务

相关推荐
小二·8 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手8 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌8 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者9 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余9 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹9 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
AllData公司负责人10 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_9547083110 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全
IvorySQL11 小时前
从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察
大数据·数据库·人工智能·postgresql·开源