This paper considers the problem of transactions restarts in a database system. when a transactions cannot be completed, most concurrency control mechanisms abort the transaction and reexecute the entire transaction we propose an alternate scheme that allows a transaction to restart from an intermediate states. Restarting a failed transaction from an intermediate state can result in substantial reduction of unnecessary computation which would be done if the entire transaction were reexecuted. we introduce a notion of state and consistent state of a transaction, and present a scheme that restarts transactions from consistent intermediate states A implementation of the scheme using prolog as the query language is presented.