The final is comprehensive and will cover material discussed for the first two midterms. You should review the sample questions given for those midterms:

Some additional questions regarding the material since exam 2:

1. Briefly define the following terms:

   The ACID Properties


   Dependency Graph

   Conflict Serializable


   Deadlock Prevention

   Deadlock Detection

   Waits-for Graph

   Index Locking

   Predicate Locking

   Optimistic Concurrency Control

   Timestamp Concurrency Control

   Write Ahead Log


2. Give examples of two different types of anomalies that can occur
   when transactions are interleaved carelessly.  How would strict two
   phase locking prevent these anomalies?

3. Define the two-phase locking (2PL) protocol?  What types of locks are
   normally used in this type of protocol (and what do they prevent)?
   What is meant by strict two-phase locking?

4. Define the term deadlock in concurrency control.  Give an example
   of a set of transactions and locks that they acquire that results
   in deadlock.  Define a deadlock prevention scheme and how this scheme
   would prevent deadlock in your example.

5. Answer question 4, but using deadlock detection rather than deadlock

6. What is meant by multiple-granularity locking?  How does this notion
   interact with the idea of intention locks?  Why would we use such a

7. What is meant by the term index locking?  How about predicate locking?
   What type of situation are these algorithms meant to prevent?

8. Give a reasonable tree locking algorithm for locking in B+ trees?  How
   could this algorithm be improved?

9. Which of the ACID properties are dealt with by having a crash recovery
   system in a DB?  What is the basic idea that is used to allow crash

10. Define the phases of the ARIES crash recovery system.  How are the
    transactions affected at each stage recognized?