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:
- Use of B+ Tree for even more efficient range queries.
- Support for advanced database operations, such as sorting and complex query processing.
- Visual representation of the B+ Tree structure via the GUI.
-
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 <repository-url> cd btree-erf mvn clean install mvn javafx:run