Database Engineering

CS 234 Waterloo, Fall '01

  Instructor:           David Toman (
  Office:               DC 3128 Tue 4:30-6
  Lectures:             TBA
  Class Info:

  Tutors Office/Help:

Synopsis and Overview

The lectures try to give an answer the following questions:
  • how do modern (relational) DBMS work?
  • what are their (possible) extensions?
  • The class is project-oriented: an inherent part of the class is practical experience of implementing (pieces of) a DBMS and integration of these pieces into a working system.


    The lectures assume that:
  • CS448 or its equivalent (i.e., you understand basic principles of relational DBMS and you can use SQL),
  • elementary math (i.e, you understand what are sets, relations, functions, first-order formulas, etc., and what can you do with them),
  • sufficient programming skills (in C or JAVA).

  • Book(s)

    Required: Database System Implementation. Molina, Ullman, and Widom, Prentice Hall 2000.
    References: Database Management Systems. Ramakrishnan and Gherke, McGraw Hill, 2000.

    The lectures do not follow the textbook(s) to the letter. Additional lecture notes will be made available for some of the advanced topics.


    The class assignments are part of a project with the goal of implementing a working single user relational system for querying XML documents. The project consists of three programming assignments leading to this goal, that can be approximately characterized as follows:
  • A1: Storage manager for relations representing XML data, including indices and supporting disk-resident data structures.
  • A2: query processor for subset of relational algebra.
  • A3: XML query translator and optimizer.

  • Assessment

  • 50% Project (3 programming assignments; tentative weights 15-15-20)
  • 50% Final (TBA as scheduled by Math faculty)
  • To pass the course, a student must pass both the final examination (i.e., 50% on the exam).

    Fine print: the usual university policies on academic honesty, fair use of computing facilities, etc., apply by default.