前言
小伙伴在面试的时候,有没有被问道过:如何设计一个关系型数据库?如果你没有看过本文,又不谙此道,那肯定会慌张不易,答不到点子上。别慌,接下来我们一起来简单了解一下吧。
模块划分
如何设计一个关系型数据库?其实只需要划分为两个部分,如下图所示:
存储部分
该部分类似于一个文件系统,将数据持久化到存储设备当中。
程序实例
程序实例主要是对存储进行逻辑上的管理,划分为8个子模块:
- 存储管理:将数据的逻辑关系转换为物理存储关系
- 缓存机制:主要是优化执行效率
- SQL解析:将SQL语句进行解析
- 日志管理:记录操作
- 权限划分:进行多用户管理
- 容错机制:灾难恢复
- 索引管理:优化数据查询效率
- 锁管理:支持并发操作
看完过后是不是觉得很简单呢,当然这属于看着简单,实现复杂系列。