数据库学习笔记 -----DBMS体系结构介绍

 

概要

查询处理器

DDL解释器

DML编译器

查询执行引擎 

执行过程

存储处理器

事务管理器

文件管理器

缓冲区管理器

权限和完整性管理器

执行过程 

物理部分

数据文件和索引

统计数据

数据字典 


概要

 


数据库管理系统的结构由上面一张图就可以表示清楚了
两幅图表达的意思是一样的
从上到下分别是用户接口 ,查询处理器,存储管理器,磁盘存储


用户接口提供了好几种不同的接口比如应用界面(客户端 web等),应用程序(cpp/python等),SQL,管理工具

查询处理器将用户接口传进来的指令转化成低级指令 屏蔽下层的物理实现细节                       

存储管理器负责将查询处理器的指令转换成(操作系统级别)文件管理系统的指令,保证更好更快的数据查询、更新、存储。

磁盘存储部分存放有助于数据库运行的数据结构(索引)和实际的数据文件(因为数据很多必须放在磁盘里不能放在内存里), 

下面将一一介绍

查询处理器

 

DDL解释器

解释SQL中的DDL语句并将这些定义记录在数据字典中(数据字典就是描述数据库表关系的数据,比如一个表中所有属性的名字 表的名字等等)

DML编译器

将SQL中的DML语句找到最佳查询优化方案(一个查询通常可以有多种实现方案),转换成查询执行引擎能理解的低级指令 

查询执行引擎 

 执行有DML编译器产生的低级指令

执行过程

场景1:用户通过应用界面操作数据库(比如点击界面上的“查询”) 这样一个操作在之前的编译汇编链接之后转换成应用程序目标码中  实际调用的是相应的sql的dml语句  这个sql的dml语句通过DML编译器转换成低级指令给查询处理引擎 然后传递给存储管理器执行磁盘上数据的操作

场景2:用户通过应用程序(比如python的pymsyql模块等等)进行数据库操作   这样一个操作在经过编译汇编链接之后转换成应用程序目标码  然后实际调用的也是相应的sql语句   这个sql的dml语句通过DML编译器转换成低级指令给查询处理引擎 然后传递给存储管理器执行磁盘上数据的操作


场景3:用户通过在终端直接用sql的dml进行数据库操作     这个sql语句通过DML编译器转换成低级指令给查询处理引擎 然后传递给存储管理器执行磁盘上数据的操作

场景4:数据库管理员(DBA)要进行数据表的编辑(比如增加删除一个表 增加某个属性等等 )     这个sql的DDL语句的相应更改会存到磁盘中的数据字典中

存储处理器

 

事务管理器

 保证在有并发 和有故障的情况下 外部指令也能正常的运行,数据库的状态也能保持正确和一致

文件管理器

 管理磁盘上存储空间的分配

缓冲区管理器

数据库的主体数据存放在硬盘中,通常比内存大的多 不可能一股脑都塞到内存中
缓冲去管理器就是决定硬盘中哪些数据应该传到内存中 哪些数据应该放到内存缓冲区中 

权限和完整性管理器

检查访问用户的权限
检查要编辑的数据 是否满足完整性约束(完整性约束就是检查插进来的数据是否满足给定的约束比如主键 ,Not NULL等)

执行过程 

存储管理器把上层查询处理器传进来的指令通过 权限和完整性管理器检查保证完整性约束和满足权限

 通过事务管理器保证并发状态和故障时正常执行

然后通过缓冲区管理器和文件管理器完成指令对数据的操作

物理部分

 

数据文件和索引

把数据库的数据部分看成是一本书的话 

 数据文件即数据库的数据主体 即后面书的内容主体

索引就是对数据库数据搜索的一种辅助数据结构 即前面书的目录部分  (索引可以有多种实现方式 后面会专门有一篇博文讲索引)

统计数据

数据字典 

存放关于数据库结构的数据 叫"元数据" 

比如关于标表的名字 表的所有属性的名字 表中所有元组的数目

发布了61 篇原创文章 · 获赞 17 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/vjhghjghj/article/details/103547353
今日推荐