规范化

/ 0评 / 2

1. 函数依赖
1) 完全函数依赖
2) 部分函数依赖
3) 传递函数依赖
2. 码
这里用函数依赖的概念来定义码。
1)设K为R<U,F>中的属性或属性组合,若U完全依赖于K,则K为R的候选码(candidate key)。
注意U是完全函数依赖于K,而不是部分函数依赖于K。如果U部分函数依赖于K,则K称为超码( Surpkey)。 候选码是最小的超码,即K的任意一个真子集都不是候选码。
若候选码多于一个,则选定其中的一个为主码(primary key)。
包含在任何一个候选码中的属性称为主属性(prime attribute);不包含在任何候选码中的属性称为非主属性(nonprime attribute) 或非码属性( non-key attribute)。最简单的情况,单个属性是码;最极端的情况,整个属性组是码,称为全码( all-key)。
2)关系模式R中属性或者属性组X并非R的码,但X是另外一个关系模式的码,则称X是R的外部码(foreign key),也称外码。
主码与外码提供了一个表示关系间联系的手段。
3. 范式
关系数据库中的关系是要满足一定要求的, 满足不同程度要求的为不同范式。满足最低要求的叫第一范式,简称1NF;在第一范式中满足进一步要求的为第二范式,其余以此类推。
所谓“第几范式”原本是表示关系的某一种级别,所以常称某一关系模式R为第几范式。现在则把范式这个概念理解成符合某一种级别的关系模式的集合,即R为第几范式就可以写成R∈x NF。
对于各种范式之间的关系有5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF
一个低一级范式的关系模式通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)。
4. 2FN
若R∈1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R∈2NF。
即没有部分依赖。
5. 3FN
设关系模式R<U,F>∈1NF,若R中不存在这样的码X,属性组Y及非主属性Z(Z⊉Y)使得X->Y,Y->Z成立,Y-/>X,则称R<U,F>∈3NF
即若R∈3NF,则每一个非主属性既不传递依赖于码,也不部分依赖于码。
6. BCNF
通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。
7. 多值依赖
8. 4NF

发表评论

电子邮件地址不会被公开。 必填项已用*标注