关系型数据库是如何工作的
全局概览
数据库一般可以用如下图形来理解:

核心组件
进程管理器(process manager):很多数据库具备一个需要妥善管理的进程/线程池。再者,为了实现纳秒级操作,一些现代数据库使用自己的线程而不是操作系统线程。
网络管理器(network manager):网路I/O是个大问题,尤其是对于分布式数据库。所以一些数据库具备自己的网络管理器。
内存管理器(memory manager):为了避免磁盘I/O带来的性能损失,需要大量的内存。但是如果你要处理大容量内存你需要高效的内存管理器,尤其是你有很多查询同时使用内存的时候。
安全管理器(Security Manager):用于对用户的验证和授权。
文件系统管理器(File system manager):磁盘I/O是数据库的首要瓶颈。具备一个文件系统管理器来完美地处理OS文件系统甚至取代OS文件系统,是非常重要的。
客户端管理器(Client manager):用于管理客户端连接。
...
工具
备份管理器(Backup manager):用于保存和恢复数据。
恢复管理器(Recovery manager):用于崩溃后重启数据库到一个一致状态。
监控管理器(Monitor manager):用于记录数据库活动信息和提供监控数据库的工具。
管理员管理器(Administration manager):用于保存元数据(比如表的名称和结构),提供管理数据库、模式、表空间的工具。
...
查询管理器
查询解析器(Query parser):用于检查查询是否合法
查询重写器(Query rewriter):用于预优化查询
查询优化器(Query optimizer):用于优化查询
查询执行器(Query executor):用于执行优化后的查询
数据管理器
数据存储管理器(Data storage manager):用于管理数据的存储和检索。
事务管理器(Transaction manager):用于管理数据库事务,确保 ACID 属性。
日志管理器(Log manager):用于记录数据库操作,用于崩溃恢复。
缓存管理器(Cache manager):数据被使用之前置于内存,或者数据写入磁盘之前置于内存。