Об этом проекте

MiniOB — это учебный проект по введению в базы данных, который команда OceanBase разработала заново на основе прототипа курса баз данных Хуачжунского университета науки и технологий совместно с несколькими вузами. Он ориентирован на студентов без опыта, специалистов по базам данных и энтузиастов. В проекте указано, что он предназначен только для обучения, не гарантирует безопасность, стабильность и надёжность кода и не рекомендуется для непосредственного использования в производственной среде. Код в целом простой и удобный для начала работы, а также содержит серию заданий от простых к сложным, которые помогают учащимся с нуля понять базы данных и углубиться в ядро СУБД. Для удобства преподавания в MiniOB упрощены многие модули, например не рассматриваются конкурентный доступ, функции безопасности и сложное управление транзакциями. Архитектура системы включает несколько модулей: сетевой модуль отвечает за взаимодействие с клиентом, приём запросов и отправку ответов; SQL-парсер преобразует введённые пользователем SQL-запросы в синтаксическое дерево; модуль семантического анализа преобразует синтаксическое дерево во внутренние структуры данных базы данных; оптимизатор запросов на основе правил и статистики корректирует или переписывает синтаксическое дерево (реализовано частично); исполнитель плана выполняет действия в соответствии с описанием синтаксического дерева и формирует результат; движок хранения отвечает за хранение и извлечение данных; управление транзакциями в настоящее время реализует только режим MVCC; управление журналами записывает журнал операций базы данных; управление записями отвечает за размещение записей в файлах данных таблиц; B+ Tree используется как структура хранения индексов таблиц; кроме того, есть управление сессиями, управление метаданными и клиент в качестве инструмента тестирования. Проект предоставляет сопроводительную проектную документацию и комментарии в коде, опубликованные через GitHub Pages. Материалы включают введение в архитектуру, компиляцию исходного кода, способы запуска, среду разработки GitPod и документацию кода doxygen. Сообщество OceanBase также предлагает серию учебных материалов, таких как видеокурс «Практический курс по ядру базы данных с нуля до единицы» и базовые конспекты, а также учебник Хуачжунского университета науки и технологий «Реализация систем управления базами данных». MiniOB является тренировочной платформой отборочного этапа Национального конкурса системных способностей студентов. Конкурс проводится под девизом «соревнование, общение, рост» и создаёт техническую площадку для обмена опытом. Участники могут отправлять код на тестирование в тренировочном лагере MiniOB; официально предоставляются инструкция по использованию тренировочного лагеря и FAQ конкурса. Чтобы снизить затраты на настройку окружения, проект также предлагает онлайн-среду программирования на платформе открытого образования, а документация по подготовке локальной среды разработки содержит подробные пояснения. Проект распространяется под лицензией Mulan Permissive Software License, Version 2. Исходный код можно свободно копировать и использовать; при изменении или распространении необходимо соблюдать условия этой лицензии. Сообщество приветствует вклад разработчиков, включая корректировку документации, исправление ошибок и добавление новых функций, а также открывает задачи по разработке новых возможностей, помеченные как help wanted.