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

***
PHONE ABOVE NUMBERS ANYTIME FOR ADVICE, ANSWERS, HELP ***

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.

Text(s):

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

http://research.microsoft.com/pubs/ccontrol/

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.