问题标签 [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 回答
1957 浏览

database - 确定 BCNF 违规

所以我有一个与 FD 的关系模式,如下所示:

现在我试图找出所有违反 BCNF 的行为,然后分解表格。我计算了所有 FD 的左侧并发现了这一点:

所以我把表格分解成这样:

唯一的问题是我不确定这是否是我在分解表格时所要做的全部,或者我是否必须做更多。我主要对 AB、CD 和 AD 部分感到困惑。

0 投票
1 回答
382 浏览

database - 当属性与任何其他属性没有关系时如何进行 BCNF 分解

任务:

考虑一个关系 (,,,,,,) 及其 FD 集 = { → , → , → , → , → , → }。如果它不在 BCNF 中,则将其分解为 BCNF 关系的集合。确保您的分解是无损连接。

解释

嗨,我正在做我的数据库作业(关系设计章节)。我想我已经根据课堂示例掌握了基本过程。然而,这里棘手的部分是我们有一个与其他人没有关系的属性“H”,这让我很困惑。我应该如何处理?

尝试回答

你对我的错误有何评论?

0 投票
1 回答
680 浏览

database - 在 BCNF 分解之后获得相同的 FD?

我对一个有 5 个函数依赖的关系进行了 BCNF 分解,最终得到了 5 个关系。但是,每个新关系都具有与原始函数依赖项之一相同的属性和 FD。

例如,一个功能依赖是 AB -> C,而我最终得到的 5 个关系之一具有属性 ABC 和 AB -> C 功能依赖。其他四个关系也是如此(与原始 FD 之一相同的属性和 FD)。

这是否意味着我错误地进行了 BCNF 分解?

我发现这个问题描述了类似情况的特定 BCNF 分解,据说它是正确的。

这是否意味着您根本不必遵循 BCNF 算法,并且可以从每个 FD 中获取属性并将其放入一个关系中,然后每个关系都将在 BCNF 中,因此由新的关系也会如此吗?

0 投票
1 回答
246 浏览

database - 是否需要在关系分解后保留所有功能依赖关系?

在将关系转换为 BCNF 后,如果适用于原始模式的功能依赖 (FD) 丢失,则会创建一个新的“冗余”表以保留所有原始 FD,如果可能的话。我知道 FD 对于分解很重要,但是什么它们是分解后的用途吗?为什么我们必须尝试保存所有的 FD?在将关系转换为 BCNF 后丢失一两个 FD 真的很重要吗?

0 投票
0 回答
1152 浏览

relational-database - 如何检查关系是否在 BCNF 中

我有一个关系:A,B,C,D,E

与 FD:

既然A->BC可以A->BA->C那么B->D就可以成为A->D。而既然A->CA->D,那么CD->E就可以成为A->E。我不确定,E->A但从那A->E以后我会认为它会A->A成为一个微不足道的 FD。这意味着这种关系的关键是{A}?因此,A左侧唯一给出的 FD 将是A->BC.

但是这种关系在 BCNF 中存在吗?如果不是,我将如何将其更改为 BCNF?我已经读到我将使用违反 BCNF 的 FD 作为分离关系的起点,所以我会选择一个左侧没有 A 的 FD 并继续在那里分离吗?

0 投票
1 回答
1304 浏览

key - 主要属性和键

主要属性只是候选键的成员还是也可以是超级键?我有点困惑,因为我在某处读到主要属性可以是 ANY 键的成员,而其他人说它需要是候选键的成员。

0 投票
1 回答
289 浏览

database - Normalization. Looking for feedback on what should be 3NF

I am creating a database for a super market in my database class. The database needs to be at least 3nf but if possible, BCNF. Could someone let me know if this is satisfactory? I believe it is and I just want to make sure.

enter image description here

0 投票
1 回答
924 浏览

normalization - 函数依赖 lhs 具有素数和非素数属性

考虑表 zoo(a,b,c,d,e,f,g) 和 FD

a → b,d,e,g
c,d → f
f → c
e,g → d

对其进行归一化。

候选键是 {a,c} {a,f},所以素数是 {a,c,f}

2NF 被 a → b,d,e,g 违反

然后新表是 t1(a,b,d,e,g), zoo(a,c,f)

3NF 被 e,g → d 违反

然后新表是 t2(e,g,d), t1(a,b,e,g), zoo(a,c,f)

BCNF 违规是素数 -> 素数,但是 c 和 f 是素数但 d 是非素数,因此 lhs 具有素数和非素数,而 rhs 是素数。

那么我的问题是如何处理 FD c,d → f?

0 投票
1 回答
1632 浏览

database - BCNF 规范化和多个候选键

在 BCNF Normalization 中,候选键是否可以确定非主键或其他候选键?

如果是,同一张表中是否可以存在多个候选键?还是只有一个?

0 投票
2 回答
520 浏览

database - 通过分解实现 BCNF

这里有两个适用于 R 的函数依赖。

R(A,B,C,D,E) {ABCD->E, E->A}

我朋友的回答是可以分解成BCNF。

R1(B,C,D,E) {BCD->E}

R2(A,E) {E->A}

但是,我认为这不可能是真的,因为原始的函数依赖 ABCD->E 没有被保留。因此,在我看来,R不能分解成BCNF,因为原来的函数依赖ABCD->E没有被保留下来。我是对还是错?