CSCI 4707 (Spring 2024): Practice of Database Systems

Course Overview

This course covers the basic concepts and elements of database management by providing an introduction to the relational data model and its languages. The course also studies database design methodology, storage, indexing, query evaluation, and transaction management. Students gain experience using and building applications on top of the major open-sourced PostgreSQL by completing several assignments. Students also gain hands-on experience with implementing new functions into PostgreSQL source code. Through written and coding tasks as well as close interactions with the instructor and TAs, students are exposed to both the theory and engineering behind classic database systems, and can expect to build a foundational knowledge toward modern large-scale data processing and analysis.


The course is organized as a sequence of in-person lectures by the instructor, usually two times a week. The semester-long lectures consist of seven modules, where later modules normally rely on previous ones. During the semester, there will be four written homeworks and three lab exercises to deepen understanding of the subject. Two checkpoint midterms will be held during lecture hours, and the final exam will be scheduled to the end of the lectures.


The course takes the CowBook as the required text: The following optional textbooks serve as useful references:


Late submission without prior consent is not accepted. All deadlines refer to the noon on that day.


Week Date Topic Material Milestone
1 Tuesday, January 16 Ch.1: Overview of Database Systems 1.1
Thursday, January 18 Ch.1: Overview of Database Systems 1.2
2 Tuesday, January 23 Ch.2: ER Model 2.1
Thursday, January 25 Ch.2: ER Model 2.2 HW1 Out
3 Tuesday, January 30 Ch.3: Relational Model 3.1
Thursday, February 1 Ch.3: Relational Model 3.2 Lab1 Out
4 Tuesday, February 6 Ch.4: Relational Algebra 4.1
Thursday, February 8 Ch.4: Relational Algebra 4.2 HW1 Due. HW2 Out
5 Tuesday, February 13 Ch.5: SQL Queries 5.1
Thursday, February 15 Ch.5: SQL Queries 5.2
6 Tuesday, February 20 (online) Ch.8-9: Storage and Indexing 6.1 HW2 Due
Thursday, February 22 Midterm Exam 1 R1
7 Tuesday, February 27 Ch.8-9: Storage and Indexing 7.1 Lab1 Due. Lab2 Out
Thursday, February 29 Ch.8-9: Storage and Indexing 7.2 HW3 Out
8 Tuesday, March 5 Spring break
Thursday, March 7
9 Tuesday, March 12 Ch.8-9: Storage and Indexing 9.1
Thursday, March 14 (online) Ch.8-9: Storage and Indexing 9.2
10 Tuesday, March 19 Ch.12-15: Query Evaluation 10.1
Thursday, March 21 Ch.12-15: Query Evaluation 10.2
11 Tuesday, March 26 Ch.12-15: Query Evaluation 11.1
Thursday, March 28 Ch.12-15: Query Evaluation 11.2 HW3 Due
12 Tuesday, April 2 Midterm Exam 2 R2
Thursday, April 4 Ch.16-18: Transaction Management 12.2 Lab2 Due. Lab3 Out. HW4 Out
13 Tuesday, April 9 Ch.16-18: Transaction Management 13.1
Thursday, April 11 Ch.16-18: Transaction Management 13.2
14 Tuesday, April 16 Ch.16-18: Transaction Management 14.1
Thursday, April 18 Ch.16-18: Transaction Management 14.2
15 Tuesday, April 23 Ch.19: Schema Refinement 15.1
Thursday, April 25 Ch.19: Schema Refinement 15.2 Lab3 Due. HW4 Due
17 Wednesday, May 8, 10:30AM-12:30PM
Keller Hall 3-210
Final Exam Class photo

University Policies