关系模式设计之规范形式

一、关系的第一范式和第二范式

1.1 关系的1NF

1.1.1 概念

  • 若关系模式R(U)中关系的每个分量都是不可分的数据项(值,原子),则称R(U)属于第一范式,记为:R(U)\in 1NF
  • 示例

1.1.2 不符合1NF的处理

  • 将非1NF转换为1NF情况
  • 示例

1.2 关系的2NF

1.2.1 概念

  • R(U)\in 1NF且U中的每一非主属性完全函数依赖于候选键,则称R(U)属于第二范式,记为:R(U)\in 2NF

1.2.2 练习

二、关系的第3范式和Boyce-Codd范式

2.1 关系的3NF

2.1.1概念

  • R(U,F)\in 2NF且R中不存在这样的情况:候选键X,属性组Y\subseteq U和非主属性A,且A\not\in XA \not\in YY \not\subset XY \not\rightarrow X,使得X\rightarrow YY\rightarrow A成立。满足以上条件则称R(U)属于第三范式,记为:R(U)\in 3NF
  • 第三范式消除了非主属性对候选键的传递依赖

2.1.2 练习

  • 关系模式设计如满足第3范式,则一定能满足第2范式;反之不然。

2.2 关系的BCNF

2.2.1 概念

  • R(U,F)\in1NF,若对于任何X\rightarrow Y \in F(或X\rightarrow A \in F),当Y \not\subset X(或A \not\in X)时,X比含有候选键,则称R(U)属于Boyce-Codd范式,记为:R(U)\in BCNF
  • 示例

  • [定理]若R(U,F)\in BCNF,则R(U,F)\in 3NF
  • 有传递依赖额或者说不满足3NF的,也一定不满足BCNF。
  • 关系模式分解成BCNF

三、多值依赖

3.1 多值依赖的定义

  • R(U),设X,Y \subseteq U,若对R(U)的任一关系r,若元组t \in rs \in rt[X] = s[X],则必有u \in r, v \in r使得:
    • u[X]=v[X]=t[X]=s[X]
    • u[Y]=t[Y]u[U-X-Y]=S[U-X-Y]
    • v[Y]=s[Y]v[U-X-Y]=t[U-X-Y]
  • 均成立,则称Y多值依赖于X,或说X多值决定Y,记作X\rightarrow \rightarrow Y

3.2 多值依赖的特性

  • 直观的,对于X给定值,Y有一组值与之对应(0或n个)且这组Y值不以任何方式于U-X-Y中属性值相联系,有X\rightarrow \rightarrow Y
  • 若交换t,s的Y值而得到的新元组仍在r中,则X\rightarrow \rightarrow Y
  • X,Y不必不相交,u,v可以与t,s相同
  • 函数依赖是多值依赖的特例
  • Z=U-X-Y,有X\rightarrow \rightarrow Z,若Z=\varnothing,则必有X\rightarrow \rightarrow Y​​​​​​​

3.3 多值依赖的公理

3.3.1 多值依赖的Armstrong公理

  • [Armstrong's Axioms A4~A8]关于多值依赖的公理,设R(U),X,Y \subseteq U,对于R(U)的任一关系r,有以下规则:

    • [A4]多值依赖互补律或对称性:若X\rightarrow \rightarrow Y,则X\rightarrow \rightarrow U-X-Y

    • [A5]多值依赖的增广律:若X\rightarrow \rightarrow YV\subseteq W,则WX \rightarrow \rightarrow VY

    • [A6]多值依赖传递律:若X\rightarrow \rightarrow YY\rightarrow \rightarrow Z-Y

    • [A7]若X\rightarrow Y,则X\rightarrow \rightarrow Y

    • [A8]若X\rightarrow \rightarrow YZ \subseteq Y且对于某个与Y不相交的W有W\rightarrow ZW\cap Y=\varnothing,则有X\rightarrow Y​​​​​​​

3.3.2 关于多值依赖的推论

  • [引理7]:由Armstrong's Axioms可推出如下结论。
    • 多值依赖合并律:若X\rightarrow \rightarrow YY\rightarrow \rightarrow Z,则X\rightarrow \rightarrow YZ
    • 多值依赖伪传递律:若X\rightarrow \rightarrow YWY\rightarrow \rightarrow Z,则X\rightarrow \rightarrow Z-WY
    • 混合伪传递律:若X\rightarrow \rightarrow YXY\rightarrow Z,则X\rightarrow Z-Y
    • 多值依赖分解律:若X\rightarrow \rightarrow YX\rightarrow \rightarrow ZX\rightarrow \rightarrow Y-Z,X\rightarrow \rightarrow Z-YX\rightarrow \rightarrow Y\cap Z

四、关系的第4范式和弱第4范式

4.1 关系的4NF

  • R(U)\in1NF,D是其上的一组依赖(函数依赖,多值依赖),对任意X\rightarrow \rightarrow Y\in D,若Y \neq \varnothing ,Y\not\subset X,XY\neq U,必有X为超键,则称R(U)满足第四范式,记为:R(U)\in 4NF
  • 第四范式消除了非主属性对候选键以外属性的多值依赖。也就是说,如果存在多值依赖,则一定依赖于候选键
  • [定理]若R\in 4NF,则必有R\in BCNF
  • [定理]若R上仅存在函数依赖,则若有R\in BCNF即有R\in4NF,反之,若R\in4NF,也有R\in BCNF​​​​​​​

4.2 关系的W4NF

  • R(U)\in 3NF,若R上的任何互补多值依赖X\rightarrow \rightarrow Y(XY\neq U,Y-X\neq \varnothing )X\rightarrow \rightarrow (R-X-Y)中必有一个是函数依赖,则称R是弱第四范式的,记为R\in W4NF
  • 注:W4NF不一定是BCNF, 反之亦然。

猜你喜欢

转载自blog.csdn.net/qq_38689352/article/details/111600672