首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第三范式关系的无损依赖保持分解

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

Stack Overflow用户
提问于 2015-10-19 23:00:19
回答 1查看 2K关注 0票数 2

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

代码语言:javascript
复制
 Given the following relation, BOSQID and its functional dependencies
 F={S->D, I->B, IS->Q, B->O},

我将如何找到一个无损的,保持依赖的分解上面的第三范式?

不太确定第三范式是什么,我查了一下,发现了以下要求:

代码语言:javascript
复制
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.

看完上面的文章后,我不太确定从哪里开始。另外,我也不确定这是否对回答这个问题有帮助,但我发现候选的关键是

代码语言:javascript
复制
IS

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

EN

回答 1

Stack Overflow用户

发布于 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)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33225357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档