ScholarGate
助手

事务管理与并发控制

事务管理和并发控制使数据库能够正确执行许多并发事务并从故障中恢复,从而保证了原子性、一致性、隔离性和持久性(ACID)特性。

用 PaperMind 寻找选题即将推出Find papers & topics
Tools & resources
下载幻灯片
Learn & explore
视频即将推出

Definition

事务是作为单个逻辑单元执行的数据库操作序列,它具有原子性、保持一致性、与并发事务隔离,并且一旦提交就具有持久性;事务管理是在并发和故障下强制执行这些特性的一系列机制。

Scope

该领域涵盖了作为工作单元的事务,以及使并发、易出错的执行变得正确的机制:ACID特性;作为并发正确性标准的串行化;强制执行串行化的锁定、时间戳和多版本协议;为性能牺牲一致性的较弱隔离级别;以及确保跨崩溃的原子性和持久性的日志记录和恢复技术。它不包括跨多个站点的分布式提交,这在分布式和并行数据库领域中处理。

Sub-topics

Core questions

  • ACID特性保证了什么,为什么需要它们?
  • 什么使并发调度正确,即串行化?
  • 锁定、时间戳和多版本协议如何强制执行串行化?
  • 日志记录和恢复如何在崩溃后恢复一致状态?
  • 较弱的隔离级别如何以一致性换取并发性?

Key concepts

  • 事务与提交/中止
  • ACID特性
  • 串行化与优先图
  • 两阶段锁定
  • 时间戳排序
  • 多版本并发控制
  • 死锁检测与预防
  • 预写式日志
  • 隔离级别

Key theories

ACID特性
原子性(全有或全无的执行)、一致性(保持完整性约束)、隔离性(并发事务看起来是独立运行的)和持久性(已提交的效果在故障后仍然存在)共同定义了正确的事务行为。
串行化
如果并发调度等同于某个串行执行,则它是正确的;通过优先(串行化)图测试的冲突串行化是并发控制协议强制执行的实用标准。
并发控制与恢复
锁定、时间戳排序和多版本方法可防止非串行化交错,而预写式日志和恢复算法则保证了原子性和持久性,这是正确事务处理的两个组成部分。

Clinical relevance

事务管理是使数据库在处理资金和记录方面值得信赖的原因:它确保银行转账绝不会在贷记另一个账户之前借记一个账户,航空公司绝不会在并发请求下重复预订座位,并且已提交的数据在崩溃后仍然存在,从而支撑了所有可靠的事务系统。

History

事务概念和ACID特性于20世纪70年代在IBM的System R中被形式化;Eswaran及其同事(1976)建立了一致性和锁定概念,Jim Gray定义了事务和恢复,Bernstein、Hadzilacos和Goodman(1987)系统化了串行化理论。Gray对事务处理的贡献使他获得了图灵奖。

Key figures

  • Jim Gray
  • Philip Bernstein
  • Andreas Reuter

Related topics

Seminal works

  • gray1992
  • bernstein1987
  • eswaran1976

Frequently asked questions

事务调度可串行化意味着什么?
如果并发调度的总体效果与按某种顺序一个接一个地运行相同事务的效果相同,则它是可串行化的。串行化是黄金标准正确性准则:尽管事务为了性能而交错,但结果就像它们是串行执行的一样,因此没有事务会看到不一致的中间状态。
如果较弱的隔离级别可能产生异常,为什么还允许它们?
强制完全串行化会带来锁竞争和中止的性能成本。许多应用程序可以容忍某些异常以换取更高的并发性,因此SQL标准定义了较弱的隔离级别(读已提交、可重复读等),允许开发人员有意识地牺牲一些隔离性来提高吞吐量。

Methods for this concept

Related concepts