Course Goals

In this course we discuss principles of modern data management. We will cover the fundamentals of relational modeling and query languages (SQL, Relational Algebra, Datalog), query evaluation, query optimization, including some advanced techniques such as hypertree decomposition and worst-case optimal joins. After this class you should feel comfortable using SQL for routine data management, know what happens under the hood so you can optimize complex SQL queries, have a good understanding of the foundations of data management to adapt easily to future tools, and know some advanced theoretical tools that given you insights into the complexity of relational queries.

Format

The class meets twice a week. Most classes will consists of lecturing, but we will also have discussions. Please attend all lectures, since the material is not based on any particular text. Some of the material is available only in the lecture notes: if you miss lectures you may find it difficult to catch up.

Prerequisites

There are no formal prerequisites for the course. However, we expect you to know how to program, understand fundamental data structures (hash tables, search trees, stacks, queues). It is recommended that you have taken some basic database class before.

Optional references

Ramakrishnan and Gehrke, Database Management Systems, 3rd Edition.

Homework assignments

There are five homework assignments. Most are practical assignments designed to help you learn how to use database systems and how such systems are built internally. There will also be some pen-and-paper questions.

Project

There will be a programming project, which will be designed as a mini research project. At the end of the project, you will give a short, conference-style presentation, in front of the entire class.

Grading

Assignments: 50%
Reviews: 20%
Project: 30%

Paper reading and commentaries

We will discuss several papers during the quarter. You will have to write a 0.5 - 1 page commentary on each paper, and submit it before the class meets. The commentary should reflect your understanding of the issues raised by the paper, and should also help you prepare for an in-class discussion. In most cases we have posted some guidelines for you to follow. We will grade your response as credit / partial credit / no credit.

One suggestion for the format for the commentary is to critique the paper. For example, list its contributions (and, briefly, why those results were not already obvious), its shortcomings (in your opinion), the questions it raises. Another acceptable format is to summarize the paper, describing its thesis, approach, and conclusions, and stating why it is significant. If you have questions about the paper, list them in your reviews, and also raise these questions in class, since we may not answer the questions individually.

Late policy for Homework Assignments

Since this is a graduate class, we are more lenient about late days. For homework assignments, we will accept valid excuses (conferences, paper deadlines, etc.) and will work with you to figure out the earliest day that you can hand in your work; we do reserve the right to impose cutoff dates if someone abuses our leniency unreasonably. Also, note that the schedule for the entire course is very tight: once you fall behind, it will be very hard to catch-up.

Late policy for Project Milestones and Paper Reviews

None: we do not accept any late submissions.

Collaboration policy

You are encouraged to discuss the content of this course with anyone you like. Assignments and paper reviews are done individually. The project is to be done in a group of up to three students. If two teams pick the same project, we expect each team to produce original work different from that of other teams. Feel free to look-up any information on the web that you may find useful in completing the assignments, projects, or paper reviews.

Tools

postgres, Amazon Web Services, Java

LLM Tools

Feel free to use LLMs for learning; for example, you may practice SQL queries by interacting with ChatGPT. Do not use the LLMs to produce your homework solution; we can detect egregious cases.

Computer use policy

Some excerpts from the campus policies. Take them seriously: "You must use all UW [computing] resources in strict accordance with local, state, and federal laws. These laws cover such areas as illegal access to computer systems, networks, and files; copyright violations; and harassment issues... Software and information resources provided through the university for use by faculty, staff, and students may be used on computing equipment only as specified in the various software licenses. Unauthorized use of software, images, or files is regarded as a serious matter and any such use is without the consent of the University of Washington...If abuse of computer software, images, or files occurs, those responsible for such abuse will be held legally accountable."

Academic misconduct

Please see the academic misconduct site.