第8章 关系数据库设计
考试范围: 8.1-8.5,8.8,8.9
考试题型: 模式分解
考试内容:
INF概念
非规范化设计的问题:数据冗余,插入/删除/更新异常
函数依赖的概念
平凡函数依赖
函数依赖集
最小(正则)覆盖
函数依赖集的闭包
属性集的闭包
无损连接分解(lossless decomposition)
依赖保持分解(function depencency preserving)
BCNF的定义;判断;分解
3NF的定义;判断;分解
1、1NF概念
- 如果一个关系模式R的所有属性域都是原子域(元素被认为是不可分割的单位),那么R属于第一范式
2、非规范化设计的问题:数据冗余,插入/删除/更新异常
- 数据冗余(想修改一个属性,就要更新多行数据)
- 插入异常(想要插入数据,结构因为表设计的问题,导致不能成功插入)
- 删除异常(只想删除其中的某些数据 ,结果把不该删的也删了)
- 更新异常(想更新一条数据,结果工作量大,还容易出错)
3、函数依赖的概念(Functional Dependency)
4、平凡函数依赖
5、函数依赖集
6、最小(正则)覆盖(Canonical Cover)
- 把函数依赖集 F 中多余的函数依赖和多余的属性删除,得到“最小的”函数依赖集合,称为F 的最小覆盖或规范覆盖
7、函数依赖集的闭包(Closure of a Set of Functional Dependencies )
- 计算函数依赖集的闭包
-
方法1:用Armstrong公理
-
方法2:利用属性集的闭包(穷举法):对关系模式R 的每一个子集S 进行以下操作:为 S+的每一个子集T, 输出函数依赖S→T
-
8、属性集的闭包(Closure of Attribute Sets)
9、无损连接分解(lossless decomposition)
10、依赖保持分解(function depencency preserving)
11、BCNF的定义、判断、分解
-
定义
-
判断
-
分解
12、3NF的定义、判断、分解
-
定义
-
判断
-
分解