【问题标题】:Lossless, dependency preserving decomposition of a relation in 3rd Normal Form第 3 范式中关系的无损、依赖保持分解
【发布时间】:2015-10-19 23:00:19
【问题描述】:

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

 Given the following relation, BOSQID and its functional dependencies
 F={S->D, I->B, IS->Q, B->O},

我将如何找到将上述内容无损、保持依赖关系的分解为第 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

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

【问题讨论】:

    标签: database database-normalization bcnf


    【解决方案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})。但是 {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 }。

    现在,候选键和关系 R1、R2 和 R3 的正常形式分别是具有 BCNF 的 {IS}、具有 BCNF 的 {S} 和具有 2 个 NF 的 {I}。

    由于分解R3不在3NF中,由于FD {B→O},B既不是R3的候选者,O也不是R3的素数属性。因此,我们需要再次分解以在关系 R3 中实现 3NF,这样分解应该满足无损连接和依赖保留关系。

    我用 F31={I→B} 在 R31(IB) 中分解 R3,用 F32={B→O} 分解 R32(BO)。现在候选键和关系 R31 和 R32 的正常形式分别是 {I} 和 BCNF 和 {B} 和 BCNF。

    因此,最终的 BCNF 和 3NF 分解为 R1(ISQ)、R2(SD)、R31(IB) 和 R32(BO)。

    【讨论】:

    • 很好的解释,但如果我没记错的话,R2(ISD) 应该只是 R2(SD)。
    • @captainmonk,是的,你是对的。最好去掉冗余。
    猜你喜欢
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多