 
  
  
   
create table account (
account_no integer;
owner char(20),
balance float,
primary key (account_no));
insert into account values (1111,'Smith',500);
insert into account values (1112,'Smith',600);
i.e. Customer "Smith" has two accounts; 
     Account 1111 with balance 500
     Account 1112 with balance 600.
To qualify for a loan, a customer must have
at least $1000 in all of his accounts.
Process I (Transfer Money)
s1:  update account set balance = balance - 400
     where account_id = 1111;
s2:  update account set balance = balance + 400
     where account_id = 1112;
Process II (Credit Check)
t1:  sum = 0.0;
t2:  select balance into :b where account_id = 1111;
t3:  sum = sum + b;
t4:  select balance into :b where account_id = 1112;
t5:  sum = sum + b;
t6:  if (sum < 1000) DENY LOAN else AUTHORIZE LOAN;
The execution sequence: s1;t1;t2;t3;t4;t5;s2;t6
will result in a DENY LOAN situation, which is erroneous.
BEGIN WORK LOCK TABLE account UPDATE account SET balance = balance - 400 WHERE account_id = 1111; UPDATE account SET balance = balance + 400 WHERE account_id = 1112; COMMIT WORK;