This project implements a B+ Tree-based database management system (DBMS) to simulate real-world database operations such as indexing, searching, adding, and deleting records efficiently. By leveraging the B+ Tree data structure, the project optimizes these operations, showcasing the power of advanced indexing mechanisms in modern database systems.
The project also includes a Graphical User Interface (GUI) built with JavaFX, providing an intuitive and user-friendly way to interact with the database.
- Master the B+ Tree data structure, including its self-balancing and indexing features.
- Simulate core database functionalities, including table creation and index management.
- Enhance familiarity with database systems and concepts.
- Develop a practical understanding of data organization and efficient querying.
-
B+ Tree Implementation:
- Complete implementation of the B+ Tree with index nodes and leaf nodes.
- Efficient insert, search, and delete operations.
- Self-balancing mechanisms to maintain optimal performance.
-
Table Management:
- Create tables with custom attributes (e.g., column names and data types).
- Add, update, and delete records in tables.
-
Indexing:
- Use B+ Trees to build and manage indices for optimized searches.
- Support for primary, unique, and non-unique indexes.
-
Query Processing:
- Advanced query capabilities, leveraging B+ Tree indexing for range-based and point-based queries.
-
Graphical User Interface:
- Developed with JavaFX, featuring:
- Table Management View: Easily create and modify tables.
- Query View: Execute queries with clear visual feedback.
- Styled with custom CSS for a professional look and feel.
- Developed with JavaFX, featuring:
-
B+ Tree Implementation:
BPlusTree.java
: Core implementation of the B+ Tree.Node.java
,IndexNode.java
, andLeafNode.java
: Specialized classes for tree nodes.- Supports seamless insert, search, and delete operations with auto-balancing.
-
Database Management:
Table.java
: Handles table schema, records, and related operations.MakeTable.java
: Provides methods to define and manage table attributes.
-
Query Engine:
Query.java
: Implements search and range-based query processing.
-
Custom Data Structures:
AbstractMap.java
,UnsortedTableMap.java
: Implements custom map functionality to supplement indexing and data management.
-
Graphical User Interface:
- FXML Files:
Main Page.fxml
: Main view for user interaction.MakeTable.fxml
: Interface for creating tables.Query.fxml
: Interface for executing queries.
- CSS Files:
Alerts.css
,TextFieldStyle.css
: Provide custom styling for the GUI.
- FXML Files:
To run this project, ensure you have:
- Java Development Kit (JDK) version 11 or higher.
- Maven for build and dependency management.
- Clone the repository:
git clone https://github.com/Erfan-Farahmandnejad/Bplus-Tree-based-database.git cd "path" mvn clean install mvn javafx:run