Course Goals

Databases are at the heart of modern commercial application development. Their use extends beyond this to many other environments and domains where large amounts of data must be stored for efficient update, retrieval, and analysis. The purpose of this course is to provide a comprehensive introduction to the use of management systems for applications. Some of the topics covered are the following: data models (relational and NoSQL), query languages (SQL, datalog, etc), transactions, parallel data processing, and database as a service. For the detailed list of topics and schedule, please see the course calendar.

Format

The class meets three times a week for lectures, and once a week for sections. We will follow parts of the textbook (see below). While the lectures are designed to be clear and self-contained, and to cover all the material used in class, you are strongly encouraged to read from the textbook, both in order to get a better understanding of the material covered and to learn about related topics, which are not covered in class. Please note that the lectures will be a combination of whiteboard, powerpoint, and live demos. Lecture notes will be made available online, but they are brief and insufficient to learn the material. The lesson is: do not miss classes, and do take notes.

There will be several homework assignments involving programming, online exercises, a midterm and a final exam.

Catalog Description

Introduction to Data Management: Introduces database management systems and writing applications that use such systems; data models, query languages, transactions, database tuning, data warehousing, parallelism. Intended for non-majors. Not open for credit to students who have completed CSE 344.

Prerequisites: minimum grade of 2.5 in CSE 143.

Credits: 4.0

Here is a more specific list of potential topics that will be covered in this quarter's class (not necessarily in this order):

  • Data models
  • Query languages
  • Schema, logical, and physical design
  • Database applications
  • Transactions
  • Recovery
As this class is evolving, the list of topics might change over the quarter.

Grading and Exams

  • Homework assignments: 30%
  • Web quizzes: 10%
  • Midterm exam: 20%
  • Final exam: 30%
  • Class participation: 10% (participating in lectures, discussion boards, etc)
Please note that these breakdowns are preliminary as this class is constantly evolving and we reserve the rights to change them.

Main Textbook

Required:
Database Systems: the Complete Book, by Hector Garcia-Molina, Jennifer Widom, and Jeffrey Ullman. Available from the University Bookstore. Second edition.

Other texts:
The library has the following that you might find useful if you require another explanation of a topic.

  • Fundamentals of database systems by Elsmasri and Navathe.
  • Database management systems by Raghu Ramakrishnan and Johannes Gehrke.
  • Foundations of database systems by Abiteboul, Hull and Vianu.

Late Policy

Homework assignments: you are allowed a total of four late-days with at most 2 late-days per assignment that you can use in 24-hour chunks at anytime. Once you use-up your late days, no additional extensions are granted only for extremely rare circumstances! Late submissions will not be graded. Think of late days as a safety net in case of a true emergency, not as a convenience. Normally, you should use no late days during the entire quarter; if you do have an emergency, then you should use 1 or 2 late days. If you end up using all 4 late days, you are doing it wrong.

Programming

Some programming will be necessary in this course. One can only start to appreciate database systems by actually trying to use one. Databases only hold the data, the application logic needs to be written in some general purpose language. We will use the following tools in class:

  • SQLite
  • SQL Server on Windows Azure (Microsoft's Web Service)
  • AsterixDB
  • Souffle
  • Amazon ec2
  • Java
  • Git (for submitting assignments)

Tools

The course website and discussion board will be used extensively to provide you with course information, such as the schedule mentioned above, homework assignments, class messages and many other things. There is a discussion board hosted on Piazza that everyone should use to keep in touch outside of class. Please see the main webpage of the course for details.

Collaboration policy

You are encouraged to discuss the content of this course with anyone you like. Unless otherwise stated, each homework and programming assignment is to be done individually.

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 integrity

Any attempt to misrepresent the work you submit will be dealt with via the appropriate University mechanisms, and your instructor will make every attempt to ensure the harshest allowable penalty. The guidelines for this course and more information about academic integrity are in a separate document. You are responsible for knowing the information in that document.