《数据库实现》-- 第一章 数据库系统架构

第一章 – 数据库系统架构

第一章

概述

数据库管理系统一般需要:
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): 相同类型的数据项可以含有不同属性集的数据定义。

数据库系统架构

image.png

————————————————————————————————————
proxy
parser(DML 查询/DDL 解释器)
optimizer
runtime engine
————————————————————————————————————

授权和完整性管理器
事务管理器
缓冲管理器
文件管理器
·································································
索引             |    数据字典   |      统计数据
数据

查询处理器

  • DDL 解释器(interpreter): 解释DDL, 并产生一些输出到数据字典
  • DML compiler: 将DML 翻译成一个物理执行计划
  • 查询执行引擎: query evaluation engine, 执行执行计划。

查询编译器

通常是

  • 分parser
    • 构建一棵树;
    • 预处理器, 对查询进行语义检查并进行某些树结构转换,将分析树转化为表示查询计划的代数操作树; 
    •  查询优化器。

 

存储器

负责数据库中数据的存储,检索和更新, 负责与文件管理器进行交互。
存储器组件:

  • 权限及完整性管理器(authorization and integrity manager)
  • 事务管理器
  • 文件管理器: 管理磁盘空间的分配,管理用于表示磁盘上数据的数据结构
  • 缓冲区管理器:

存储器管理的数据结构:

  • 数据文件
  • 数据字典
  • 索引

事务处理器

分为:
1. 并发控制器和调度器
    并发控制中, 还含有并发控制管理 也就是调度器, 调度器会禁止执行引擎去访问数据库中被锁定的部分。
    死锁监控
2. 日志和恢复管理器
数据库的每一个变化, 都会使用日志进行跟踪
事务管理器包括 并发控制管理器和恢复管理器。
事务的原子性和持久性都是由 恢复管理负责的。

索引/文件/记录 管理器

  • 视图, 视图是不实际存储, 但需要从实际存储的关系中构建出来一种关系的描述

内存和缓冲区管理器

缓冲区管理器, 将内存分割成缓冲区, 缓冲区是与页面同等大小, 磁盘内容传送

存储管理器

存储内容

  1. 数据
  2. 元数据
  3. 日志
  4. 统计信息
  5. 索引