Microbase
Microbase is intended to be a functional database matching
the Minibase API. The sections of the
Minibase implementation
that will most likely be used in assignments have been replaced with
trival versions, so that this code can be given out to students who
want to see the "big" picture.
The sections that have been replaced/modified:
- Buffer Manager:
The hash table has been removed, requiring that all frames be
searched to locate a page. The code assumes pages are always
dirty when unpinned, ignoring the provided argument.
- HFPage:
The slotted-page from Minibase has been replaced with an simple
bit-mapped array page which requires all records on a single
page to be the same size.
- HeapFile:
Changed from a directory structure to a simple linked list
with lots of searching.
- Access Methods:
Minibase implements B+ Trees, while Microbase uses
Static Hashing.
- Joins:
Sort-Merge and Indexed Nested-Loops Joins have been removed,
leaving only the simple Nested-Loops Join. External Sorting
has been replaced with a call to qsort() from stdlib.
- Catalog: Identical to the Minibase code.
- Interpreter: Identical to the Minibase code.
- Optimizer: Identical to the Minibase code, except where changes
were required by dropping Join methods.
- Tests: Identical to the Minibase code, except where the code being
tested is no longer present.
Back to the Minibase Distribution
January 6, 1997