Introduction To Database Systems 

CS 432 Fall 2001

 Course Description

CS 432 provides a basic introduction to the principles of relational database management systems.

 Prerequisites

CS432 will assume knowledge of material covered in CS211 (Computers and Programming) and CS312 (Structure and Interpretation of Computer Programs). CS414 (Systems Programming and Operating Systems) will help with some of the advanced topics taught later in the semester. While CS414 is not a prerequisite, we encourage you to attend CS414 along with this course.

An important prerequisite is knowledge of C++ programming. C++ will not be taught in this course, but you are expected to use it for all your assignments. I expect that you are comfortable with C++ at the level of CS213. We will use Visual C++. While the NT environment is easy to pick up, C++ is not. If you have used C or Java, and you are comfortable with programming, you can probably catch up with the necessary C++ knowledge in the first two weeks of the course. The programming assignment handed out in the first week may help you estimate the level of C++ programming competence expected.

 Workload

 Assignments

The five programming assignments are an important part of the course, and will involve a significant amount of C++ programming. All assignments except the first assignment must be performed in teams of two. The purpose of the project is for each team to build parts of a working single-user relational database system. You will start almost from scratch -- a few basic components are provided to you. By the end of the course, you will have built a simple DBMS by completing four separate assignments.

The project uses the MINIBASE software as its template. In most of the assignments, you will be given C++ class definitions with function templates. You will need to implement the functions. A significant part of the complexity of software design is specifying the interfaces between components -- this task has already been performed for you. However, actually implementing the various interfaces involves several hundred lines of code. At the end of the project, you will understand the basic relational database system concepts because you have implemented them. Each of your assignments builds upon the code written in the previous assignments. At the end of every assignment, you have the option of throwing away your code and instead using code supplied by the TAs.

The projects and assignments will use Visual C++ on the Windows machines. If you like, you can do your implementation at home on personal machines -- however, it is your responsibility to get the code to work on the departmental machines (since the TAs will test the code there).  

 Grading Policies

The grades for CS432 will be assigned based on the following percentages:

Exams:

  1. First preliminary exam: Time and place TBA. Non-cumulative. (10%)
  2. Second preliminary exam: Time and place TBA. Non-cumulative. (15%)
  3. Final exam: 12/21. Cumulative with emphasis on the last third of the course. (15%)

Assignments:


 Policies

 Instructors

 Teaching Assistants

 Location and Hours

 Course Textbook

The required textbook is: "Database Management Systems (Second Edition, 1999)" by Raghu Ramakrishnan and Johannes Gehrke. The textbook is available in the campus bookstore. I want to emphasize that the contents of this book do not constitute the syllabus for the course -- the classroom lectures define the course content, and the textbook is a reference. Here are other textbooks that provide further background (but they are not required for the course):

 CS432 versus CS433

CS432 is a course about database internals, whereas CS433 is a course about database applications. CS433 covers technologies such as Active Server Pages, Java Server Pages, Servlets, Perl, Cookies, JDBC, and XML. CS433 has only a very small teaching component. For the first few weeks, you will be guided with a weekly (small) homework that introduces you to a new technology. We will provide pointers to online material about a technology, but you have to learn the relevant subject by yourself in order to complete the homework. The homework is not graded, and we will just check that you have completed the assignment.

 

In addition, you will build one large web-database project (for example, a website similar to amazon.com or ebay.com) throughout the semester in groups of three to four students.

 FAQ