问题标签 [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 投票
2 回答
2829 浏览

database-design - 第四范式有什么好处?

我用谷歌搜索了很多,但我没有找到这个问题的答案。

前三个范式是常识。它们用于保存一致性并避免异常。但是为什么我们需要 BCNF 和第四范式呢?

(第五个我都不敢问了,因为我连它的作用都不懂)

0 投票
1 回答
1828 浏览

database - 第 3 范式中关系的无损、依赖保持分解

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

我将如何找到将上述内容无损、保持依赖关系的分解为第 3 范式?

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

读完以上内容后,我不太确定从哪里开始。另外,不确定它是否对回答问题有帮助或相关,但我发现候选键是

如果有人能指出我正确的方向,我将不胜感激。

0 投票
1 回答
270 浏览

mysql - 如何理解模式是否在 BCNF 中

我非常了解这个概念,BCNF所以有人以这种格式给我一个关系,比如

我可以很容易地说这种关系在 BCNF 中,因为左侧的所有键也是超级键。但是,如果我得到一个真实世界的问题,如下图所示: 在此处输入图像描述

那么我将如何确定这个模式是否在BCNF?我将如何从架构中创建功能依赖关系,然后发现super keys?谁能给我一些解决这些问题的建议?

如果将架构​​转换为:

那么显然这不在 BCNF 中,但答案是以下模式是 BCNF,我无法理解他们是如何推导出方程的。

0 投票
3 回答
9013 浏览

database-normalization - 每个二元关系BCNF如何?

因此,作为我的任务的一部分,我必须证明具有两个属性的任何关系都在 BCNF 中。

根据我的理解,如果对于一个关系,我们有第三范式和一个非关键属性在功能上确定关键属性,它违反了 BCNF。

假设我的关系包含两个属性 A1,A2

场景1(只有一个函数依赖)

同样适用于

但是如果

这里的键可以是 A1,A2。而另一个非关键属性在功能上决定了关键。

0 投票
1 回答
329 浏览

database - 确定超级密钥

根据维基百科

今天的法庭预订

在此处输入图像描述

  • 表格中的每一行代表一个网球俱乐部的场地预订,该俱乐部有一个硬地球场(Court 1)和一个草地球场(Court 2)
  • 预订由其法院和法院保留的期限定义
  • 此外,每个预订都有与之关联的费率类型。有四种不同的费率类型:
    • SAVER,适用于会员进行的 Court 1 预订
    • 标准,适用于非会员进行的 Court 1 预订
    • PREMIUM-A,适用于会员预订的 Court 2
    • PREMIUM-B,适用于非会员进行的 Court 2 预订

该表的超级键是:

  • S1 = {球场,开始时间}
  • S2 = {法庭,结束时间}
  • S3 = {速率类型,开始时间}
  • S4 = {费率类型,结束时间}
  • S5 = {球场、开始时间、结束时间}
  • S6 = {费率类型、开始时间、结束时间}
  • S7 = {球场、费率类型、开始时间}
  • S8 = {法院、费率类型、结束时间}
  • ST = {Court, Rate Type, Start Time, End Time},平凡的超级键

请注意,即使在上表中,Start Time 和 End Time 属性中的每一个都没有重复值,但我们仍然不得不承认,在其他一些日子里,球场 1 和球场 2 上的两个不同预订可能同时开始或结束同时。这就是为什么不能将 {Start Time} 和 {End Time} 视为表的超级键的原因。

S1 = {Court, Start Time} 是怎样一个超级键?

假设在第 1 天,会员从 11:00 到 12:00 预订球场 1,在第 2 天,非会员从 11:00 到 12:00 预订球场 1。

表中的记录将是 {1,11:00,12:00, SAVER} 和 {1,11:00,12:00, STANDARD}

显然 S1 = {Court, Start Time},不是超级键。还是我错了?

0 投票
0 回答
89 浏览

mysql - 数据库 BCNF 和功能依赖

问题

我得到了这张表,并被要求将其放入 BCNF 表格

我没有功能依赖

这是我到目前为止一直在尝试的

所以我根据表格做出假设,学生 -> 班级和讲师,班级 -> 校园将是这种关系的 FD

基于此,我使用学生,讲师 - >学生,讲师,班级,校园作为主键。

在此之后,我对 BCNF 的理解有点崩溃,因为我不确定如何将 3 行表与 4 行表连接起来,但是……这就是我的想法。如果有人可以帮助我纠正我的理解,我将不胜感激。谢谢你。

我尝试的答案

0 投票
2 回答
2377 浏览

database-design - 如何将模式分解为 3NF?

模式 R = (A,B,C,D,E)

功能依赖 F1 = {A->BC , CD->E, B->D, E->A}
功能依赖 F2 = {A->D, A->E, DE->BC, B->A, D->C}

根据F1,候选键-A、E、BC、CD
根据F2,候选键-A、B、DE

模式在 3NF 中的条件:
对于所有 X->Y,以下至少一项为真:
1. X 是超键
2. X->Y 是平凡的(即 Y 属于 X)
3. YX 中的每个属性都包含在一个候选键中

我知道根据 F1,R 在 3NF 中,但根据 F2,R 不在 3NF 中。

根据 F2,R 不在 3NF 中,因为在功能依赖 D->C 中,
1. D 不是超键
2. D->C 不是平凡的
3. 作为 C 的 CD 不包含在任何候选键中。
所以根据 F2,R 不在 3NF 中。

现在如何将其转换为 3NF?

我尝试了以下方法:将
R 分解为 (A,B,D,E) (C,D) (B,C,D,E) 以同时保留依赖关系。

这是正确的,还有其他分解方法吗?

0 投票
1 回答
122 浏览

bcnf - Bcnf lossless join

Are all relations in bcnf provide lossless join or can any relation be bcnf but not lossless join at the same tiem?

Is there a way to show that a relation that is not in bcnf but NOT lossless join.

0 投票
1 回答
520 浏览

database - BCNF分解过程

这些依赖项的 BCNF 分解是什么?

得到答案的过程是什么?

0 投票
1 回答
12255 浏览

database - 数据库的 BCNF 分解和无损连接

嘿,我有一个任务,上面写着:

令 R(ABCD) 是与函数依赖关系 A → B, C → D, AD → C, BC → A 下列哪一项是 R 到 Boyce-Codd 范式 (BCNF) 的无损连接分解?

我一直在 youtube 上研究和观看视频,但似乎找不到如何开始。我想我应该把它分解成子模式,然后填写一张表格来找出哪个是无损的,但我在开始时遇到了麻烦。任何帮助,将不胜感激!