book cover
Database System Concepts
Seventh Edition
Avi Silberschatz
Henry F. Korth
S. Sudarshan


line separator

Two semesters

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.

line separator

Semester 1: Database Design and Modeling

  • Chapters
  • Assignments/Project

    The course should be supplemented by assignments covering database design for a realistic application,
    and its implementation using SQL on a relational database system

    The project could involve the design of a schema for a realistic application, and the implementation of the
    entire application using SQL and other languages and APIS such as Java servlets/JSP C#/ASP, PHP, etc.
    See Chapter 9 for some sample projects.

    line separator

    Semester 2: Database System Implementation

  • Chapters
  • Miscellaneous

    A selection of topics from Chapter ... could be covered, perhaps by student presentations, towards the end of the course.

  • Assignments/Project

    The course should be supplemented by assignments involving the implementation of components of a relational database system.

    We recommend projects based on adding functionality to the PostgreSQL open-source database system. Examples of such
    projects include: adding SQL features that are currently not supported by PostgreSQL, implementing execution algorithms
    for specialized tasks such as finding top-K results, joins with external data sources, and so on. Chapter 27 provides an
    overview of PostgreSQL that students should read before studying the PostgreSQL code.

    Another kind of project would require students to construct a relation manager on top of a storage manager such as Berkeley DB.
    The relation manager should support relation scans with and without primitive predicates (= value, < value, > value). The students
    could then implement some relational algebra operations, such as joins, top of the relation manager. We recommend the interfaces,
    such as the relation manager interface, be defined by the instructor.

    Implementing a concurrency control manager may be an alternative to or a supplement to implementing relational algebra operations.

    A more extensive project would be along the lines of the project used in the undergraduate database course in Wisconsin,
    where students implement not only the layers described above, but also implement a primitive file systems (page files),
    a primitive collection manager (heap files), and a buffer manager. Thereby students get a feel for all levels of a database
    system implementation. As before, all interfaces are defined by the instructor. The software system used in the Wisconsin projects
    is called Minibase.

    line separator

    Last updated Feb 2019.