# 数据

描述事物的符号记录

  • 无结构的文本形式
  • 表格形式(结构化数据)

# 数据管理技术的发展

# 人工管理阶段

数据面向应用程序,一个数据集只能对应于一个应用程序,无法共享利用,存在大量冗余

# 文件系统阶段

# 特点

  • 文件系统实现了文件内的数据结构化,但整体上是无结构的,即多个文件之间是相互独立的
  • 程序和数据之间由文件系统提供的存取方法进行转换,无需考虑过多的存储细节
    • 应用程序和数据的物理存储结构有了一定独立性

# 弊端

  • 数据共享性差、冗余度大,易导致数据不一致
  • 数据独立性差
  • 数据孤立,获取其困难
  • 完整性问题
  • 原子性问题
    • 如何保障操作的原子性和实施故障恢复
  • 并发访问异常
  • 安全性问题

# 数据库管理系统阶段

数据库管理系统是由一个相互关联的数据集合和一组用以访问、管理和控制这些数据的程序组成
狭义地将一组访问、管理和控制数据库的程序称为数据库管理系统(DBMSDBMS

# 特点

  • 数据结构化
    • 整体结构化:描述数据的时候不仅需要描述数据本身,还要描述数据之间的联系
      • 数据内部结构化,数据之间的联系统一管理实现结构化
      • 数据库的数据面向全组织的所有应用
  • 数据共享度高、冗余度低、系统易拓展
    • 数据冗余:相同的数据在文件(组)中不同地方重复存储的现象
  • 数据独立性高
    • 数据独立:数据的使用(编写应用程序)与数据定义(设计组织结构和存储方式)分离
    • 物理独立性:应用程序独立于数据库中数据的物理结构的程度
    • 逻辑独立性:应用程序独立于数据的全局逻辑结构的程度
  • 数据由数据库管理系统统一管理和控制
    • 数据库安全性保护:放置非法使用
    • 数据完整性约束:数据的正确性、有效性、相容性(数据库一致性
    • 并发控制
      • 事物隔离性
    • 数据库恢复:基于日志文件的恢复策略
      • 事物原子性
      • 事物持久性

# 数据模型

数据模型是一个描述数据结构、数据操作以及数据约束的数学形式的体系(即概论和符号表示系统

# 数据模型的分层

根据抽象的不同级别,可以将数据模型划分为 33 层:概念模型、逻辑模型和物理模型

# 概念模型

概念层次的数据模型称为概念模型(信息模型)

# 特点

  • 语义表达能力强
  • 易于理解
  • 独立于任何 DBMSDBMS
  • 容易向 DBMSDBMS 支持的逻辑数据模型转换

# 常用的概念模型

  • 实体 - 联系模型ERE-R 模型)
    • 基于现实世界是由一组称为实体的基本对象以及这些对象间的联系构成
  • 面向对象模型OOOO 模型)
    • 可以看成 ERE-R 模型增加了封装、方法和对象标识等概念后的拓展

# 逻辑模型

数据抽象的中间层,用于描述数据库数据的整体逻辑结构

  • 传统的逻辑数据模型
    • 层次模型
    • 网状模型
    • 关系模型
  • 非传统的逻辑数据模型
    • 面向对象模型
    • XMLXML 模型
  • 对象关系模型

# 物理模型

数据抽象的底层,用来描述数据的物理存储结构和存取方法

# 数据模型的组成要素

# 数据结构

描述数据库组成对象(实体)以及对象之间的联系,刻画一个数据模型的基础和核心

# 数据操作

对数据库各种对象的实例允许执行的操作集合,对系统动态特性的描述

# 数据完整性约束

一组数据完整性规则,用于定义数据结构和数据操作的制约和依存关系

# 层次模型

层次模型是用树状结构来表示各类实体以及实体间的联系

在数据库定义满足一下条件的基本层级联系的集合为层次模型

  • 有且只有一个结点没有双亲结点,这个结点称为根结点
  • 根节点以外的其他结点有且只有一个双亲结点

在层次模型中,任何一个给定的记录值只有按其路径查看时,才能获取它的全部意义

# 优点

  • 数据结构简单清晰
  • 查询效率高
  • 数据完整性支持好

# 缺点

  • 模型难以解释现实世界部分联系
  • 查询孩子结点必须通过双亲结点
  • 因为结构严密,层次命令趋于程序化

# 网状模型

在数据库中,把满足如下两个条件的基本层次联系集合称为网状模型

  • 允许有一个以上的结点无双亲
  • 一个结点可以由多个双亲

# 优点

  • 更直观描述现实世界
  • 性能好,存取效率高

# 缺点

  • 结构复杂
  • 操作语言复杂

# 关系模型

关系模型是由一组关系组成,每个关系的数据结构是一张规范的二维表

  • 关系:二维表的名字
  • 元组:表中的一行称为一个元组
  • 属性:表中的一列称为一个属性
  • :称码键或键,是某个属性或属性组
  • :属性的取值范围
  • 分离:元组中的一个属性值
  • 外码:表中的某个属性或属性组,用来描述本关系中的元组(实体)与另一个关系中的元组(实体)间的联系
  • 关系模式:通过关系名和属性名列表对关系进行的描述,二维表的表头
    • 下划线的属性为码属性,斜体的属性为外码属性

# 操作与完整性约束

  • 操作:查询和更新
  • 完整性约束
    • 实体完整性
    • 参照完整性
    • 用户自定义完整性

# 优点

  • 建立在严格的数学概念基础之上,以关系代数作为语言模型,以关系数据理论作为理论基础
  • 概念单一 \to 数据结构简单、清晰、易用
  • 存取路径对用户透明(不可见)\to 更高的数据独立性、安全保密性,也简化了工作

# 数据抽象与数据库三级模式

# 数据抽象

  • 物理层抽象:最底层抽象,描述数据实际上如何存储
  • 逻辑层抽象:描述数据库中存储什么数据以及数据之间存在的关系
  • 视图层抽象:只描述数据库的某部分,是数据库的局部逻辑结构

# 数据库三级模式结构

模式是对数据库中全体数据的逻辑结构和特征的描述,仅涉及模型的描述,不涉及具体的值
一个具体值称为模式的一个实例

# 模式

也称逻辑模式,对应于逻辑层数据抽象,对数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图
DBMSDBMS 提供 DDLDDL(模式描述语言)来严格定义模式

# 外模式

也称子模式或用户模式,对应于视图层数据抽象,对思考用户能看见的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图
可以保障数据安全,每个用户只能看见访问所对应的外模式中的数据
DBMSDBMS 提供子模式 DDLDDL(子模式描述语言)来严格定义子模式

# 内模式

也称存储模式,对应于物理层数据抽象,对数据的物理结构和存储方式的描述,是数据在数据库内部的组织方式
DBMSDBMS 提供内模式 DDLDDL / 存储模式 DDLDDL (内模式描述语言)来严格定义内模式

# 数据库的两层映像

# 外模式 / 模式映像

一个模式可以由多个外模式
对于每一个外模式,数据库管理系统都有一个外模式 / 模式映像,定义了对应关系
保证数据的逻辑独立性

# 模式 / 内模式映像

数据库只有一个模式和一个内模式,所以这个映像是唯一的,定义了全局逻辑结构和存储结构之间的对应关系
保证数据的物理独立性

# 数据库系统

数据库系统(DBSDBS)= 数据库 + 数据库管理系统(DBMSDBMS)+ 应用系统 + 数据库管理员 + 用户
数据库系统一般简称为数据库,数据库管理系统一般简称为数据库系统

# 数据库系统 DBS 的组成

  • DBMSDBMS 角度看(内部结构)
    • 是外模式 / 模式 / 内模式的三级模式
  • 从用户角度看
    • 单用户结构
    • 主从结构
    • 分布式结构
    • 客户 / 服务器、浏览器 / 应用服务器 / 数据库服务器等结构

# 数据库的四类数据

  • 用户数据
    • 通过二维表组织的所有业务数据的集合
  • 元数据:也称数据字典
    • 对啥关系数据库结构的描述数据和数据库的有关统计数据
    • 数据字典的内容主要有两类
      • 来自用户的信息
      • 来自系统状态和数据库的统计信息
  • 索引
  • 应用元数据

# 数据库管理系统 DBMS

一组软件,负责数据库的访问、管理和控制

# 主要功能

  • 数据定义
  • 数据组织、存储和管理
  • 数据操纵
  • 数据库事务管理和运行管理
  • 建库与维护
  • 其他功能

# 组成部分

  • 数据库
  • 查询处理器
    • 模式更新
    • 查询
    • 更新
  • 存储管理器
  • 事物管理器

# 查询处理器

查询处理器是一个部件集合,将用户的查询和更新命令转变为数据库的操作序列并执行

DBMSDBMS 对各种操作语言的处理过程如下

  • DDLDDL 语句:先翻译成内部表示,存储在数据字典中
  • DCLDCL 语句:DCLDCL 的定义部分,与 DDLDDL 的处理类似
  • DMLDML 语句:转换为一串可执行的存去动作(调用序列)

DMLDML 的处理过程

  • 语法分析
  • 语义检查
  • 视图转换
  • 查询优化
  • 代码生成

# 存储管理器

  • 文件管理器
    • 用于跟踪文件在磁盘上的位置,负责从文件中存储缓冲区管理器要求的信息
  • 缓冲区管理器
    • 用于控制之村的使用,通过文件管理器实现文件与主存中的系统缓冲区之间的数据交换

# 事务管理器

事务是并发控制的基本单位,保证事物的 ACIDACID 特性是事物处理的重要任务

  • ACIDACID 特性
    • 原子性
    • 一致性
    • 隔离性
    • 持久性
# 封锁管理

事物 TT 在对某个数据对象进行操作之前,先向系统发出请求对其,在事务释放它的锁之前,其他事务不能跟更新此数据对象

  • 排他锁
  • 共享锁
# 事务管理

事务是用户定义的一个数据库操作序列,操作要么全做要么不做

# 日志管理

日志文件是用来记录事务对数据库的更新操作的文件。

# 数据库系统的相关人员

  • 数据库管理员
  • 系统分析员和数据库设计人员
  • 应用程序员
  • 用户