EECS 484: Overview

EECS 484: Database Management Systems, Winter 2009

Overview

Projects/Assignments

Schedule/Notes

Announcements

 

Course Description

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. Topics related to the external view will cover concepts that will allow you to use a relational DBMS. Topics related to the internal view will allow you to better understand how a relational DBMS works, making you more sophisticated (and perhaps higher paid) database users/administrators. The course has a group project in which you will build a simple single-user relational database engine. Note, in this course you will not learn the details of how to use any specific commercial database system, or the intricacies of SQL programming. 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. 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.

Teaching Staff and Office Hours

Instructor: Kristen LeFevre, klefevre [AT] eecs.umich.edu
Office Hours: Mondays 12-2 in Room 4705 CSE

GSI: Jay Athalye, jathalye [AT] eecs.umich.edu
Office Hours: Wednesdays 1:30-3:30 in Room 1637 CSE

Lecture Time and Place

Lectures: MW 10:30 - 12:00, 1690 CSE.
Discussion: F 10:30-11:30, 1690 CSE. 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.

Prerequesites

EECS 281: Data Structures and Algorithms (or approved equivalent), EECS Major
WARNING: The course project is programming intensive and requires that you are comfortable programming in C++. The project also involves assignments in Java, so you should be comfortable picking up a new language.

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 Accounts

The second 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: February 16 (tentative) 20%
Exam 2: April 28, 1:30-3:30 in 1504 G.G. Brown 30%
Quizzes: Two 30-minute in-class quizzes, February 4 and March 25 (tentative) 6% total
Individual Java Assignment: We will use Java for the first assignment. Java is often used to interact with commercial databases. You should plan on spending 1-2 weeks picking up the needed Java for the assignment. Learning the basics of Java should not be difficult if you are already familiar with C++. It is also an object-oriented language, and it provides container classes for many common data structures.8%
Java and JDBC Assigment: Group assignment using Java, JDBC and Oracle.12%
Group Project: The group project involves building two components of a simple relational database engine, Minirel2K. We will provide you a skeleton framework of this database engine, and in a sequence of two assignments you will fill up this framework to build components of a simple database engine.24% total

Projects, Partners, and Late Days

There are four programming assignments in this course. The first assignment is to be done individually. For the final three assignments, you have the option of working with a partner. If you choose to work with a partner, you must register your group with the GSI by the designated date. It is assumed that you will work with the SAME partner for all three of the remaining assignment unless BOTH partners decide to split up the partnership, in which case you must notify the GSI of your decision.

All projects must be turned in before 10:30am on the due date. Because practice with Java is critical to the second assignment, you are not allowed any free late days on the individual project. For the remaining three projects, you are allowed a total of three late days per group. You may apply these late days in any way that you choose across the three projects. Late days can only be claimed in units of full days. If you are one hour late, that counts as being one day late. After your group has used up the three late days, any late submissions will get a zero.

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.