问题标签 [3nf]
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 - 3NF和BCNF的简单区别(必须能够向8岁的孩子解释)
我读过这句话: 数据取决于键 [1NF]、整个键 [2NF],除了键 [3NF] 什么都没有。
但是,我无法理解所谓的 3.5NF 或 BCNF。这是我的理解:
- BCNF 比 3NF 更严格
- 表中任何 FD 的左侧必须是超级键(或至少是候选键)
那么为什么有些 3NF 表不在 BCNF 中呢?我的意思是,3NF 引用明确表示“只有键”,这意味着所有属性都仅取决于主键。毕竟,主键是一个候选键,直到它被选为我们的主键。
如果到目前为止我的理解有任何问题,请纠正我并感谢您提供的任何帮助。
database - 关系 R(ABCDE) 是否与 3NF 中 FD 的 {AB->CD, AC->BED, D->A} 的集合?
关系 R(ABCDE) 是否与 3NF 中 FD 的 {AB->CD, AC->BED, D->A} 的集合?我对此表示怀疑,但我正在阅读的笔记是这样说的。有人可以解释一下这是如何正确的吗?我的理解是,假设我们将 AB 作为键,那么属性 B、E 和 D 仅依赖于键的一部分(即 A),从而违反了 2NF 属性。
database - 当函数依赖是循环的时会发生什么?
我正在尝试将以下关系分解为 3NF:
所以我消除了冗余以获得规范的封面:
现在我正在尝试将其分解为 3NF。
我应该分解成r1(A, B, C) r2(B, D), r3(C, D)
. 那我该怎么办D -> A
?
A -> B -> D -> A
让我失望的事实。
functional-dependencies - 你如何计算分解的函数依赖关系?
假设 R 具有以下属性:{A,B,C,D,E} 并具有以下功能依赖关系:
并且有一个由 R1(A,B,C) 和 R2(A,D,E) 组成的分解。如何计算 R1 和 R2 的函数依赖关系?
作业上的实际问题问我 R1/R2 是否在 BCNF/3NF/两者中,但我已经知道如何做这部分(查看 FD 的左侧是否包含在候选键中)。
functional-dependencies - 功能依赖
我正在研究 sql 的函数依赖和
我有一个问题。
我们有功能依赖
和
我试图弄清楚这是否是分解的关系
例如我们有两个关系
第一 = CAEB 第二 = CDF
和
我想知道当我们使用 BCNF 或 3NF 时,这两个关系是分解
对于我的想法,
第一和第二不是 BCNF 的分解
因为首先,
其次,
这样对吗 ?(我正在搜索关于 BCNF 的概念,我试图申请这个问题。)
和
我不太确定如何处理 3NF 部分......(它似乎与 BCNF 几乎相同,但我不太确定......)
有谁知道如何做 3NF 部分?谢谢..
mysql - 将 EAV 数据视为 3NF 的 SQL 查询?(Drupal 6 配置文件值)
我根据实体-属性-值模式 (EAV) 将数据存储在 MySQL 数据库中,特别是来自 Drupal 6 的用户配置文件值。我需要一个 SQL 查询或视图才能将数据作为普通关系表获取。这些表具有以下布局:
我需要以某种方式从查询中获得以下结果:
我知道在一般情况下,在单个 SQL 查询中这是不可能做到的。但这不是一般情况,我有两个优点:
- 我知道“profile_fields”表的内容,并且我 100% 确定在使用此查询的时间段内该数据不会改变。
- 它不必在单个查询中 - 它可以是一个查询、一些用于分析结果的 PHP 代码,然后是另一个查询。
database-normalization - 规范化 - 识别传递依赖
我在识别传递依赖项时遇到了麻烦。我理解它背后的概念,但是看着它们并将它们拉出来是我遇到问题的地方。
所以我知道
甲→乙
不是 B → A
B → C
那么 A → C 是一个传递依赖。
在这种情况下,我似乎无法识别传递依赖:
患者 ID (PK)
Insurance_Co_ID (PK)
Doctor_ID (PK)
名称
P_Lname
P_Street
P_城市
P_Zip
P_Phone
Ins_First_Contact
Ins_Second_Contact
Ins_Phone
Doc_Fname
Doc_Lname
Doc_Beeper
我了解如何制作 1NF、2NF 等图表,识别部分依赖关系和行列式,只是在这方面遇到了麻烦。在进行研究后,我对此的看法是只发现一个传递依赖,但即便如此我也不确定。(Doc_Fname) → (Doc_Lname) → (Doc_Beeper) 所以 (Doc_Fname) → (Doc_Beeper) 还是 (Doc_Fname, Doc_Lname) → (Doc_Beeper)?
请帮忙,谢谢!
database - 3NF归一化
我必须在 3NF 中规范化以下内容:
标准化后得到的结果:
你认为我完全走错了路吗?
database - 3NF中的数据库关系?
我有以下关系。一家公司有多名员工。每个员工都由其员工编号定义,ENr
并且他住在一个EAddress
带有 ZipCode的地址上ZZipCode
。带有 ZipCode 的 City 是一个自己的表,因为否则表 Employee 中存在冗余。因此ZZipCode
是 Employee 中的外键。
一个 Group 由它定义GGroupId
,因此它是主键。每个组有一个组长,可以是任何员工。因此ENr
是外键。
每个员工都可以在一个或多个组中工作。出于这个原因,该表GroupMember
存在于元组ENr
和GGroupID
定义主键并且两者都是外键的位置(我不能同时使用粗体和斜体)。
最后,产品由其产品 id 定义PId
并关联到一个组GGroupID
。
那么这里是该书面描述的关系。
Employe( ENr , EName, EGender, EAddress, ZZipCode , ESocNr, ESalery)
Group( GGroupId , GName, GCostNr, ENr ) GroupMember
( ENr , GGroupID ) #both 成员也是外键!
产品(PId,PName,PPrice,GGRoupId)
邮编(ZZipCode,ZCityName,SStateID)
状态(SStateID,SStateName)
为了澄清:粗体成员是主键,斜体成员是外键。
我试图将这种关系放入3NF
. 任何人都可以确认这是正确的吗?
sql - 相当于 IN 运算符的 SQL 等效于 AND 而不是 OR?
我将简单地展示我正在尝试做的事情,而不是描述。3NF 中的 3 个表。product_badges 是连接表。(exists 子查询是必要的。)
现在这将返回所有具有 1 OR 2 OR 3 OR 4 的 badge_id 的产品。我想要的是只获得满足所有这些值的产品。我试图做 pb.badge_id=1 和 pb.badge_id=2 等,但这没有返回任何东西——这对我来说很有意义。我还尝试使用 INTERSECT 进行多个查询,但这导致了错误。我猜多个查询是关键,但 UNION 与 IN 基本相同,我不确定在这种情况下如何使用 JOIN。