Chat with us on the course Piazza site if you have any questions!
We're excited to once again utilize Jupyter notebooks to allow for more
interactivity in the class. Installation instructions are available here.
Python is used in the in-class activities, homework and projects.
The reading material listed below is optional, but it refers to Database Systems: The Complete Book by Garcia-Molina, Ullman, and Widom. The lecture plan below may change.
|#||Date||Topic||Lecture Materials||Extra Reading Material||Assignments|
|Introduction and Querying|
|1||9/26||Course Logistics and Database History||
Lecture 1 (pdf)
Jupyter Install Instructions
Lecture 2-3 (pdf)
Lecture 2 Notebook
Activity 2-1 (soln)
Activity 2-2 (soln)
Activity 2-3 (soln)
PS 1 Materials:
Lecture 2-3 (pdf)
Lecture 3 Notebook
Activity 3-1 (soln)
Activity 3-2 (soln)
Activity 3-3 (soln)
|Ch. 6||Database Design and Normal Forms|
|4||10/5||Database Design: ER Diagrams||
Lecture 4 (pdf)
Activity 4 (pdf)
Project Part 1:
|5||10/10||Database Design: Theory 1||
Lecture 5-7 (pdf)
Activity 5 (soln)
|Ch 3.2 - 3.7||PS 1 Due (before class)|
|6||10/12||Database Design: Theory 2||
Lecture 5-7 (pdf)
Activity 6-1 (soln)
Activity 6-2 (soln)
PS 2 Materials:
|7||10/17||Database Design: Theory 3||Lecture 5-7 (pdf)||Project Part 1 Due (before class)|
|8||10/19||Transactions: A User's Perspective||Lecture 8 and 11 (pdf)||Ch 8.6||Midterm|
|9||10/24||Midterm Review||Midterm Review (pdf)||PS 2 Due (before class)|
|10||10/26||Midterm||Query Processing and Database Internals|
|11||10/31||Mechanisms for Transactions: Logging and Locking||
Lecture 8 and 11 (pdf)
Project Part 2:
|12||11/2||I/O Cost Models and External Sort||Lecture 12-13 (pdf)||Ch 11.4|
Lecture 12-13 (pdf)
Lecture 13 pdf
Activity 13 (soln)
|14||11/9||Access Methods and Operators||Lecture 14 (pdf)||Ch 15 (except 15.9)|
Lecture 15 (pdf)
External Merge Sort
|Ch 2 and 16.3||
Project Part 2 Due (before class)
Project Part 3 and Pset 3 Released
Project Part 3:
Lecture 16 (pdf)
|Ch 2 and 16.3||Thanksgiving Recess: 11/20-11/24|
|17||11/28||Query Optimization||Advanced Topics|
|18||11/30||NoSQL Systems||Pset 3 Due (before class)|
|19||12/5||Distributed Data Processing|
|20||12/7||Final Exam Review||Project Part 3 Due (before class)|
Unless otherwise specified in the staff section below, office hours will be held in the open area of the Huang basement. CAs will bring signs to identify themselves. Please see the staff section below for office hours.
Note: the schedule of office hours may change from time to time, in which case an announcement will be made on the course Piazza.
|Tara Balakrishnan (firstname.lastname@example.org)|
|Woncheol (Dennis) Jeong|
We encourage you to discuss the Programming Projects and Problem Sets with other students; it's fine to discuss overall strategy and collaborate with a partner or in a small group, as both giving and receiving advice will help you to learn.
However, for the Programming Projects, you must write your own code: it's not OK to share code or write code collaboratively. (This includes posting and/or sharing your code publicly, such as on GitHub!) Likewise, for the Problem Sets, you must write up your own solutions to all of the problems, and you must cite all people you worked with. If you do not do so, we will consider this a violation of the Stanford Honor Code.
If you consult any resources outside of the materials provided in class, you must cite these sources. We reserve the right to assign a penalty if your answers are substantially derivative, but, as long as you provide appropriate citations, we will not consider this an Honor Code violation.