MiniOB は、華中科技大学のデータベース コース プロトタイプに基づいて、多くの大学と共同で OceanBase チームによって開発されたデータベース入門学習プロジェクトであり、基礎がまったくない学生向けに特別に設計されています。私たちの目標は、学校の学生、データベース実務者、愛好家、または基本的なテクノロジーに興味がある人々に、フレンドリーなデータベース学習プログラムを提供することです。
MiniOB の全体的なコードは簡潔で使いやすく、学生がゼロから始めてデータベースをすぐに理解し、データベースのコアを深く学習できるように、簡単なものから深いものまで一連の質問が設計されています。 MiniOB は、データベースの実装原理をよりよく学ぶために、同時操作、セキュリティ機能、複雑なトランザクション管理機能を考慮しないなど、多くのモジュールを簡素化します。 MiniOB のトレーニングを通じて、学生がデータベース カーネル モジュールの機能と相乗関係を習得し、メモリ管理、ネットワーク通信、ディスク I/O 処理などの特定のエンジニアリング コーディング能力を習得できることを期待しています。これは、学生が将来の面接や仕事で目立つのに役立ちます。
コードをサポートするドキュメントと関連するコード コメントは、GitHub Pages を通じて生成および公開されています。 MiniOB GitHub ページに直接アクセスできます。
開発者が MiniOB を開始し、よりよく学ぶために、次のコンテンツを読むことをお勧めします。
誰もがデータベースの基礎をよりよく学習できるように、OceanBase コミュニティは一連のチュートリアルを提供しています。詳細なドキュメントについては、MiniOB GitHub ページを参照してください。推奨される学習:
MiniOB の全体的なアーキテクチャを次の図に示します。
で:
ネットワーク モジュール: クライアントとの対話、クライアントの要求と応答の送受信を担当します。
SQL 解析: ユーザーが入力した SQL ステートメントを構文ツリーに解析します。
実行プランのキャッシュ: 実行プラン キャッシュ モジュールは、SQL によって初めて生成された実行プランをメモリにキャッシュし、後続の実行でこのプランを繰り返し実行できるため、クエリ最適化プロセスの繰り返しが回避されます (実装されていません)。
セマンティック解析モジュール: 生成された構文ツリーをデータベースの内部データ構造に変換します (部分的に実装されています)。
クエリ キャッシュ: 実行されたクエリ結果をメモリにキャッシュし、次回クエリを実行するときにそれらを直接返すことができます (未実装)。
クエリの最適化: 特定のルールと統計データに従って構文ツリーを調整/書き換えます。 (部分的に実装);
実行を計画: 構文ツリーの記述に従って実行および結果を生成します。
セッション管理: ユーザー接続を管理し、特定の接続のパラメーターを調整します。
メタデータ管理: 現在のデータベース、テーブル、フィールド、およびインデックスのメタデータ情報を記録します。
クライアント: テスト ツールとして、ユーザーのリクエストを受信し、サーバーへのリクエストを開始します。
2022 OceanBase Database Competitionは、中国コンピュータ連盟(CCF)のデータベース専門委員会が主導し、OceanBaseとAnt Technology Research Instituteの学術協力チームが共催するデータベースインライン検証コンテストです。このコンテストは、データベースを愛する全国の大学生を主な対象とし、「競争・コミュニケーション・成長」を目的としており、イベントを基盤とした技術交流プラットフォームの構築、大学における革新的な人材育成の仕組みの促進を目的としています。学生がデータベースの理論的知識をゼロから体系的に学び、学生のデータベースの実践能力を向上させ、学生が企業での経験を積み、国内のデータベース人材の育成を促進し、イノベーションの火花を生み出すのを支援します。
OceanBase 予選は、初心者が練習するのに適したデータベース トレーニング プラットフォームである MiniOB をベースにしています。コード量が少なく、データベースのさまざまな主要なモジュールが含まれており、体系的なデータベース学習プラットフォームです。このプラットフォームに基づいて、学生が「ゼロ」の基礎から始めるのに役立つ一連の簡単な問題から深い問題までが設定されています。
2023 OceanBase データベース コンペティションが本格的に開催されます。詳細については、OceanBase コンペティションを参照してください。
コンテスト入門チュートリアル
コンテストの質問の紹介
質問を完了し、セルフテストに合格したら、MiniOB トレーニング キャンプでのテスト用のコードを送信できます。
提出する前に、トレーニングキャンプの指示を参照して検討してください。
コンテストに関するよくある質問
このウェアハウスは、Gitpod に基づいた迅速なオンライン開発プラットフォームを確立します。下のボタンをクリックするとワンクリックで体験できます(Chromeブラウザ推奨)。
初めて Gitpod に入るときに、いくつかの依存関係をインストールする必要があります。インストールが完了すると、ターミナル インターフェイスに「依存関係が正常にインストールされました」と表示されます。 bash build.sh --make -j4
コマンドを実行して MiniOB をコンパイルします。
OceanBase コミュニティは、データベース テクノロジを愛するすべての開発者を温かく歓迎し、皆さんとアイデアをぶつけ合う旅を始めることを楽しみにしています。ドキュメント形式の調整やテキストの修正、バグ修正や新機能の追加など、OceanBase コミュニティに参加し貢献する方法の 1 つです。今すぐ最初の貢献をしてください!詳細については、「コミュニティへの貢献」を参照してください。
MiniOB は Mulan Permissive License バージョン 2 を採用しています。ソースコードを自由にコピーして使用することができます。改変または配布する場合は、Mulan Permissive License バージョン 2 に従ってください。