数据库
首页 > 数据库> > 【数据库系统】函数依赖及其公理定理(3) 关系范式

【数据库系统】函数依赖及其公理定理(3) 关系范式

作者:互联网

函数依赖及其公理定理(

总结

关系范式条件
第一范式关系模式R(U)中关系的每个分量都是不可分
第二范式每一非主属性完全函数依赖于候选键
第三范式没有传递函数依赖
BCNF不能有依赖非候选键其他函数依赖
第四范式多值依赖,则一定依赖候选键

1NF 第一范式

若关系模式R(U)中关系的每个分量都是不可分的
数据项(值、原子),则称R(U)属于第一范式,记为: R ( U ) ∈ 1 N F R(U)∈1NF R(U)∈1NF。
在这里插入图片描述

在这里插入图片描述
严格按行和列进行管理,则满足第一范式

在这里插入图片描述
出现符合属性和多值属性及其组合,则不符合1NF

不符合1NF的处理
将非1NF转换为1NF情况
Star( name, address(street, city) )
转换:
将复合属性处理为简单属性;Star(name, street, city )
或者将多值属性与关键字单独组成一新的关系 Star( name, address)

或者引入新的数据模型处理是Object-Oriented Data Model,例如将两个列类型构成一个对象

2NF 第二范式

若 R ( U ) ∈ 1 N F R(U)∈1NF R(U)∈1NF 且U中的每一非主属性(不包含在任何候选键中的属性)完全函数依赖(最小的函数依赖集)于候选键,则称R(U)属于第二范式,记为: R ( U ) ∈ 2 N F R(U)∈2NF R(U)∈2NF。
用人言讲就是关系中候选键是决定所有非主属性的最小集合,来减少非受控的冗余,不满足第二范式就将其分解,尽可能让关系瘦身一点
在这里插入图片描述
第二范式消除了非主属性对候选的部分依赖,减少不一致性行为
在这里插入图片描述

3NF 第三范式

若 R ( U , F ) ∈ 2 N F R(U,F)∈2NF R(U,F)∈2NF 且 R R R中不存在这样的情况:候选键 X X X,属性组 Y ⊆ U Y⊆U Y⊆U和非主属性A, 且 A ∉ X , A ∉ Y , Y ∉ X , Y ! → X A∉X, A∉Y , Y∉X, Y!→X A∈/​X,A∈/​Y,Y∈/​X,Y!→X,使得 X → Y , Y → A X→Y,Y→A X→Y,Y→A成立(其实就是个传递函数依赖)。满足以上条件则称 R ( U ) R(U) R(U)属于第三范式,记为: R ( U ) ∈ 3 N F R(U)∈3NF R(U)∈3NF。

这个定义简单的来讲就是第三范式没有传递函数依赖

在这里插入图片描述

在这里插入图片描述

第3范式消除了非主属性对侯选键的传递依赖
在这里插入图片描述
ps:对传递依赖的分解:(将每一个函数依赖单独组成一个关系)
在这里插入图片描述

Boyce-Codd范式 BCNF

若 R ( U , F ) ∈ 1 N F R(U,F)∈1NF R(U,F)∈1NF, 若对于任何 X → Y ∈ F X→Y∈F X→Y∈F (或 X → A ∈ F X→A∈F X→A∈F), 当 Y ⊄ X Y⊄X Y⊄X(或 A ∉ X A∉X A∈/​X)时, X X X必含有候选键,则称R(U)属于 B o y c e − C o d d Boyce-Codd Boyce−Codd范式,记为: R ( U ) ∈ B C N F R(U)∈BCNF R(U)∈BCNF

简单来讲,如果一个关系模式,上面的每一个函数依赖,这个依赖一定是依赖于候选键,或者依赖于包含候选键的集合,那么这个关系就满足BCNF,

换句话说,
BCNF的候选键是没有函数依赖(就是没有 ?→候选键 ∈F)存在的

同时不能有依赖于非候选键的其他函数依赖
在这里插入图片描述
在这里插入图片描述

有传递依赖的或者说不满足3NF的,一定不满足BCNF

PS:关系模式分解成BCNF
将左侧不含候选键的函数依赖单独组成一个关系, 将包含候选键的组成另一组一关系
在这里插入图片描述

多值依赖与第四范式

多值依赖

前面讲的都是函数依赖,如果有X相等Y一定相等,下面讲多值依赖
[定义]多值依赖
对R(U), 设 X , Y ⊆ U X, Y⊆U X,Y⊆U(X,Y是U上的属性或属性组), 若对于 R ( U ) R(U) R(U)的任一关系r, 若有元组 t ∈ r , s ∈ r t∈r, s∈r t∈r,s∈r, t [ X ] = s [ X ] t[X] = s[X] t[X]=s[X](X值相等), 则必有 u ∈ r , v ∈ r u∈r, v∈r u∈r,v∈r使得:

  1. u [ X ] = v [ X ] = t [ X ] = s [ X ] u[X]=v[X]=t[X]=s[X] u[X]=v[X]=t[X]=s[X](X值相等)
  2. u [ Y ] = t [ Y ] ( 属 性 Y ) 且 u [ U − X − Y ] = s [ U − X − Y ] u[Y]=t[Y](属性Y)且u[U-X-Y] = s[U-X-Y] u[Y]=t[Y](属性Y)且u[U−X−Y]=s[U−X−Y](除了X,Y剩余的属性)
  3. v [ Y ] = s [ Y ] ( 属 性 Y ) 且 v [ U − X − Y ] = t [ U − X − Y ] v[Y]=s[Y](属性Y)且v[U-X-Y] = t[U-X-Y] v[Y]=s[Y](属性Y)且v[U−X−Y]=t[U−X−Y](除了X,Y剩余的属性)

均成立,则称Y多值依赖于X, 或说X多值决定Y, 记作 X → → Y X→→Y X→→Y。

用人话讲就是有一个X值,则有一组Y值和它对应,因此这组Y值之间相互可以替换
在这里插入图片描述

多值依赖的特性

  1. 直观地,对于X给定值,Y有一组值与之对应(0或n个)且这组Y值不以
    任何方式与U-X-Y中属性值相联系,有 X → → Y X→→Y X→→Y。
  2. 若交换t, s 的Y值而得到的新元组仍在r中,则 X → → Y X→→Y X→→Y。
  3. X, Y 可相交,u,v可以与t,s相同。
  4. 函数依赖是多值依赖的特例,多值依赖是一个X值和一组Y值相对应,函数依赖则是一个X值只有一个Y值与之对应
  5. 令 Z = U − X − Y , Z=U-X-Y, Z=U−X−Y,有 X → → Y X→→Y X→→Y, 若Z=∅, 则必有 X → → Y X→→Y X→→Y。

在这里插入图片描述

第四范式

设 R ( U ) ∈ 1 N F R(U)∈1NF R(U)∈1NF, D D D 是其上的一组依赖( 函数依赖 或者是 多值依赖) , 对任意 X → → Y ∈ D , X→→Y∈D, X→→Y∈D,若 Y ! = ∅ , Y ⊄ X , X Y ! = U Y!=∅,Y⊄X, XY!=U Y!=∅,Y⊄X,XY!=U(这三个条件是为了消除平凡的多值依赖), X X X为超键(说明如果有多值依赖,一定是依赖于候选键的),则称R(U)满足第四范式,记为:R(U)∈4NF。

第四范式消除了非主属性对候选键以外属性的多值依赖,如果有多值依赖,则一定依赖于候选键

若 R ∈ 4 N F R∈4NF R∈4NF, 则必有 R ∈ B C N F R∈BCNF R∈BCNF。
在这里插入图片描述
反正,条件(只有函数依赖没有多值依赖)下成立
在这里插入图片描述

多值依赖的几个公理

设 R ( U ) , X , Y ⊆ U R(U), X, Y⊆U R(U),X,Y⊆U, 对于 R ( U ) R(U) R(U)的任一关系r, 有以下规则:
[A4]多值依赖互补律对称性:若 X → → Y X→→Y X→→Y, 则 X → → U − X − Y ( 除 了 X , Y 以 外 的 属 性 ) X→→U-X-Y(除了X,Y以外的属性) X→→U−X−Y(除了X,Y以外的属性);

[A5]多值依赖增广律: 若X X → → Y X→→Y X→→Y 且 V ⊆ W , V⊆W, V⊆W, 则
W X → → V Y WX→→VY WX→→VY;

[A6]多值依赖传递律:若 X → → Y X→→Y X→→Y, Y → → Z Y→→Z Y→→Z, 则 X → → ( Z − Y ) X→→(Z-Y) X→→(Z−Y)(此条比A3规则限制要强)
[A7] 若 X → Y X→Y X→Y 则 X → → Y X→→Y X→→Y
[A8] 若 X → → Y X→→Y X→→Y ,Z⊆Y且对于某个与Y不相交的W有W→Z, W∩Y=∅, 则有 X → Z X→Z X→Z

标签:公理,候选,依赖,范式,多值,1NF,数据库系统,属性
来源: https://blog.csdn.net/Franklins_Fan/article/details/116425593