EECS 484, Winter 2016
Database Management Systems
Databases are extremely prevalent -- they are behind technology that all of us use daily, such as mobile apps, banking systems, video games, telecommunication systems, course registration, supermaket transactions, movie and music services, and many more. This course gives a basic introduction to database management systems (DBMSs), i.e. software that is designed to assist in maintaining and utilizing large collections of data. The focus will be on relational DBMSs, which are by far the dominant type of DBMS. The course is designed to provide you with both an external and an internal view of relational DBMSs. By the end of this course, you will know:
To read the course information in pdf form, press here.
EECS 281 or graduate standing: You are required to have the background from a data structures course (e.g., lists, hash tables, arrays, search trees) and strong programming experience.
Programming skills: The projects are in Java and C++. The knowledge of C++ is assumed. You will be given a brief overview of Java and expected to be able to pick up the language on your own, if you haven't used it before.
Lecture and Discussion Hours
Office Hours and Communication Protocol
You must strictly follow the rules below regarding email communications with the instructors and other staff members of the class:
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.
The lecture notes will be posted at least one day before the lecture date. Please print a copy of the notes if you need it during class, but do expect a few last-minute updates. The final version that you are responsible for will be online a day or so after class. The schedule is likely to change during the semester depending on the pace of this year's class -- please check the latest version before preparing for class.
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.
Oracle and Postgres AccountsThe programming assignments requires you to use Postgres or Oracle accounts. We will provide instructions on obtaining the accounts in the discussions.
Assignments and PartnersFor the homeworks you can work alone or in groups of two. Some projects are to be done individually and some designed to be done in groups. The first two projects, P1 and P2 can be done in groups of two.
File types for submission:Normally, most submissions will require you to either submit a zip file (for projects) or a single PDF (for homeworks). Try creating a zip file on your computer, given a folder, and unzipping it to make sure you understand the process. Do not use RAR, pkzip, or any other format. On Linux systems, to zip your P1 folder into P1.zip, you can use: % zip -r P1.zip P1
To test that the zip contains everything, copy the P1.zip folder to another location and then unzip it as:% unzip P1.zip
You should see a P1 folder with all the files.
Group vs. individual submissions:When you are working in groups, you are required to make only one submission. To post on Canvas on behalf of a group, first go to the "People" tab, then to the Group tab, and then search for the relevant homework or project. Join with your partner the same group.
In case of individual submissions from members of a group, we may choose to grade the submissions as individual submissions. You must still acknowledge your partner on the first page, to avoid a violation of the Honor Code. In case of a grade discrepancy that is brought to our attention for a regrade on a problem done jointly, both partners could end up with lower of the two scores assigned, since it is likely that one grader spotted a reason for deduction that was missed in the other submission. Also, it will result in a report to the Engineering Honor Council as a potential violation of the Honor Code if either of you fail to acknowledge teamwork with your partner in the submitted files.
Difference of opinion among partners or unequal work in a joint submission?If the partners have a difference of opinion on a question, then include both versions of solutions in the single submission, putting names of both partners at top, and indicate the name associated with each version of a solution problem so that we can assign credit appropriately. Also, if only one of you did a particular problem in a joint submission, with no contribution from the other person, you can indicate so in the joint submission, and we will try to assign the credit appropriately.
For the homework and project submissions, check out the schedule on the website. Typically, they will be due on Tuesdays or Thursdays at 11:55pm.
For homeworks, you will get a zero on missing the deadline. We recommend submitting a version several hours before and verifying that Canvas actually shows the correct files as submitted (it is your responsibility to verify submissions). Late homeworks, if allowed in Canvas, must be submitted prior to the start of the discussion on Friday (10:30am).
For each project, there a 4-day late submission period (i.e., if the project is due on Thursday, 11:55 PM, a late submission is due before Monday, 11:55 PM) in which a 15% late penalty will be incurred for that project (i.e., 1.5/10 points will be deducted, minimum score of 0). Beyond that, you will get a zero on the project. Please submit at least 30 minutes before the regular deadline as a safety measure. Late days are rounded up to the nearest integer. For example, a submission that is 4 hours late will count as one day late.
We have run into situations in the past (rare) where a student misses the regular deadline by 2-3 minutes for a project and incurred a 15% penalty. Sometimes, this is because of last-minute project work or slow servers. We will give a one-time waiver of the 15% penalty if you miss the regular submission deadline for a project by 5 minutes or less (i.e., 12:00 AM or earlier). Beyond that, the 15% penalty will apply, even if you miss the deadline by 1 minute.
For extreme circumstances, like medical emergencies, no-penalty extensions will be granted. Email eecs484w16 [AT] umich.edu with written documentation (e.g. doctor's note).
We will not make ANY exceptions to our late submission policy. Please do not contact any of the instructors asking extensions.
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. 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 project or homework solutions by others, including solutions from previous semesters. Make sure that you do not upload your code on github public repositories, as this also constitutes violation of the honor code.
Any suspected violations of the honor code will be reported.
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.