我正在学习数据库的规范化,我遇到了以下问题:
Given the following relation, BOSQID and its functional dependencies
F={S->D, I->B, IS->Q, B->O},
如何找到无损,依赖保持上述分解为第3范式?
不确定第3范式是什么,我查了一下,发现了以下要求:
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
如果有人能指出我正确的方向,我将非常感激。
答案 0 :(得分:1)
我们有一个关系,R(BOSQID)及其功能依赖:
F = {S→D,I→B,IS→Q,B→O}
因为,您已得出结论,只有{SI}是候选密钥,因为{SI} + = SIDBQO = BOSQID并且没有{SI}的子集计算关系R的所有属性。
根据部分依赖性的定义{S→D,I→B}是部分依赖性,因为候选键的子集映射非素数属性。
根据2NF,不允许部分依赖性(即{S→D,I→B})。但{2→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 }。
现在,候选关键字和关系R1,R2和R3的正常形式是具有BCNF的{IS},具有BCNF的{S}和具有2个NF的{I}。
由于分解R3不在3NF中,因为FD {B→O},B既不是R3的候选者也不是O是R3的主要属性。因此,我们需要再次分解以在R3中实现3NF,这样分解应该满足无损连接和依赖保持关系。
I分解R31(IB)中的R3,其中F31 = {I→B},R32(BO),其中F32 = {B→O}。现在,候选关键字和关系R31和R32的正常形式是{I}与BCNF和{B}与BCNF。
因此,最终的BCNF以及3NF分解是R1(ISQ),R2(SD),R31(IB)和R32(BO)。