抛开特定的DBMS产品来说,数据库系统的实现可以简单分为如下三个部分:
1. 主存和缓冲区管理
2. 事务处理
3. 查询处理
从用户的角度出发,可以通过下面这张图来整体上看到一个DBMS的轮廓(图片摘自书籍《数据库系统实现》)
![](http://img.blog.itpub.net/blog/attachment/201410/12/24816552_1413099200zYlK.png?x-oss-process=style/bb)
其中:单线框表示系统成分,双线框表示内存中的数据结构。实线知名控制和数据流,虚线指明仅是数据流。
下面,简单介绍这三个部分的作用:
一 主存和缓冲区管理
专业上把内存和硬盘称为主存和辅助存储器。数据必须在主存储器中,才能对其进行有用的操作。
存储管理器的任务是控制数据在磁盘上的放置和在磁盘与主存之间的移动。跟踪文件在磁盘上所处的位置,获得缓冲区管理器所要求的文件的磁盘块号。
缓冲区管理器负责将可用的主存空间分割成缓冲区。缓冲区的本质是内存的一部分,磁盘的内容可以传送到缓冲区中。此时,所需的数据可以直接通过缓冲区得到,而不需要和磁盘交互。同时,一般的DBMS产品中,会在缓冲区中保存如下信息:
1. 数据:数据库自身的内容。
2. 元数据
3. 日志记录
4. 统计信息
5. 索引
二 事务处理
将一个或多个数据库操作组成一组,称为事务。事务具有ACID特性。事务管理器从应用系统接收事务命令,从而得知什么时候开始事务,什么时候结束事务,以及应用系统的期望。事务处理器执行以下任务:
1. 日志记录
2. 并发控制
3. 死锁解决
三 查询处理
日常工作中,我们接触的最多的就是对数据的查询,查询处理器通过下面两个结构来完成我们对数据的查询功能:
1. 查询编译器
将SQL语言翻译为一种内部形式,称为执行计划。查询编译器包括如下三个部分:
- 查询分析器
- 查询预处理器
- 查询优化器,会根据数据库的统计信息,将SQL查询转换为最有效的操作序列
2. 执行引擎
负责和其他部件的交互。如和日志管理器。可以简单理解为在此处,会发生我们听到的最多的I/O操作,CPU利用率等。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24816552/viewspace-1296312/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24816552/viewspace-1296312/