《数据库系统概论》笔记八:关系数据理论、数据库设计

作者 Marlous 日期 2019-02-24
《数据库系统概论》笔记八:关系数据理论、数据库设计

一 关系数据理论

参考:
1、 知乎:如何解释关系数据库的第一第二第三范式?

1 关系数据理论基础

  1. 关系模式会存在的问题:
    一个好的关系模式应该避免以下问题(模式中的某些数据依赖是引起异常的原因,做法是对一个关系模式分解为多个关系模式,消除数据依赖)。
  • 数据冗余太大。
  • 更新异常。
  • 插入异常。
  • 删除异常。
  1. 数据依赖概念:
  • 数据依赖:
    数据依赖是完整性约束的一种表现形式;是现实世界属性间相互联系的抽象;通过属性值是否相等来体现数据间的相互关系。/ 某个数据确定(唯一确定)另一个数据。

  • 函数依赖:
    某一组数据确定(唯一确定)另一组数据。
    数据依赖概念

  1. 关系模式的形式化定义:
    R(U,D,DOM,F)
  • R:关系名。
  • U:该关系的属性集合。
  • D:属性组 U 中属性所来自的域。所有满足条件的该属性的集合。
  • DOM:属性向域的映像集合。具体的一个值。
  • F:属性间数据的依赖关系集合。
  1. 关系模式的简化定义:
    R<U,F>
  • 影响数据库模式设计的主要是 U、F。
  • 当且仅当 U 上的一个关系 r 满足 F 时,r 称为关系模式 R<U,F> 的一个关系。

2 函数依赖与范式

(1)函数依赖

  • 函数依赖概念:
    属性 X,属性 Y。/ X 函数确定 Y,或 Y 函数依赖于 X。X 称为这个函数依赖的决定属性组。
    函数依赖概念

  • 平凡函数依赖、非平凡函数依赖:
    平凡函数依赖、非平凡函数依赖

  • 完全函数依赖、部分函数依赖:
    完全函数依赖、部分函数依赖

  • 传递函数依赖:
    传递函数依赖

(2)码

用函数依赖定义码。

  • 码、超码、候选码、主码:码 1
  • 主属性、非主属性:码 2
  • 外码:码 3

(3)范式

  1. 概念:
    符合某一级别的关系模式的集合。

  2. 详解:

  • 1 NF:
    一个关系模式 R 中,所有属性都是不可分的基本数据项。

  • 2 NF:
    满足 1 NF,每个非主属性完全依赖于 R 的码。/ 采用投影分解法,将部分依赖的码拆开,分解为两个模式:
    2 NF
    2 NF

  • 3 NF:
    满足 2 NF;R 中的每个非主属性既不部分函数依赖于候选码,也不传递依赖于候选码。/ 采用投影分解法,将一个 2 NF 关系分解为多个 3 NF 的关系。

  • BCNF:
    没有任何属性(上面三个范式是消除非主属性对码的…)对码的部分函数依赖、传递函数依赖。是修正的 3 NF,在函数依赖范畴里,BCNF 达到了最高的规范化程度。/ 采用投影分解法:
    BCNF
    BCNF

  • 4 NF:
    满足 3 NF,消除非平凡且函数依赖的多值依赖。。

  • 5 NF:
    略。

  1. 小结:
    小结

3 数据依赖的公理系统(研究生阶段)

  1. 基本概念:
    基本概念

  2. Armstrong 公理系统:
    Armstrong 公理系统 1
    Armstrong 公理系统 2

  3. 闭包:
    闭包

4 模式分解(研究生阶段)

  1. 模式分解的三个定义:
    模式分解的三个定义

  2. 无损连结性、保持函数依赖性:
    无损连结性、保持函数依赖性

  3. 模式分解算法:
    模式分解算法

二 数据库设计

1 概述

  1. 数据库设计的步骤:
    需求分析 -> 概念结构设计 -> 逻辑结构设计 -> 物理结构设计 -> 数据库实施 -> 数据库运行和维护

  2. 数据库设计的具体步骤:
    数据库设计的步骤

  3. 数据库设计各阶段的描述:
    数据库设计各阶段的描述

  4. 数据库的各级模式:
    数据库的各级模式

2 需求分析

  1. 用户对数据库的要求:
    信息要求、处理要求、安全性与完整性要求。

  2. 数据字典:

  • 概念:
    数据字典是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。

  • 组成:
    数据项:不可再分的数据单位。/ 数据结构:数据间的关系。/ 数据流:数据结构在系统内传输的路径。/ 数据存储:数据结构停留或保存的地方。/ 处理过程:具体处理逻辑一般用判定表、判定树来描述。

3 概念结构设计

  1. 概念结构设计的四种方法:
  • 自顶向下:从全局到局部,逐步细化。
  • 自底向上:从局部到全部,集成起来。
  • 逐步扩张:由最核心的概念向外扩展。
  • 混合策略:先自顶向下,后自底向上。
  1. 数据抽象:
  • 分类:定义某一类概念。
  • 聚集:定义某一类型的组成成分。
  • 概括:定义类型间的子类型关系(继承性)。
  1. 局部视图设计:
    从多层次(模块)的数据流中选择一个层次,设计 E-R 图;然后再将各个 E-R 图集成;最后进行优化。

4 逻辑结构设计

  • 将 E-R 图向关系模型转换
  • 数据模型优化
  • 设计用户子模式

5 物理结构设计

三种常用存取方法:

  • 索引:建立索引。
  • 聚簇:相同值的元组集中存放在连续的物理块上(聚簇)。
  • HASH(散列):HASH 方式存储。

6 数据库实施

  • 数据载入
  • 应用程序调试

7 数据库运行和维护

  • 实际运行应用程序,测试对数据库的各种操作。
  • 对数据库的转储和恢复、数据库安全性与完整性、性能监督分析和改造、重组织与重构。