📜  DBMS 中串行和非串行调度的计算

📅  最后修改于: 2021-09-28 10:17:29             🧑  作者: Mango

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

时间表类型 –

  • 串行调度
  • 非系列时间表

计划数量的计算:
考虑有 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!)

例子 –
假设有 3 个事务,分别有 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