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 and schema class that supports addition, deletion, search, update and iteration of entries;
    • and a B+ tree data structure for key-value storage of pages.
  • 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