About this project

MiniOB is an introductory database learning project developed by the OceanBase team, based on a database course prototype from Huazhong University of Science and Technology and jointly redeveloped with multiple universities. It targets students, database practitioners, and enthusiasts with no prior background. The project states it is for learning purposes only, does not guarantee code security, stability, or reliability, and is not recommended for direct use in production environments. The overall code is concise and easy to get started with, and a series of progressively challenging exercises are designed to help learners understand databases from scratch and delve into the internals. For teaching convenience, MiniOB simplifies many modules, for example, it does not consider concurrent operations, security features, or complex transaction management. The system architecture includes multiple modules: the network module handles interaction with clients, sending and receiving requests and responses; SQL parsing parses user-input SQL statements into a syntax tree; the semantic parsing module converts the syntax tree into the database's internal data structures; query optimization adjusts or rewrites the syntax tree based on rules and statistical data (partially implemented); plan execution executes according to the syntax tree description and generates results; the storage engine handles data storage and retrieval; transaction management currently implements only the MVCC mode; log management records database operation logs; record management handles the storage of records in table data files; B+ Tree serves as the table index storage structure; in addition, there are session management, metadata management, and a client used as a testing tool. The project provides accompanying design documents and code comments, and is published via GitHub Pages. The content includes framework introduction, source code compilation, running methods, the GitPod development environment, and doxygen code documentation. The OceanBase community also provides a series of tutorials, such as the video tutorial and basic lecture notes for the "From 0 to 1 Database Kernel Practical Tutorial," as well as the textbook "Database Management System Implementation" from Huazhong University of Science and Technology. MiniOB is the practical training platform for the preliminary round of the National College Computer System Capability Competition. The competition aims to foster "competition, exchange, and growth," building a technical exchange platform based on the event. Participants can submit code for testing in the MiniOB training camp, and the organizers provide instructions for using the training camp and a competition FAQ. To reduce the cost of environment setup, the project also provides an open-source online programming environment, and the preparation documentation for the local development environment is also described in detail. The project uses the Mulan PSL v2 license. The source code may be freely copied and used, and modifications or distributions must comply with this license. The community welcomes developers to contribute, including documentation adjustments, bug fixes, and new features, and has opened new feature development tasks marked as help wanted.