问题标签 [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.
normalization - 只有当表包含多个候选键时才能违反 BCNF?
我在一本书中读到:“只有当表包含多个候选键时,才能违反 BCNF。” 考虑以下示例:
Sn Rollno Name Game
1 u11co098 Robert Basketball
2 u11ce034 Bob Cricket
3 u11co098 Robert Cricket
4 u11me049 Hogart Volleyball
从上表可以看出这
Sn
是一个主键 FDs
Rollno -> Name
Sn -> Rollno, Name, Game
现在根据上表的陈述是 BCNF 形式,因为它只有一个主键或候选键。FD不Rollno -> Name
违反BCNF吗?(因为Rollno
不是候选键)
sql - BCNF分解的结果是固定的吗?
我尝试了一些 BCNF 分解练习,并注意到大型非 BCNF 关系的分解 BCNF 关系集并不固定。这取决于我用来分解的方法。
例如,R(A,B,C,D)
可以分解为R1(A,B,C)
并R2(C,D)
满足 BCNF,也可以分解为R1(B,C,D)
并R2(A,C)
满足 BCNF。
是真的不固定,或者我可能在分解过程中犯了一些错误?
谢谢。
database-normalization - 这种关系在 3NF 和 BCNF 中一样吗?
假设一个关系模式R(A,B,C)
和 FD 是
{A -> B, B -> C}
所以超级键是{A}, {A,B}
现在如果我们把它分解成3NF它将是
R1(A,B) 与 FD {A -> B} 和 R2(B,C) 与 FD {B -> C}
是在BCNF吗?我无法确定。既然B
不是超级键in违反BCNF吗R
?{B -> C}
R2
database - 在 3NF 中找到关系,但在 BCNF 中找不到
我一直在阅读许多关于如何区分 3NF/BCNF 中的关系的不同资料。到目前为止,这是我的理解......
我将以这种关系为例...
R = {A, B, C, D, E}
和
F = {A -> B, B C - > E, E D -> A}
.
首先,我们必须找到关系的键。我用这个视频来帮助我做到这一点。我得到了
Keys = {ACD, BCD, CDE}
现在要确保R
在BCNF中,我们必须确保每个函数依赖项的左侧F
都是Keys
. 我们立即知道情况并非如此,因为第一个 FD 是A -> B
并且A
不是键之一。所以它不在 BCNF 中。
现在要确保R
在3NF中,我们必须确保 in 中的每个功能依赖项的左侧F
是其中一个,Keys
或者每个功能依赖项的右侧是其中F
之一的子集Keys
。如果您查看每个 FD 的右侧,它们B
是E
和A
。这些都是 a 的子集Key
,因此这意味着它在 3NF 中。
所以这是关系存在3NF
但不在. BCNF
这种方法正确吗?它可靠吗?我错过了什么吗?
database-normalization - 我过去的考试中奇怪的 BCNF 分解
我在将其分解为 BCNF 时遇到问题:
这是我过去的一次考试,我真的不知道如何解决它。
我是在 Coursera 上由编写我们课程文献的女士 (Jennifer Widom) 了解到的:
到目前为止,我在这里:显然,A 是关键,所以它的 FD 已经在 BCNF 中。问题是,我可以擦除任何多余的 FD 吗?如果是这样,拇指规则是什么?
而且不知道该去哪里。
sql - BCNF分解查询
我有一个关系R(A, B, C, D)与功能依赖ABC --> D和D --> A。
问题是,这是否有 BCNF,答案如下:
(c) ABCD不在 BCNF 中,因为D --> A和D不是键。但是,如果我们将R拆分为AD、BCD,我们将无法保留依赖关系ABC --> D。所以没有BCNF分解。
现在我的问题是,我知道如果将关系R拆分为R1(A,D)和R2(BCD) ,则无法保留ABC->D ,但是如果将R2(BCD)更改为R2(ABCD)会怎样。那不就保存下来了吗?我们有什么理由不能这样做?
relational-algebra - 平凡FD和两个循环FD有什么区别
在 Ullman 和 Widom 的 Complete Book 中,我读到有两个属性(A 和 B),我们有四个 FD 案例。第二个和第三个是 A -> B 和 B -> A,所以它们更容易。但是我不明白琐碎的依赖«B是A的子集»和循环FD的A -> B和B -> A之间有什么区别。它们不一样吗?
database-normalization - 导致不同分解(忠实或不忠实)的 BCNF 分解?
这是 Raghu Ramakrishnan,Johannes Gehrke 的教科书数据库管理系统中的问题 19.10 (4)(以防有人好奇 - 当然不包括答案,这就是我需要问的原因)
我注意到有两种方法可以进行 BCNF 分解:
我们得到 R = ABCD 和函数依赖:A -> B, B -> C, C -> D
键:A 我们可以在开始时使用 B -> C 或 C -> D 将其分解为 BCNF
如果开始沿 B -> C 分解,则得到 R1 = AB ,R2 = BC ,R3 = BD (这不是忠实的)如果开始沿 C -> D 分解,则得到 R1 = AB,R2 = BC ,R3 = CD(这是忠实的)
我对进行 BCNF 分解很陌生,这是正确的吗?因此,根据您选择的起始 FD,可能有多个不同的 BCNF 分解?
提前致谢 :)
database - 博伊斯科德范式?
我想看看这些示例是否在 BCNF 中,以了解我是否正确执行这些操作。关系:
功能依赖:
BCNF 关系:
第二个例子
关系:
功能依赖:
BCNF 关系:
我在正确的轨道上吗?
database-normalization - 3nf范式中素数到素数传递性
我被困在这个问题上。这个问题的答案应该是什么:
关系方案 Student Performance (name, courseNo, rolINo,grade) 具有以下函数依赖关系:
name, courseNo, ->grade
rolINo, courseNo ->grade
name -> rolINo
rolINo -> name
这种关系方案的最高范式是
(a) 2 NF (b) 3 NF (c) BCNF (d) 4 NF