我正在学习数据库的规范化,我遇到了以下问题:
Given the following relation, BOSQID and its functional dependencies
F={S->D, I->B, IS->Q, B->O},我将如何找到一个无损的,保持依赖的分解上面的第三范式?
不太确定第三范式是什么,我查了一下,发现了以下要求:
1. The relation R (table) is in second normal form (2NF)
2. Every non-prime attribute of R is non-transitively dependent on every superkey of R.看完上面的文章后,我不太确定从哪里开始。另外,我也不确定这是否对回答这个问题有帮助,但我发现候选的关键是
IS如果有人能指出正确的方向,我会非常感激的。
发布于 2016-07-24 13:02:51
我们有一个关系,R(BOSQID)及其函数依赖关系:
F={S→D,I→B,IS→Q,B→O}
您的结论是,只有{SI}是候选密钥,因为{SI}+ = SIDBQO=BOSQID且不计算{SI}的子集,因此关系R的所有属性都计算出来。
根据部分依赖{S→D,I→B}的定义,由于候选键子集映射非素数属性,因此I→B}是部分依赖关系。
根据2NF,不允许部分依赖(即{S→D,I→B})。但是{IS→Q,B→O}在2NF中都是允许的。最后,关系R不在2NF中。
为了实现2NF,我们对关系R进行分解,使分解满足无损连接和保持依赖关系。
在R1(ISQ)与F1={IS→Q},R2(SD)与F2={S→D},R3(IBO)与F3={I→B,B→O}之间进行分解。
现在,候选键(S)和关系R1、R2和R3的正规形式分别为: BCNF的{IS}、与BCNF的{S}和具有2NF的{I}。
由于分解R3不在3NF中,由于FD {B→O},B既不是R3的候选,也不是R3的素属性。因此,我们需要再次分解,以实现3NF的关系R3,这样的分解应该满足无损连接和依赖保持关系。
我用R3 {I→B}分解R31(IB),用F32={B→O}分解R32(BO)。现在候选键和正规形式的关系R31和R32分别是,{I}与BCNF和{B}与BCNF。
因此,最终的BCNF和3NF分解是R1(ISQ)、R2(SD)、R31(IB)和R32(BO)。
https://stackoverflow.com/questions/33225357
复制相似问题