Database Systems (CS 457/554)

Text: Fundamentals of Database Systems
by Ramez Elmasri & Shamkant B. Navathe.

Course Description and Objective

This course introduces the fundamental concepts of the design and use of database systems. We first introduce the logical and physical data independence realised in database system and compare database systems with traditional file processing systems. In the comparison, we will see that database system provides greater flexibility - at the cost of greater complexity. Then we discuss the entity-relationship model used for describing mini-worlds and how it can be used to design database models. The main focus of the course will be on relational database systems where we will study the relational data model and the SQL query language for accessing the data maintained by relational database systems. We will also study functional dependence and lossless decomposition as tools to design ``good'' databases. We then present the normalization process; discussing 3NF and BCNF normalization forms for designing good database relations without anomalies. The latter part of the course deals with transaction processing techniques where we discuss synchronization techniques (e.g., locking) to ensure consistency and commit protocols/techniques to ensure atomicity.

There will be a number of C programs and one database projects in SQL. The SQL project consists of formulating queries on a small database using the departmental Sybase relational database system.

The Midterm & Final examinations are open notes/book exams where the majority of the questions test students on their knowledge of the subject, i.e., whether you know material. The solution to some question in the exams will require some synthesis thinking , i.e., using what you (already) know to solve a new problem.

CS554

Students that are enrolled in the graduate version of this course must do all work in the undergraduate version and in addition, perform a (very intensive) programming project. In this project, you will learn how to implement a (small) database processing system. This project is very hands-on and there are no lectures given for this project. All the necessary technical details will be given in the handouts - much of these technical details are covered in the "Compilers" course, so students that have done "Compilers" should have no problem doing this project. Students that do not have had a "Compilers" course can study the project handouts and learn the necessary technqiues.

Grading in CS457/CS554

Class Policy


Statement of Policy on Computer Assignments

Students will be graded partially on the basis of their programming assignments. These programming assignments are to be treated as examinations, and are expected to be your individual work. While discussions with other students in the course may be permitted or encouraged by your instructor, you should write your program yourself. The mathlab representatives are available to explain error messages, discuss briefly technical details with which you may not be familiar, and give short suggestions as to how you might detect logic errors. The reps should not, however be asked to write part or all of your program. Your instructor (and any teaching assistants assigned to the course) will be glad to help you to the extent that he or she feels reasonable.

Submissions based on other students solutions in prior offerings of the course specifically violate these guidelines, as do submissions prepared with the help of an outside "tutor".

You should take precautions to protect the confidentiality of your work: preserve the secrecy of your password, do not make files or directories sharable, pick up your printouts promptly and dispose of printouts where they will not tempt other students. All work should be done either in the class directory of your ITD account (preferred) or in your "priv" directory (only if you do not have a class directory).

All submissions should include a comment statement near the top of the program of the form:

THIS CODE IS MY OWN WORK, IT WAS WRITTEN WITHOUT CONSULTING A TUTOR OR CODE WRITTEN BY OTHER STUDENTS - your name

Cases of apparent plagiarism or collusion will be referred to the Honor Council.


Syllabus