数据库范式相关证明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三范式具有如下性质:
1.如果R3NF,则R也是2NF。
证明:3NF的另一种等价描述是:对于关系模式R,不存在如下条件的函数依赖,X→Y (Y X),Y→Z,其中X是键属性,Y是任意属性组,Z是非主属性,Z Y。在此定义下,令Y X,Y是X的真子集,则以上条件X→Y,Y→Z就变成了非主属性对键X的部分函数依赖,X Z。但由于3NF中不存在这样的函数依赖,所以R中不可能存在非主属性对键X的部分函数依赖,R必定是2NF。
2.如果R2NF,则R不一定是3NF。
例如,我们前面由关系模式SCD分解而得到的SD和SC都为2NF,其中,SC3NF,但在SD中存在着非主属性MN对主键SNO传递依赖,SD3NF。对于SD,应该进一步进行分解,使其转换成3NF。
BCNF具有如下性质:
1.满足BCNF的关系将消除任何属性(主属性或非主属性)对键的部分函数依赖和传递函数依赖。也就是说,如果R BCNF,则R也是3NF。
证明:采用反证法。设R不是3NF。则必然存在如下条件的函数依赖,X→Y(Y X),Y→Z,其中X是键属性,Y是任意属性组,Z是非主属性,Z Y,这样Y→Z函数依赖的决定因素Y不包含候选键,这与BCNF范式的定义相矛盾,所以如果R BCNF,则R也是3NF。
2.如果R3NF,则R不一定是BCNF。
现举例说明。设关系模式SNC(SNO,SN,CN0,SCORE),其中SNO代表学号,SN代表学生姓名并假设没有重名,CNO代表课程号,SCORE代表成绩。可以判定,SNC 有两个候选键(SNO,CNO)和(SN,CNO),其函数依赖如下:
SNO SN
(SNO,CNO)→SCORE
(SN,CNO)→SCORE
唯一的非主属性SCORE对键不存在部分函数依赖,也不存在传递函数依赖。所以SNC 3NF。
但是,因为SNO SN,即决定因素SNO或SN不包含候选键,从另一个角度说,存在着主属性对键的部分函数依赖:(SNO,CNO)SN,(SN,CNO)SNO,所以SNC不是BCNF。
正是存在着这种主属性对键的部分函数依赖关系,造成了关系SNC中存在着较大的数据冗余,学生姓名的存储次数等于该生所选的课程数。从而会引起修改异常。
比如,当要更改某个学生的姓名时,则必须搜索出现该姓名的每个学生记录,并对其姓名逐一修改,这样容易造成数据的不一致问题。
解决这一问题的办法仍然是通过投影分解进一步提高SNC的范式等级,将SNC规范到BCNF。
(1)任何一个二目关系是属于3NF的(正确)
设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设A为键码,则F={A→B}。根据第二范式和第三范式的定义,显然R∈3NF。
b)若关系R中(A,B)为键码,则F={(A,B)→(A,B)}。根据第二范式和第三范式的定义,显然R∈3NF。
综上所述,任何一个二目关系是属于3NF的。
(2)任何二个二目关系是属于BCNF的(正确)
设任何一个二目关系为R(A,B),现分二种情况进行讨论:
a)若关系R中A或B为键码,不妨设B为键码,则F={B→A}。根据BC范式的定义,显然R∈BCNF。
b)若关系R中(A,B)为键码,则F={(A,B)→(A,B)}。根据BC范式的定义,显然R∈BCNF。
综上所述,任何一个二目关系是属于BCNF的。
(3)任何一个二目关系是属于4NF的(正确)
设任何一个二目关系为R(X,Y),如果X→→Y(即X、Y之间存在平凡的多值依赖),则R∈4NF。
(4)X是R的码,那么关系模式R是3NF的(错误)
假设有关系S(X,A,B),函数依赖F={X→A,A→B},由于B传递函数依赖于X,所以R∉3NF。(5)只有一个候选码的3NF关系模式,也必是BCNF的(正确)如果R是只有一个候选码的3NF关系模式,则关系模式R必定具有以下形式:
R(K,A1,A2,……,An),F={K→A1, K→A2, ……,K→An}
根据BC范式的定义,显然R∈BCNF。
(6)由全部属性组成码的关系模式是3NF的,也是BCNF的(正确)根据第(1)、(2)小题中情况(b)的证明方法,可以同理得到结果。