The following syllabus is designed for a course where the goal is to teach students the fundamental concepts underlying database system design, including not only the design of applications using databases, but also covering the fundamental implementation techniques used in database systems. The amount of material that needs to be covered will make such a course a rather intensive one to cover in one semester, and students must be prepared for the course load.
The project could involve implementing one or more component(s) or a database system, as an index structure, or lock manager, or relation manager (providing an iterator interface), or a simple relational algebra evaluation engine.
More ambitious courses may wish to have projects based on adding functionality to the PostgreSQL open-source database system. Chapter 26 provides an overview of PostgreSQL that students should read before studying the PostgreSQL code.
Last updated April 2005.