这个项目能做什么
MiniOB 是 OceanBase 团队基于华中科技大学数据库课程原型、联合多所高校重新开发的数据库入门学习项目,面向零基础的学生、数据库从业者和爱好者。项目声明仅供学习用途,不承诺代码安全与稳定可靠,不建议直接用于生产环境。
整体代码简洁,易于上手,并设计了一系列由浅入深的题目,帮助学习者从零开始了解数据库并深入内核。为便于教学,MiniOB 简化了许多模块,例如不考虑并发操作、安全特性和复杂的事务管理。
系统架构包含多个模块:网络模块负责与客户端交互、收发请求与应答;SQL 解析将用户输入的 SQL 语句解析成语法树;语义解析模块把语法树转换成数据库内部数据结构;查询优化根据规则和统计数据调整或重写语法树(部分实现);计划执行根据语法树描述执行并生成结果;存储引擎负责数据的存储和检索;事务管理当前仅实现 MVCC 模式;日志管理记录数据库操作日志;记录管理负责表数据文件中记录的存放;B+ Tree 作为表索引存储结构;此外还有会话管理、元数据管理以及作为测试工具的客户端。
项目提供配套设计文档和代码注释,并通过 GitHub Pages 发布,内容包括框架介绍、源码编译、运行方式、GitPod 开发环境以及 doxygen 代码文档。OceanBase 社区还提供系列教程,如《从0到1数据库内核实战教程》视频教程与基础讲义,以及华中科技大学的《数据库管理系统实现》教材。
MiniOB 是全国大学生计算机系统能力大赛初赛的实训平台,赛事以“竞技、交流、成长”为宗旨,搭建基于赛事的技术交流平台。参赛者可在 MiniOB 训练营提交代码进行测试,官方提供训练营使用说明和大赛 FAQ。为降低环境搭建成本,项目还提供开源学堂在线编程环境,本地开发环境的准备文档也有详细说明。
项目采用木兰宽松许可证第 2 版,可自由拷贝和使用源码,修改或分发时需遵守该许可证。社区欢迎开发者参与贡献,包括文档调整、问题修复和新增功能,并开放了标记为 help wanted 的新功能开发任务。
评论
0 评分人数达到10人后显示
登录后参与讨论。