Introduction

Introduction

Goals

Implement a multi-user relational DBMS with concurrency control for use as a teaching tool for future DB courses. The DBMS should support a variety of AMs and joins. It would follow the ARIES concurrency control protocol of 2 phase locking and WAL.

The DBMS should operate as either a single user product or a multi-user product for use with students of varied experience with databases. Integration of Minirel with graphical tools was planned as well.

Minirel II is the third attempt at creating an educational database. The two predecesors were the original Minirel, upon which Minirel II is based, and Minibase. Minibase proved too large and cumbersome as a teaching tool. The Minirel II project is an attempt to follow through on the original goal of establishing a robust educational database.

Starting Point

The Minirel II project was based on code that had been written earlier. Originally written in C, by Spring of 1994 the code was all converted to C++ with its OO structure. We used some elements of the old minirel project for the current version, including the design of the Buffer manager, heap file structure and catalogs. Optimizer and parser. Old minirel had no optimizer, supported only one type of index, and used a basic catalog structure. Original Minirel was single user.

Resources

23 graduate students worked on the project. The TA for Raghu Ramakrishnan worked on the optimizer indpendently. Minirel II project used HPs (snakes) and the GNU compilers, version 2.6.2 and 2.6.0.