> ***注意*** 由于最新代码的事务模型与2022年已经不同，因此最新代码不能通过MiniOB-2022的训练营测试的basic用例，但是不影响做其它的用例测试。同学们遇到官方代码无法通过MiniOB-2022的basic用例，请忽略。

# OceanBase 数据库大赛

2022 OceanBase 数据库大赛是由中国计算机学会（CCF）数据库专业委员会指导，OceanBase 与蚂蚁技术研究院学术合作团队联合举办的数据库内核实战赛事。本次大赛主要面向全国爱好数据库的高校学生，以“竞技、交流、成长”为宗旨，搭建基于赛事的技术交流平台，促进高校创新人才培养机制，不仅帮助学生从0开始系统化学习数据库理论知识，提升学生数据库实践能力，更能帮助学生走向企业积累经验，促进国内数据库人才的发展，碰撞出创新的火花。

更多详情, 请参考 [OceanBase 大赛](https://open.oceanbase.com/competition/index)

在开始参加大赛或者训练营之前，需要创建自己的代码仓库，这里有一个gitee的使用说明：
[大赛手把手入门教程](./gitee-instructions.md)

作为参考，这里有第一届数据库大赛的题目介绍：
[第一届数据库大赛题目介绍](./miniob_topics.md)

还有往届选手给出了一些题解：
- [date 测试说明](./miniob-test-comment-date.md)
- [date 实现解析](./miniob-date-implementation.md)
- [drop table 实现解析](./miniob-drop-table-implementation.md)

在参赛前，除了学习基础的理论知识，还可以使用OceanBase提供的训练营，来快速上手：
[训练营](https://open.oceanbase.com/train?questionId=200001)

训练营是一个自动化黑盒测试平台。同学们可以按照题目的描述要求，基于MiniOB实现相应的SQL功能，然后将自己的代码提交至训练营做测试验证，最终得到测试结果。

当前训练营有两个MiniOB的题库，其中MiniOB是2021年OceanBase大赛的题库，MiniOB-2022是2022年数据库大赛的题库。题库中都会有basic测试用例，是MiniOB官方代码中既有的功能，通常不需要同学们做修改。此题目的目的是为了检测在实现新功能时，不破坏现有的功能。

***注意*** 由于最新代码的事务模型与2022年已经不同，因此最新代码不能通过MiniOB-2022的训练营测试的basic用例，但是不影响做其它的用例测试。同学们遇到官方代码无法通过MiniOB-2022的basic用例，请忽略。

训练营的使用方法比较简单，不过这里也有一个小手册：
[训练营使用手册](https://ask.oceanbase.com/t/topic/35600372)

为了方便大家使用训练营时获取调试信息，这里有一个小手册：
[训练营调试输出手册](./debug-output.md)

注意，在训练营开始前，需要注意自己的程序输出需要满足一定的要求，请参考：
[提交测试需要满足的输出要求](./miniob-output-convention.md)

我们也收集了一些常见问题，可以参考：
[常见问题](https://ask.oceanbase.com/t/topic/35601465)

训练营建议：
训练营对同学们的大工程实战能力提升非常高，在现在有的几万行代码上需要添加非常多的功能，整个训练营完成后代码量很可观。因此，同学们在实现各种功能时，不要一直堆砌代码，需要不停的优化重构现有功能模块与架构，以使自己的代码能够稳步前进。
