This is a project implementing theories of database management systems. In particular the implementation assumes that records read in from files are too large to store in memory when performing joins. The project also implements two different join algorithms.