https://github.com/keyurkhant/light-db.git
The goal of this project is to create a simple database management system (DBMS) using Java. The DBMS should be lightweight and able to handle different types of queries, like creating and modifying the database structure (DDL) and manipulating data (DML). The data will be stored in TXT files, and there will be a security feature for authentication. An interesting addition is the transaction processing feature, which ensures that data changes are consistent, isolated, durable, and atomic. This report will provide an overview of the implemented DBMS, highlighting its main features, design choices, and functionality.
File structure:
.
โโโ LightDB/
โโโ database/
โ โโโ tables/
โ โ โโโ employee.txt
โ โโโ tables-metadata/
โ โ โโโ employee_metadata.txt
โ โโโ users.txt
โโโ src/
โโโ main/
โโโ java/
โโโ database/
โโโ auth/
โ โโโ IAuth.java
โ โโโ Auth.java
โโโ query/
โ โโโ IQueryHandler.java
โ โโโ IQueryManager.java
โ โโโ QueryHandler.java
โ โโโ QueryManager.java
โ โโโ QueryUtils.java
โโโ user/
โ โโโ User.java
โ โโโ UserManager.java
โโโ utils/
โ โโโ Utils.java
โโโ Main.java
Here, I have followed the above structure in which code is segregated into various classes and all data is stored in a database directory in LightDB.
Note: Throughout the application development, I have used Java W3 documentation pattern to add class and method commenting.