I have imitated following description from
course website.
"To study the internals of database systems as an introduction to research and as a basis for rational performance tuning.
The study of internals will concern topics at the intersection of database system, operating system, and distributed computing research and development. Specific to databases is the support of the notion of transaction: a multi-step atomic unit of work that must appear to execute in isolation and in an all-or-nothing manner. The theory and practice of transaction processing is the problem of making this happen efficiently and reliably.
Tuning is the activity of making your database system run faster. The capable tuner must understand the internals and externals of a database system well enough to understand what could be affecting the performance of a database application. We will see that interactions between different levels of the system, e.g., index design and concurrency control, are extremely important, so will require a new optic on database management design as well as introduce new research issues. Our discussion of tuning will range from the hardware to conceptual design, touching on operating systems, transactional subcomponents, index selection, query reformulation, normalization decisions, and the comparative advantage of object-oriented database systems. This portion of the course will be heavily sprinkled with case studies from database tuning in biotech, telecommunications, and finance. Also, since the book that Philippe Bonnet and I have written has many tests associated with it, you will get the benefit of those tests."
Assignment topics:
Serializability / Serialization Graph; Two-phase locking and deadlocks; Wait-for Graph; Prove most deadlocks involve few transactions, using an average case model in the spirit of Tay’s performance analysis;
Prove that two phase locking produces order-preserving serializable executions; Prove/Disprove a variation of intent locking protocol is serializable;
Modify Kung and Robinson optimistic concurrency control algorithm to ensure that every transaction eventually completes (i.e., no transaction is restarted forever);
Prove that the datacycle algorithm ensures serializability assuming that every write on a variable is preceded by a read on that variable;
Prove that the multiversion read consistency algorithm ensures serializability; Proof of a non-serializable execution in Oracle for a scenario that involves SELECT FOR UPDATE
The Undo, No Redo algorithm; Two phase commit protocol; Available copies algorithm; Use of non-clustering index ; Database tuning ; SQL queries;
Transaction chopping; Entity modelling, identification of relationships and decision to apply indeces on columns
Project:
Implementing a Multi Server DB System with Replication (Available Copies) and Concurrency Control (2-Phase Locking), with support for Multi Version Read Consistency (RO Transactions) and Dead Lock Avoidance (Wait Die Protocol) along with Snapshot Isolation and Load Balancing among various DB Servers using a name server