332:569 DATABASE SYSTEM ENGINEERING

Spring 2003 - 3 credits

Instructor: Yanyong Zhang

Core 518

445-0608 (office)

http://www.ece.rutgers.edu/spring04

Description: 332:569 is intended to give students a solid background in database management systems, particularly relational database management systems. Such systems will be mostly examined from the perspective of a database system implementer. Topics covered include data models and relational database design; database integrity and concurrency control; distributed database design and concurrency control; query optimization. As part of the course students will implement a client/server relational DBMS supporting queries and distributed transactions. The goal of the project is to provide a concrete and well-understood frame of reference to aid in understanding and evaluating the material presented in class.

Text: J. Gray, et al., Transaction Processing: Concepts and Techniques, Morgan Kaufmann, San Francisco, CA, 1993. (Required)

Reference:

  1. J. D. Ullman, Principles of Database and Knowledge-Base Systems, Volume 1, Computer Science Press, Rockville, MD, 1988.
  2. P.A. Bernstein, V. Hadzilacos and N. Goodman, Concurrency Control and Recovery in Database Systems, Addison-Wesley, Reading, MA, 1987. (electronic version available http://research.microsoft.com/pubs/ccontrol/ )
  3. Raghu Ramakrishnan, Database Management Systems, McGraw-Hill, Boston, MA, 1998. ISBN 0-07-050775-9.

Prerequisite: 332:566 Parallel Computer Design; 332:567 Software Engineering I; 198:519 Operating System (suggested). If you have not taken these courses, you need to talk to the instructor before you register. Also, please note that this is not a course where you can learn programming, rather, the projects require a considerable amount of programming effort. As a result, if you are not familiar with C/C++ and Unix environment, this is not a very good place for you to practice.

Project: Projects will be carried out by groups of up to three students. The project will be divided into two parts. The first will involve query processing and the second will deal with transaction processing. I will score each project based on supplied documentation and a short demonstration. Students will also be allowed to evaluate their teammates. This evaluation will be used in determining individual project scores.

Due Dates: No late assignments/project reports will be accepted.

Administrative:

• Homework Assignments (3 @ 5% each) 15%

• Project 45%

• Midterm 20%

• Final 20%

Week-by-week Syllabus:

Timeline / Topics / Reading materials
Week 1 (01/22) / Organizational meeting; introduction / G 1-2
Week 2 (01/26 – 01/30) / Relational data model; relational algebra; expressing queries in RA
Week 3 (02/02 – 02/06) / File and Buffer Management; Tuple representation and File Organization / G13, G14
Week 4 (02/09 – 02/13) / Introduction to Indexing Hashed Organization / G15.3,G15.6.1
Week 5 (02/16 – 02/20) / B-trees / G15.4
Week 6 (02/23– 02/27) / Query Processing / Supplemental
Week 7 (03/01– 03/05) / Transaction Models / G4.1 – G4.5
Week 8 (03/08 – 03/12) / Isolation – Dependency Model; Isolation – Isolation Theorems / G7.5
Week 9 (03/15 – 03/19) / Spring break
Week 10 (03/22 – 03/26) / Midterm; Isolation – degree of isolation / G7.6
Week 11 (03/29 – 04/02) / The Phantom Problem and Granular Locking; deadlock / G7.7, G7.8, G7.11
Week 12 (04/05 – 04/09) / Workload and Performance (TPC Benchmarks); locking performance Supplemental / Supplemental
Week 13 (04/12– 04/16) / B-Tree Synchronization / G15.4
Week 14 (04/19 –04/23) / Recovery – logging; Recovery – transaction manager / G9, G10
Week 15 (04/26 –04/30) / Recovery – checkpointing; B-tree recovery / G11.1-11.4, G15.4.5
Week 16 (05/03–05/07) / Recovery – Advanced Transaction Manager Topics / G12

2