关系数据库设计理论有 3 个方面的内容,即函数依赖、范式和模式设计。函数依赖起核心作用,它是模式分解和模式设计的基础;范式是模式分解的标准。

三级模式结构

数据库基本上采用类似体系结构-“三级模式-两级映射”的关系。

  • 三级模式:外模式,概念模式,内模式
  • 两级映射:外模式-概念模式映射,概念模式-内模式映射

外模式,也叫用户模式,是用户和数据库系统的接口。它由若干个外部记录类型组成。用户使用数据操纵语言对数据库进行操作,实际上是对外模式的外部记录进行操作。

概念模式,它是数据库中的全部数据的逻辑结构和特征的描述,由若干个概念记录类型组成,只涉及型的描述,不涉及具体的值。

内模式,也称为存储模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式,定义所有的内部记录类型、索引和文件的组织方式,以及数据控制方面的细节。

两级映射分别存在对应的模式之间,实现了对应的模式之间的相互转换。

E-R 模型

使用实体-联系图描述现实世界的概念模型,被称为实体-联系模型(Entity-Relationship Model,E-R 模型)。

E-R 模型主要由实体,联系和属性组成。

不同的实体集之间存在 3 种联系类型。

  • 1:1(一对一)
  • 1:n(一对多)
  • m:n(多对多)
构体 表示 说明
矩形 实体 表示个体或者具有相同属性的集合。如学生,职工等
双边矩形 弱实体 必须依赖实体存在的实体,如职工家属必须依赖职工的存在
双竖边框矩形 子类 特殊化的实体,如学生可以划分为高中生,本科生和研究生等
菱形 联系 联系主要有一对一,一对多和多对多三种常见的关系
椭圆 属性 常见的分类是简单属性和复合属性

关系代数

常见的关系代数运算符

运算符 含义
× 笛卡尔积
σ 选择
π 投影
连接

一些名词:

  • 候选码/候选键(Candidate Key):能够唯一标识元组的属性或属性组。
  • 主码/主键(Primary Key):若一个关系有多个候选键,则选定一个为主键。
  • 主属性和非主属性:包含在任意一个候选键中的属性被称为主属性,否则称为非主属性。
  • 外码/外键(Foreign Key):关系模式 R 中的属性或属性组非该关系模式中的键,是其他关系模式的键,那么对于关系模式 R 该属性集就是外键。
  • 全码/全键(All-Key):关系模式中的所有属性组都是这个关系模式的候选键。

根据候选键的定义,候选键可以是单个属性,也可以是多个属性的集合。在学生表中,学号和身份证号都可以唯一标识学生,均为候选键,选择学号作为主键。

如何求得候选键?

将关系模式中的函数依赖关系用“有向图”表示,能够遍历图中的所有结点,则该属性即为关系模式中的候选键。

非规范化理论

非规范化的关系模式,可能存在的问题包括:数据冗余,更新异常,插入异常和删除异常。

函数依赖

设 R(U) 是属性集 U 上的关系模式,X、Y 是 U 的子集。若对 R(U) 的任何一个可能的关系 r,r 中不可能存在两个元组在 X 上的属性值相等,而在 Y 上的属性不等,则称为 X 函数决定 Y 或 Y 函数依赖于 X,记作 X → Y。

范式

1NF:若关系模式 R 的每一个分量是不可再分的数据项,则关系模式 R 属于第一范式。

2NF:当 1NF 消除了非主属性对候选键的部分函数依赖。

3NF:当 2NF 消除了非主属性对候选键的传递函数依赖。

BCNF:对于关系模式 R ∈ 1NF,若 X → Y 且 Y ⊈ X 时 X 必含有码,则 R ∈ BCNF。

由 BCNF 的定义可以得到如下结论,一个满足 BCNF 的关系模式有:

  1. 所有非主属性对每一个码都是完全函数依赖。
  2. 所有主属性对每一个不包含它的码也是完全函数依赖。
  3. 没有任何属性完全函数依赖与非码的任何一组属性。

模式分解

关系模式的分解过程就是将一个关系模式分解成一组等价的关系子模式的过程。对一个关系模式的分解可以有多种方式,但分解后产生的模式与原来的模式等价。

“等价”的概念形成以下 3 种不同的定义。

  • 分解具有无损连接性。
  • 分解要保持函数依赖。
  • 分解既要保持函数依赖,又要具有无损连接性。

参考链接