数据关系模式设计的标准化
Posted Hey蜗牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据关系模式设计的标准化相关的知识,希望对你有一定的参考价值。
把关系模式R分解成p以后,如何测试分解p是否为有损分解方法:
1.根据分解模式和属性列表
列:分解模式
行:属性
比如R(ABC) 分为p=(AB,AC) 满足F(A—>C)
列表
|
A |
B |
C |
AB |
|
|
|
AC |
|
|
|
填表
若分解模式中包含属性 则填a下标i,i为对应列数。
若分解模式中不包含属性 则填b下标为ji,j为行号,i为列号
所以表填完结果为:
|
A |
B |
C |
AB |
a1 |
a2 |
b13 |
AC |
a1 |
b22 |
a3 |
2.修改表中元素 根据FD X——>Y
若FD X——>Y,则在X属性列找是否有相同的值:
若有,则到y属性下修改。(修改规则:有a则改为和a相同的,没有a则修改成 b下标小的那个相同。
若没有,则不用修改
所以例题修改如下F(A——>C)
|
A |
B |
C |
AB |
a1 |
a2 |
a3 |
AC |
a1 |
b22 |
a3 |
3.若修改的最后一张表格中,有一行全为a,则称为无损分解,否则为有损分解
所以例题将b13改为a3
所以此题为无损分解
如何判断是否保持函数依赖的分解
设F属性集U上的FD集,Z是U的子集,F在Z上的投影用 兀z(F)①表示
若p=(R1,R2.......)是R的一个分解,F是R上的FD集,如果①式的所有并集 的集合蕴涵F集合,则则称分解保持函数依赖集
例题 设关系R(ABC),F是R上成立的FD集,F={ B——>C,C——>A},p={AB,AC}是R上的一个分解,那么分解p是否保持FD集F。
1.求F在AB上的投影
兀AB(F)=
AB可以是
A——>B:A的集合闭包:A+=A 没有B所以不成立
B——>A :B的集合闭包:B+=BCA 有A所以,成立,则 兀AB(F)={B——>A}
同样方法求在AC上的投影
兀AC(F)=
AC可以是
A——>C:A+=A 没有C所以 不成立
C——>A :C+=CA 有A所以 成立
则兀AC(F)={C——>A}
2.求投影的并集
兀AB(F)U兀AC(F)={B——>A,C——>A}②
3.判断F是否被②式蕴含
因为都有C——>A,所以F中这个不用判断,判断B——>C B+=BA 没有C
注意:::判断闭包时要在②式中判断。
所以 这个题p不保持FD集G
怎么求候选键
①先找到关系R的最大超键
例如 R(ABCD) F={B——>C,D——>A} p={BC,AD}
最大超键就是 ABCD
②
先在每一个F中 通过求闭包方式 划去冗余的属性
例如 最大超键ABCD 先从F中 B——>C 所以把C划去,再从D——>A 划去A 所以此时候选键有可能是BD,再看从D——>A开始,可以划去A,再看 B——>C可以划去C,所以候选键可能是BD
③ 把可能候选键验证 看是否候选键闭包集是全集U
例如
BD闭包集=ABCD=U,所以BD是候选键
怎么判断范式级别?
例题 中判断p中的级别,p={BC,AD}
先在BC,AD在F中做投影,然后在投影的集合中找出候选键
主属性:
如果A是关系模式R的候选键中的属性,那么称A是R的主属性,否则A是R的非主属性。
第1范式
定义:如果关系模式R的每个关系r的属性值都是不可分的原子值
第2范式
定义 如果关系模式R是1NF,且每个非主属性完全函数依赖于候选键
局部依赖:对于FD,W——>A,如果存在X属于W,有X——>A成立,那么称W——>A是局部依赖
否则 完全依赖
第3范式
设F是关系模式R的FD集,如果对于FD中每个X——>Y,都有X是R的超键,或者Y的每个属性都是主属性。
BCNF
设F是关系模式R的FD集,如果对于FD中每个X——>Y,都有X是R的超键
以上是关于数据关系模式设计的标准化的主要内容,如果未能解决你的问题,请参考以下文章