CSE logo University of Washington Department of Computer Science & Engineering
 CSE444 Introduction to Database Systems - Winter 2011
  CSE Home   About Us    Search    Contact Info 
Administration
 Home Page
 Syllabus
 Calendar/Lecture Notes
 E-mail Archive 
 Discussion Board
 Educational Wiki
 Grades
 Submit Assignments
Mini-projects
 Instructions and Solutions
 Connecting to SQL Server
 Using PostgreSQL in the Lab
Homeworks
 Instructions and Solutions
 Optional practice problems
Sections
 Slides and Solutions
Working from Home
 SQL Server from Home
 Installing Software
Exams
 Problem Sets and Solutions
   

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.

Week of
Monday
Wednesday
Friday
Jan 3
Introduction
lecture 1

SQL
lecture 2

SQL
lecture 3

Jan 10

Views and Constraints
lecture 4

E/R Diagrams
lecture 5
Database Design
lecture 6/7
Jan 17

No class
(Martin Luther
King Day)

Database Design
lecture 6/7 (continued)

Transactions in SQL
lecture 8

Project 1 due

Jan 24
Transactions: Recovery
lecture 9-10

Transactions: Recovery
lecture 9-10

Transactions: Recovery
lecture 11-12

Homework 1 due

Jan 31
Transactions: Recovery
lecture 11-12

Transactions:
Concurrency Control
lecture 13

Transactions:
Concurrency Control
lecture 14-15

Project 2 due

Feb 7

Transactions:
Concurrency Control
lecture 14-15
Midterm review on the board

Midterm

Data Storage and Indexing
lecture 16

Homework 2 due

Feb 14
Database Tuning
lecture 17

Relational Algebra
lecture 18

Query Processing Overview
lecture 19

Project 3 due

Feb 21

No class
(Presidents Day)

Operator Algorithms
lecture 20

Query Optimization
lecture 21-23

Homework 3 due

Feb 28

Query Optimization
lecture 21-23

Query Optimization
lecture 21-23

Parallel and Distributed DBMSs
lecture 24

Mar 7

Distributed Transactions
lecture 26

Wrap-up

Project 4 due

Mar 14

Final Exam

Thursday, March 17, 8:30am-10:20am, in class

Readings

Lecture 2

  • Simple Queries in SQL (Section 6.1)
  • Queries with more than one relation (Section 6.2)
  • Subqueries (Section 6.3)

Lecture 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]

Lecture 4

  • 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]

Lecture 5

  • 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]

Lecture 8

  • 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]

Lecture 16

  • Index structures (Section 14.1) [Old edition: Sections. 13.1 and 13.2]
  • B-trees (Section 14.2) [Old edition: Section 13.3]

Lecture 17

  • No readings

Lecture 18

  • 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]

Lecture 19

  • Overview of query processing and query execution (Sections 15.1)

Lecture 20

  • Operator algorithms (Sections 15.2 - 15.6)

Lectures 21, 22, and 23

  • Query optimization (Chapter 16)
  • Semi-joins (Chapter 20.4)

Lectures 24

  • 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). [pdf]
  • 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). [pdf]

Lecture 25

  • C. Olston, B. Reed, U. Srivastava, R. Kumar and A. Tomkins. Pig Latin: A Not-So-Foreign Language for Data Processing. SIGMOD 2008. [pdf]
  • 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) [pdf]
  • Optional reading: Jeffrey Dean and Sanjay Ghemawat. MapReduce: A Flexible Data Processing Tool CACM, Jan 2010. (Creators of MapReduce arguing their point of view) [pdf]

Lecture 26

  • Distributed commit (Section 20.5)
  • Distributed locking (Section 20.6)

 




CSE logo Department of Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350