面试题:如何设计一个关系型数据库

张贤 2020年03月06日 81次浏览

咋一看这个题目有点空,其实能够考研我们对数据库设计的整体把控。首先数据库系统可以分为两层:

  • Server 层(也就是程序实例),提供获取以及管理数据的方式,还要必要的问题追踪机制。Server 层又可以细分为:
    • 存储管理:将数据的逻辑关系转换为物理关系
    • 缓存机制:优化执行效率
    • SQL 解析:
    • 日志管理:记录用户操作
    • 权限划分:进行多用户管理
    • 容灾机制:灾难恢复模块
    • 索引管理:优化查询效率
    • 锁管理:支持并发操作
  • 存储系统系统(也就是数据库引擎,负责与文件系统打交道,把数据持久化到磁盘中)

    上述的数据库模块实际和其他项目是类似的,很有借鉴意义。