CS 564: Database Management Systems


Warning

The course is getting revamped from how it has been taught for over 15 years. There will be a bigger emphasis on the core database project in which the students build the internals of a relational data processing engine. The old Minirel project is being replaced by a new project called BadgerDB. A new project on MapReduce will also be introduced in this course. The textbook will also be largely used as a loose guide. Attending lecture and grasping the material during the lecture is how you will learn in this course.

So, the semester will have some bumps, though I do plan on trying my best to minimize the bumps. If you are not the type of person who can deal with learning without a textbook, or dealing with the inherent kinks associated with new projects (though we will try our best to keep the transition as smooth as possible), then you are strongly encouraged to reconsider taking this course this semester.


Lecture: 1221 CS, 2:30-3:45PM MW
Discussion: 222 Ingrahm, 01:20-02:10PM T.

Professor:
    Jignesh M. Patel
   
Office Hours: Mon, Wed 1:30-2:30AM or by appointment, in 4357 CS

Teaching Assistant:
Sanjib Das, email: sanjibkd@cs.wisc.edu, OH: Friday 2:00-3:30, Room TBD
Sandeep Dhoot, email: sandeep@cs.wisc.edu, OH: Thursday 2:00-3:30, 3379CS
   

Class Mailing List: compsci564-2-s12@lists.wisc.edu - emails to this list go to the entire class, so please use with caution.

Please note that you are required to attend all lectures AND the discussion section. The discussion section will be used to discuss course projects and for make up lectures. If you cannot attend the discussion section you should not be enrolled in this class. 

Description

CS 564 is designed to give students a solid background in database management systems, primarily relational systems (DBMSs). Such systems will be examined from two perspectives: that of the internal primitives that make a DBMS work, and that of a DBMS user. Most (about 75%) of the material in the class will focus on the techniques that are used by DBMSs. There will be some coverage of SQL and the entity-relational model, but students interested primarily in learning how to use SQL, should either pick that up on their own during or after this course, or reconsider taking this course. The course will also briefly cover modern data processing systems such as MapReduce.

Prerequesites: CS 367 (essential). In addition, you should know C++ before you take this class. If you are unsure about your programming skills, then please come see me in the first week of class.

To brush up your C++ skills, you can go through the lecture material for CS 368: C++ for Java Programmers.

Also, see for a more detailed C++ tutorial. Keep this link handy throught the semester as you may need to go to it for C++ help.

Text: Database Management Systems (3rd edition) - by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003. (This is also called the "cow book")

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, or are comfortable with finding resources on the web, you do not buy this book.

Grading (tentative)

Exams 60% The midterm exam will be held on March 12 from 2:30-3:45 (regular class time) in Rm CS 1240. Notes on preparing for the exam.
Final exam is scheduled for May 14, 10:05-12:05, Room TBD.

The mid-term is worth 21% and the final exam is worth 35%. There are no make up exams.
There are two quizzes that will be held during class and will be worth 2% each. Quiz dates: TBD.
Projects 40% The course starts with the one individual projects, followed by three group projects, and ends with two individual projects. Groups should be of size 2 or 3 and you select your group partner(s). The group projects are collectively worth 28% of the grade. The three individual projects make up the remaining 12% of the grade.

Classroom Rules


Links