A Distributed Transaction
Let us demonstrate the concept of a distributed transaction by considering a banking system having of three branches located in 3 different cities. Every branch has its own computer with a database having of all the accounts maintained at that branch. Each such installation is therefore a site. There also exists one single site which preserves information about all the other branches of the bank. Assume that the database systems at the several sites are based on the relational model. Every branch preserves its portion of the relation: DEPOSIT (DEPOSIT-BRANCH) where DEPOSIT-BRANCH = (branch-name, customer-name, account-number, balance)
A site having information about the 4 branches maintains the relation branch- details, which has the schema as:
BRANCH-DETAILS (Financial_ health, branch-name, city)
There are other relations maintained at the several sites which are ignored for the purpose of our example.
A local transaction is a transaction that accesses accounts in only one single site, at which the transaction was started. A global transaction, on the other hand, is one which either accesses accounts in a site dissimilar from the one at which the transaction was started, or accesses accounts in various different sites. To demonstrate the difference among these two types of transactions, take the transaction to add Rs.5000 to account number 177 located at the Delhi branch. If the transaction was started at the Delhi branch, then it is considered local; or else, it is considered global. A transaction to transfer Rs.5000 from account 177 to account 305, which is located at the Bombay branch, is a global transaction as accounts in two dissimilar sites are accessed as a result of its implementation. A transaction finding the total financial standing of each branch is global.
What creates the above configuration a distributed database system are the facts that:
- The several sites may be locally controlled yet are aware of each other.
- Every site gives an environment for executing both global and local transactions.
Though, a user need not know whether on underlying application is distributed or not.