关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:《 How does a relational database work》。原文链接:http://coding-geek.com/how-databases-work/#Buffer-Replacement_strategies
本文翻译了如下章节, 介绍数据库整体框架:
Global overview
所谓的数据库是指一组易于访问和修改的数据集合。但是,但是一组简单的文件也能实现这个功能。实际上,最近简单的一些数据库系统如SQLLite实现的功能与一组文件没有大的差异。但是,SQLLite可以算作设计得非常优秀的一组文件。因为它支持:
- 通过事务管理保证了数据的安全性和一致性。
- 大数据快速处理能力,能处理百万级的数据。
我们现在来了解一下数据库包含哪些重要的组件,请看这张数据数据库架构图。
在写下这篇文章之前,我已经研究了大量关于如何实现数据库的书籍、文档、甚至源代码。因此,别太在意我为何要这样设计数据库的架构图,以及这些组件为何取这样的名字。针对这篇文档,我做了一些取舍。真正需要关注的是这些组件承担的不同职责。 一句话,数据库是由一组相互交互,功能不同的组件构成的系统。
The core components
The process manager
进程管理器。许多数据库都有专用的进程池或者线程池管理。甚至,仅仅为了获得纳秒级的性能提升,许多现代处理器设计了专用的线程,代替操作系统的线程。The network manager
网络管理。对于分布式数据库来讲,网络I/O是一个关键问题。所以设计了专用的网络管理器。File system manager
文件系统管理。磁盘I/O是数据库最关键的性能瓶颈(Disk I/O is the first bottleneck of a database)。设计一个文件管理器能完美的与操作系统的文件系统交互,甚至替换操作系统的文件系统是非常主要的。The memory manager
内存管理。为了避免频繁的磁盘I/O操作,通过一个块大的内存来缓存数据是必须的。但是,有了大的内存缓存,就需要对它高效的管理。特别是有大量查询并发访问内存缓存的时候。Security Manager
安全管理。管理用户授权和权限认证。Client manager
客户端管理。管理客户端的连接。
The tools
Backup manager
备份管理。数据库备份与恢复。Recovery manager
数据库恢复系统。数据库崩溃后重启,保证数据库的一致性。- Monitor manager
监控系统。日志记录数据库的活动状态,并提供功能监控数据库系统。
- Monitor manager
Administration manager
系统管理。元数据存储管理(例如表名、表结构)。提供工具管理数据表结构、存储空间配置等。
The query Manager
Query parser
查询解析器。SQL编译,检查查询语句的有效性。Query rewriter
查询重写器。SQL前置优化。Query optimizer
查询优化器。对SQL语句做性能上的优化(类似C++编译器优化代码执行路径,提升执行效率)。Query executor
查询执行器。编译SQL代码,执行查询数据库操作。
The data manager
Transaction manager
事务管理。启动/提交/回滚事务。Cache manager
缓存管理。在读取数据之前将数据提前加载到内存;在修改数据之后将数据持久化到磁盘。Data access manager
数据访问管理器。操作磁盘上的数据文件。
接下来的章节,我将重点介绍数据库如果执行一条SQL的查询操作。通过三部分展开:
- the client manager—客户端管理
- the query manager—查询管理
- the data manager —数据管理
本文为博主原创文章,未经博主允许不得转载。其它文章请访问:http://blog.csdn.net/ylforever
关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)的更多相关文章
- 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-事务管理(一)(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-查询优化器之索引(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...
- 关系型数据库工作原理-数据特征统计分析(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...
- 关系型数据库工作原理-数据库查询器(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...
- 关系型数据库工作原理-归并排序(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-高速缓存(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
- 关系型数据库工作原理-快速缓存(翻译自Coding-Geek文章)
本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...
随机推荐
- Python 中的闭包
通常来说,函数中的局部变量在函数调用结束的时候不能再被引用,所分配的空间也会被回收. 但是通过闭包这种技术,函数调用结束了,它的局部变量的值还可以保存在闭包里. 试举一例: def make_adde ...
- JS实现图片''推拉门''效果
JS实现图片''推拉门''效果 ''推拉门''动效也可以称作"手风琴"效果,大多数效果实现的思路基本是一样的,下面介绍两种方法,一种是通过改变图片的偏移位置实现移动,另一种是通 ...
- Python标准异常总结
Python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d ...
- Java反射获取字节码以及判断类型
一.获取类的字节码的三种方法: 1.使用Class.class Class<?> c1=String.class; 2.使用实例.getClass() String s= Clas ...
- maven中的传递依赖和传递依赖的解除
例如创建三个maven工程A B C pom文件分别为 A <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns: ...
- 深度学习中batch normalization
目录 1 Batch Normalization笔记 1.1 引包 1.2 构建模型: 1.3 构建训练函数 1.4 结论 Batch Normalization笔记 我们将会用MNIST数 ...
- PAT All Roads Lead to Rome 单源最短路
思路:单源最短路末班就好了,字符串映射成数字处理. AC代码 //#define LOCAL #include <stdio.h> #include <string.h> #i ...
- nyoj 1129 Salvation 模拟
思路:每个坐标有四种状态,每个点对应的每种状态只能走一个方向,如果走到一个重复的状态说明根本不能走到终点,否则继续走即可. 坑点:有可能初始坐标四周都是墙壁,如果不判断下可能会陷入是死循环. 贴上测试 ...
- Hadoop压缩
为什幺要压缩? 压缩会提高计算速度?这是因为mapreduce计算会将数据文件分散拷贝到所有datanode上,压缩可以减少数据浪费在带宽上的时间,当这些时间大于压缩/解压缩本身的时间时,计算速度就会 ...
- SpringMVC的数据转换,格式化和数据校验
在SpringMVC中,根据请求方法签名不同,将请求消息中的消息以一定的方式转换并绑定到请求方法的参数中,在请求信息到达真正调用处理方法的这一段时间内,SpringMVC还会完成很多其他的 ...