CS 564 Minirel Project: Overview

Introduction

These project stages will enable you to learn how to build a database system. You will build a working single-user DBMS that can execute certain simple SQL queries. The objective is to learn how a DBMS is organized and what goes on inside it when queries are executed. We will help you out by supplying the topmost and lowermost DBMS layers. The topmost layer is a parser that parses SQL queries and calls appropriate functions in the lower layers to perform relational operations. The lowermost layer is the disk I/O layer which reads and writes pages from and to the disk. In your case, the disk will just be the UNIX file system.  

At the end of each stage we will take a checkpoint and evaluate your work.  In Stage 3 you will implement a buffer manager.  Stage 4 involves implementing heap files - a collection of pages that is used to hold a relation.  Stage 5 implements the database catalogs and various utilities.  Finally, in Stage 6 you will implement a number of relational operators. At the end of it all, you will have implemented a miniature DBMS. It will not do everything that a commercial DBMS does, but it should be able to handle a fairly useful set of queries. While doing these stages you shall learn how to tackle large programming projects and in the process have fun as well! Good luck!

Note: Since time is short, you will not have to do Stage 5. After doing Stage 4, you will skip directly to Stage 6.

Logistics

These stages will be done in C++. For many of you, this is likely to be the biggest programming project you have ever done so far and so it might be useful to keep the following points in mind.

A Reminder about Cheating

We believe in the highest standards of academic integrity. The project implementations of each group must be completely distinct from each other. You will not share any code across groups. Nor will you attempt to use any code from previous offerings of this course. All the code that you submit must be written by you and you only. Deviations from this will be punished to the fullest extent possible. Usually this means reporting to the department chair and the college, as required by UW. We will use software tools built into Canvas as well as our own tool to insure that your project represents your work.

Project Stages and Due Dates

The due dates will be announced by your instructor on Canvas.