Rules for deriving efficient independent transaction - Ibrahim, Hamidah (IEEE, 2006)
A transaction is a collection of operations that performs a single logical function in a database application. Each transaction is a unit of both atomicity and consistency. Thus, transactions are required not to violate any database consistency constraints. In most cases, the update operations in a transaction are executed sequentially. The effect of a single operation in a transaction potentially may be changed by another operation in the same transaction. This implies that the sequential execution sometimes does some redundant work. A transaction with a set of update operations is order dependent if and only if the execution of the transaction following the serialibility order as in the transaction produce an output which will be different than the output produced by interchanging the operations in the transaction. In [8], a transaction is an order dependent transaction if and only if it contains at least two conflicting update operations, i.e. updates that operate on the same data item. In our work, we have identified that there are cases where an update operation operates on a data item that is part of a set of data items operate by the other update operation. Such transaction is known as partly order dependent transaction. An order independent transaction has an important advantage of its update statements being executed in parallel without considering their relative execution orders. With an order independent transaction we can consider its single updates in an arbitrary order. Furthermore, executing these update operations in parallel can reduce the execution time. In this paper, we present rules that can be applied to generate order independent transaction given an order dependent or partly order dependent transaction. In addition, we have identified several rules that can be applied to eliminate redundant and subsumed operations that can incur unnecessary execution cost.