CS541: Database Systems


Fall 2005

Time and Place: 
                    MWF 9:30-10:20am  
                    Room: CS-G066

Instructor:
                   Walid G. Aref
                   Office: CS-124
                   Office Hours: By email appointments

                   Phone: Ext. 41997
                   E-mail: aref@cs.purdue.edu

 

Teaching Assistant:

                   Yasin Nilton Laura Silva
   
                Office Hours: Monday 1-3 PM
   
                Office: PHYS 92
   
                Office Phone: 49-62171

                   E-mail: ylaurasi@purdue.edu

Course Description:
CS 541 provides an introduction to the design and development of relational database management systems (DBMSs). A number of fundamental DBMS concepts will be covered in the course. You will learn the theory behind database systems, the issues that affect their functionality and performance, and importantly, what it takes to build a database management system. There is a significant component of Java development. There will also be hands-on exercises using the Oracle DBMS.

The list of topics covered in this course includes:

      DBMS Concepts and Architecture
      Relational Databases, Relational Algebra and Calculus
      Query Languages (SQL, QBE)
      Storage and Indexing
      Query Evaluation and Optimization
      Database Design, the E-R Model, Normalization, and Tuning
      Database Security
      Transaction Management, Concurrency Control, and Recovery
      Parallel and Distributed Databases

Most information regarding the course will be made available on
the web page:
http://www.cs.purdue.edu/homes/aref/Fall2005CS541/coursehome.html.
 

Text:
Required: Database Management Systems, (NOTE: Third
Edition), by Raghu Ramakrishnan and J. Gehrke. McGraw Hill, 2003, ISBN 0-07-246563-8.

References:

·       Oracle 9i: The Complete Reference, 10th Edition, by Kevin Loney & George Koch, Osborne McGraw-Hill, Inc., 2002, ISBN: 0-07-222521-1, or

·       ORACLE 9i Programming: A Primer, Rajshekhar Sunderraman, 2003.

Workload:
There will be around five project assignments. In each assignment, you will be asked to implement one component of a simple database management system. There will be several SQL programming assignments using Oracle. There will be three-four homeworks, a midterm, and a final examinations. The final exam will be cumulative, but the emphasis will be on the material covered after the midterm examination.

The Project:
The projects are an important part of the course, and will involve a significant amount of Java programming. The first projects will be SQL programming assignments using Oracle. The remaining projects will be performed in teams of two. The purpose is for each team to build parts of a working single-user relational database management system. You will start almost from scratch -- a few basic components may be provided to you. By the end of the course, you will have built a simple DBMS by completing four separate assignments.

In most of the assignments, you will be given Java class definitions with templates. You will need to actually implement the functions. Implementing the various interfaces involves several hundred lines of code. At the end of the project, you will understand the basic relational DBMS concepts because you have implemented them. Each of your assignments builds upon the code written in the previous assignments.

Unless extremely necessary, you should not change project partners for project assignments. You need to have the instructor’s prior approval to switch partners.

Grading:
The final grade will be based upon the following:
Programming and Homework Assignments 50%
Mid-term Exam 20%
Final 30%
(Extra-credit points will be given in class)

Qual Exams:
The qual exam will be an hour-long written exam at the end of the semester.
The pass grade for the qual exam will depend both on your overall course
grade as well as the qual exam grade.
I advise all students to take this exam regardless of being a Ph.D. or a Masters
student. This way, in the future, you can have the option of switching to a Ph.D. study program in a smooth way, if you will.

Course Policy:
Late submission will result in a 10% penalty for each day late.

Students are strongly advised that any act of cheating will
result in a score of 0 for the entire assignment and repeat
offences will be reported to the Office of the Dean of Students
and will result in an automatic F grade. You are encouraged
to discuss problems and ideas but the final solution or code must be
your own.