📜  DBMS中串行和非串行日程表的计算

📅  最后修改于: 2021-08-24 08:20:45             🧑  作者: Mango

事务的串行执行被定义为Schedule。它由许多事务组成,每个事务都包含许多指令。

时间表类型–

  • 连续时间表
  • 非串行时间表

附表数目的计算:
假设有N个事务t1,t2,t3,…,tN,分别有k1,k2,k3,….,kN个操作。

  1. 时间表总数–
    (N1 + N2 + N3 + ..... + Nn)! / (N1! * N2! * N3! * ... * Nn!)
  2. 序列表的数量–
    It is all possible permutations of n transactions = N!
  3. 非序列表的数量–
    总时间表=序列时间表+非序列时间表
    非串行日程表的数量=日程表的总数–串行日程表的数量
    ((N1 + N2 + N3 + ..... + Nn)! / (N1! * N2! * N3! * ... * Nn!)) - (N!)

例子 –
考虑到三个事务分别具有1、2和3个操作。
我们必须找到–

  • 可能的时间表总数。
  • 可能有连续计划和非连续计划的总数。

解决方案 –
时间表总数,

= (1 + 2 + 3)! / (1! + 2! + 3!) = 6! / 9 = 120

Number of Serial Schedules,
= 3! = 6

Number of Non-Serial Schedules,
= Total Number of Schedules - Number of Serial Schedules 
= 120 - 6 
= 114