关系数据理论知识习题
三、考虑关系模式R(A,B,C,D),写出满足下列函数依赖时R的码,并给出R属于哪种范式(1NF、2NF、3NF或BCNF)。
一、理解并给出下列术语的定义
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(all-key)、1NF、2NF、3NF、BCNF。
函数依赖
设R(U)是属性集上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y,或Y函数依赖于X,记作X→Y。
部分函数依赖
在R(U)中,如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。
完全函数依赖
在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有Y不函数依赖于X’,则称Y对X完全函数依赖。
传递依赖
在R(U)中,如果X→Y(Y不属于X),X不函数依赖于Y,Y→Z(Z不属于Y)则称Z对X传递函数依赖。
U是完全函数依赖于K,而不是部分依赖于K。若U部分依赖于K,则K称为超码。候选码是最小的超码。
候选码
设K为R<U,F>中的属性或者属性组合,若U完全函数依赖于K,则K为R的候选码。
主码
若候选码多余一个,则选定其中的一个为主码。
外码
关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码。
全码
关系模式R中整个属性组是码,称为全码。
1NF
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。
2NF
若R∈1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R∈2NF。
3NF
设关系模式R<U,F>∈1NF,若R中不存在这样的码X,属性组Y及非属性组Z(Z不是Y的子集),使得X→Y,Y→Z成立(X不函数依赖于Y),则称R∈3NF。
BCNF
关系模式R<U,F>∈1NF,若X→Y且Y不属于X时,X必含有码,则R∈BCNF。
二、有关系模式R(A,B,C,D,E),回答下面各个问题:
1、若A是R的候选码,具有函数依赖BC→DE,那么在什么条件下R是BCNF?
由定义得,属性组BC含有码时,R是BCNF。BCNF的所有决定性因素都含有码,所以BC应该含有码。
2、如果存在函数依赖A→B,BC→D,DE→A,列出R所有码。
R的所有码:ACE、BCE、CDE。
由函数依赖关系A→B,BC→D,DE→A可得,A可以决定B,加上C决定D,再加上E可得R,故第一组ACE。由BC可决定D,加上E可决定A,亦可得R,第二组BCE。由DE可决定A,B传递依赖于DE,加上C可得R,第三组即CDE。
3、如果存在函数依赖A→B,BC→D,DE→A,R属于3NF还是BCNF。
R属于3NF,不属于BCNF。
ABCDE都是主属性,BCNF中不存在主属性对码的部分依赖。在R中的函数依赖中决定性因素不包含码。
三、考虑关系模式R(A,B,C,D),写出满足下列函数依赖时R的码,并给出R属于哪种范式(1NF、2NF、3NF或BCNF)。
- B→D,AB→C
码:AB;1NF(存在D对AB的部分函数依赖)。
- A→B,A→C,D→A
码:D;2NF(不存在部分依赖,存在传递依赖)。
- BCD→A,A→C
码:ABD、BCD;3NF(不存在非主属性对码的部分依赖或传递函数依赖,但A是决定因素不含码)。
- B→C,B→D,CD→A
码:B;2NF(不存在部分依赖,存在传递依赖)。
- ABD→C
码:ABD;BCNF(不存在部分依赖和传递依赖)。
判断依据(几个范式的定义及规范过程):
1NF:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。
2NF:若R∈1NF,且每一个非主属性完全函数依赖于任何一个候选码,则R∈2NF。
3NF:设关系模式R<U,F>∈1NF,若R中不存在这样的码X,属性组Y及非属性组Z(Z不是Y的子集),使得X→Y,Y→Z成立(X不函数依赖于Y),则称R∈3NF。
BCNF:关系模式R<U,F>∈1NF,若X→Y且Y不属于X时,X必含有码,则R∈BCNF。