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.
Their principles and fundamental techniques are being extended today to the
Web and to novel kinds of data, like XML. The purpose of this course is
to provide an introduction to the principles of database systems.
We begin by studying database design, covering the entity relationship
model and the relational model. We then study query languages: the relational algebra and
SQL. As an newer model, we will cover XML and some XML query languages: XPath
and XQuery. We then look at some mathematical foundations of query
languages: variations of first order logic, connection to complexity classes.
Next we will discuss some of the issues that arise in the implementation of
database systems. We discuss the implementation of physical operators,
indexes (B+ trees and hash tables), and query optimization. Finally,
we discuss some of the newer issues related to the implementation of XML
query languages, and their translation to relational operators.
Course Format
The class meets two times a week for lectures. Some, but not all of the material is covered
in the textbook. In addition there will be a number of reading assignments. There will be 4
homework assignments (the first will involve programming) and 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.
Lectures
Mon/Wed 1:30 pm - 2:50 pm, LOW 102
Instructor Information & Office Hours:
Mon, 3-4pm (subject to change -- check Web site)
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)
Pair of books by 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. There will be some mandatory SQL programming for setting up and
querying a database in the first homework. Such queries are usually short
compared to typical programs in other languages. 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: 35%
Project: 35%
Final: 25%
Intangibles: 5%
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. Coping 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 444 will be vigorous in enforcing them.