本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies

本文翻译了如下章节, 介绍数据库整体框架:

Global overview

所谓的数据库是指一组易于访问和修改的数据集合。但是,但是一组简单的文件也能实现这个功能。实际上,最近简单的一些数据库系统如SQLLite实现的功能与一组文件没有大的差异。但是,SQLLite可以算作设计得非常优秀的一组文件。因为它支持:

  1. 通过事务管理保证了数据的安全性和一致性。
  2. 大数据快速处理能力,能处理百万级的数据。

我们现在来了解一下数据库包含哪些重要的组件,请看这张数据数据库架构图。

在写下这篇文章之前,我已经研究了大量关于如何实现数据库的书籍、文档、甚至源代码。因此,别太在意我为何要这样设计数据库的架构图,以及这些组件为何取这样的名字。针对这篇文档,我做了一些取舍。真正需要关注的是这些组件承担的不同职责。 一句话,数据库是由一组相互交互,功能不同的组件构成的系统。

The core components

  1. The process manager

    进程管理器。许多数据库都有专用的进程池或者线程池管理。甚至,仅仅为了获得纳秒级的性能提升,许多现代处理器设计了专用的线程,代替操作系统的线程。

  2. The network manager

    网络管理。对于分布式数据库来讲,网络I/O是一个关键问题。所以设计了专用的网络管理器。

  3. File system manager

    文件系统管理。磁盘I/O是数据库最关键的性能瓶颈(Disk I/O is the first bottleneck of a database)。设计一个文件管理器能完美的与操作系统的文件系统交互,甚至替换操作系统的文件系统是非常主要的。

  4. The memory manager

    内存管理。为了避免频繁的磁盘I/O操作,通过一个块大的内存来缓存数据是必须的。但是,有了大的内存缓存,就需要对它高效的管理。特别是有大量查询并发访问内存缓存的时候。

  5. Security Manager

    安全管理。管理用户授权和权限认证。

  6. Client manager

    客户端管理。管理客户端的连接。

The tools

  1. Backup manager

    备份管理。数据库备份与恢复。

  2. Recovery manager

    数据库恢复系统。数据库崩溃后重启,保证数据库的一致性。

    1. Monitor manager

      监控系统。日志记录数据库的活动状态,并提供功能监控数据库系统。
  3. Administration manager

    系统管理。元数据存储管理(例如表名、表结构)。提供工具管理数据表结构、存储空间配置等。

The query Manager

  1. Query parser

    查询解析器。SQL编译,检查查询语句的有效性。

  2. Query rewriter

    查询重写器。SQL前置优化。

  3. Query optimizer

    查询优化器。对SQL语句做性能上的优化(类似C++编译器优化代码执行路径,提升执行效率)。

  4. Query executor

    查询执行器。编译SQL代码,执行查询数据库操作。

The data manager

  1. Transaction manager

    事务管理。启动/提交/回滚事务。

  2. Cache manager

    缓存管理。在读取数据之前将数据提前加载到内存;在修改数据之后将数据持久化到磁盘。

  3. Data access manager

    数据访问管理器。操作磁盘上的数据文件。

接下来的章节,我将重点介绍数据库如果执行一条SQL的查询操作。通过三部分展开:

- the client manager—客户端管理

- the query manager—查询管理

- the data manager —数据管理

本文为博主原创文章,未经博主允许不得转载。其它文章请访问:http://blog.csdn.net/ylforever

关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)的更多相关文章

  1. 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  2. 关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  3. 关系型数据库工作原理-查询优化器之索引(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  4. 关系型数据库工作原理-数据特征统计分析(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  5. 关系型数据库工作原理-数据库查询器(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  6. 关系型数据库工作原理-归并排序(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  7. 关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  8. 关系型数据库工作原理-高速缓存(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  9. 关系型数据库工作原理-快速缓存(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

随机推荐

  1. Mybatis 动态使用update语句

    update pf_product_audio_t <trim prefix="set" suffixOverrides=","> <if t ...

  2. 区间DP的四边形不等式优化

    今天上课讲DP,所以我学习了四边形不等式优化(逃 首先我先写出满足四边形不等式优化的方程:

  3. Java经典编程题50道之二十三

    给一个不多于5位的正整数,要求:①求它是几位数:②逆序打印出各位数字. public class Example23 {    public static void main(String[] arg ...

  4. 使用JSONP进行跨域Ajax 调用

    JSONP 是啥 JSONP 全称是JSON with Padding. 当需要进行跨域Ajax 调用的时候, 需要用到JSONP 协议. 客户端 $.ajax({ url: 'http://xxx' ...

  5. bzoj 3048[Usaco2013 Jan]Cow Lineup 思想,乱搞 stl

    3048: [Usaco2013 Jan]Cow Lineup Time Limit: 2 Sec  Memory Limit: 128 MBSubmit: 237  Solved: 168[Subm ...

  6. mac清除某个端口的占用

    lsof -i:8080查找某个应用的pid kill  pid就可以了

  7. python 下载新的模块

    首先, 进入到python的安装目录 在安装目录下有一个Scripts文件夹. 然后里面有一个pip.exe 文件, 这个文件就是执行安装包的. 执行: pip.exe install django ...

  8. WebApi 参数绑定方法

    WebAPI 2参数绑定方法   简单类型参数 Example 1: Sending a simple parameter in the Url 01 02 03 04 05 06 07 08 09 ...

  9. mysql数据库 索引 事务和事务回滚

    mysql索引 索引相当于书的目录优点:加快数据的查询速度缺点:占物理存储空间,添加,删除,会减慢写的速度 查看表使用的索引 mysql> show index from 表名\G;(\G分行显 ...

  10. Pandaboard ES编译bootloader、xloader、内核、以及安卓系统

    Building bootloader and kernel Bootloader Startwith building the bootloader. To learn more about the ...