Describe, with examples, the types of problem that can occur in a multi-user environment when concurrent access to the database is allowed. Give full details of a mechanism for concurrency control that can be used to ensure that the types of problem discussed in Question 20.3 cannot occur. Show how the mechanism prevents the problems illustrated from occurring. Discuss how the concurrency control mechanism interacts with the transaction mechanism.