MiniOB é um projeto introdutório de aprendizagem de banco de dados desenvolvido pela equipe OceanBase com base no protótipo do curso de banco de dados da Universidade de Ciência e Tecnologia Huazhong e em conjunto com muitas universidades, e é especialmente projetado para estudantes com base zero. Nosso objetivo é fornecer um programa amigável de aprendizado de banco de dados para estudantes, profissionais de banco de dados, entusiastas ou pessoas interessadas em tecnologias básicas.
O código geral do MiniOB é conciso e fácil de usar. Ele projetou uma série de perguntas fáceis a profundas para ajudar os alunos a começar do zero, compreender rapidamente o banco de dados e aprender em profundidade o núcleo do banco de dados. MiniOB simplifica muitos módulos, como não considerar operações simultâneas, recursos de segurança e funções complexas de gerenciamento de transações, a fim de aprender melhor os princípios de implementação de banco de dados. Esperamos que, através do treinamento do MiniOB, os alunos sejam capazes de dominar as funções e relações de sinergia do módulo do kernel do banco de dados e tenham certos recursos de codificação de engenharia, como gerenciamento de memória, comunicação de rede e processamento de E/S de disco, etc., o que ajudará os alunos a se destacarem em futuras entrevistas e empregos.
A documentação de suporte do código e os comentários de código relacionados foram gerados e publicados por meio do GitHub Pages. Você pode visitar diretamente: MiniOB GitHub Pages.
Para ajudar os desenvolvedores a começar e aprender melhor o MiniOB, é recomendável ler o seguinte conteúdo:
Para ajudar todos a aprender melhor os fundamentos dos bancos de dados, a comunidade OceanBase oferece uma série de tutoriais. Para obter mais documentação, consulte as páginas do MiniOB GitHub. Aprendizagem recomendada:
A arquitetura geral do MiniOB é mostrada na figura abaixo:
em:
Módulo de rede: responsável por interagir com o cliente, enviando e recebendo solicitações e respostas do cliente;
Análise SQL: analisa a instrução SQL inserida pelo usuário em uma árvore de sintaxe;
Cache do plano de execução: O módulo de cache do plano de execução armazenará em cache o plano de execução gerado pela primeira vez pelo SQL na memória. As execuções subsequentes podem executar repetidamente este plano, evitando processos repetidos de otimização de consulta (não implementados).
Módulo de análise semântica: converte a árvore sintática gerada na estrutura de dados interna do banco de dados (parcialmente implementada);
Cache de consulta: armazena em cache os resultados da consulta executada na memória e pode retorná-los diretamente na próxima consulta (não implementado);
Otimização de consulta: Ajuste/reescreva a árvore sintática de acordo com certas regras e dados estatísticos. (parcialmente implementado);
Planejar execução: executar e gerar resultados de acordo com a descrição da árvore sintática;
Gerenciamento de sessões: gerencie conexões de usuários e ajuste parâmetros de uma determinada conexão;
Gerenciamento de metadados: registre informações atuais de metadados de banco de dados, tabelas, campos e índices;
Cliente: Como ferramenta de teste, recebe solicitações do usuário e inicia solicitações ao servidor.
A Competição de Banco de Dados OceanBase 2022 é uma competição de verificação em linha de banco de dados orientada pelo Comitê Profissional de Banco de Dados da Federação de Computação da China (CCF) e organizada conjuntamente pela OceanBase e pela equipe de cooperação acadêmica do Ant Technology Research Institute. Este concurso é aberto principalmente a estudantes universitários de todo o país que amam bases de dados. Com o objetivo de “competição, comunicação e crescimento”, constrói uma plataforma de intercâmbio técnico baseada no evento, promove mecanismos inovadores de formação de talentos nas universidades, e não só. ajuda os alunos a aprender sistematicamente o conhecimento teórico de banco de dados a partir do zero, melhorar a capacidade prática de banco de dados dos alunos, ajudar os alunos a ganhar experiência em empresas, promover o desenvolvimento de talentos nacionais em bancos de dados e criar faíscas de inovação.
A competição preliminar OceanBase é baseada no MiniOB, uma plataforma de treinamento de banco de dados adequada para iniciantes. Possui uma pequena quantidade de código e é fácil de aprender. Contém vários módulos principais do banco de dados e é uma plataforma de aprendizagem sistemática de banco de dados. Com base nesta plataforma, uma série de perguntas, de fáceis a profundas, são definidas para ajudar os alunos a começar com uma base “zero”.
A Competição de Banco de Dados OceanBase de 2023 está em pleno andamento. Para mais detalhes, consulte a Competição OceanBase.
Tutorial introdutório ao concurso
Introdução às questões da concorrência
Depois de responder às perguntas e passar no autoteste, você pode enviar o código para teste no campo de treinamento MiniOB.
Antes de enviar, consulte e estude as instruções do campo de treinamento.
Perguntas frequentes sobre competição
Este armazém estabelece uma plataforma de desenvolvimento online rápido baseada em Gitpod. Clique no botão abaixo para experimentá-lo com um clique (recomenda-se o navegador Chrome).
Você precisa instalar algumas dependências ao entrar no Gitpod pela primeira vez. Após a conclusão da instalação, a interface do terminal exibirá “Dependência instalada com sucesso”. Execute o comando bash build.sh --make -j4
para compilar o MiniOB.
A comunidade OceanBase dá as boas-vindas a todos os desenvolvedores que amam a tecnologia de banco de dados e esperam iniciar uma jornada de colisão de ideias com você. Quer se trate de ajuste de formato de documento ou correção de texto, correção de bugs ou adição de novos recursos, é uma das formas de participar e contribuir com a comunidade OceanBase. Faça sua primeira contribuição agora! Para obter mais detalhes, consulte Contribuições da comunidade.
MiniOB adota a Licença Permissiva Mulan, versão 2. Você pode copiar e usar livremente o código-fonte Ao modificá-lo ou distribuí-lo, cumpra a Licença Permissiva Mulan, versão 2.