用示例解释串行执行或事务(DBMS)

dbmsdatabasebig data analytics更新于 2026/1/13 0:22:17

事务的执行方式有三种。具体如下 −

  • 串行执行 − 在串行执行中,第二个事务只能在第一个事务完成后才开始执行。这在单处理器系统上是可能的。

  • 并行执行 − 在并行执行中,两个事务可以在同一时刻开始执行。为此,我们需要多个处理器。

  • 并发执行 − 在并发执行中,第二个进程甚至可以在第一个进程完成执行之前开始执行。

我们考虑两个事务 T1 和 T2。在并发执行中,CPU 执行事务 T1 的部分指令,然后转到第二个事务并执行其指令一段时间,之后再次返回第一个事务。

此循环重复进行,直到两个事务的所有指令都执行完毕。此过程称为上下文切换。

示例

下面是串行执行的示例 −

考虑两个事务 T1 和 T2,其中 T1 从账户 A 向账户 B 转账 150 卢比,同样,T2 从账户 A 向账户 B 转账 10% 的余额。

  T1               T2
  Read(A)        Read(A)
  A=A-150        temp =0.1 *A
  Write(A)       A=A-temp
  Read(B)        Write(A)
  B=B+150        Read(B)
  Write(B)      B=B+temp
                 Write(B)

事务 T1 和 T2 的指令执行顺序称为调度 (Schedule)。

可能的串行调度如下 −

设 A= 200,B=200

调度 S1 和 S2 使数据库保持一致状态。

一般来说,如果系统包含 n 个事务,那么我们可以生成 n! 个有效的串行调度。


相关文章