Watch a video introduction to this course on YouTube.
The objective of this course is to introduce students to fundamentals of building a database management system (DBMS), in particular a relational one. It focuses on the database engine core technology by studying topics such as storage systems (data layout, disk-based data structures), indexing, query processing algorithms, query optimization, transactional concurrency control, logging and recovery. It complements CS348 by looking at the internals of relational DBMSs.
This is a second course on databases that focuses on DBMS internals. It is a project-oriented course that will provide the students, upon successful completion, with an appreciation of the intricacies and complexities of a DBMS and enable them to be able to design and implement the major components of it. The course objective will be achieved by focusing on three fundamental sub-objectives:
Complementary to the above objectives, the course has a training component where the students will gain experience, within the context of a number of assignments, in building components of a DBMS and incorporating them into an open source system such as MySQL or PostgreSQL. The lectures may be complemented by guest lectures on real-life DBMS implementation issues given by colleagues from industry (Sybase, IBM Canada, Microsoft and others).
CS 448 is a course for CS major students, and is normally taken in a student's fourth year. This course will be of interest to students whose area of expertise includes large software systems. CS 338 is available for students in other plans.
Prerequisites: CS 348 and (CS 350 or SE 350). Computer Science students only.
Antirequisites: ECE 456
Database Management Systems, 3rd ed., by R. Ramakrishnan and J. Gehrke, McGraw-Hill, 2003. Course notes are required (may be made available via the web).
3 hours of lectures per week. Normally available in Winter.
Fundamentals of relational databases, relational calculus, relational algebra, integrity issues.
Data layout, buffer systems, file management, indexing techniques (tree-based and hashing).
Query processing methodology, view expansion, query translation, implementation of relational operators, external sorting, cost-based query optimization.
Transaction models, concurrency control algorithms, database recovery.
Implementation of catalogs and integrity constraints.

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics