无损,依赖保持第三范式中关系的分解

时间:2015-10-19 23:00:20

标签: database database-normalization bcnf

我正在学习数据库的规范化,我遇到了以下问题:

 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

如果有人能指出我正确的方向,我将非常感激。

1 个答案:

答案 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)。