首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >3NF的合成分解

3NF的合成分解
EN

Database Administration用户
提问于 2018-06-16 10:10:38
回答 1查看 3.5K关注 0票数 4

我在大学有个作业,是关于分解的。这是他们的关系和FDs。

V={ABCDEF},F={AB→CD,ABDE→F,BC→A,C→DF}

我们需要找到候选键,规范覆盖(基)和分解在3NF与依赖保存和无损连接。

-I发现我们的候选密钥是:{ABE,BCE}

-Basis= {AB→C,BC→A,C→DF}

-But,我对3NF中的分解不太确定,真的很困惑。这是我的解决办法:

最小基R0= {AB→C,BC→A,C→DF}步骤1:生成R1= (ABC) R2=(BCA) R3= (C)步骤2:如果Ri中没有一个关系模式包含R0的候选键,则创建新的关系模式Rj包含属性,形成R0键

候选人Keys={ABE,BCE} R4= (ABE) R5= (BCE)

步骤4:消除其他(R1和R2)结果中包含的关系模式: Z= {R1、R3、R4、R5)

R4和R5的关系有意义吗?3NF的精确分解是什么?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-06-16 11:37:08

问题在于第2步的应用:

如果Ri中没有一个关系模式包含R0的候选键,则创建新的关系模式Rj包含属性,形成R0键

这意味着您必须添加一个新的关系(但只有一个!)包含一个原始候选键(任意一个!)。

因此,3NF的正确分解是{R1, R3, R4}{R1, R3, R5}。您可以选择这两个中的一个作为问题的结果(这意味着是的,合成算法可以产生不同的分解)。

最后,我们可以注意到,这个步骤用于保证无损连接属性(而依赖保存由前面的步骤来保证,因为所有的分解都考虑到了)。事实上,存在这样一个定理:如果分解保留了依赖项,并且至少有一个包含原始候选键的关系,则此分解保留数据(即是无损连接分解)。

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

https://dba.stackexchange.com/questions/209808

复制
相关文章

相似问题

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