给定关系模式R< U, F >, U = (A, B, C, D, E), F = {AB→C, B→D, C→E, CE→B, AC→B},求R的候选键,判断范式级别,分解成3NF,要求保持函数依赖。
时间: 2023-10-07 17:13:01 浏览: 230
根据候选键的定义,候选键是指可以唯一识别每个元组的属性或属性集合。在给定关系模式R< U, F >中,候选键可以通过以下步骤来确定:
1. 列出R的所有属性集合,包括单个属性和属性组合。
U = {A, B, C, D, E, AB, AC, BC, CE}
2. 将每个属性集合作为候选键进行测试,即判断该属性集合是否能唯一识别每个元组。
AB、AC、BC、CE都不能唯一识别每个元组,因此它们都不是候选键。
ADE是U的真子集,不能作为候选键。
3. 考虑属性集合的组合,如果两个属性集合的组合能唯一识别每个元组,则它们的并集就是候选键。
根据属性集合的组合,可以得到以下候选键:
ABE、ACD、BCD、ACDE
接下来,根据分解理论,这里使用BCNF范式来分解关系模式R< U, F >。
BCNF范式的定义是所有决策依赖都必须是自反闭的,即从一个键属性集合到另一个非键属性集合的所有依赖关系必须保证由键属性集合完全决定。
一组关系模式符合BCNF范式,当且仅当在模式的所有非平凡函数依赖中,左侧集合是候选键。
对于给定的关系模式R< U, F >,可以得到以下决策依赖关系:
AB→C,B→D,C→E,CE→B,AC→B
从中可以看出,BC→E不在候选键中,因此该关系模式不符合BCNF范式,则需要进行分解。
按照BCNF范式的要求,首先将不满足自反闭的属性集合分解出来。
根据CE→B决策依赖可得:
R1< CE, B >
R2< A, B, C, D, E >
再次检查R1、R2是否符合BCNF范式。其中,R1满足,而R2不满足。
因此,按照C→E决策依赖关系继续分解R2:
R3< A, B, C >
R4< C, D, E >
最终,R1、R3、R4三个关系模式都符合BCNF范式,因此分解成功,且保持了函数依赖。
阅读全文