SimpleDB Engine is a lightweight, file-based database engine designed to support basic CRUD operations, simple query processing, and concurrency control.
Inspired by the need for a straightforward and easy-to-use database system, SimpleDB Engine offers a robust solution for small-scale applications that require minimal setup and maintenance.
- Lightweight and File-based: Utilizes JSON for easy data manipulation and human readability.
- CRUD Operations: Supports Create, Read, Update, and Delete operations.
- Simple Query Processing: Uses RegEx for parsing simple query syntax.
- Concurrency Control: Implements basic locking mechanisms for safe concurrent read/write operations.
- CLI Interface: Provides a Command Line Interface for database management and query execution.
- Clone the Repository:
git clone https://github.com/siddhant-vij/SimpleDB-Engine.git
- Compile the Source Code: Navigate to the project directory and compile the Java files in the
src
folder. Following command works in Windows Bash.cd SimpleDB-Engine javac -d bin -classpath 'lib/*' $(find src/com/simpledb -name '*.java')
- Run the Application: Start the application using the Java command. Following command works in Windows Bash.
java -cp "bin;lib/*" com.simpledb.Main
- Using the CLI: Follow the on-screen prompts to perform database operations.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch:
git checkout -b feature/AmazingFeature
- Commit your Changes:
git commit -m 'Add some AmazingFeature'
- Push to the Branch:
git push origin feature/AmazingFeature
- Open a Pull Request
- Enhanced Query Processing: Introduce more complex querying capabilities for advanced SQL queries.
- Improved Transaction Management: Implement transaction management with the ability to Commit/Rollback changes to a consistent state with a complete focus on ACID properties.
- Performance Optimization: Optimize data storage and retrieval processes for faster access times.
- Security and Authentication: Add security and user authentication mechanisms for improved database access.
- GUI Interface: Develop a graphical user interface for easier database management.
Distributed under the MIT License. See LICENSE
for more information.