梗概

  • 事务是一组操作单元,被视为一个不可分割的工作单位,要么全部成功执行,要么全部失败回滚。

事务的特性

child::

事务的ACID特性

father::事务

四个关键特性

  1. 原子性(Atomicity):事务是一个不可分割的工作单位,要么全部成功提交,要么全部失败回滚。即使发生了意外故障,也要保证数据的一致性。

  2. 一致性(Consistency):事务执行前后,数据库从一个一致状态转换到另一个一致状态。在事务开始前和结束后,数据库约束和规则必须保持完整性。

  3. 不一致状态如:数据库发生故障,事务中有些操作做完了,但有些操作没有执行,这是数据库就处于不一致的状态

  4. 实现方式:[use::故障恢复]

  5. 隔离性(Isolation):多个事务同时进行时,每个事务的操作应该相互隔离,避免彼此干扰。事务之间应该具有隔离性,以防止并发执行时引起数据不一致问题。

  6. 持久性(Durability):一旦事务提交成功,在任何系统故障情况下,已经提交的数据都不会丢失。系统需要能够将已提交的数据持久保存在数据库中。

指向原始笔记的链接

事务的实现方式

  1. 使用数据库管理系统提供的事务支持:大多数数据库管理系统都提供了对事务的支持,可以通过SQL语句来控制事务的开始、提交和回滚等操作。

  2. use::并发控制

  3. 编程语言中实现事务:在程序中通过编写代码来实现对数据库的操作,并使用编程语言提供的事务控制语句来确保数据操作的原子性。

事务相关的事件

  1. 开始(BEGIN):标记一个新的事务开始。

  2. 提交(COMMIT):将已经执行成功的操作永久保存到数据库中。

  3. 回滚(ROLLBACK):撤销未提交的操作或者取消已经提交但是出现错误需要撤销的操作。

事务并发问题

child::

事务的并发问题

主要问题

  1. 常见的并发问题包括[child::丢失修改]、[child::脏读]、[child::不可重复读]、[child::幻读]
  2. 解决并发问题:[use::并发控制]
  3. 数据库系统如何处理并发问题,保证数据的一致性和完整性
指向原始笔记的链接

示例

SQL server中的事务代码

BEGIN TRANSACTION;
 
UPDATE table_name
SET column1 = value1
WHERE condition;
IF @@error <> 0 
  ROLLBACK;
ELSE
  COMMIT;
END IF;