DBMS 的结构

2025 年 1 月 8 日 | 阅读 5 分钟

DBMS

DBMS 的意思是数据库管理系统,它是一种用于创建、删除或操作数据库的工具或软件。数据库管理系统 (DBMS) 是一个为存储、检索、查询和管理数据而创建的软件程序。通过用户界面 (UI),授权实体可以生成、读取、更新和销毁数据。

数据库管理系统之所以重要,是因为它们为程序员、数据库管理员和最终用户提供了统一的数据视图,从而减轻了应用程序和最终用户对理解数据物理位置的需求。应用程序编程接口 (API) 负责处理针对特定类型数据的互联网请求和响应。

在营销材料中,“数据库即服务”(DBaaS) 这个短语可能被用来指代通过互联网提供的关系型和非关系型 DBMS 组件。

DBMS 的用户包括应用程序程序员、数据库管理员 (DBA) 和最终用户。

数据库管理员通常是唯一直接使用 DBMS 的人员。如今,最终用户通过程序员创建的前端界面读写数据库,而程序员则使用云 API 与 DBMS 进行连接。

Structure of DBMS

数据库系统由三个部分组成:

  • 查询处理器
  • 存储管理器
  • 磁盘存储

以下是对它们的解释:

1. 查询处理器

顾名思义,查询处理器负责处理查询。简单地说,它执行用户的查询。通过这种方式,查询处理器帮助数据库系统使数据访问简单易行。查询处理器的主要职责是成功执行查询。查询处理器将用户应用程序程序提供的请求转换为计算机可以理解的指令。

查询处理器的组成部分

  • DDL 解释器

DDL 是数据定义语言的缩写。顾名思义,DDL 解释器解释 DDL 语句,例如用于模式定义的语句(如 create、remove 等)。这种解释会产生一组表,其中包含存储在数据字典中的元数据(数据的描述)。元数据可以存储在数据字典中。本质上,它是磁盘存储的一部分,将在本文后面部分进行介绍。

  • DML 编译器

DML 编译器是数据操作语言的缩写。与其名称一致,DML 编译器将 DML 语句(如 select、update 和 delete)转换为低级指令或机器可读的目标代码,以便执行。查询优化也是 DML 编译器的另一个功能。因为单个查询通常可以转换为多个评估计划。因此,需要进行一些优化来选择成本最低的评估计划。这个过程称为查询优化,完全由 DML 编译器执行。简单地说,查询优化确定了执行查询的最有效方法。

  • 嵌入式 DML 预编译器

在查询评估之前,应用程序程序中的嵌入式 DML 命令(如 SQL 中的 SELECT、FROM 等)必须预编译成标准过程调用(主机语言可以理解的程序指令)。因此,嵌入在应用程序程序中的 DML 语句必须由嵌入式 DML 预编译器转换为例程调用。

  • 查询优化器

它首先获取查询的评估计划,执行它,然后返回结果。简单地说,查询评估引擎在返回查询结果之前,会评估用于访问数据库内容的 SQL 命令。简而言之,它负责分析查询并执行 DML 编译器生成的对象代码。Apache Drill、Presto 等是查询评估引擎的一些示例。

2. 存储管理器

存储管理器是一个应用程序,充当查询和数据库中存储的数据之间的桥梁。它的另一个名称是数据库控制系统。通过应用约束和执行 DCL 指令,它保持数据库的一致性和完整性。它负责从数据库中检索、存储、更新和删除数据。

存储管理器的组成部分

以下是存储管理器的组成部分:

  • 完整性管理器

每当数据库发生任何更改时,完整性管理器将管理完整性约束。

  • 授权管理器

授权管理器验证用户是否有效并经过身份验证,以便进行特定查询或请求。

  • 文件管理器

此组件管理数据库的所有文件和数据结构。

  • 事务管理器

它负责在事务之前和之后保持数据库的一致性。并发进程通常由该组件控制。

  • 缓冲区管理器

数据在主存储器和内存之间的传输以及缓存的管理由缓冲区管理器完成。

  • 恢复管理器

资源管理器主要目的是确保数据库在发生故障时保持一致状态。它控制各种备份和恢复操作。

  • 调度器

它同步了不同用户同时执行的并发任务。它控制事务操作执行的相对顺序。

  • 命令处理器

它负责处理授权控制模块传递的查询。

3. 磁盘存储

DBMS 可以使用各种类型的数据结构作为物理系统实现的一部分,以磁盘存储的形式。

磁盘存储的组成部分

以下是磁盘管理器的组成部分:

  • 数据字典

它包含元数据(数据的描述),这意味着数据库的每个对象都有一些关于其结构的信息。因此,它创建了一个存储库,其中包含有关数据库对象结构的信息。

数据字典包含以下信息:

  • 包括表名、属性、属性长度以及每个表的行数。
  • 数据字典包含数据库事务与其所属数据项之间的关联。
  • 它包含数据库事务与其关联数据项之间的各种关系。
  • 如果某些数据定义发生更改,则有助于预测哪些事务会发生更改。
  • 数据约束,即允许的值范围。
  • 它包含有关物理数据库设计结构的信息,例如存储、文件和访问路径。
  • 使用统计信息,例如查询频率和事务。
  • 它包含有关数据库用户、他们的职责和访问权限的详细描述。
  • 它基本上用于控制数据完整性、数据库操作和准确性。

数据字典的重要性

由于以下一些原因,数据字典在数据库中很重要:

  1. 它提高了数据库管理员对信息系统的控制力,以及用户对系统使用的理解。
  2. 它通过记录每个设计阶段并存储设计决策的结果来帮助记录数据库设计过程。
  3. 它有助于为那些视图的数据库定义找到想法。
  4. 在创建报告(其数据元素在程序中使用)时,它提供了极大的支持。
  5. 它促进了数据独立性,即数据库不受应用程序程序结构添加或修改的影响。
  • 数据文件

此组件将数据存储在文件中。

  • Indices

这些索引用于以非常快速有效的方式访问和检索数据。


下一个主题DBMS 中的一致性