一、关系的第一范式和第二范式
1.1 关系的1NF
1.1.1 概念
- 若关系模式
中关系的每个分量都是不可分的数据项(值,原子),则称
属于第一范式,记为:
- 示例
1.1.2 不符合1NF的处理
- 将非1NF转换为1NF情况
- 示例
1.2 关系的2NF
1.2.1 概念
- 若
且U中的每一非主属性完全函数依赖于候选键,则称
属于第二范式,记为:
1.2.2 练习
二、关系的第3范式和Boyce-Codd范式
2.1 关系的3NF
2.1.1概念
- 若
且R中不存在这样的情况:候选键X,属性组
和非主属性A,且
,
,
,
,使得
,
成立。满足以上条件则称
属于第三范式,记为:
。
- 第三范式消除了非主属性对候选键的传递依赖
2.1.2 练习
- 关系模式设计如满足第3范式,则一定能满足第2范式;反之不然。
2.2 关系的BCNF
2.2.1 概念
- 若
,若对于任何
(或
),当
(或
)时,X比含有候选键,则称
属于Boyce-Codd范式,记为:
。
- 示例
- [定理]若
,则
。
- 有传递依赖额或者说不满足3NF的,也一定不满足BCNF。
- 关系模式分解成BCNF
三、多值依赖
3.1 多值依赖的定义
- 对
,设
,若对
的任一关系r,若元组
,
,
,则必有
使得:
且
且
- 均成立,则称Y多值依赖于X,或说X多值决定Y,记作
3.2 多值依赖的特性
- 直观的,对于X给定值,Y有一组值与之对应(0或n个)且这组Y值不以任何方式于U-X-Y中属性值相联系,有
- 若交换t,s的Y值而得到的新元组仍在r中,则
- X,Y不必不相交,u,v可以与t,s相同
- 函数依赖是多值依赖的特例
- 令
,有
,若
,则必有
3.3 多值依赖的公理
3.3.1 多值依赖的Armstrong公理
-
[Armstrong's Axioms A4~A8]关于多值依赖的公理,设
,对于
的任一关系r,有以下规则:
-
[A4]多值依赖互补律或对称性:若
,则
-
[A5]多值依赖的增广律:若
且
,则
-
[A6]多值依赖传递律:若
,
-
[A7]若
,则
-
[A8]若
,
且对于某个与Y不相交的W有
,
,则有
-
3.3.2 关于多值依赖的推论
- [引理7]:由Armstrong's Axioms可推出如下结论。
- 多值依赖合并律:若
且
,则
- 多值依赖伪传递律:若
且
,则
- 混合伪传递律:若
,
,则
- 多值依赖分解律:若
,
则
,
,
。
- 多值依赖合并律:若
四、关系的第4范式和弱第4范式
4.1 关系的4NF
- 设
,D是其上的一组依赖(函数依赖,多值依赖),对任意
,若
,必有X为超键,则称
满足第四范式,记为:
。
- 第四范式消除了非主属性对候选键以外属性的多值依赖。也就是说,如果存在多值依赖,则一定依赖于候选键
- [定理]若
,则必有
。
- [定理]若R上仅存在函数依赖,则若有
即有
,反之,若
,也有
4.2 关系的W4NF
- 设
,若R上的任何互补多值依赖
和
中必有一个是函数依赖,则称R是弱第四范式的,记为
-
注:W4NF不一定是BCNF, 反之亦然。