问题标签 [bcnf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
71 浏览

database - 从一组函数依赖中获取 BCNF

这是一组FD(3NF):

A-> BDEFG

CF->A

BG->C

如何分解这种与 BCNF 的关系?

我猜CF->A中仍然存在依赖关系,因为A->F,但不知道如何分解它..

任何人都可以帮忙吗?

谢谢!

0 投票
1 回答
316 浏览

bcnf - 什么是 BCNF 的简短摘要?

对于我在一月份要复习的考试,我需要了解有关 Boyce-Codd 范式的所有信息,并且可能需要写一个简短的摘要来说明它是什么。在一段左右的时间里,BCNF 到底是什么,正如我在许多网站上查看的那样,并且描述非常复杂,所以我很难理解。感谢您的任何帮助。

0 投票
0 回答
254 浏览

mysql - 标准化为 BCNF 并消除异常

如何对以下数据库进行规范化以满足 3NF 和 BCNF,因为我已经多次重复外键并且当前的设计很难按原样执行某些查询。

数据库

谢谢。

0 投票
2 回答
1282 浏览

database - Boyce-Codd 范式

我不明白 Boyce-Codd 范式。我看了我的课本,但我不明白。假设关系 R = (A,B,C,D,E) 和 F={A->C, D->CB, AC->E}。你如何确定 R 是否在 BCNF 中?需要帮忙。谢谢!

0 投票
1 回答
5303 浏览

database-design - 3NF 与 BCNF:示例

Gday小伙子们,

好的,所以我有一个数据库类,我有这个例子让我觉得我真的没有完全理解两个 NF 之间的区别..

我知道

一个关系 R 在 3NF 中,当且仅当对于 R 满足的每个非平凡 FD (X->A) 至少满足以下条件之一为真:

(a) X 是 R 的超键,或

(b) A 是 R 的关键属性

关系 R 在 BCNF 中当且仅当对于 R 满足的每个非平凡 FD (X->A) 满足以下条件:

(a) X 是 R 的超级键

这是示例:

R = (A, B, C, D) F = {AB->C, AB->D, C->A, D->B} 1. R 在 3NF 中,为什么?如果不是,分解成3NF

那么,C->A 不会导致违规吗?C 不是超级键,也不是微不足道的,D-> B 也是如此?

但它不是 BCNF:

  1. R在BCNF中,为什么?如果不是,则将其分解为 BCNF No。因为对于 C->A,C 不是超键。D->B 类似 R1 = {C, D}, R2 = {A, C}, R3 = {B, D}
0 投票
2 回答
196 浏览

bcnf - BCNF中的分解吗?

我有一个带有属性的方案 R 的数据库:R(ABCDE),带有 FD's: A -> BC, C -> D, D -> E。我已将方案分解为Relation 1: ABCrelation 2: CDE。可以说这两个关系在BCNF中,相互加入时是无损的吗?

0 投票
1 回答
375 浏览

relational-database - 检查分解是否为 Boyce Codd 范式

考虑以 AB 作为主键的模式 S=(A,B,C,D),并且以下函数依赖关系 (FD) 对其保持不变:AB --> C, AB --> D, BC --> D。以下分解是 Boyce-Codd 范式 (BCNF) 吗?S1=(A,B,D) & S2=(B,C,D)

尝试的答案可能会遗漏一些东西:使用给定的 FD,在 S1 中,键是 AB;在 S2 中,关键是 BC。S1 包含 FD AB-->D,其左侧包含其键 AB。S2 包含 FD BC-->D,其左侧包含其密钥 BC。因此,分解似乎是在 BCNF 中。

但是,我们知道 BCNF 分解是无损的,而这个不是。常见的属性是 {B,D},它的闭包仍然是 {B,D}。

那么漏洞在哪里呢?

0 投票
0 回答
137 浏览

database-design - 具体的BCNF分解

我正在尝试对以下关系进行 BCNF 分解:

具有功能依赖关系:

我得到了 B 的超级密钥,通过遵循 BCNF 的分解算法,我得到了以下分解:

但是,我怀疑 R3 不正确。谁能解释为什么,我的错误在哪里?

0 投票
3 回答
236 浏览

database - BCNF分解,什么时候停止分解?

我很难理解 BCNF 分解。

如果我有:

计算闭包,我得出的结论是最小的键是 {AB} 和 {AC}。

我不确定如何从这里开始。如果需要进一步分解,我需要做什么?如果我应该在这里结束,你怎么知道什么时候停止分解?

0 投票
1 回答
989 浏览

database - 分解为 BCNF

虽然我确实了解正常形式是什么,但我在使用它们时遇到了麻烦。我正在学习数据库系统课程,不知何故我对此有点迷茫。我尝试过谷歌、stackoverflow、课程幻灯片和书籍,但例子似乎每次都让我偏离轨道。如果我在这篇文章中做出一些错误的假设/结论,我非常希望得到一些指示,但也希望得到一些关于我最终遗漏的指示。

我今天遇到的一个具体练习是:给定这个 DB,将其转换为 BCNF:

据我了解,这里有两个可能的候选键。AB 和 F。这是因为两者都能够导出整个 DB,并且因为它们都由单个左手边组成,所以它们都是最小的。

假设我们以 F 作为主键。
起初:DB(F->AB)

对于 1NF,似乎没有重复组。查看。
对于 2NF,似乎没有部分依赖。(如果 F 是唯一的主键,这不是不可能的吗?)
对于 3NF 有一个问题!AB 和 A 都不是键,而是确定其他属性。为了解决这个问题,它们需要成为键:(抱歉缺少下划线,似乎没有下划线的选项)

据我了解,对于 BCNF,过程如下:将 3NF DB 与原始 DB 进行比较。在 3NF DB 中找到整个左侧存在且至少存在一个右侧的原始 DB 中的出现。我不太确定怎么可能没有这个。也许我误解了这部分。无论如何,继续;

第一次出现是 F->AB。这是主键,因此可以。
第二次出现是 AB->EF。由于 AB 是候选键,因此也可以。
最后出现是 A->CD。A 只是候选键的一部分。这违反了 BCNF,必须重写。这就是我完全下车的地方。我不知道如何重写它,我不确定到目前为止的过程是否有意义。谁能帮我把它包起来?