프로젝트 소개

MiniOB는 OceanBase 팀이 화중과기대학의 데이터베이스 과정 프로토타입을 기반으로 여러 대학과 공동으로 재개발한 데이터베이스 입문 학습 프로젝트로, 초보 학생, 데이터베이스 실무자 및 애호가를 대상으로 합니다. 이 프로젝트는 학습 목적으로만 제공되며, 코드의 안전성과 안정성을 보장하지 않으므로 프로덕션 환경에 직접 사용하는 것은 권장되지 않습니다. 전체 코드는 간결하고 시작하기 쉬우며, 점진적으로 난이도가 높아지는 일련의 문제를 설계하여 학습자가 처음부터 데이터베이스를 이해하고 커널을 깊이 파고들 수 있도록 돕습니다. 교육 편의를 위해 MiniOB는 동시성 작업, 보안 기능, 복잡한 트랜잭션 관리와 같은 많은 모듈을 단순화했습니다. 시스템 아키텍처는 여러 모듈로 구성됩니다: 네트워크 모듈은 클라이언트와의 상호작용, 요청 및 응답 송수신을 담당합니다; SQL 파싱은 사용자 입력 SQL 문을 구문 트리로 변환합니다; 의미 분석 모듈은 구문 트리를 데이터베이스 내부 데이터 구조로 변환합니다; 쿼리 최적화는 규칙과 통계 데이터에 따라 구문 트리를 조정하거나 재작성합니다(부분 구현); 계획 실행은 구문 트리 설명에 따라 실행하고 결과를 생성합니다; 저장 엔진은 데이터 저장 및 검색을 담당합니다; 트랜잭션 관리는 현재 MVCC 모드만 구현합니다; 로그 관리는 데이터베이스 작업 로그를 기록합니다; 레코드 관리는 테이블 데이터 파일의 레코드 저장을 담당합니다; B+ Tree는 테이블 인덱스 저장 구조로 사용됩니다; 또한 세션 관리, 메타데이터 관리 및 테스트 도구로 사용되는 클라이언트가 있습니다. 프로젝트는 프레임워크 소개, 소스 코드 컴파일, 실행 방법, GitPod 개발 환경 및 doxygen 코드 문서를 포함한 관련 설계 문서와 코드 주석을 제공하며 GitHub Pages를 통해 게시됩니다. OceanBase 커뮤니티는 또한 《0에서 1까지 데이터베이스 커널 실전 튜토리얼》 비디오 튜토리얼과 기초 강의 자료, 그리고 화중과기대학의 《데이터베이스 관리 시스템 구현》 교재와 같은 일련의 튜토리얼을 제공합니다. MiniOB는 전국 대학생 컴퓨터 시스템 능력 대회 예선의 실습 플랫폼으로, 대회는 '경쟁, 교류, 성장'을 목표로 하여 대회 기반 기술 교류 플랫폼을 구축합니다. 참가자는 MiniOB 훈련 캠프에 코드를 제출하여 테스트할 수 있으며, 공식적으로 훈련 캠프 사용 설명과 대회 FAQ를 제공합니다. 환경 구축 비용을 줄이기 위해 프로젝트는 오픈 소스 학당 온라인 프로그래밍 환경도 제공하며, 로컬 개발 환경 준비 문서도 자세히 설명되어 있습니다. 프로젝트는 목란 완화 라이선스 버전 2를 채택하여 소스 코드를 자유롭게 복사하고 사용할 수 있으며, 수정 또는 배포 시 이 라이선스를 준수해야 합니다. 커뮤니티는 문서 조정, 버그 수정 및 새로운 기능 추가를 포함한 개발자 기여를 환영하며, help wanted로 표시된 새로운 기능 개발 작업도 공개했습니다.