CS 564 / Spring 2015: Database Management Systems

Lectures: Wed/Fri 2:30-3:45 pm, room 1240, CS Building.
Discussions: Mon 2:25-3:15 pm, room 1240, CS Building
Discussions will be used to discuss the project and to make up for certain lectures. Hence attending them is mandatory.
IMPORTANT: The classroom has been changed from Humanities 1111 to Computer Science 1240! Pls attend all lectures and discussion sessions in 1240.


Important Dates

Course Schedule is listed on a separate page.

Project Description
See the project page.
Instructor: AnHai Doan (contact information on my homepage). Office hours: Tue 1-2pm, Fri 4-5pm, and by appointment, in CS 4355.

TAs: Avinaash Gupta, avinaash@cs.wisc.edu, Office hours: Mon 3:45-4:45pm, Wed 1-2pm in Room 1308 CS
Harneet Singh, harneet@cs.wisc.edu, Office hours: Mon 11-noon and Thur 11am-noon in Room 3367 CS

Class Mailing List: compsci564-1-s15@lists.wisc.edu.

Course Description
CS 564 is intended to give students a solid background in database management systems, particularly relational database management systems. Such systems will be examined from two perspectives: that of a database system user, and that of a database system implementor.

Approximately half of the course material will focus on the use of database management systems. The concept of a data model will be introduced, the entity-relationship model will be covered, and then the relational data model and the SQL query language will be examined in detail. This part of the course will also cover logical and physical database design issues. Advanced features such as views and security will also be discussed briefly.

The other half of the course will concentrate on the implementation of relational database management systems. Topics to be covered include file organizations, access methods (e.g., ISAM, B+ trees, linear and extendible hashing), external sorting techniques, the implementation of relational database operations, and the basic concepts of query optimization. Concurrency control, recovery, and other advanced implementation issues will also be touched upon as time allows.

Although this is a two-part course, the presentation of the two parts will be interleaved in order to spread the course's programming work out as smoothly as possible over the whole semester.

CS 367 is absolutely essential. CS 537 might be useful. You should know or be willing to learn quickly a high-level language such as Java, C++, Perl, Python, or PhP, in order to do the project (for the project, your team can choose the high-level language that you will use).

Course Format
Grade: midterm = 25%, final = 35%, project = 40%.
Classroom Rules
Cell phones must be turned off. No smart phone browsing during the class. No laptops open.

Strongly recommended: "Database Management Systems", R. Ramakrishnan and J. Gehrke, third edition, McGraw-Hill. Another good book is "Database Systems: The Complete Book (2nd Edition)", H. Garcia-Molina, J. Ullman, and J. Widom.