Schedule

The “notes” links in the “Topic” column below are usually available 30 minutes before the lecture. They are intentionally incomplete in order to keep the lectures more lively. You can download and/or print them for taking notes during the lecture. They may contain typos/errors that will be corrected only in the final and complete version of the slides, available through the “slides” links after the lecture.

Unless otherwise noted, the section numbers in the “Reference” column refer to the book by Garcia-Molina, Ullman, and Widom (2nd Ed.).

Lecture livestreams/recordings are available via Panopto.

WeekDateTopicAssignmentReference
18/24Introduction [notes, slides]
8/26Relational model and algebra [notes, slides]
(up to slide 36)
Gradiance RA assigned
Homework 1 [pdf] assigned
2.1, 2.2, 2.4
28/31Database design in E/R model [notes, slides]
(up to slide 18)
4.1-4.4
9/2Database design: E/R-relational translation [notes, slides]
(up to slide 15)
Gradiance RA due
Gradiance ER assigned
4.5, 4.6
39/7Database design theory: FDs, MVDs, BCNF, 4NF [notes, slides]
(up to slide 24)
Gradiance FD, MVD assigned
Project [link] assigned
3.1-3.4, 3.6, 3.7
9/9SQL: basics, subqueries, aggregation [notes, slides]
(up to slide 10)
Homework 2 [pdf] assigned
Gradiance ER due
2.3, 8.3, 6.1.1-6.1.5, 6.2, 6.3, 6.4
49/14Catching up
(up to slide 38; see slides for 9/21 below for announcements)
Homework 1 due
Gradiance FD due
Gradiance SQL Querying assigned
6.1.6, 6.1.7, 6.5, 7.1-7.4
9/16Project discussion [slides]
(see slides for 9/21 below for announcements)
Gradiance MVD due
59/21SQL: NULL, outerjoin, modifications, constraints [notes, slides]
(up to slide 29)
Gradiance SQL Constraints assigned
9/23SQL: triggers, views, indexes [notes, slides]
(up to slide 15)
Project milestone 1 due
Gradiance SQL Querying due
Gradiance SQL Triggers/Views assigned
7.5, 8.1-8.2
69/28SQL: recursion [notes, slides]
(up to slide 13)
Homework 2 due
Gradiance SQL Constraints due
Gradiance SQL Recursion assigned
10.2
9/30Midterm exam
(in-class, in-person)
710/5Fall break
10/7SQL: programming [notes, slides]
(up to slide 11)
Project milestone 2 due
Gradiance SQL Triggers/Views due (extended)
Gradiance SQL Recursion due
9.1, 9.3, 9.4, 9.6
810/12SQL: transactions [notes, slides]
(up to slide 16)
6.6
10/14XML/DTD [notes, slides]
(up to slide 25)
Gradiance XML assigned
Homework 3 [pdf] assigned
11, 12.1
910/19Querying XML: XPath, XQuery [notes, slides]
(up to slide 18)
12.2
10/21Catching up (see slides below for announcements)Gradiance XML due
1010/26NoSQL: JSON and MongoDB [notes, slides]
(up to slide 22)
10/28XML-relational mapping [notes, slides]
1111/2Semi-structured data: programming: SAX and DOM [notes, slides]
Physical data organization [notes, slides]
(up to slide 10)
Homework 3 due13.2, 13.3, 13.5, 13.7
11/4Catching up
(see slides below for announcements)
1211/9Indexing [notes, slides]
(up to slide 23)
Gradiance Indexes assigned (see note below*)14.1, 14.2
11/11Query processing: algorithms [notes, slides]
(up to slide 15)
Project milestone 3 due15.1-15.6, 15.8
1311/16Catching upGradiance Indexes due
Homework 4 [pdf] assigned
11/18Query processing: systems perspective [notes, slides]16.1, 16.7.3-16.7.5
1411/23Query optimization [notes, slides]
(up to slide 25)
16.2-16.6
11/25Thanksgiving recess
1511/30Transaction processing [notes, slides]
(up to slide 20)
Homework 4 (except X2) due
Gradiance CC & Recovery assigned
18.1-18.4.2, 17.4
12/02Catching up
Early in-class project presentations
Parallel data processing: MapReduce & Spark [slides, video] (not covered in final, but useful to Homework 4 X2)
1612/07Reading period; no classGradiance CC & Recovery due 12/07
Homework 4 Problem X2 due
Project demo period 12/03-12/9; final report due 24 hours before demo
12/10Final exam
(Friday, 9AM-noon)

* Note on Gradiance Indexes exercise: The “B-trees” these problems refer to are what we call B+trees in lecture. Also, these problems use a definition of “fan-out” that is different from what we discussed in class. When they say “fan-out n = 3” they mean that the maximum number of keys per node is 3, and the maximum number of pointers per node is 4 (i.e., “max fan-out is 4” in our terminology).