- 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/
在 WSL2 中运行 docker info(在 ArchWSL 和 Ubuntu 20.04 上)我收到以下警告: WARNING: bridge-nf-call-iptables is disab
在一本在线 awk 手册中我找到了例子awk '{ if (NF > max) max = NF } END { print max }' 该程序打印任何输入行上的最大字段数。但我不明白 awk 如何
我有 NC_042565.1 1 1 0 0 1 0 0 1 0 0 0 0 8 3 0 0 0 0 0 0 0 0 0 NC_042565.1 2
我有 NC_042565.1 1 1 0 0 1 0 0 1 0 0 0 0 8 3 0 0 0 0 0 0 0 0 0 NC_042565.1 2
我试图了解两个命令之间的区别是什么(我期望两个命令有相同的结果): 案例一 echo 'one,two,three,four,five' |awk -v FS=, '{NF=3}1' one two
我有这样一个文件: ID1 as;uh;2 ID2 uh;3 jk PASS ID3 PASS ID4 as;uh;PASS kk;3 rt ID5 as ID6 PASS PASS uh 3;4 I
我试图在 $NF 之前打印参数.然而$NF--没有用。解决这个问题的方法是什么?问题是,我不知道我得到了多少参数,所以我总是需要 $NF和之前的arg。 亲切的问候 于尔根 host -t ptr 1
我编写了一个程序,用于读取用户输入的文本文件,文件内部包含 .br 、 .sp 和 等格式化功能.nf. .nf 表示不填充,也意味着当您在 .nf 之后看到任何格式化功能时,它们都应该被忽略,并且应
我有一个数据库,用于存储射击游戏的结果。我将它们放入 3NF 以允许系统扩展。所以它看起来像这样: Player ------------------- GameId integer PlayerId
我有以下文件: cat testing.txt ============== line1 1 line2 2 2 line3 3 3 line4 我可以理解 awk 'NF > 0' testing.
我对以下内容有些困惑: $ echo foo bar baz | awk '{printf "%d:", NF--; print NF}' 3:2 $ echo foo bar baz | awk '
我读了一些教程,但我不明白如何链接各种 promise 来读取文件,但一个接一个,我认为这非常简单,但我不明白。 其想法是打开一个文件,读取另一个文件的文件名,打开该文件,然后启动 Express 服
以下有什么区别 NumberFormat nf = NumberFormat.getInstance(); 和 NumberFormat nf = new NumberFormat() 为什么我们需要
美好的一天! 我是创建数据库的新手...我需要为我的招聘网络应用程序创建一个数据库。 我的数据库架构如下: 注意:我在其他表中包含了申请人 ID...例如考试、面试、考试类型。 我是否违反了任何规范化
我在关系模型中有以下关系(表) Person person_id, first_name, last_name, address Student person_id, matr_nr Teac
我查看了一些重要的论坛,例如 SMF 论坛、PhpBB 或 VBulleting 论坛,我意识到它们不在 3rd FN 中。 他们有很多 NULL 字段,例如,在 SMF 论坛中,成员行可以将所有这些
我需要从文件中的每条记录中获取最后 4 个唯一值。文件以逗号分隔,不同记录的列数可以不同。我的输入文件。 $ cat last_cols.txt F F,B F,B,A F,B,A,F F,B,A,F
我正在阅读 The UNIX Programming Environment 和第 4.4 节,关于 awk,有这个示例代码: awk ' FILENAME != prevfile {
我有一些关于 DB2 NF 模式的客户问题。谷歌对此知之甚少。 我已经能够 推断 以下,但我并不完全相信它...... NF 和 CM(兼容模式)是大型机上 DB2 v8 上的设置。 CM 中 z/O
我正在尝试优化一个旨在获取大型数据集的库,并且 然后对其应用不同的操作。现在图书馆正在工作,我想要 来优化它。 我的印象是非严格评估允许 GHC 组合操作,以便数据只迭代一次 编写函数的顺序,以便对参
我是一名优秀的程序员,十分优秀!