第一章 – 数据库系统架构
第一章
概述
数据库管理系统一般需要:
1. 数据定义语言来创建数据库,并指定数据的逻辑结构
2. 使用查询语言来进行查询, 使用数据操作语言来进行修改(dml 不改变数据库模式)
3. 可对大量数据进行长期保存, 数据具备持久性, 从故障,多种错误中恢复
4. 允许高效查询或修改
5. 支持多用户,并保证多用户之间独立性。
信息集成 有2种方式
1. 数据仓库, 将数据周期性同步到一个中心数据库
2. 使用中间件, 统一提供一个集成的模型,然后在这个模型和各个实际数据库内的实际模型进行转换。
数据视图
数据抽象
- 物理层
- 描述数据怎样存储
- 描述数据怎样存储
- 逻辑层
- 数据库存储什么数据, 以及这些数据存在什么关系。
- 可以通过少量的数据结构来描述整个数据库
- 数据库存储什么数据, 以及这些数据存在什么关系。
- 视图
- 数据库的某个小部分
- 屏蔽用户看到一些细节或安全设置
- 数据库的某个小部分
实例和模式
- 实例
- 某个时刻, 数据库中数据的集合
- 某个时刻, 数据库中数据的集合
- 模式
- 定义:数据库的总体设计
- 物理模式: 物理层描述数据库的设计
- 逻辑模式:逻辑层描述数据库的设计。 应用通常会依赖逻辑模式
- 视图层: 子模式, 描述数据库的不同视图
- 定义:数据库的总体设计
数据模型
描述 数据, 数据联系, 数据语义以及一致性约束的概念工具的集合。
- 关系模型(relational model): 用表的集合来表示数据和数据间的联系
- 实体-联系模型(entity-relationship model):(E-R) 基于现实世界的认识基础上, 世界是由实体的基本对象和对象间的联系构成。
- 基于对象的数据模型(object-based data model): 在E-R 基础上,增加了封装, 方法和对象标识的扩展。 结合了关系模型和E-R 模型。 现代数据库厂商支持 对象–关系数据模型 (objected-relational data model),将关系模型和对象模型结合的数据模型, 在关系模型的基础上,增加了对象特性。
- 半结构化数据模型(semistructured data model): 相同类型的数据项可以含有不同属性集的数据定义。
数据库系统架构
————————————————————————————————————
proxy
parser(DML 查询/DDL 解释器)
optimizer
runtime engine
————————————————————————————————————
授权和完整性管理器
事务管理器
缓冲管理器
文件管理器
·································································
索引 | 数据字典 | 统计数据
数据
查询处理器
- DDL 解释器(interpreter): 解释DDL, 并产生一些输出到数据字典
- DML compiler: 将DML 翻译成一个物理执行计划
- 查询执行引擎: query evaluation engine, 执行执行计划。
查询编译器
通常是
- 分parser
- 构建一棵树;
- 预处理器, 对查询进行语义检查并进行某些树结构转换,将分析树转化为表示查询计划的代数操作树;
- 查询优化器。
存储器
负责数据库中数据的存储,检索和更新, 负责与文件管理器进行交互。
存储器组件:
- 权限及完整性管理器(authorization and integrity manager)
- 事务管理器
- 文件管理器: 管理磁盘空间的分配,管理用于表示磁盘上数据的数据结构
- 缓冲区管理器:
存储器管理的数据结构:
事务处理器
分为:
1. 并发控制器和调度器
并发控制中, 还含有并发控制管理 也就是调度器, 调度器会禁止执行引擎去访问数据库中被锁定的部分。
死锁监控
2. 日志和恢复管理器
数据库的每一个变化, 都会使用日志进行跟踪
事务管理器包括 并发控制管理器和恢复管理器。
事务的原子性和持久性都是由 恢复管理负责的。
索引/文件/记录 管理器
- 视图, 视图是不实际存储, 但需要从实际存储的关系中构建出来一种关系的描述
内存和缓冲区管理器
缓冲区管理器, 将内存分割成缓冲区, 缓冲区是与页面同等大小, 磁盘内容传送
存储管理器
存储内容
- 数据
- 元数据
- 日志
- 统计信息
- 索引