CS734                 Database Internals              Fall 2004


Instructor:  Prof. Patrick E. O'Neil, Dept. of Math and CS, UMass/Boston

       Office:  Science 3/167 - UNIX Mail ID:  poneil (from outside, poneil@cs.umb.edu)

       Phone:  287-6468 , Dept. Secretary:  287-6440, 6441, 6442

       Home:   354-6460, Wkdys & Wknds 9:30 AM to 10:00 PM, leave msg.

       Class Hours: Monday & Wednesday 7:00 PM - 8:15 PM, M-1-619

       Office Hours: Mon & Wed 4:25 to 5:25 and after class at 8:15, or by special arrangement




Prerequisite:  CS630 and CS634 or very strong database experience and permission of Instructor.


Grader for Fall 2004: Xuedong Chen, email: xuedchen@cs.umb.edu


Apply for Course: You should apply for a UNIX ID in the UNIX Lab for CS734 even if you have a UNIX ID already; it puts you on the email list.




I will assume you are familiar with the text used in CS630 and CS634, "Database:  Principles, Programming and Performance," Morgan Kaufmann, 2001 (Second Edition), Patrick O'Neil and Elizabeth O'Neil. The most important  chapters from DBPPP are: 3, 5, 7, 8, 9 (through joins), and 10. There will be background assignments from this.


The text I will use (along with many handouts and my supplementary notes) is: “Concurrency Control and Recovery in Database Systems,” Bernstein, Hadzilacos, and Goodman, Addison Wesley, 1987, abbreviated BHG. I will pass out printed chapters, but you can also download BHG chapters from:




Course Description:


The Catalog Description follows:  CS734 is an advanced graduate course in database internals design and programming. Students will be expected to have already mastered a basic DBA-level understanding of database systems that is covered in CS634 and the programming experience gained in CS310. The pace in CS734 will be fast, covering both abstract design and program­ming con­cepts, intended for students who want to program at the system level at a database vendor or go on for a Ph.D. in database systems with a practical orientation.  Topics covered will mostly relate to transactional concurrency theory and implementation.


Professional journal articles will be provided for reading, and students will be expected to learn how to read them and perform library research, getting details of topics covered in class.


Course Assignments:


There will be at least one programming project and a number of short homeworks covering conceptual problems from a simple to a challenging level. Challenging problems will be good practice for Ph.D. candidate level research in the database area.


Topics/Competencies Covered by the Course:


The course teaches a number of basic topics in implementing database systems internals, re­volving around the many details of transactional concurrency.  Students will also gain experi­ence reading journal articles in the field that deals with such topics.


Methods and Standards of Evaluation and Grading:


The pace of the course will be fast, so students must have a strong background in prerequisites.  The final grade will weight three categories: (1) Program projects, (2) a number of short homeworks, and (3) one in-class Exam and a final, with a weighting: 15%/10%/75%.


Some topics to be covered:


1. Transactional Concurrency at a deep theoretical level. We will begin with traditional trans­actional notation and later progress to some new models, including phantom avoidance (KVL locking) and Snapshot Isolation notation. Lots of different readings.


2. Details of database system implementation for traditional locking scheduler. Different ap­proaches to defining RIDs (Row IDs),  Locking implementation (in two phases, later including KVL locking to avoid phantoms), Latching, Durable Queueing, etc. If there is time, we will discuss Disk page buffering.


3. Discussion in depth of implementing Snapshot Isolation. There will be readings in notes and papers I hand out.


Withdrawal Date


The University requires that you withdraw from the course by Friday, November 12, 2004, or receive a grade for the course.