EECS 484 (Database Management Systems) Fall 2014

Overview

Schedule




Course Description

EECS 484 provides a basic introduction to relational database management systems (DBMSs). This course is designed to provide you with both an external and an internal view of relational DBMSs.

Topics related to the external view will allow you to use a relational DBMS. Whereas course projects will involve a specific commercial database (Oracle), the purpose of this course is not to learn the details of how to use any specific commercial database system, and we will minimize product-specific issues that you need to learn. If you are interested in the details of SQL programming, or the operation of a specific commercial database system, you will be able to pick this up after you have taken this course. Topics related to the internal view have been selected to give you an understanding of the fundamental database concepts and implementation techniques that are used in relational database engines. Using the course project, you will actually build a few key components of a database engine. This course will allow you to better understand how a relational DBMS works, making you a more sophisticated database user. You will need the understanding provided by this course if you expect to be a decent database administrator, even if you have no plans to write code inside a database engine.

Prerequisites

EECS 281 or graduate standing. You should have the background from a data structures course (e.g., lists, hash tables, arrays, search trees) and strong programming experience. Most of the projects are in C++.

Teaching Staff and Office Hours

Instructor: Atul Prakash, aprakash [AT] umich.edu
GSI: Yijia Tang, yjtang [AT] umich.edu
GSI: Dana Wilson, daneliza [AT] umich.edu
GSI: Shravya Kuchikulla, shravyak [AT] umich.edu
GSI: Prashipa Selvaraj, prashipa [AT] umich.edu
IA: Rahul Raina, rraina [AT] umich.edu

Teaching staff will typically hold office hours in room 1637 in the CSE learning center. If it appears most student questions are code-related, office hours may be moved to CSE 1620. These two rooms are across the hall from each other -- check both places if you aren't sure where office hours are. The times for office hours are available in the Course Calendar (link in Ctools). Please drop your GSI a quick email with title "484 OFFICE HOURS" if you plan to see us, along with an approximate time. That way, we can better optimize the utilization of our time. You can always cancel by dropping another email with the same title. We may come for a shorter time for office hours or skip them if you have not notified us and no one is there. The schedule for lecture and discussion sections is posted in the Course Calendar.

Textbook

Database Management Systems (3rd edition) - by Raghu Ramakrishnan and Johannes Gehrke, McGraw Hill, 2003, ISBN: 0-07-115110-9. The book has a supporting website, where you can find answers to odd-numbered exercises. The book is really useful, especially for exams. We follow the book pretty closely. In addition, we recommend the following informal reference: Self-paced courses on introduction to Databases by Jennifer Widom, Stanford University. There are several mini-courses at the above link and they are currently free. They are all very useful from a practical perspective and nicely complement the material that we cover in EECS 484.

Resources

CTools

We will use CTools for several purposes in this course. Please try logging in during the first few days of class, and send e-mail to the GSI if you encounter difficulty.

Oracle and Postgres Accounts

The programming assignments requires you to use Postgres or an Oracle accounts. We will provide instructions on obtaining the accounts in the discussions.

Course Requirements and Grading

Exam 1:Oct. 20th, time: see Piazza and Ctools announcements.

25%

Exam 2: Dec. 12th, 7-9 PM

25%

Projects: 4 programming assignments

10% each

Homeworks: 5 written assignments

2% each


The examinations are *not* cumulative. Each applies to one half of the EECS 484 course. In particular, the final exam covers material presented after the topics for Exam 1.

To get a C or higher, a passing performance is expected on both exams and projects. In general, this means that exams are also important - most students do pass the projects.

Projects, Partners, and Late Days

We would prefer you to work in teams of two for each programming assignment and homework, though you can work alone as well. If you work in a team, the collaboration model we recommend is pair programming. Read up on pair programming as to why it works well. Register your teaming arrangement online at the URL posted in Piazza. You can change it at any time. Do include your names in all submissions. Also, if you are working in a group, only one person should submit the project or homework and the second partner should submit a note in Ctools stating the name of the partner. All submission files should have names of both partners and include a short note briefly describing the contributions of each partner to the homework or project. All homeworks and projects are due on Thursdays. The deadlines and schedules are available at EECS 484 F14 web site. For homeworks, there is no grace period. We recommend submitting a version several hours before 11:55 PM because it is easy to overlook the deadline, since it falls on a Thursday. Late homeworks, if accepted, must be submitted prior to the start of the first discussion on Friday at 9:30 AM, when solutions may be discussed. For projects, there a 4-day late submission period in which a 10% late penalty will be incurred. Beyond that, you will get a zero. Submit anyway even if your project is not complete before the deadline. The effort may matter if you have a borderline grade.

Please register your group by Friday, 2nd week, at 11:59pm. You can register using the form here. This link is also posted in Piazza.

Honor Code

All students (including LS&A and Engineering) are required to observe the Engineering Honor Code in all assignments and exams. A copy of the honor code can be found here. Please make sure that you clearly understand what constitutes cheating. See the honor code tab on ctools for some course-specific information. If you are not sure in any specific case, you should ask the teaching staff. The University takes honor code violations seriously, and penalties can be severe. You are not allowed to share your code with anyone other than your partner. You are not allowed to make use of code by others, including previous semesters, related to the assignments.

Disabilities and Conflicts

Students with disabilities that are documented with the Services for Students with Disabilities (SSWD) Office should contact the professor during the first three weeks of class to make appropriate arrangements.