miniob

miniob

简化数据库学习的轻量级平台 助力零基础掌握内核知识

MiniOB是一个专为数据库入门者设计的轻量级学习项目。它提供简洁易懂的代码和循序渐进的题目,帮助学习者快速掌握数据库内核知识和实践能力。通过简化复杂模块,MiniOB聚焦于基础原理学习,并配备丰富的教程资源和在线开发环境,为数据库爱好者提供了理想的学习平台。

MiniOB数据库OceanBase学习项目系统架构Github开源项目

MiniOB 简介

<div align="left">

中文文档 MiniOB 星标 覆盖率状态 HelloGitHub

</div>

MiniOB 是由 OceanBase 团队基于华中科技大学数据库课程原型,联合多所高校重新开发的、专为零基础同学设计的数据库入门学习项目。MiniOB 旨在为在校学生、数据库从业者、爱好者或对基础技术感兴趣的人提供一个友好的数据库学习项目,更好地将理论与实践结合,提升同学们的工程实战能力。

MiniOB 整体代码简洁,易于上手,设计了一系列由浅入深的题目,帮助同学们从零基础入门,快速了解数据库并深入学习数据库内核。MiniOB 简化了许多模块,例如不考虑并发操作、安全特性和复杂的事务管理等功能,以便更好地学习数据库实现原理。我们期望通过 MiniOB 的训练,同学们能够熟练掌握数据库内核模块的功能和协同关系,并具备一定的工程编码能力,例如内存管理、网络通信和磁盘 I/O 处理等,这将有助于同学在未来的面试和工作中脱颖而出。

文档

代码配套设计文档和相关代码注释已经生成文档,并通过 GitHub Pages 发布。您可以直接访问:MiniOB GitHub Pages

快速上手

为了帮助开发者更好地上手并学习 MiniOB,建议阅读以下内容:

  1. MiniOB 框架介绍
  2. 如何编译 MiniOB 源码
  3. 如何运行 MiniOB
  4. 使用 GitPod 开发 MiniOB
  5. doxygen 代码文档

为了帮助大家更好地学习数据库基础知识,OceanBase社区提供了一系列教程。更多文档请参考 MiniOB GitHub Pages。建议学习:

  1. 《从0到1数据库内核实战教程》视频教程
  2. 《从0到1数据库内核实战教程》基础讲义
  3. 《数据库管理系统实现》华中科技大学实现教材

系统架构

MiniOB 整体架构如下图所示:

<img src="https://yellow-cdn.veclightyear.com/835a84d5/27457841-168d-45a1-81a8-42a249b225e8.svg" width = "60%" alt="InternalNode" align=center />

其中:

  • 网络模块(NET Service):负责与客户端交互,收发客户端请求与应答;
  • SQL解析(Parser):将用户输入的SQL语句解析成语法树;
  • 语义解析模块(Resolver):将生成的语法树,转换成数据库内部数据结构;
  • 查询优化(Optimizer):根据一定规则和统计数据,调整/重写语法树。(部分实现);
  • 计划执行(Executor):根据语法树描述,执行并生成结果;
  • 存储引擎(Storage Engine):负责数据的存储和检索;
  • 事务管理(MVCC):管理事务的提交、回滚、隔离级别等。当前事务管理仅实现了MVCC模式,因此直接以MVCC展示;
  • 日志管理(Redo Log):负责记录数据库操作日志;
  • 记录管理(Record Manager):负责管理某个表数据文件中的记录存放;
  • B+ Tree:表索引存储结构;
  • 会话管理:管理用户连接、调整某个连接的参数;
  • 元数据管理(Meta Data):记录当前的数据库、表、字段和索引元数据信息;
  • 客户端(Client):作为测试工具,接收用户请求,向服务端发起请求。

OceanBase 大赛

全国大学生计算机系统能力大赛(以下简称"大赛")是由系统能力培养研究专家组发起,全国高等学校计算机教育研究会、系统能力培养研究项目示范高校共同主办、OceanBase 承办,面向高校大学生的全国性数据库大赛。 大赛面向全国爱好数据库的高校学生,以"竞技、交流、成长"为宗旨,搭建基于赛事的技术交流平台,促进高校创新人才培养机制,不仅帮助学生从0开始系统化学习 OceanBase 数据库理论知识,提升学生数据库实践能力,更能帮助学生走向企业积累经验,促进国内数据库人才的发展,碰撞出创新的火花。

OceanBase 初赛基于一套适合初学者实践的数据库实训平台 MiniOB,代码量少,易于上手学习,包含了数据库的各个关键模块,是一个系统性的数据库学习平台。基于该平台设置了一系列由浅入深的题目,以帮助同学们更好"零"基础入门。

为了帮助大家能在大赛中取得好成绩,我们提供了一系列的教程和指导,帮助大家更好地学习数据库基础知识,更好地完成大赛题目。 欢迎大家查看《从0到1数据库内核实战教程》视频教程,视频中包含了代码框架的介绍和一些入门题目的讲解。

由于MiniOB是一个持续演进的产品,视频教程中有些内容会与最新代码有冲突,建议大家参考讲解中的思路。 比赛的初赛在MiniOB上进行。参赛者可以提前在往届题目上进行训练,以获得优势。在日常训练中,可以在MiniOB 训练营上提交代码进行测试。

提交前,请参考并学习训练营使用说明

如果在比赛或使用训练营时遇到问题,请先查看比赛常见问题

在线开发平台

搭建开发环境是一个耗时且繁琐的过程,尤其对初学者而言。为了让大家更快地上手MiniOB,本仓库基于Gitpod建立了快速在线开发平台。点击下方按钮即可一键体验(建议使用Chrome浏览器)。

在Gitpod中打开

注意:此链接打开的是MiniOB主仓库的开发环境,参赛者需要通过gitpod进入自己的仓库开发环境。

首次进入Gitpod时需要安装一些依赖。安装完成后,终端界面会显示"依赖安装成功"。运行bash build.sh --make -j4命令即可编译MiniOB。

贡献

OceanBase社区热烈欢迎每一位热爱数据库技术的开发者,期待与您共同探索。无论是调整文档格式、修正文字、修复问题还是增加新功能,都是参与和贡献OceanBase社区的方式。MiniOB现在开放了一些新功能的开发,欢迎有兴趣的同学参与。如果您对MiniOB不熟悉,可以直接联系我们,我们将安排人员指导。现在就开始您的首次贡献吧!更多详情,请参考社区贡献

贡献者

感谢所有为MiniOB项目做出贡献的同学们!

<a href="https://github.com/oceanbase/miniob/graphs/contributors"><img src="https://contributors-img.web.app/image?repo=oceanbase/miniob&width=890" /></a>

许可证

MiniOB采用木兰宽松许可证,第2版,可以自由拷贝和使用源码。修改或分发时,请遵守木兰宽松许可证,第2版

社区组织

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多