EECS 484 provides 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. It is recommended that you take
both parts if you are a CS major. You may choose to take only the external
view by registering for 498-002 in the first half semester. You may choose
to take only the internal view by registering for 498-003 in the second half
semester. These two 498 courses are 2 units each and together are exactly
equivalent to 484. If you register for one of the 498 classes, you will be in
the same class room as 484 students and learn exactly the same material.
Neither 498 may be taken for credit if you have taken or will take 484.
Also, 498-002 is not really appropriate for CS and CE majors -- the topics
CS/CE employers tend to care the most about are in 498-003.
Topics related to the external view, covered in 498-002, will cover concepts
that will allow you to use a relational DBMS. You will need some Java or C++
programming knowledge, comparable to EECS 280 or EECS 282, to take this class.
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, will be covered in 498-003. This course
is designed to cover the fundamental database concepts and the
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
For 498-002: ((EECS 280 or EECS 282) and EECS 203) or graduate standing
For 498-003: (EECS 281 and EECS498-002) or graduate standing
For 484: EECS 281 or graduate standing
EECS 485 currently has EECS 484 as a prerequisite.
EECS 498-002 will provide enough background to satisfy this prerequisite for
EECS 485.
Teaching Staff and Office Hours
Instructor: H. V. Jagadish, jag [AT] eecs.umich.edu Office Hours: W 12-12.30, T 3.30-4.00 in Room 4601 CSE
Lectures: MW 10:30 - 12:00, 1504 GGBL.
Discussion: F 10:30-11:30, 1504 GGBL. You must plan on attending all discussion sessions.
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 the CTools Discussion Forum (see left-hand tab labeled "Discussion") 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 48 hours, but the best way to have your questions answered quickly is to use office hours and the discussion session.
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
First half 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: TBD
27%
Exam 2: TBD
27%
Quizzes: Two paper assignments,
3% each
Assignments: 4 programming assignments,
10% each
The examinations are *not* cumulative, and each applies to one half of the
EECS 484 course.
Exactly half of the above exams and assignments apply in each half of
the course. Score it out of 50 to get the correct percentage distribution
for each 498 class.
Projects, Partners, and Late Days
Teams of two for each programming assignment. Written assignments are
individual. One free late day in each half semester. 1% of full semester
grade (or 2% of half semester grade) for each permitted late day beyond that.
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. 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 must contact the professor during the first two weeks of class to make appropriate arrangements.