[数据库] 4.5 关系模式设计之规范化形式
文章目录
4.5 关系模式设计之规范化形式
- 基本内容
- 关系的第1NF和第2NF
- 关系的第3NF和Boyce-Codd NF
- 多值依赖及其公理定理
- 关系的第4NF
- 重点与难点
- 一组概念:1NF, 2NF, 3NF, BCNF, 4NF;多值依赖
- 熟练应用数据库设计的规范化形式,判断数据库设计的正确性及可 能存在的问题
4.5.1 关系的第1范式和第2范式
-
关系的1NF
-
若关系模式 中关系的每个分量都是不可分的数据项(值、原子),则称 属于第一范式,记为:
-
1NF要求关系中不 能有复合属性、多 值属性及其组合
示例:不符合1NF的:
-
不符合1NF的处理
示例:
或者
将复合属性处理为简单属性;将多值属性与关键字单独组成一新的关系
-
-
关系的2NF
-
若 且 中的每一非主属性完全函数依赖于候选键,则称 属于第二范式,记为:。
-
第2范式消除了非主属性对候选键的部分依赖。
-
示例:
其中,
函数依赖:
候选键: ,非主属性:和。
因为: ,() 所以 不属于 。
将其分解为 , 则 。
-
4.5.2 关系的第3范式和Boyce-Codd范式
-
关系的3NF
-
若 且 中不存在这样的情况:候选键 ,属性组 和非主属性 , 且 ,使得 成立。满足以上条件则称 属于第三范式,记为:。
-
第3范式消除了非主属性对候选键的传递依赖。
-
示例
-
示例1
其中,
函数依赖:
候选键: ,非主属性:。
因为:,所以 不属于 。 将其分解为 , 则
-
示例2
学生(学号,系号,系主任)
候选键:; 非主属性:系主任
传递依赖:
无部分依赖
满足第2NF但不满足第3NF
-
-
关系模式分解成 3NF
-
示例
, 函数依赖集合
候选键:, 有传递依赖, 不满足 3NF
-
分解规则
将每一个函数依赖单独组成一个关系
可以看出:每一个模式都属于 3NF
也可以合并一些关系:
-
-
-
关系的BCNF
-
若 , 若对于任何 (或 ), 当 (或 )时, X必含有候选键,则称 属于 Boyce-Codd 范式,记为:。
-
示例
邮编(城市, 街道, 邮政编码)
函数依赖: ;
候选键:
因不含候选键:;所以不满足BCNF
因无传递依赖,所以满足第3范式;
-
[定理]若 , 则
有传递依赖的或者说不满足3NF的,也一定不满足BCNF
-
关系模式分解成BCNF
-
示例
, 函数依赖集合
候选键:; 有不依赖于候选键的其他函数依赖,不满足。
-
分解规则
将左侧不含候选键的函数依赖单独组成一个关系, 将包含候选键的组成一关系
可以看出:
也可以将 和 合并
-
-
4.5.3 多值依赖
-
多值依赖定义
在 中, 设 , 若对于 的任一关系 , 若元组 , 则必有 使得:
- 且
- 且
均成立,则称 多值依赖于 , 或说 多值决定 , 记作
-
多值函数的特性
- 直观地,对于 给定值, 有一组值与之对应 (0或n个) 且这组 值不以任何方式与 中属性值相联系,有 。
- 若交换 的 值而得到的新元组仍在r中,则 。
- 不必不相交, 可以与 相同。
- 函数依赖是多值依赖的特例。
- 令 ,有 , 若 ∅, 则必有 。
-
示例
,则有:
,但不存在 及 。
说明:同一门课程或同一教师对同一批学生可以在不同时间不同地点上课。
4.5.4 关于多值依赖的公理
-
多值依赖的Armstrong公理
设 , 对于 的任一关系 , 有以下规则:
-
[A4] 多值依赖互补律(Complementation)或对称性:
若 , 则 ;
-
[A5] 多值依赖增广律(Augmentation):
若 且 , 则 ;
注意:此条与A2规则是相似的: 且 ,则 ;
-
[A6] 多值依赖传递律(Transtivity):
若 , 则 ;
注意:此条比A3规则限制要强:,则 。多值依赖不存在这种规则,即: ,则 不一定成立,
例如 但是 不能多值决定 。
-
[A7] 若 则 ;
-
[A8] 若 且对于某个与 不相交的 有 ∅, 则有 。
-
-
多职以来的Armstrong公里证明
-
关于多值依赖的推论
[引理7]:由Armstrong’s Axioms可推出如下结论。
-
多值依赖合并律(Union Rule):
若 且 , 则 。
-
多值依赖伪传递律(Pseudo Transitivity):
若 且 ,则 。
-
混合伪传递律:若 , 则
-
多值依赖分解律(Decomposition Rule):
若 则 。
证明:(略)
-
4.5.5 关系的第4范式和弱第4范式
-
关系的4NF
设 是其上的一组依赖(函数依赖,多值依赖),对任意 , 若 ∅,,必有 为超键,则称 满足第四范 式,记为:
- 第四范式消除了非主属性对候选键以外属性的多值依赖。
- 如果有多值依 赖,则一定依赖于候选键
-
定理
-
[定理] 若 , 则必有 。
证明:设 , 对 上的任何 ∅ ,
(1) 当 时,必为超键。
(2) 当 时,因 ,有 ,由第四范式定义 必为超键,再由BCNF定义知。
-
[定理] 若上仅存在函数依赖,则若有 即有 , 反之,若 ,也有
-
-
关系的W4NF
设 , 若 上的任何互补多值依赖 ∅ 和 中必有一个是函数依赖,则称 是弱第四范式的,记为 。
注:W4NF不一定是BCNF, 反之亦然