首先,如果被问到这个问题。面试官主要想考察你对数据库的了解与数据库相关模块划分,那么,数据库最重要的地方是什么?
数据库,顾名思义,存储数据的地方。所以最重要的就是存储模块,专门用来负责存储数据。
但是只有存储是不行的,还需要有程序实例,用程序的结构来映射出物理结构。也就是RDBMS,数据库管理系统。
除此之外,为了加速查询的速度,需要查缓存,所以需要考虑缓存机制。
数据库也需要提供SQL的语法检查,还有SQL优化。
数据库存放的数据需要有日志管理、权限管理、容灾机制、索引管理、锁管理等等。
综上所述,考虑设计一个关系型数据库,需要如下模块: