Instructor Information

Sharad Mehrotra
424 Computer Science
Department of Information and Computer Science, UCI
Irvine, CA 92697
Tel: (949) 824-5975
Email: sharad@ics.uci.edu
Office Hours:
Thursday : 10 AM - 11 AM
Location : CS 424D

Teaching Assistant

Koushik Niyogi
Email:kniyogi@ics.uci.edu
Office Hours :
Monday : 1:00 pm - 2:00 pm
Wednesday : 12:30- 1:30 pm
Location : 124 CST(CS trailer)

Rajat Mathur
Email:rmathur@ics.uci.edu
Office Hours : Wednesday : 6:30 - 7:30 PM
Location : 124 CST

Harvey Ivory(grader)
Email : harvey.ivory@mscsoftware.com
Office hours : Friday : 4:00-5:00 PM
Location : ICS2 144

General Information about the Course

Location: CS 174
Time: 5:00-6:20 PM Mondays and Wednesdays
News group: ics.184

Grading Policy

Homework Assignments (roughly 7) 

15 %

Project based on Personal Database Application

15 %

Midterm Exam (closed book)

30 %

Final Exam (comprehensive)

40 %

Work in groups will be graded on a per group basis. In addition we will ask for each group member to grade the other group members participation in the assignment.

Group members are expected to know the whole assigment.

Textbooks

The required textbook for the course is [SKS] or [UW97].

Required Recomended

REFERENCE BOOK : Database System Concepts
Third Edition
Silberschatz, Korth and Sudarshan

TEXT BOOK : A First Course in Database Systems
Jeffrey D. Ullman & Jennifer Widom
Prentice_Hall 1997

The design of relational database
Heikki Mannila & Kari Raiha
Addison Wesley Pub. Co, 1992



Course Objective and Goals

This course provides students with an introduction to the design of databases and the use of database management systems for applications. We will cover the entity relationship (E/R) approach to database design. We will cover the relational data model, mapping E/R designs to relations, relational design theory, abstract query language such as relational algebra, and programming in SQL. Students will get exposure to how relational database management systems are used to implement a database. Time permitting, we will also consider advanced database management features such as object-oriented and object-relational database systems. This course is aimed at database design and use of database management systems in implementing database applications. It does NOT cover the implementation of database management systems which will be covered in extensive details in the follow-on courses ICS214 and ICS215.


Prerequisites

You should have knowledge of basics of computer systems, experience programming in atleast one of C or C++. We assume that students are proficient in programming and in the Unix Environment.


Topics Outline (Syllabus)

No. Content [SKS] [UW97]
1. Introduction to Database Management Systems Chapter 1, 21 Chapter 1
2. Conceptual Database Design ( using E/R model) Chapter 2 Chapter 2
3. Relational Database Model Chapter 3, 6 Chapter 3.1
4. Relational Algebra Chapter 3 Chapter 4, 5, 7
5. Programming in SQL Chapter 4 Chapter 5
6. Relational Design Theory (normal forms, decomposition) Chapter 7 Chapter 3 (exp. 3.1)
7. Object Oriented Databases, Object Relational Databases Chapter 8, 9 Chapter 8


Late Assignment Policy

A due date will be clearly indicated on all problem sets. There will be NO grace period after the due date. Assignments will not be accepted after the grace period. Exceptions may be made under certain circumstances on an individual basis. Assignments should be handed in at the beginning of class.


Policy on Working Together

Working together on problem sets is strongly encouraged. You will learn more and get a better grade if you work
with someone else. I can't emphasize this enough! You can form groups of no more than 3 students and submit one homework solution per group making sure that the names of all the group members appear on the first page. If you wish, you can change groups from one assignment to another.
Do not work together on the midterm or final: cheating on those two tests will be punished to the full extent permitted.

The following policy may be used to assure that all students participate in the assignement: At random, a student S belonging to a group G may be selected to provide a solution for a question Q in an assignment A.

If (~satisfactory-explanation(S, Q))
   grade[S,A]   =  Grade[S,A] * 0.5
If (obviously_not_participated_in_solving_assignment(S,A))
   for all S1  in G
   if  (S1  != S)
       grade[S?,A] = Grade[S?,A] * 0.25
;; hence not good idea to add a friends name to your solution if friend did not participate in solving assignment.


Hints on Working in Groups

There are several ways to work in groups, some better than others. One way is to trade off assignments and have one person do one assignment and another person do the next assignment, etc., or to let the ``smart'' person in the group do all the assignments. This is the worst way of working in a group, at least for this class. The exams are likely to bear some similarity to the problem sets, so the person who does a particular problem set is likely to do better on the exams. Seeing the answers after someone else does them will not be as helpful.
Another way to approach the problem sets for this class is for everyone in the group to do all of the problems in all of the problem sets. Although this may sound like duplication of effort, there are several advantages to doing this. First, when your group meets to discuss your answers, everyone will have thought about each problem, so you are more likely to come up with a good answer to that problem. Second, you will be better prepared to take the midterm and final exams.