6.1问题的提出
针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成。
关系数据库的规范化理论。
本章中把关系模式看作一个三元组R<U,F>。当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。
作为一个二维表,关系要符合一个最基本的条件:每一个分量必须是不可分的数据项,满足了这个条件的关系模式就属于第一范式1NF。
数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系。
1,函数依赖:自变量x确定之后,相应的函数值y也就唯一地确定了。
如果只考虑函数依赖。相应的关系模式会存在以下问题:①数据冗余。②更新异常。③插入异常。④删除异常。
6.2规范化
通常按属性间依赖情况来区分关系规范化程度为第一范式,第二范式,第三范式和第四范式等。
6.2.1函数依赖
定义:设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。
术语:①X→Y,但Y⊈X,则称X→Y是非平凡的函数依赖。②X→Y,但Y⊆X,则称X→Y是平凡的函数依赖。③X→Y,则X称为这个函数依赖的决定属性组,也称为决定因素。④若X→Y,Y→X,则记作X←→Y。
定义6.2:在R(U)中,如果X→Y,并且对于X的任何一个真子集M,都有Y不依赖于M,则称Y对X完全函数依赖。
定义6.3:在R(U)中,如果X→Y(Y⊈X),X不依赖于丫,Y→Z,Z⊈Y则称Z对X传递函数依赖。
6.2.2码
定义6.4:设K为R<U,F>中的属性或属性组合,若U对K完全函数依赖,则K为R的候选码。
如果U函数依赖于K,即K→U,则K称为超码。候选码是特殊的超码,即候选码的超集一定是超码,候选码的任何真子集一定不是超码。
若候选码多于一个,则选定其中的一个为主码。包含在任何一个候选码中的属性称为主属性,不包含在任何候选码中的属性称为非主属性。
最极端的情况,整个属性组是码,称为全码。
定义6.5关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。
6.2.3范式
关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式。
R∈xNF。对于各种范式之间的关系有5NF⊂4NF⊂BCNF⊂3NF⊂2NF⊂1NF。
一个低一级范式的关系模式通过模式分解可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化。
6.2.4 2NF
定义6.6 若R∈1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R∈2NF。
一个关系模式R不属于2NF,会产生以下问题:
①插入异常。②删除异常。③修改复杂。
6.2.5 3NF
定义6.7 设关系模式R<U,F>∈1NF,若R中不存在这样的码X,属性组Y及非主属性Z(Z⊈Y)使得X→Y,Y→Z成立,X不依赖于Y,则称R<U,F>∈3NF。即不再存在传递依赖。
6.2.6 BCNF
修正的第三范式,扩充的第三范式。
定义 6.8 关系模式R<U,F>∈1NF,若X→Y且Y⊈X时X必含有码,则R<U,F>∈BCNF。即在关系模式R<U,F>中,每一不决定因素都包含码。
一个满足BCNF的关系模式有:
①所有非主属性对每一个码都是完全函数依赖。
②所有主属性对每一个不包含它的码也是完全函数依赖。
③没有任何属性完全函数依赖于非码的任何一组属性。
标签:关系,依赖,范式,函数,关系数据,模式,数据库系统,概论,属性 From: https://blog.csdn.net/2302_78218660/article/details/139824751