- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在理解如何确定关系是否符合 BCNF、3NF 以及如何识别关系的候选键时遇到问题。
考虑关系R = (A, B, C, D)
与函数依赖关系:
AB -> C
C -> D
D -> A
问题包括:
a. list the candidate keys of R
b. determine if R is in BCNF or 3NF.
解决办法
a. 3 candidate keys for R are AB, BC, and BD.
b. R is in 3NF, but not in BCNF.
我已通读 What is the difference between 3NF and BCNF?当引用数据库模式中的非任意词时,可以理解 3NF 和 BCNF 之间的区别。当我试图确定问题中给出的减少关系的关系时,我最终迷失了方向。
有人可以解释一下上面的候选键是如何确定的,以及为什么 R 属于 3NF 而不是 BCNF?
最佳答案
您同时提出几个问题。
如何计算关系的键。一般来说,最简单的方法是计算每个属性组合的闭包并确定哪些是超键。从这组 super 键中,找到最小的 super 键:这些是候选键。
如何确定关系是否为 BCNF。
为此,您不需要 key 。您需要做的就是测试每个重要的函数依赖关系,左侧是关系的超键。
对于 FD,您如何确定这一点?只需计算 FD 左侧的闭合即可。如果结果是关系的所有属性,则它是一个 super 键。
FD 必须采用规范形式:右侧有一个属性。
对于每个重要的 FD,左手边要么是 super 键(如 BCNF),要么右手边是键的一部分(任何键)。
这是一个非常的精彩视频,它解释了这些差异:
关于database - BCNF、3NF 和候选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40335129/
我在规范化方面遇到了一些问题。我有一个架构 REPAYMENT,它看起来像这样: 现在,根据我收集到的,架构中的功能依赖项是 {borrower_id} --> {name, address, req
我试图理解 BCNF 和非平凡 FD,但我有点困惑。我目前设计了以下数据库,据我了解这应该是 BCNF。 如果确实如此,您能否提供反馈?请注意,* 表示主键,并且用户不能同时对同一项目出价。一个项目可
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我有一个关系看起来像: R = (X,Y,C,D) 和函数依赖: FD = {XY -> CD, YC -> D, D -> X} 我发现候选键是XY、YC、YD。 在这种情况下,我有 3 个候选键.
我正在尝试了解如何规范化数据库,而我们老师给出的练习之一是在 BCNF 中规范化此表: Flight(**CityDeparture,CityArrival,Day**,NationDeparture
我得到以下关系: R(A,B,C,D,E) 以及以下功能依赖项: F1 - AC -> D F2 - D -> E F3 - E -> A 我正在尝试将其转换为 BCNF 格式。 我采取的第一步是找出
设 R 是与模式 R(X,Y,Z) 的关系 它的 FD 是 {XY -> Z, Z -> Y} 我无法将其分解为 BCNF 。 因为r1(Z,Y),r2(Z,X)会失去FD XY -> Z和 R(X,
我无法确定关系何时处于 Boyce-Codd 范式以及如何将其分解为 BCNF 信息(如果不是)。鉴于这个例子: R(A, C, B, D, E) 具有函数依赖关系:A -> B, C -> D 我该
我在理解如何确定关系是否符合 BCNF、3NF 以及如何识别关系的候选键时遇到问题。 考虑关系R = (A, B, C, D) 与函数依赖关系: AB -> C C -> D D -> A 问题包括:
我非常理解BCNF的概念,所以有人给了我这样一种格式的关系 R = {P, Q, S} F = {PQ->S, PS->Q, QS->P} 我可以很容易地说这种关系是 BCNF,因为左侧的所有键也是
我已经设计了一个数据库,现在我在 BCNF 中创建了它,但是我如何确定它确实在 BCNF 中,我如何检查它?我知道什么是 BCNF 但我只想知道是否有任何方法或方法可以检查它或确保它在 BCNF 中。
多值依赖会发生什么?它们是否属于 BCNF 或第四范式等? 最佳答案 4NF 涉及消除多值依赖性。 包括 BCNF 在内的低级范式涉及函数依赖。 维基百科关于范式的文章其实还不错。 4NF BCNF
我一直在寻找将以下关系从其当前状态分解为具有三个函数依赖性的 BCNF。 采纳格言 the key, the whole key, and nothing but the key 我的结论是 B-->
我有以下函数依赖(它们代表了我关系上的所有函数依赖): (1) BrokerName -> Office (2) StockName -> Dividend (3) InvestorId -> Bro
如何判断关系 R 是否属于 BCNF 和 3NF? 我正在阅读一本教科书,它告诉我您正在查看 3 个主要属性,但我无法理解他们在说什么,或者至少在给定时应用他们在说什么关系和 FD。 3个属性:给定具
我有关系 Competitor(PID, EventName, Pname, TeamName, TeamCoach,EventDate, TeamRating). 我有我的FD PID -> Pna
我对 DB BCNF 违规标准的一个特定方面感到困惑。这是一个例子: R(ABCDEF) FD 是 BC->D, C->AF, AB->CE。 我已导出候选键为 AB 和 BC。 考虑到所有 FD 至
我对 DB BCNF 违规标准的一个特定方面感到困惑。这是一个例子: R(ABCDEF) FD 是 BC->D, C->AF, AB->CE。 我已导出候选键为 AB 和 BC。 考虑到所有 FD 至
我作业中出现的一个问题如下: 如果行列式是候选键的一部分,这对于 BCNF 来说是否足够好? 我不这么认为,因为如果所有非键属性都依赖于整个主键,而没有其他属性,那么关系就属于 BCNF。这表示行列式
我正在研究数据库规范化以使其达到最低 3NF,但我无法仅在最后一个中继续。 最后一个表我有以下键。ID、组织编号和名称。 ID 是主键。ID可以决定ORG_NR和Name,ORG_NR也可以决定ID和
我是一名优秀的程序员,十分优秀!