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

Instructor Class Description

Time Schedule:

Dan Suciu
CSE 444
Seattle Campus

Database Systems Internals

The relational data model and the SQL query language. Conceptual modeling: entity/relationships, normal forms. XML, XPath, and XQuery. Transactions: recovery and concurrency control. Implementation of a database system. A medium sized project using a rational database backend. Prerequisite: CSE 332; CSE 344.

Class description

Databases are at the heart of modern commercial application development. Their use extends beyond this to many applications and environments where large amounts of data must be stored for efficient update and retrieval. The purpose of this course is to provide an introduction to the design and use of database systems, as well as an appreciation of the key issues in building such systems. We begin by covering the relational model and the SQL language. We then study methods for database design, covering the entity relationship model. Next, we discuss XML as a data model, and present languages for querying it. We see how XML is used for sharing data among different applications in a distributed environment. We then inspect the architecture of a database system, and discuss efficient storage of data, execution of queries and query optimization. Finally, we touch on some advanced topics in database systems.

Student learning goals

Understand conceptual modeling: how to design a good database schema from scratch.

Becomes masters of SQL: be able to write advanced SQL queries, use them in applications, and understand the performance tradeoffs.

Understand the basics of transaction processing: database recovery and concurrency control. Be able to choose between different SQL isolation levels, and understand the correctness/performance tradeoffs.

Understand data storage basics: organizing data on disk, indexes. Be able to do a simple physical database tuning (index selection, materialized views).

Scalable operators on data: join algorithms, duplicate elimination, aggregates. Understand and reason about query plans.

Manage access control to a database system.

General method of instruction

There are lectures three days per week, and they cover the entire material in this class (i.e. the lecture notes are self contained). There will be one section per week (new this year !), where we will discuss system issues (SQL Serer, postgres) and will practice the theoretical concepts covered in class (e.g. normal forms).

Recommended preparation

Algorithms and data structures; the big O notation; basics of operating systems (tasks, processes, concurrency, files, cache).

Class assignments and grading

there are two kinds of assignments: (1) homeworks that do not require programming, (2) four small programming projects.

Homeworks, projects, midterm, final.


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.
Additional Information
Last Update by Dan Suciu
Date: 09/17/2008