Fall 2005
Time and
Place:
MWF
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
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.