第七章 关系数据库设计
1.第一范式(1NF)
如果某个域的元素被认为是不可再分的单元,那么这个域就是原子的(atomic)。如果一个关系模式R的所有的属性域都是原子的,我们称关系模式R属于第一范式(first normal form, 1NF)
关系数据库中的所有关系模式均应该满足1NF
2.函数依赖(重要)
辨识:
满足依赖的关系:依赖在模式的某个关系实例上成立
模式上成立的依赖:依赖在模式的所有关系实例上都成立
平凡函数依赖:
部分函数依赖:
传递函数依赖:
超码、候选码、主码、主属性:
3.函数依赖的推理规则(重要)
3.1 逻辑蕴含
3.2 Armstrong公理系统(重要)
3.3属性集的闭包
4. 候选码的求解理论和算法
对于给定的关系模式R(U,F),可将其属性分为4类:
L类:仅出现在F的函数依赖左部的属性
R类:仅出现在F的函数依赖右部的属性
N类:在F的函数依赖两边均未出现的属性
LR类:在F的函数依赖两边均出现的属性
5.正则覆盖(超级重要)
5.1无关属性
如果去除一个函数依赖中的属性,不会改变该函数依赖集的闭包,则称该属性是无关的。
这个是左无关属性↑
这个是右无关属性↑
就是去掉这个无关属性之后,F的闭包不变
无关属性的核心:能够被函数依赖集F逻辑蕴涵的函数依赖,不必出现在F中。
5.2检验无关属性的方法
5.3正则覆盖
算法:
Fc = F
REPEAT
使用合并律将FC中α→β和α→γ合并为α → βγ
找出在含无关属性的函数依赖α→β,删除α →β中的无关属性
UNTIL Fc 不再改变
注意:
1、检查无关属性是基于当前函数依赖集合中的函数依赖,而不是原始的F
2、不能同时讨论一个函数依赖中的两个属性的无关性,一次只能讨论一个属性
如果一个函数依赖的右半部只包含一个属性,例如, A→C,并且右边的属性是无关的,那么将得到一个右部为空的函数依赖,这样的函数依赖应该删除
从某种意义上说,Fc是最小的,它不含无关属性,并且具有相同左半部的函数依赖都已经被合并,所以验证Fc比验证F本身更容易
5.4最小覆盖
6.模式分解
6.1无损连接分解
6.2无损连接分解判断-表格法
6.3无损连接分解判断-快速法
6.4保持函数依赖的分解
7.范式
定义
范式是对关系模式的不同数据依赖程度的要求
通过模式分解将一个低级范式转换为若干个高级范式的过程称作规范化
范式是衡量关系模式的标准
7.1 1NF
定义
关系中每一分量不可再分。即不能以集合、序列等作为属性值
7.2 2NF
7.3 3NF
作为判断3NF时的一种优化,可以只考虑F上的函数依赖,而不是F+,也可以分解F上的函数依赖,让它们的右半部只包含一个属性,并用这个结果代替F
7.4 关系模式的分解算法-3NF(重要)
用这种比较好↑
7.5 BCNF
BCNF的本质:(在只考虑函数依赖的前提下)一个关系模式只描述一件事
7.6关系模式的分解算法-BCNF
结论:若要求分解保持函数依赖,那么分解后的模式总可以达到3NF,但不一定能达到BCNF
BCNF比3NF要求严格
课本要求:一般选择BCNF的结论是不可接受的。
END