Assignment 1: Heap Files
Due: Wednesday, September 27, 1996, at 5 p.m.
Instructors: Jeff Naughton and Raghu Ramakrishnan
Welcome to Minibase, a new version of the Minirel system that has been used in the CS564 course project for many years. Minibase is a small relational DBMS, structured into several layers. In this assignment, you will implement the Heap file layer. You will be given the code for the lower layers (Buffer Manager and Disk Space Manager), as well as the code for managing records on a Heap file page.
You will carry out this assignment, and subsequent ones, in teams of two. Please choose a partner as soon as possible, or send mail to michaell so that we can find a partner for you.
This assignment has three parts. You have to do the following:
You should begin by reading the chapter on Disks and Files (available at MACC), to get an overview of the HF layer and buffer management. This material was also covered in class. In addition, HTML documentation is available for Minibase, which you can read using Netscape. There is a link to the Minibase home page in the CS564 home page.
There are four main classes with which you should familiarize yourself: HeapFile, HFPage, BufferMgr, DB. A Heap file is seen as a collection of records. Internally, records are stored on a collection of HFPage objects. The code for all these classes will be given to you, with the exception of HeapFile of course.
Copy all the files from /p/course/cs564-1/assigns95/assign1 to your own local assign1 directory and study them carefully. The files are:
You should turn in copies of your code together with copies of the output produced by running the tests provided by the TAs. The assignment is due at 5PM on September 27th. The solution will be made public after that time, and solutions turned in after that time will not receive any credit. So be sure to turn in whatever you have, even if it is not working fully, at that time.
I emphasize that late submissions will not receive any credit. Computers -- and life! -- being what they are, expect everything to take longer than you expect, even taking this expectation into account. So start early, and plan on getting things done well before the due date. Nothing short of a nuclear explosion (in the CS building, not the South Pacific) constitutes a valid reason for an extension.