一、事务

1.1 基本概念

  1. 事务是用户定义的一个数据库操作序列,要么全做,要么都不做
  2. 操作:
    BEGIN TRANSACTION 事务开始
    COMMIT/ROLLBACK 事务结束

1.2 ACID特性

  1. 原子性

  2. 一致性

  3. 隔离性

  4. 持续性

1.3 事务状态

数据库期末复习 数据恢复

二、Schedule

2.1 Serial

一个事务接一个事务,无交叉

数据库期末复习 数据恢复

2.2 conflict Serializable

A schedule is conflict serializable if and only if its precedence graph is acyclic(无环的).

If a schedule S can be transformed into a schedule S´ by a series of swaps of non-conflicting instructions, we say that S and S´ are conflict equivalent.

We say that a schedule S is conflict serializable if it is conflict equivalent to a serial schedule.

数据库期末复习 数据恢复

数据库期末复习 数据恢复

  1. li = read(Q), lj = read(Q). li and lj don’t conflict.
  2. li = read(Q), lj = write(Q). They conflict.
  3. li = write(Q), lj = read(Q). They conflict
  4. li = write(Q), lj = write(Q). They conflict

三、恢复

利用日志文件
日志文件基础操作:
数据库期末复习 数据恢复

3.1 故障

  1. 事务内部的故障 用UNDO
  2. 系统故障 用REDO
  3. 介质故障
  4. 计算机病毒

3.2 Redo

数据库期末复习 数据恢复

数据库期末复习 数据恢复

3.3 Undo

数据库期末复习 数据恢复

数据库期末复习 数据恢复

数据库期末复习 数据恢复

  1. checkpoint
    在日志中加入< CKPT >
    标记的事务表示已提交或完成

3.4 Redo/Undo

数据库期末复习 数据恢复

数据库期末复习 数据恢复

四、锁

4.1 状态

  1. Unlocked
  2. Shared (Read)
  3. Exclusive (Write)

4.2 共用

s-读锁
x-写锁
数据库期末复习 数据恢复

4.3 2PL Lock

  1. two phase lock
    数据库期末复习 数据恢复
  2. Strict 2PL
    All locks held by a transaction are released only when the transaction completes.

相关文章: