数据库操作与恢复机制详解
立即解锁
发布时间: 2025-08-26 00:31:14 阅读量: 8 订阅数: 11 


数据库系统原理与实践精华
# 数据库操作与恢复机制详解
## 1. 数据库操作功能
数据库操作包含多个重要功能,以下为您详细介绍:
| 功能 | 描述 |
| --- | --- |
| 创建 | 依据存储模式创建数据库,并填充数据,涵盖大量数据文件、索引文件和数据库目录的创建、初始化与数据填充。 |
| 数据库初始化/终止 | 每个会话开始时需初始化数据库,结束时终止。初始化涉及设置系统缓冲区、系统参数、备份文件和运行时表等;终止时要从当前缓冲区更新相关文件和表,释放所有锁并关闭所有文件,确保数据库处于完整且自洽的状态。 |
| 运行单元初始化/终止 | 运行单元执行前需在数据库中记录,并加载和初始化必要的外部模式表;每个进程结束时,需更新并关闭这些表。 |
| 事务处理 | 为每个事务打开、读取、解释和更新必要的数据文件和索引文件,调用并发控制程序并生成备份数据。还会进行执行时查询优化和访问路径选择,以及隐私检查和数据完整性检查。事务开始时调用提交单元并应用必要的检索和更新锁,结束时释放所有锁。若事务失败,需借助恢复管理器将数据库恢复到先前状态。 |
| 子事务处理 | 一个事务可由一个或多个子事务组成,每个子事务包含一个或多个数据库输入/输出和计算操作。例如,关系查询可由多个关系操作(如连接、并集等)组成,每个操作都是一个子事务。 |
| 缓冲区管理 | 理想情况下,应优化管理所有缓冲区以减少磁盘访问。 |
| 其他 | 需要错误处理和分析例程来报告任何阶段的错误。许多例程需用可重入代码编写,以支持多线程,实现高效并发处理。 |
## 2. 数据库操作概念
### 2.1 内存结构
数据库存储在辅助内存(假设为磁盘)中,主内存包含以下内容:
1. 计算机操作系统
2. 数据库控制系统(DBCS)
3. 对象内部模式(包括 CS/IS 目录)
4. 对象外部模式(包括 ES/CS 目录)
5. 对象应用程序(包括 AP/ES 目录)
6. 用户工作区(UWA):作为 DBCS 和应用程序之间的加载和卸载区域
7. 错误状态指示器:指示 DM 命令的结果,不同错误有不同的错误代码,值为 0 表示命令成功
8. 系统缓冲区:包括输入/输出(I/O)缓冲区和保留区域,用于减少物理输入/输出操作
### 2.2 请求记录操作流程
当进程从数据库请求记录时,操作流程如下:
1. 应用程序使用 DM 命令向 DBCS 调用一个或多个外部模式(ES)记录,并指定选择所需的参数。
2. DBCS 根据对象 ES 中的信息分析调用(若程序编译时未完成此操作),对于无效调用,设置错误状态指示器并将控制返回给程序。确认有效性后,DBCS 通过 AP/ES、ES/CS、CS/ES 目录查找存储模式信息并选择访问路径。
3. DBCS 使用获取的存储模式信息,首先在系统缓冲区中搜索所需记录,若不存在则请求操作系统提供。
4. 操作系统扫描其目录以提取必要信息,在物理数据库中定位所需记录,若调用成功则将记录传递到数据库系统缓冲区。
5. DBCS 更新错误状态指示器,若调用失败则将控制返回给应用程序。
6. 若找到相关记录,DBCS 构造外部记录并将其传输到 UWA。
7. 若调用成功且需要更多记录来满足 DM 命令,DBCS 重复步骤 4 和 5。
8. UWA 中的记录由程序中的宿主语言指令进行必要的操作。
9. DBCS 管理 I/O 系统缓冲区,处理缓冲区溢出情况。
将记录写回数据库时,操作顺序相反,并进行额外的更新一致性检查。从上述操作流程可以看出,数据库和程序之间的数据传输效率较低,其效率取决于 DBCS。
### 2.3 操作流程 mermaid 图
```mermaid
graph LR
A[应用程序] -- 1. 调用 ES 记录 --> B[DBCS]
B -- 2. 分析调用 --> B
B -- 无效调用 --> A
B -- 有效调用 --> C[查找存储模式信息和访问路径]
C -- 3. 搜索系统缓冲区 --> D{记录是否存在}
D -- 存在 --> E[构造外部记录并传输到 UWA]
D -- 不存在 --> F[请求操作系统]
F -- 4. 扫描目录 --> G[定位记录]
G -- 5. 传递记录 --> H[数据库系统缓冲区]
H -- 6. 更新错误状态指示器 --> B
B --
```
0
0
复制全文
相关推荐









