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:
   
   Transaction

   The ACID Properties

   Serializable

   Dependency Graph

   Conflict Serializable

   Deadlock

   Deadlock Prevention

   Deadlock Detection

   Waits-for Graph

   Index Locking

   Predicate Locking

   Write Ahead Log

   Checkpoint

   Discretionary Access Control
 
   Mandatory Access Control

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
   prevention.

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
   scheme?

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
   recovery?

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

11. Define discretionary and mandatory access control mechanisms for 
    database security.  What are the advantages of each method?