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 quickly the relational model the SQL
language, conceptual design, and XML/XQuery. There will be two
homeworks for practicing SQL and XQuery. We will then discuss
classical topics in databases: transactions (ACID properties, recovery
from crashes and concurrency management), query processing techniques,
and query optimizations. These topics will be partially covered
by papers, and by the textbook. Finally, we will discuss two
novel topics in data management: database security (fine grained access
control and anonymization techniques) and approximate query answering
(IR-style queries and probabilistic databases). Both are covered
by research papers.
Course Format
The class meets two times a week for lectures. Some of the material
is covered in the textbook, and in addition there will be a number of
reading assignments. Lectures are usually given on Wednesday, and
paper readings are due by next Monday (short reviews are due the
evening before). There will be three homework assignments: short SQL
programming, short XQuery programming, and a problem set covering a
variety of topics. There will be a programming project, which is
designed as a mini research
project. You can usually find copies of the slides used in the lecture
on the web site, on the day of the lecture.
Database management systems by Raghu Ramakrishnan.
The texts are available in a single shrink wrapped package from the
University Bookstore. The library will have on reserve other books that
you might find useful if you require another explanation of a topic:
Foundations of Databases (Abiteboul, Hull & Vianu)
Database Systems: the complete book (Ullman, Widom and
Garcia-Molina)
Parallel and Distributed DBMS (Ozsu and Valduriez)
Transaction Processing (Gray and Reuter)
Data and Knowledge based Systems (volumes I, II) (Ullman)
Data on the Web (Abiteboul, Buneman, Suciu)
Readings in Database Systems (Stonebraker and Hellerstein)
Proceedings of SIGMOD, VLDB, PODS conferences.
Programming and Homework
This is not a programming class! Nevertheless, some programming
will be necessary, both in the first homework and in the project. For
the first homework you need to work with a relational database system
(you have a choice of SQL Server or Postgres) and with the Galax XQuery
interpreter (which you have to download from here). Depending on the
topic, the projects will involve programming in a general-purpose
language (C++, Java, etc), and/or using a query processor (SQL,
XQuery). The bulk of the programming will be for the class project.
Late Policy
Assignments are due at the beginning of class on the due date,
unless otherwise announced. Barring unusual circumstances, late
homework will not be accepted.
Tentative Grading Breakdown
Homework: 20%
Project: 30%
Paper reviews: 20%
Participation in discussions: 10%
Final: 20%
Attendance
I hope you will attend every lecture. If you miss a lecture, talk
to a friend who was present, and be sure to check the Web site for
class messages.
Tools
The World-Wide Web and e-mail will be used extensively to provide
you with course information, such as the schedule mentioned above,
homework assignments and solutions, class messages and many other
things.
Computer Systems
For the required hands-on homework, students need accounts on
cubist, which is running PostgreSQL.
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
All work turned in is expected to be your own. Although
students are encouraged to study together, each student is expected to
produce his or her own solution to the homework problems. Copying or
using sections of someone else's program, even if it has been modified
by you, is not acceptable. The University has very clear guidelines for
academic misconduct and the staff of CSE 544 will be vigorous in
enforcing them.