MIME-Version: 1.0 Server: CERN/3.0 Date: Wednesday, 20-Nov-96 20:17:35 GMT Content-Type: text/html Content-Length: 13244 Last-Modified: Friday, 08-Nov-96 01:52:36 GMT CS 537 - Advanced Database Systems

CS 537

Advanced Database Systems

        Time:                   8:40 -- 9:55 AM, Tuesday and Thursday
        Place:                  207 Upson
        Survey Proposal Due:    10/08 
        Project Proposal Due:   10/08
        Prelim Exam:            10/10 7:30-9p  UP 111/111A
        Paper Survey Due:       10/31 
        Mid-Project Evaluation: 11/26 
        Project Completion:     12/12 
        Final Exam:             12/19 9:00 AM, HO 206 

Contents


Course Description

CS 537 is being offered for the first time in Fall 1996. It is intended to give students a solid background in the design and development of database management systems (DBMS's). Database systems are possibly the world's largest pieces of software, and certainly among the most valuable pieces of software. While a DBMS is in one sense a giant application program, there are surprisingly many principles behind its development and use. The database industry is growing and thriving, and the demand for knowledgeable database engineers is much greater than the supply. The database research community is also active, and there are always new problems to be addressed because of the explosive amounts of data that people wish to access. This course forms essential background for anyone who wants to (a) become a systems engineer at a database development company, or (b) become an informed user of database systems, or (c) become a database systems researcher, or (d) develop systems in any domain that manipulate large amounts of data, or (e) find out how a teller machine really works!

A number of "advanced fundamental" DBMS concepts will be covered. Although this is not intended to be an introductory course, it is a new course and there may be students in the class with different backgrounds. Consequently, the discussion of various topics will begin with a quick review of basic material taught in CS 432. Click here for a tentative list of topics to be covered.

In terms of workload, here's what the course involves:


Development Project

The term project is an important part of the course, and will involve a significant amount of C++ programming. You can choose whether you wish to work alone or in teams of two. However, the two-person projects will involve proportionally more work. The goal of the project is two-fold: (a) to get hands-on experience at building some specific DBMS component, (b) to get comfortable working with a large pre-existing code-base, and modifying it in a modular manner. The second goal is as important as the first one, because all database systems are huge software systems, and rarely do you have the luxury of starting from scratch. This forces you to write modular code, and also to understand the interaction between the different system components when the inevitable bugs appear.

There are two research DBMS prototypes that will be used in the projects. One is MINIBASE, which is software associated with the textbook. It is a simple single-user database system that provides all the components from the SQL parser down to the disk manager. This should hopefully be available, depending on our being able to compile and run it in our computing environment. The important part of MINIBASE is the interface description of the various system components. The actual code comes from class projects. Consequently, projects using MINIBASE will involve writing a component (like the buffer manager), based on a specification of its C++ interface.

The other prototype is PREDATOR, which is a query processing engine that I have been developing for my research. There are a number of possible projects (some of which could lead to research topics) that can be built on top of PREDATOR. The focus here is on the high-end functionality like complex queries and new data types.

If you are not familiar with C++, I recommend a MINIBASE project because the amount of design needed is minimal. If you think you are interested in database systems research, then you should do a PREDATOR project. If you fall in neither category, then you should decide whether you want a project at the lower-level DBMS (storage, access, buffer) areas, or the higher-level (query processing, optimization) areas and choose between MINIBASE (lower-level) and PREDATOR (higher-level). There are also some general projects that involve neither system. If you have your own idea on a suitable project, you should talk with me about it well in advance of the project proposal date.

Here is a tentative list of possible projects. In all the projects, there will be certain steps that should be followed:

Some useful references are:


Course TextBook

The primary text is a beta edition of a new book on database systems : "Database Management Systems" by Raghu Ramakrishnan. This book contains many more details than are in most other introductory database books. It is also associated with free software for an instructional database system "MINIBASE", which we might use in class assignments. The textbook is available in the campus store for $46. Here are other textbooks which could be used as references:

Some reference material has also been placed in the library. Click here for details.


C++ Information

Here are some resources about C++ programming:


Grading Policies

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

The prelim exam will be on the evening of Oct 10th at 7:30pm in Upson 111/111A. It will be set to be comfortably finished in 1.5 hrs, but an extra half hour will be provided for those who need it. Likewise for the final exam. The final should be in exam period 16 (Thurs., Dec 19 9:00-11:30am), but this again is tentative and needs to be confirmed. The final exam will focus on material not tested in the mid-term, but the material covered in the earlier part of the course may form background for some of the questions.


Professor

Teaching Assistants