问题标签 [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.

0 投票
6 回答
201899 浏览

database - 3NF和BCNF的简单区别(必须能够向8岁的孩子解释)

我读过这句话: 数据取决于键 [1NF]、整个键 [2NF],除了键 [3NF] 什么都没有

但是,我无法理解所谓的 3.5NF 或 BCNF。这是我的理解:

  • BCNF 比 3NF 更严格
  • 表中任何 FD 的左侧必须是超级键(或至少是候选键)

那么为什么有些 3NF 表不在 BCNF 中呢?我的意思是,3NF 引用明确表示“只有键”,这意味着所有属性都仅取决于主键。毕竟,主键是一个候选键,直到它被选为我们的主键。

如果到目前为止我的理解有任何问题,请纠正我并感谢您提供的任何帮助。

0 投票
1 回答
727 浏览

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 属性。

0 投票
1 回答
2461 浏览

database - 当函数依赖是循环的时会发生什么?

我正在尝试将以下关系分解为 3NF:

所以我消除了冗余以获得规范的封面:

现在我正在尝试将其分解为 3NF。

我应该分解成r1(A, B, C) r2(B, D), r3(C, D). 那我该怎么办D -> A

A -> B -> D -> A让我失望的事实。

0 投票
1 回答
3224 浏览

functional-dependencies - 你如何计算分解的函数依赖关系?

假设 R 具有以下属性:{A,B,C,D,E} 并具有以下功能依赖关系:

并且有一个由 R1(A,B,C) 和 R2(A,D,E) 组成的分解。如何计算 R1 和 R2 的函数依赖关系?

作业上的实际问题问我 R1/R2 是否在 BCNF/3NF/两者中,但我已经知道如何做这部分(查看 FD 的左侧是否包含在候选键中)。

0 投票
1 回答
536 浏览

functional-dependencies - 功能依赖

我正在研究 sql 的函数依赖和

我有一个问题。

我们有功能依赖

我试图弄清楚这是否是分解的关系

例如我们有两个关系

第一 = CAEB 第二 = CDF

我想知道当我们使用 BCNF 或 3NF 时,这两个关系是分解

对于我的想法,

第一和第二不是 BCNF 的分解

因为首先,

其次,

这样对吗 ?(我正在搜索关于 BCNF 的概念,我试图申请这个问题。)

我不太确定如何处理 3NF 部分......(它似乎与 BCNF 几乎相同,但我不太确定......)

有谁知道如何做 3NF 部分?谢谢..

0 投票
1 回答
428 浏览

mysql - 将 EAV 数据视为 3NF 的 SQL 查询?(Drupal 6 配置文件值)

我根据实体-属性-值模式 (EAV) 将数据存储在 MySQL 数据库中,特别是来自 Drupal 6 的用户配置文件值。我需要一个 SQL 查询或视图才能将数据作为普通关系表获取。这些表具有以下布局:

我需要以某种方式从查询中获得以下结果:

我知道在一般情况下,在单个 SQL 查询中这是不可能做到的。但这不是一般情况,我有两个优点:

  • 我知道“profile_fields”表的内容,并且我 100% 确定在使用此查询的时间段内该数据不会改变。
  • 它不必在单个查询中 - 它可以是一个查询、一些用于分析结果的 PHP 代码,然后是另一个查询。
0 投票
1 回答
1364 浏览

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)?

请帮忙,谢谢!

0 投票
1 回答
972 浏览

database - 3NF归一化

我必须在 3NF 中规范化以下内容:

标准化后得到的结果:

你认为我完全走错了路吗?

0 投票
1 回答
432 浏览

database - 3NF中的数据库关系?

我有以下关系。一家公司有多名员工。每个员工都由其员工编号定义,ENr并且他住在一个EAddress带有 ZipCode的地址上ZZipCode。带有 ZipCode 的 City 是一个自己的表,因为否则表 Employee 中存在冗余。因此ZZipCode是 Employee 中的外键。

一个 Group 由它定义GGroupId,因此它是主键。每个组有一个组长,可以是任何员工。因此ENr是外键。

每个员工都可以在一个或多个组中工作。出于这个原因,该表GroupMember存在于元组ENrGGroupID定义主键并且两者都是外键的位置(我不能同时使用粗体和斜体)。

最后,产品由其产品 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. 任何人都可以确认这是正确的吗?

0 投票
1 回答
539 浏览

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。