README.md 2.7 KB
Newer Older
羽飞's avatar
docker  
羽飞 已提交
1 2 3 4
# Introduction
miniob 是 OceanBase与华中科技大学联合开发的、面向"零"基础数据库内核知识同学的一门数据库实现入门教程实践工具。
miniob设计的目标是让不熟悉数据库设计和实现的同学能够快速的了解与深入学习数据库内核,期望通过相关训练之后,能够对各个数据库内核模块的功能与它们之间的关联有所了解,并能够在
使用数据库时,设计出高效的SQL。面向的对象主要是在校学生,并且诸多模块做了简化,比如不考虑并发操作。
羽飞's avatar
羽飞 已提交
5
注意:此代码仅供学习使用,不考虑任何安全特性。
羽飞's avatar
羽飞 已提交
6

羽飞's avatar
docker  
羽飞 已提交
7 8
[GitHub 首页](https://github.com/oceanbase/miniob)

羽飞's avatar
羽飞 已提交
9
# How to build
羽飞's avatar
羽飞 已提交
10
直接在本地搭建开发环境,可以参考 [how_to_build](docs/how_to_build.md)
羽飞's avatar
docker  
羽飞 已提交
11 12 13 14 15 16 17 18 19 20 21 22

# Docker

首先要确保本地已经安装了Docker。

- 使用 Dockerfile 构建

Dockerfile: https://github.com/oceanbase/miniob/blob/main/Dockerfile

```bash
# build
docker build -t miniob .
羽飞's avatar
羽飞 已提交
23
docker run --privileged -d --name='miniob' miniob:latest
羽飞's avatar
docker  
羽飞 已提交
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49

# 进入容器,开发调试
docker exec -it miniob bash
```

- 使用docker hub 镜像运行

```bash
docker run oceanbase/miniob
```

Docker环境说明:
docker基于`CentOS:7`制作。

镜像包含:

- jsoncpp
- google test
- libevent
- flex
- bison(3.7)
- gcc/g++ (version=11)
- miniob 源码(/root/source/miniob)

docker中在/root/source/miniob目录下载了github的源码,可以根据个人需要,下载自己仓库的源代码,也可以直接使用git pull 拉取最新代码。
/root/source/miniob/build.sh 提供了一个编译脚本,以DEBUG模式编译miniob。
羽飞's avatar
羽飞 已提交
50

羽飞's avatar
羽飞 已提交
51 52 53
# 数据库管理系统实现基础讲义
由华中科技大学谢美意和左琼老师联合编撰数据库管理系统实现教材。参考 [数据库管理系统实现基础讲义](docs/lectures/index.md)

羽飞's avatar
羽飞 已提交
54 55 56
# miniob 介绍
[miniob代码架构框架设计和说明](https://github.com/OceanBase-Partner/lectures-on-dbms-implementation/blob/main/miniob-introduction.md)

羽飞's avatar
羽飞 已提交
57
# miniob 题目
羽飞's avatar
羽飞 已提交
58
[miniob 题目](docs/miniob_topics.md)
羽飞's avatar
羽飞 已提交
59 60 61

# miniob 实现解析

羽飞's avatar
羽飞 已提交
62
[miniob-date 实现解析](https://oceanbase-partner.github.io/lectures-on-dbms-implementation/miniob-date-implementation.html)
羽飞's avatar
羽飞 已提交
63

羽飞's avatar
羽飞 已提交
64
[miniob drop-table 实现解析](https://oceanbase-partner.github.io/lectures-on-dbms-implementation/miniob-drop-table-implementation.html)
羽飞's avatar
羽飞 已提交
65

羽飞's avatar
羽飞 已提交
66
[miniob select-tables 实现解析](https://oceanbase-partner.github.io/lectures-on-dbms-implementation/miniob-select-tables-implementation.html)
羽飞's avatar
羽飞 已提交
67

羽飞's avatar
羽飞 已提交
68
[miniob 调试篇](https://oceanbase-partner.github.io/lectures-on-dbms-implementation/miniob-how-to-debug.html)
羽飞's avatar
羽飞 已提交
69 70 71 72 73

# Windows

[如何在Windows上使用Docker开发miniob](docs/how_to_dev_miniob_by_docker_on_windows.md)