Taken in Spring 2022 at the University of Michigan, taught by Raed Almomani.
EECS 484 at The University of Michigan
This course revolves around the creation and management of a fictional database, "Fakebook". Through a series of five projects, I designed a relational database for Fakebook using SQL in a variety of frameworks.
The course uses common tools used in the industry such as SQL, SQLite, SQL*PLUS, Oracle, MongoDB, Java, Javascript, and Python.
Fakebook Database and Fakebook Oracle JDBC
This started with basic SQL scripting for the first project where I created tables and inserted data from a public data set into them, as well as created external views to display the data. All these scripts were executed using Oracle's SQL*PLUS in Linux.
For the second project, I created a Java application that executes SQL queries against the same data set as used in project 1, with a few extra constraints. I executed SQL queries against JDBC objects to get ResultSets, which I extracted the needed data from to return, or display in a view I created.
MongoDB and Grace Hash Join
I started the third project in this course by extracting user data from the Fakebook database and exporting it into JSON format. Using this imported JSON file, I created a MongoDB collection of user data and executed SQL queries against the user data in a JavaScript application.
For the final project in this course, I implemented a basic implementation of the Grace Hash Join algorithm in a C++ application. I implemented the algorithm in two stages. Firstly, the partition stage, I returned a vector containing the disk page IDs of both the relations of the given partition. Lastly, in the join stage, I returned a vector containing all of the disk IDs that resulted from the join between the two relations.