问题标签 [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.
database - 具有函数依赖的 1NF 范式
我阅读了以下示例,该关系 A(X,Y,Z,P,Q,R) 具有以下功能依赖性。
为什么这是1NF?
任何人都可以帮助我吗?
relational-database - 数据库 BCNF 违规
我对 DB BCNF 违规标准的某个特定方面感到困惑。这是一个例子:
R(ABCDEF)
FD 是BC->D, C->AF, AB->CE
.
我已将候选键导出为AB and BC
.
考虑到所有的 FD 都至少包含部分候选键,这种关系在 BCNF 中是正确的吗?
多谢你们!
mysql - 候选关键决定因素对 BCNF 来说是否足够好?
我的作业中出现的一个问题如下:
- 如果行列式是候选键的一部分,那么这对 BCNF 是否足够好?
我不这么认为,因为如果所有非键属性都依赖于整个主键,那么关系就在 BCNF 中,仅此而已。这表示行列式是候选键的一部分,那么这是否意味着部分功能依赖?
但是,我开始怀疑自己,因为候选键有可能是超级键,但事实并非如此。
你怎么看?
database - 为什么我们不将所有关系分解为 2 属性关系?
如您所知,所有只有 2 个属性的关系都在 BCNF 中。
所以,问题是:为什么我们不把所有的关系分解成 2 属性的关系呢?
答案是:因为如果这样做,我们就无法实现无损连接。
你能给我一个这个答案的例子吗?给出一个关系,将其分解为一些 2-attriute 关系。然后,当我们加入他们时,数据就会丢失。
非常感谢你的帮助。
database - 多值依赖混淆
我正在为 4NF 和多值依赖 (MVD) 的概念而苦苦挣扎。
我正在查看我目前正在学习的课程的补充书籍,其中一个示例如下。
该书指出星号指的是唯一键或复合属性键。
给定:R(A*,B,C*) 和集合 {(A,B):R,(B,C):R} 满足无损分解特性。
多值依赖 B->>C 是否成立?
B 绝对是唯一的键吗?
R 在 4NF 中吗?
我理解无损分解-如果您采用上述两组的自然连接-您将获得原始数据集,即在本例中为 A、B、C。
但是我只是无法掌握如何获取给定的信息并证明/确认 B->>C 成立或不成立。
我给我的教授发了一封电子邮件,告诉我我的困惑,他只是告诉我看一下他的笔记(我显然已经做过很多次了),但这让我无处可去。
database-design - 函数依赖中的一个属性可以为空吗?
我在书店里有一组函数依赖 F, R = {cid, cname, bid, name,rentdate, returndate, cost},只有一张表。
customerid、bookid、bookname、此人租借和归还这本书的日期。
很明显,这不是 BCNF
但是如何为此识别非平凡函数依赖的 F 呢?
在我看来:
cid -> cname
出价 -> bname
出价,出租日期 -> 归还日期,cid
那样行吗?在最后一个函数依赖中,我认为每个订单,在特定时间租一本书,都会有唯一的归还日期,并且只属于一个人
但是我也对这个函数依赖感到困惑,因为在这个表中,rentdate 和 returndate 也可以设置为空!!!
这样,是否
出价,出租日期 -> 归还日期,cid
正确的?
database - 主键应该是常量 int 吗?
所以在我的一个学校项目中,我们必须为一个伪电子商务网站创建一个数据库。项目说明要求我们使用 Boyce–Codd 范式来实现我们的数据库,但我认为这种范式存在一些歧义。
假设我们这样实现实体Users
:
(注:*
meens 主键)
首先,如果我很好地理解了 BCNF,那么这个实体就不是 BCNF。如果username
s 和 s 一样是唯一email
的,那么我们也可以像这样定义这个实体:
我的第一个问题是如何以 Boyce–Codd 范式创建这个实体?
然后我对这个 BCNF 表格还有另一个问题:缺少id
. 假设用户可以更改他的用户名和电子邮件。主键也将发生变化。我的问题是我真的没有一个时间常数来定义我的实体中的一个元素。这意味着,例如,有关日志记录的一些问题:假设我们使用主键记录用户的操作,如果foo@smth.com
将他的电子邮件更改为foo2@smth.com
,我们可以拥有这种日志:
然后,如果我们没有发现电子邮件更改,我们所有的先例日志都将毫无意义:我们不知道是谁foo@smth.com
。
然后,我的第二个问题是,您不认为使用时间常数 id(例如整数)更安全吗?
normalization - 4NF 和多值依赖
我得到了这个练习,并希望有人对我的答案提出意见:
给定关系模式 R = (A, B, C, D) 和依赖集 F = (A -> BCD)。我们可以声称 R 在 4NF 中吗?
我最初的想法是我们不能声称它在 4NF 中,因为 4NF 更关心多值依赖。
但是,我的教授的回答是,我们实际上可以在 4NF 中声明它,因为您没有得到任何多值依赖项,因此它在 4NF 中。
任何人都可以指出任何支持他的主张或矿山的文献(书籍、论文等)吗?我一直在寻找一段时间,但找不到任何实质性的东西。
sql - BCNF 条件不明确
我阅读了下面的内容,其中 R 是关系模式,X 是属性集,A 是 R 中的属性。让 F 是 FD 集。要使 R 在 BCNF 中,对于 F 中的每个 X-> A,以下必须成立:
在 2) 中,为什么 X 必须是超级键?条件不应该是 X 是候选键,因为我知道对于 BCNF,对于每个非平凡的依赖项,一个键决定了一些属性。
如果我用 X 替换 2) 会出现什么问题是候选键?
database - 部分功能依赖,还在 3NF 中?
关系模式 R (ABCD)
功能依赖是:
AB -> D
CB -> D
A-> C
C -> A
最高范式 ???
我的理解 :
候选键 = AB和BC
创建表时 AB 和 BC 都不能视为主键。那么让我们一一来吧。
对于键 AB :
AB -> D ( Fully Functional Dependency , so no problem )
CB -> D ( ??? )
A -> C (partial Functional Dependency , as left side contains only part of key)
C -> A ( Functional Dependency , So no problem )
对于钥匙 BC
现在通过两个键,关系包含部分功能依赖。
那么它不应该在2NF中。
但答案是 3NF。
请纠正我。