如何设计一个关系型数据库?
主要是考察模块划分能力 。
首先第一步。数据的存储(文件系统) 我们需要放到 机械硬盘或者 SSD 固态硬盘上的。
其次,光有存储是不行的,我们得有程序的实例,业务逻辑结构映射出物理结构来。以及在程序中提供获取以及管理的方式。
还有必要的问题追踪机制。
再者应当设计一个文件的存储管理模块,有了管理模块,我们对文件的存储不能每次通过IO读取硬盘上的数据,这样是非常慢的,
所以我们必须再设计出一个缓存机制,每次读取数据都可以通过缓存机制,每次读取缓存中的数据。
我们需要设计出一个SQL模块来正确有效的读取出我们的数据。
有了SQL模块后,为了方便我们对操作记录的查找回看等等,所以我们需要日志模块。
以上有了基础的模块,其次我们需要考虑的是权限划分,不同角色所对应的权限操作是不同的。
再者我们需要对数据库的崩溃异常做出管理,如果发生了崩溃 能恢复到什么程度,所以应该设计出一个容灾机制。
再者,能够更好的使用数据库,操作起来能够支持并发,所以接下来应该设计最能够突出数据库特点的 索引模块 锁模块。