Search | Directories | Reference Tools
UW Home > Discover UW > Student Guide > Course Catalog 

Instructor Class Description

Time Schedule:

Dan Suciu
CSE 544
Seattle Campus

Principles of Database Systems

Data models and query languages (SQL, datalog, OQL). Relational databases, enforcement of integrity constraints. Object-oriented databases and object-relational databases. Principles of data storage and indexing. Query-execution methods and query optimization algorithms. Static analysis of queries and rewriting of queries using views. Data integration. Data mining. Principles of transaction processing.

Class description

Computing is become data centered today. Databases have been at the heart of commercial applications for decades, but today both commercial and scientific organizations need to store and process huge volumes of data, and this requires and extension of data management techniques far beyond traditional database systems. Virtually every area of Computer Science today uses data management concepts. The purpose of this course is to discuss key concepts that underly both traditional databases and modern data management. This is a graduate class: we discuss all traditional topics and cover some of the in depth, and will also discuss some foundational material and some novel research topics.

Student learning goals

General method of instruction

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.

Recommended preparation

Everyone taking this class should be familiar with Java and/or C++, and should have written at least a few thousand lines of code in the past. Some background in Algorithm, Data structures, and Computational Complexity is expected. Most notions will be defined in class, but it is difficult to follow the material without the required background. Students unfamiliar with most of the following topics should reconsider taking this class: sorting, O(n log n), O(n^2), dynamic programming, search trees, B trees, hash tables, PTIME, NP, undecidable, first order logic, quantifier, finite automata, regular expression.

Class assignments and grading

There are (1) homework assignments, (2) paper reading assignments, and (3) a small programming/research project. The exact number and nature of the assignments may differ from year to year.

The final grade is a weighted average of the homework assignments, reading assignments, and project.


The information above is intended to be helpful in choosing courses. Because the instructor may further develop his/her plans for this course, its characteristics are subject to change without notice. In most cases, the official course syllabus will be distributed on the first day of class.
Last Update by Dan Suciu
Date: 03/21/2012