Three transactions apply slab-based commission multipliers:
$T_1$: $(\times 1.02)$ if $(\text{commission} \le 50{,}000)$
$T_2$: $(\times 1.04)$ if $(50{,}000 < \text{commission} \le 100{,}000)$
$T_3$: $(\times 1.06)$ if $(\text{commission} > 100{,}000)$
The enhancement must be applied exactly once, based on the original commission. Since SQL evaluates WHERE clauses on the current state, execution order and concurrency determine correctness.Example salesperson with original commission = ₹50,000 (should receive only 2%).
Option A: $T_1 \rightarrow T_2 \rightarrow T_3$
$$
\begin{array}{|c|c|c|c|}
\hline
\text{Step} & \text{Txn} & \text{Condition} & \text{Commission} \\
\hline
0 & \text{Initial} & - & 50000 \\
\hline
1 & T_1 & 50000 \leq 50000 & 50000 \times 1.02 = 51000 \\
\hline
2 & T_2 & 51000 \in (50000,100000] & 51000 \times 1.04 = 53040 \\
\hline
3 & T_3 & 53040 > 100000 & \text{No change} \\
\hline
\end{array}
$$
Fails: Enhanced twice (2% + 4%). Incorrect.
Option B: $T_2 \rightarrow T_3$; $T_1$ concurrent
Concurrency permits interleavings. Even if $T_2$ and $T_3$ finish first, $T_1$ running concurrently may:
Because concurrent execution cannot guarantee that all rows are evaluated against the original state, correctness is not ensured.
Fails: Non-serial execution → no correctness guarantee.
Option C: $T_3 \rightarrow T_2$; $T_1$ concurrent
$$
\begin{array}{|c|c|c|c|}
\hline
\text{Step} & \text{Txn} & \text{Condition} & \text{Commission} \\
\hline
0 & \text{Initial} & - & 50000 \\
\hline
1 & T_3 & 50000 > 100000 & \text{No change} \\
\hline
2 & T_2 & 50000 > 50000 & \text{No change} \\
\hline
3 & T_1\ (\text{concurrent}) & 50000 \leq 50000 & 51000 \\
\hline
\end{array}
$$
This schedule yields the correct result for this instance. However, since $T_1$ runs concurrently, other interleavings could produce anomalies. The option does not enforce serializability.
Fails: Concurrency → possible inconsistent reads or lost updates.
Option D: $T_3 \rightarrow T_2 \rightarrow T_1$ (Serial)
$$
\begin{array}{|c|c|c|c|}
\hline
\text{Step} & \text{Txn} & \text{Condition} & \text{Commission} \\
\hline
0 & \text{Initial} & - & 50000 \\
\hline
1 & T_3 & 50000 > 100000 & \text{No change} \\
\hline
2 & T_2 & 50000 > 50000 & \text{No change} \\
\hline
3 & T_1 & 50000 \leq 50000 & 50000 \times 1.02 = 51000 \\
\hline
\end{array}
$$
Correct:
Transactions run serially in descending slab order.
No updated value qualifies for any subsequent transaction.
Each row is updated exactly once, based on its original commission.
$$
\color{skyblue} \boxed{\text{D. Execute } T_3 \text{ followed by } T_2 \text{ followed by } T_1}
$$