Datbase Systems project related to indexing and disk management
In root directory:
$ g++ main.cpp - main.o -fno-stack-protector
$ ./main.o
- Simulation of DiskFileManager created
- Implementation of classes: Record, Page, Table, and DiskFileMgr
- Indexfile, Pageinfo, Tableinfo files built and populated using appropriate functions
- Linear Search for records on key value Implemented
- Indexed search on key Implemented (Sparse Primary Indexing followed)
- Organising main function for better UX
- Addition, Deletion and Modification of records
- Apply time functions to measure performance improvements.
- Apply number of block(file) accesses as a measure of performance improvements.
- BPTree class created for multilevel indexing
- Insertion into BPTree
- Search in BPTree integrated with the rest of the program
- Clustered indexing added
- Extensive Testing carried out, with graphs for visualisation
- Add further functionalities to BPTree
- Serialise BPTree to avoid building it each time.
- Add secondary indexing (Single level indexing on non-key non-ordering attribute).
- There seems to be some issue with the clustered indexing part, which seemed difficult to find/fix; to keep the code from breaking it uses linear search if clustered search fails. Feel free to drop in a PR in case a fix is found.