Daily Schedule for 444 Lectures
Note that this schedule is tentative, and will be altered during the quarter. Please make sure to check it regularly (ideally before each class).
You can find the consolidated list of readings at the end of the page.
- Simple Queries in SQL (Section 6.1)
- Queries with more than one relation (Section 6.2)
- Subqueries (Section 6.3)
- Aggregates (Sections 6.4.3 - 6.4.6)
- Nulls (Sections 6.1.6 - 6.1.7) [Old edition: Sections 6.1.5-6.1.6]
- Outer joins (Section 6.3.8)
- [Fun read, not related to this particular lecture: chronicle article on active learning: Close the book.]
- [Optional, but most likely helpful: some example queries from class, and SQL statements to create test database instance. You can take these as a starter and see how far you can push SQL: PDF, RTF]
- Views (Sections 8.1, 8.2, 8.3) [Old edition: Sections 6.6 and 6.7]
- Constraints (Sections 2.3, 7.1, 7.2) [Old edition: Sections 7.1 and 7.2 only]
- E/R diagrams (Sections 4.1- 4.4) [Old edition: Chapter 2]
- From E/R diagrams to relations (Sections 4.5 and 4.6) [Old edition: Sections 3.2 and 3.3]
Lecture 6 and 7
- Design theory: (Sections 3.1-3.4) [Old edition: Sections 3.4-3.6]
- Transactions in SQL (Section 6.6) [Old edition: Section 8.6]
Lecture 9 and 10
- Disks (Section 13.2) [Old edition: Section 11.3]
- Undo logging (Section 17.2)
- Redo logging (Section 17.3)
- Redo/undo (Section 17.4)
Lectures 11 and 12
- Michael J. Franklin. Concurrency Control and Recovery. The Handbook of Computer Science and Engineering, A. Tucker, ed., CRC Press, Boca Raton, 1997. (Sections 1, 2.2, and 3.2 only) [pdf]
Lectures 13, 14, and 15
- Serial and Serializable Schedules (Section 18.1)
- Conflict Serializability (Section 18.2)
- Locks (Section 18.3)
- Concurrency control by timestamps (Section 18.8)
- Concurrency control by validation (Section 18.9)
- Michael J. Franklin. Concurrency Control and Recovery. The Handbook of Computer Science and Engineering, A. Tucker, ed., CRC Press, Boca Raton, 1997. (Sections 1, 2.1, and 3.1 only) [pdf]
- Index structures (Section 14.1) [Old edition: Sections. 13.1 and 13.2]
- B-trees (Section 14.2) [Old edition: Section 13.3]
- An algebraic query language (Section 2.4) [Old edition: Sections 5.1 and 5.2]
- Relational operations on bags (Section 5.1) [Old edition: Section 5.3]
- Extended operators of relational algebra (Section 5.2) [Old edition: Section 5.4]
- Overview of query processing and query execution (Sections 15.1)
- Operator algorithms (Sections 15.2 - 15.6)
Lectures 21, 22, and 23
- Query optimization (Chapter 16)
- Semi-joins (Chapter 20.4)
- Parallel DBMSs and MapReduce (Sections 20.1 and 20.2 in new edition only)
- Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI 2004. (Sections 1 through 3).
- Optional reading: David DeWitt and Jim Gray. Parallel Database Systems: The Future of High Performance Database Systems. Communications of the ACM. 1992. (Sections 1 and 2 only).
- C. Olston, B. Reed, U. Srivastava, R. Kumar and A. Tomkins. Pig Latin: A Not-So-Foreign Language for Data Processing. SIGMOD 2008.
- Optional reading: Dave DeWitt. MapReduce: A major step backwards. (Jan 17, 2008).
(blog post that started the heated debate)
- Optional reading:
Andrew Pavlo, Erik Paulson, Alexander Rasin, Daniel J. Abadi, David J. DeWitt, Samuel Madden, and Michael Stonebraker.
A Comparison of Approaches to Large Scale Data Analysis. SIGMOD 2009.
[pdf] (DB people comparing parallel DBMSs versus MapReduce)
- Optional reading:
Michael Stonebraker, Daniel Abadi, David DeWitt, Sam Madden, Erik Paulson, Andrew Pavlo, and Alexander Rasin.
MapReduce and Parallel DBMSs: Friends or Foes? CACM, Jan 2010. (DB people arguing their point of view)
- Optional reading:
Jeffrey Dean and Sanjay Ghemawat.
MapReduce: A Flexible Data Processing Tool CACM, Jan 2010. (Creators of MapReduce arguing their point of view)
- Distributed commit (Section 20.5)
- Distributed locking (Section 20.6)