chapter08_数据库恢复技术_1_事务的基本概念和特征

  • 事务的四个特征:ACID

    (1) 原子性 Atomic

    事务中的所有操作要么都执行,要么都不执行

    (2) 一致性 Consistency

    事务执行的结果从一个状态到另一个状态时保持一致。即当事务提交成功时,保存一致性的结果;当事务提交不成功时,数据库将处在不一样的状态,这种状态应该撤销

    (3) 隔离性 Isolation

    并发执行事务时,事务之间不能互相干扰

    (4) 持久性 Durability

    事务一旦提交成功,数据修改是永久的

  • (1) 原子性保持了事务的一致性

    (2) 隔离性保证多个事务间不互相干扰。否则,即便每个事务都能确保数据的原子性和一致性,多个事务并发执行时,也可能出现不一致的状态

    隔离性保证了事务A在执行过程中,事务B要么已经执行完毕,要么还没有运行,B不会在A执行的过程中访问到A的中间结果。

  • 事务状态

    (1) 活动状态:事务执行前的状态

    (2) 部分提交状态:事务的最后一条语句执行完毕,结果已经在内存缓冲区中,还没有写入磁盘

    (3) 失败状态:事务没有正常执行,应该回滚

    (4) 终止状态:事务回滚并且数据库恢复到事务执行前的状态

    (5) 提交状态:数据的更改完全写入磁盘

    (6) 几种状态间的转换关系

      活动状态 --> 部分提交状态 --> 提交状态
          |            |
          |            |
          |            V
          -------> 失败状态 --> 终止状态
    
  • 事务原子性和持久性的一种实现 --> 影子拷贝

    更新数据库之前,先对原数据库复制一份副本,更新发生在新的副本中;

    磁盘上有一个指针,初始时指向原数据库;

    正常的过程是: 对新副本进行更新,更新完成后,将指针指向新副本,然后可以删除旧副本;

    如果故障发生在指针修改之前,那么只需删除新副本,相当于事务没有发生;

    如果故障发生在指针修改之后,那么读到的是更新后的新副本内容。

    因此,影子拷贝方案依赖的是指针写操作的原子性:要么写入指针的所有字节,要么一个字节也不写入。

猜你喜欢

转载自blog.csdn.net/captxb/article/details/88082028
今日推荐