Introduction to Database Systems
This is a collection of course projects for Berkeley CS186/286: Introduction to Database Systems (Term: 16 Fall).
- Project 1: File Management and B+ Tree (spec)
- Design and implement the
table
andschema
class that supports addition, deletion, search, update and iteration of entries; - and a B+ tree data structure for key-value storage of pages.
- Design and implement the
- Project 2: Join Algorithms and Query Optimization (spec)
- Implement three join algorithms: page nested loop join, block nested loop join and grace hash join.
- Implement query optimization by cost estimation, single table access selection and join selection.
- Project 3: Concurrency Control (spec)
- Create a lock manager for multi-thread concurrent page access.
- Detect and handle potential deadlock.
Technical tools: Java multithreading, Maven, JUnit