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
Teaching Staff and Office Hours
Instructor: Michael Cafarella, michjc [AT] umich.edu Office Hours:M 1pm-2pm in Room 4709 BBB
GSI: Paritosh Aggarwal, paggarw [AT] umich.edu Office Hours: W 4:30-6, Th 1:30-3:30 in Room 1637 (or 1620) BBB
IA: Letian Chen, letichen [AT] umich.edu Office Hours: M 12-2, F 10:45-12:15 in Room 1637 (or 1620) BBB
IA: David Chen, davidcgl [AT] umich.edu Office Hours: M 2:30-4:00, W 2:30-4:30 in Room 1637 (or 1620) BBB
IA: William Beyer, wbeyer [AT] gmail.com Office Hours: Tu 4:30-6:30, Th 4:30-6 in Room 1637 (or 1620) BBB
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.
Lecture Time and Place
Lectures: MW 10:30 - 12:00, 1013 DOW.
Four discussion sections, all on Friday. You should attend one
of the four.
10.30-11.30 William Beyer, 3150 Dow
11.30-12.30 David Chen, 1006 Dow
12.30-1.30 Letian Chen, 1005 Dow
2.30-3.30 Paritosh Aggarwal, 1014 Dow
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.
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.
Discussion Forum: Please use phorum.eecs.umich.edu
to post questions about class material and assignments. This should be your
preferred method of electronic communication with the course staff (as
opposed to direct e-mail) because it allows all students to benefit from the
response to your question. Of course, you should not post solutions or code
on the forum! The discussion forum is a shared resource, so please do not
abuse it. We will do our best to respond to questions within 24 hours.
Assignment Distribution: Each of the programming assignments and
projects utilizes some source code provided by the instructor. We will be
distributing this source code via CTools.
Assignment Submission: Finally, you will submit your assignments
via CTools. To submit your assignment, please log into CTools and click on
the "Assignment" tab. Follow the posted instructions carefully as any
deviation from these instructions could cause your submission to fail our
grading scripts.
Oracle Accounts
The second programming assignment requires you to use an Oracle database.
Each student will receive an Oracle account from CAEN during the first few
weeks of class. (CAEN will send you information about this directly.)
Course Requirements and Grading
Exam 1: October 17
25%
Exam 2: December 18
25%
Projects: 4 programming assignments
10% each
Homeworks: 5 written assignments
2.5% each for the best 4
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 October 17 exam.
Projects, Partners, and Late Days
You will work in teams of two for each programming assignment. You have two free late days over the
semester for all projects combined. You will be penalized 1% of a full semester grade for each permitted late day beyond that. Typically, each project will allow a maximum of two late days.
Please register your group by Friday, September 14, at 11:59pm. You can register using the form here.
The written assignments are to be submitted by each individual. No late days are allowed. The best 4 out of
the 5 will count toward your grade (i.e., the worst one will be dropped).
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.
Disabilities
Students with disabilities that are documented with the Services for Students with Disabilities (SSWD) Office should contact the professor during the first two weeks of class to make appropriate arrangements.