设有关系模式R(U,F),其中U={A,B,C,D,E,P},函数依赖集F={ A→B,C→P,E→A,CE→D},求出R的所有候选码.

2024-11-22 22:06:13
推荐回答(1个)
回答1:

E是唯一-的候选码对于给定的R,可以将它的属性划分为4类L类,仅出现在F的函数依赖左部的属性。

R类仅出现在F的函数依赖右部的属性,N类在F的函数依赖左部和右部均未出现的属性。LR类在F的函数依赖左部和右部两部均出现的属性根据以下定理和推论来求解候选码。

定理1:对于给定的关系模式R,若X(X∈U)是L类或N类属性组,则X必为R的任一候选码的成员。

推论1:对于给定的关系模式R,若X(X∈U)是L类属性组,且X+包含了R的全部属性,则X必为R的唯一候选码。

推论2:对于给定的关系模式R,若X是R的N类和L类组成的属性组,且X+包含了R的所有属性,则X是R的唯--候选码。

L:E

R:C、D

LR:AB

E:A,B,C,D,E

扩展资料

定义:R(U),X、Y为属性集,t1、t2为元组,若t1[X]=t2[X],则t1[Y]=t2[Y],称X函数决定Y函数或Y依赖于X,记作X→Y。

例3-22对实例3-21“学生选课”关系模式R,如果规定每个学生只能有一个姓名,每个课程号只能对应一门课程,则有以下FD:sno→snamecno→cname。

属性集闭包定义:对F,F+中所有X→A的A的集合称为X的闭包,记为X+。可以理解为X+表示所有X可以决定的属性。属性集闭包的算法:A+:将A置入A+。对每一FD,若左部属于A+,则将右部置入A+,一直重复至A+不能扩大。