MiniOB adalah proyek pembelajaran basis data pengantar yang dikembangkan oleh tim OceanBase berdasarkan prototipe kursus basis data Universitas Sains dan Teknologi Huazhong dan bekerja sama dengan banyak universitas, dan dirancang khusus untuk siswa tanpa dasar. Tujuan kami adalah menyediakan program pembelajaran database yang ramah bagi siswa sekolah, praktisi database, penggemar, atau orang-orang yang tertarik dengan teknologi dasar.
Kode keseluruhan MiniOB ringkas dan mudah digunakan. Ini telah merancang serangkaian pertanyaan dari yang mudah hingga yang mendalam untuk membantu siswa memulai dari awal, memahami database dengan cepat, dan mempelajari inti database secara mendalam. MiniOB menyederhanakan banyak modul, seperti tidak mempertimbangkan operasi bersamaan, fitur keamanan, dan fungsi manajemen transaksi yang kompleks, untuk mempelajari prinsip implementasi database dengan lebih baik. Kami berharap melalui pelatihan MiniOB, siswa akan mampu menguasai fungsi dan hubungan sinergi modul kernel database, serta memiliki kemampuan pengkodean teknik tertentu, seperti manajemen memori, komunikasi jaringan dan pemrosesan I/O disk, dll., yang akan membantu siswa menonjol dalam wawancara dan pekerjaan di masa depan.
Dokumentasi pendukung kode dan komentar kode terkait telah dibuat dan dipublikasikan melalui Halaman GitHub. Anda dapat mengunjungi langsung: MiniOB GitHub Pages.
Untuk membantu pengembang memulai dan mempelajari MiniOB dengan lebih baik, disarankan untuk membaca konten berikut:
Untuk membantu semua orang mempelajari dasar-dasar database dengan lebih baik, komunitas OceanBase menyediakan serangkaian tutorial. Untuk dokumentasi lebih lanjut, silakan merujuk ke Halaman GitHub MiniOB. Pembelajaran yang disarankan:
Arsitektur keseluruhan MiniOB ditunjukkan pada gambar di bawah ini:
di dalam:
Modul jaringan: bertanggung jawab untuk berinteraksi dengan klien, mengirim dan menerima permintaan dan tanggapan klien;
Penguraian SQL: mem-parsing pernyataan SQL yang dimasukkan oleh pengguna ke dalam pohon sintaksis;
Caching rencana eksekusi: Modul caching rencana eksekusi akan men-cache rencana eksekusi yang dihasilkan untuk pertama kalinya oleh SQL di memori.
Modul penguraian semantik: mengubah pohon sintaksis yang dihasilkan menjadi struktur data internal database (diimplementasikan sebagian);
Caching kueri: menyimpan hasil kueri yang dieksekusi dalam memori, dan dapat mengembalikannya secara langsung saat Anda melakukan kueri berikutnya (tidak diterapkan);
Pengoptimalan kueri: Sesuaikan/tulis ulang pohon sintaksis sesuai dengan aturan dan data statistik tertentu. (sebagian dilaksanakan);
Eksekusi rencana: jalankan dan hasilkan hasil sesuai dengan deskripsi pohon sintaksis;
Manajemen sesi: mengelola koneksi pengguna dan menyesuaikan parameter koneksi tertentu;
Manajemen metadata: mencatat informasi metadata database, tabel, bidang dan indeks saat ini;
Klien: Sebagai alat pengujian, ia menerima permintaan pengguna dan memulai permintaan ke server.
Kompetisi Basis Data OceanBase 2022 merupakan kompetisi verifikasi in-line basis data yang dipandu oleh Komite Profesional Basis Data Federasi Komputer China (CCF) dan diselenggarakan bersama oleh OceanBase dan tim kerja sama akademik dari Institut Penelitian Teknologi Ant. Kompetisi ini terutama terbuka untuk mahasiswa di seluruh negeri yang menyukai database. Dengan tujuan "kompetisi, komunikasi, dan pertumbuhan", kompetisi ini membangun platform pertukaran teknis berdasarkan acara tersebut, mempromosikan mekanisme pelatihan bakat yang inovatif di universitas, dan tidak hanya membantu siswa secara sistematis mempelajari pengetahuan teoritis database dari awal, meningkatkan kemampuan praktis database siswa, membantu siswa mendapatkan pengalaman di perusahaan, mempromosikan pengembangan bakat database dalam negeri, dan menciptakan percikan inovasi.
Kompetisi pendahuluan OceanBase didasarkan pada MiniOB, platform pelatihan basis data yang cocok untuk latihan pemula. Ini memiliki sejumlah kecil kode dan mudah dipelajari. Ini berisi berbagai modul utama basis data dan merupakan platform pembelajaran basis data yang sistematis. Berdasarkan platform ini, serangkaian pertanyaan dari yang mudah hingga yang mendalam disiapkan untuk membantu siswa memulai dengan landasan "nol".
Kompetisi Database OceanBase 2023 sedang berlangsung. Untuk lebih jelasnya, silakan lihat Kompetisi OceanBase.
Tutorial pengantar kontes
Pengantar pertanyaan kompetisi
Setelah menyelesaikan soal dan lulus tes mandiri, Anda dapat mengirimkan kode untuk pengujian di kamp pelatihan MiniOB.
Sebelum mengirimkan, silakan merujuk dan mempelajari instruksi kamp pelatihan.
Pertanyaan Umum Kompetisi
Gudang ini membangun platform pengembangan online cepat berdasarkan Gitpod. Klik tombol di bawah untuk merasakannya dengan satu klik (disarankan browser Chrome).
Anda perlu menginstal beberapa dependensi saat memasuki Gitpod untuk pertama kalinya. Setelah instalasi selesai, antarmuka terminal akan menampilkan "Ketergantungan berhasil diinstal". Jalankan perintah bash build.sh --make -j4
untuk mengkompilasi MiniOB.
Komunitas OceanBase dengan hangat menyambut setiap pengembang yang menyukai teknologi basis data dan berharap dapat memulai perjalanan benturan ide dengan Anda. Baik itu penyesuaian format dokumen atau koreksi teks, perbaikan bug atau penambahan fitur baru, ini adalah salah satu cara untuk berpartisipasi dan berkontribusi pada komunitas OceanBase. Berikan kontribusi pertama Anda sekarang! Untuk detail lebih lanjut, silakan lihat Kontribusi Komunitas.
MiniOB mengadopsi Lisensi Permisif Mulan, versi 2. Anda dapat dengan bebas menyalin dan menggunakan kode sumber. Saat memodifikasi atau mendistribusikannya, harap mematuhi Lisensi Permisif Mulan, versi 2.