DeepDB is a relational database that is implemented in C++. Feel free to scroll down to the features section.
It is a project for the course COP6726: Database System Implementation at the University of Florida
- Project 1: Heap File (stores records in a binary file)
- Create a file
- Open a file
- Add record to a file
- Get next record from a file
- Get next record from a file matching a given CNF (condition)
- Move to the start of the file
- Load records from a text/table file into heap file
- Close a file
- Project 2
- Project 2.1: BigQ
- External merge sort using threads
- Project 2.2: Sorted File
- All the features of Project 1 except that the file will now be sorted on one or more attributes of a table (for all operations performed)
- Binary search is used to for efficient retrieval and storage
- Project 2.1: BigQ
- Project 3: Relational Operator
- Select
- Project
- Duplicate Removal
- Join
- GroupBy
- Sum
- WriteOut (write the output to a file)
- Project 4
- Project 4.1: Statistics
- Statistics.txt keeps a track of the number of tuples in a table, all the tables in the database, their attributes, etc
- Given a query plan, estimate the cost of the query using the information from Statistics.txt
- Project 4.2: Query Plan
- Given a SELECT query, permute all the possible query plans and find the one which has the minimum cost
- Project 4.1: Statistics
- Project 5: Complete DB
- Given a SELECT query, run the query using the minimum cost query plan, on the database
- Support for CREATE, INSERT, SELECT and DROP on user defined tables
Each project subdirectory has a Report with a brief explanation of the implementation details and steps to run the project.
- Flex and Bison for parsing
- Gtest for unit testing
- tpch (dataset) for query run time
- Drop a star if it helped you in your project
- Send a pull request if you want to add B+ tree functionality to this project
- Bonus (B+ tree for indexing)
- Front end
- Grade: A
Free Project, Hell Yeah!