-
A basic database system
-
What is has – Heapfiles – Basic Operators (Scan, Filter, JOIN, Aggregate) – Buffer Pool – Transactions – SQL Frontend
-
Things it doesn’t have – Query optimizer – Fancy relational operators (UNION, etc) – Recovery – Indices
This project is implementation of a simple relational DB. The skeleton files and instructions are provided by MIT as part of 6.830: Database Systems course. See course page.
-
This repo is using a
gradlebuild system instead of ant build provided in the course assignment files. I made it this way while setting up my intellij. I also did some repackaging, to follow with java project conventions I am familiar to. -
I have also added[Decided to remove]Uber/Nullawayto check for potential bugs and addedgoJFjava formatting tool (attached to git pre-commit hook) -
There are 5 labs and each lab has bunch of exercises. For each lab, I have added a github project in this repo (lab1, lab2, lab3, lab4 and lab5) and each lab project has bunch of issues. Each issue corresponds to a exercise in the lab. Each issue is fixed by a commit (marking the issue done).
-
For course readings and unified view of lab instructions, I'd recommend going to the course page
-
I am following the video lectures for
Database Systemsfrom CMU database group: youtube. That course uses C++ project; I am not spending time in C++. The syllabus looks similar to the MIT course, so opted for Java project instead. -
I read something about Databases from
Designing Data-Intensive Applicationsby Martin Klepman, so I had some context while following the lectures and working on this project.
- lab 1: SimpleDB setup
- lab 2: SimpleDB operators
- lab 3: SimpleDB transactions
- lab 4: Query optimization (Not interested)
- lab 5: Rollback and recovery
Read User Guide
