项目来源
这个项目是我大二学习了数据库系统实现后实操的一个简易的数据库存储引擎,意在巩固知识提高代码能力。 在未来可能会继续完善当做毕设用。
此项目内容
在此仓库中,我会实现一个简易的db,并慢慢补上相关的实现以及个人理解的文章。
使用语言:纯Java。
初版预计实现:
- 数据段页式管理
- 稠密索引、稀疏索引、辅助索引、Btree。
- 查询代价估算
- 查询编译器(目前暂不实现)
- 实现事务管理(实现 串行化 和 可重复读 级别)以及成组提交
- 实现MVCC
- UNDO/REDO日志,实现级联回滚
- 两次写
- 页缓存以及替换的相关组件
目前的架构图
db的基础
- 目录
- 存储管理
- 磁盘上的数据-定长记录
- 块与记录的概念-地址转换与指针混写
- 变长数据-普通记录与blob对象
- 对记录增删改查
- 索引结构
- 什么是索引
- 顺序文件
- 稠密索引
- 稀疏索引
- 多级索引
- 辅助索引