功能依赖 - BCNF 规范化问题

Posted

技术标签:

【中文标题】功能依赖 - BCNF 规范化问题【英文标题】:Functional dependencies - BCNF normalization issue 【发布时间】:2015-04-08 15:06:41 【问题描述】:

我需要有关规范化问题的帮助。 考虑一个关系 R(ABC) 具有以下功能依赖项

AB --> C
AC --> B

如何将其修改为 Boyce–Codd 范式

如果我这样保留它,则它与关键属性的关系过渡依赖于关键候选。 我尝试分裂成几个关系,但那样我会丢失信息。

【问题讨论】:

【参考方案1】:

关系模式 R 是 Boyce-Codd 范式当且仅当 它的每一个依赖X→Y,至少以下之一 条件成立:

X → Y 是一个平凡的函数依赖 (Y ⊆ X) X 是模式 R 的超级键

From Wikipedia

R 有两个候选键,AB 和 AC。很明显,上面的第二条规则在这里适用。所以 R 在 BCNF 中。

如果我这样离开,这是与关键属性的关系 过渡依赖于关键候选人。我试着分裂成 有几个关系,但那样我会丢失信息。

我不太清楚你在这里得到什么,但我认为英语中的术语包括

主属性(属于任何候选键的属性) 传递依赖(但指的是非主属性) 候选键(不是key-candidate

【讨论】:

【参考方案2】:

这种关系在BCNF

AC 和 AB 是超级键,属性 B 和 C 依赖于超级键,所以它们在 BCNF 中

在这个关系中没有传递依赖

希望,这有帮助

【讨论】:

以上是关于功能依赖 - BCNF 规范化问题的主要内容,如果未能解决你的问题,请参考以下文章

关系数据理论-第二节:规范化

数据库关系分解为BCNF范式

如何将关系模式分解到BCNF(3NF)

软考 系统架构设计师案例分析⑦ 数据库规范化与反规范化

数据库作业1

规范化设计的范式的个人理解