Suggested Syllabus for a One Semester Systems Oriented Course
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.
- Chapter 1: Introduction
- Chapter 2: Introducation to the Relational Model
- Chapter 3: Intoduction to SQL
- Chapter 4: Intermediate SQL
- Chapter 5: Advanced SQL
- Sections 5.4 onwards may be omitted.
- Chapter 6: Other Relational Languages
- Section 6.1 (Relational Algebra) may be covered briefly.
- Sections 6.2 (Tuple Relational Calculus) and 6.3 (Domain Relational Calculus)
may be omitted.
- Chapter 7: Entity-Relationship Model
- Chapter 8: Relational Database Design
- Chapter 9: Application Design and Development
- This chapter may be covered in brief, without going into details
- Chapter 10: Storage and File Structure
- Chapter 11: Indexing and Hashing
- Chapter 12: Query Processing
- Chapter 13: Query Optimization
- Chapter 14: Transactions
- Chapter 15: Concurrency Control
- Section 15.7 (Snapshot Isolation), Section 15.9 (Weak Levels of Consistency)
and Section 15.10 (Concurrency in Index Structures)
may be omitted.
- Chapter 16: Recovery System
- Section 16.8 (ARIES) may be omitted.
- Assignments/Project
The course should be supplemented by assignments and a project.
The assignments can involve the design of a schema for a
realistic application, and coding and executing SQL queries on
a relational database system.
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 based on the iterator
model.
More ambitious courses may wish to have projects based on
adding functionality to the PostgreSQL open-source database system.
Chapter 27 provides an overview of PostgreSQL that students
should read before studying the PostgreSQL code.
Last updated November 2009.