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.
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. 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.Logistics
A Reminder about Cheating
Project Stages and Due Dates
The due dates will be announced by your instructor on Canvas.