TAs: Yinan Li, yinan@cs.wisc.edu Office hours: Mon 11-12, Wed 3:30-4:30, Thur 11-12, in CS 3355.
Chong Sun, chong@cs.wisc.edu Office hours: Tue 11-12, Fri 2-3, in CS 1306.
Class Mailing List: compsci564-1-f09@lists.wisc.edu.
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. Students will exercise their knowledge of this part of the course material by designing a small database and running queries.
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. Associated with this part of the course will be a project involving the implementation of a fairly complete single-user relational database management system.
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.
In addition, you should either know C++ and PHP or be willing to learn C++ and PHP for the course project. For C++, if you did not receive an A or AB in 367, or are unsure of your ability to learn a new language in the first few weeks of the semester, I strongly encourage you to postpone 564 until next semester and take CS368 this semester. If you still want to go ahead with 564 this semester, I suggest that that you immediately begin working through the on-line C++ course that you can find at CS368: C++ for Java Programmers.
For a C++ book I recommend the book "A C++ Primer" by Stanley B. Lippman. If you already have a C++ reference book that you like do not buy this book.