数据库习题(六):关系数据理论

一、理解并给出下列术语的定义

函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、主码、外码、全码(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。

经验分享 程序员 微信小程序 职场和发展