问题标签 [functional-dependencies]

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 投票
1 回答
536 浏览

functional-dependencies - 功能依赖

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

我有一个问题。

我们有功能依赖

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

例如我们有两个关系

第一 = CAEB 第二 = CDF

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

对于我的想法,

第一和第二不是 BCNF 的分解

因为首先,

其次,

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

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

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

0 投票
1 回答
4938 浏览

database - 计算给定功能依赖的候选键

给定以下对关系 R(ABCDEFG) 的函数依赖

我已经通过使用将属性放在左、中、右列中的方法计算出候选键,具体取决于它是在依赖项的左侧、右侧还是两者兼而有之。左表示该属性是必需的,中间是未知的,右表示不是键的一部分。

我懂了:

从这里我计算出每个单独属性的闭包和排列:BC、BD、BE、BF、BG、CD、CF ......

我发现只有 A 和 CF 的闭包包含所有属性,因此是候选键,但是问题的解决方案也有 BFG。

有人可以解释我在计算候选键时做错了什么吗?谢谢

0 投票
2 回答
79032 浏览

database - 最小覆盖和功能依赖

鉴于以下功能依赖关系,我将如何计算最小覆盖:

A -> B, ABCD -> E, EF -> GH, ACDF -> EG

在讲义中,它给出了最小封面的推导,但我不明白。

例如摆脱ACDF -> E

A -> B => AACD -> BACD -> E => ACD -> E => ACDF -> E

然后他们说,同样我们不保留ACDF -> G

然后我明白ABCD -> E被推导出为ACD -> E因为A -> B,但我不明白如何实现这一点的正式过程。

所以我的问题是,谁能解释如何为一组功能依赖项生成最小覆盖?

0 投票
2 回答
291 浏览

haskell - 具有 Haskell 函数依赖的模糊类型变量

我在玩 Haskell 的 FunctionalDependencies-Extension 以及 MultiParamTypeClasses。我定义了以下内容:

效果很好(我尝试过使用 Int 和 Double 的实例,最终目标是能够在不显式转换的情况下添加 Int 和 Doubles)。

当我尝试为 neg 或 (~-) 定义默认实现时,如下所示:

GHCi (7.0.4) 告诉我以下内容:

我想我确实理解这里的问题。GHC 不知道要使用哪个零,因为它可以是任何零,产生任何东西,而这些东西又被输入到~-我们只知道的 a 中,它有一个a正确的论点并产生一个a.

那么我如何指定它应该是来自同一个实例的零,即我如何表达如下内容:

我认为a,bchere不是周围类的 abc ,而是任何 ab 和 c ,那么我该如何表达一个对局部类型变量的引用的类型呢?

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 投票
4 回答
18110 浏览

database-design - 什么是规范覆盖、封闭和无关属性?

我正在研究数据库概念,但有 3 个概念我不明白:规范覆盖、无关属性和闭包。我阅读了有关规范封面的定义,但我不了解它与 3NF 和 BCNF 的关系。规范覆盖的定义似乎是没有多余的属性,而多余的属性是不改变函数依赖集的闭包的属性,而闭包是 F 隐含的所有函数依赖的集合,一组函数依赖.

但这一切都有些模糊,我想知道一个直观的定义和如何计算

  • 规范封面
  • 关闭
  • 无关属性

功能依赖性我相信我理解 - 如果我们在表中拥有这些属性,这就像表中的 PK 一样。

在数据库细化中有一个相当广泛的答案- F(无关属性)的最小覆盖,但我发现很难阅读所有集合定义和代数,我宁愿用简单的英语定义。

例如,具有模式 U={A,B,C,D,E,F,G} 和函数依赖

闭包 A+,B+,C+,D+,E+,F+ 是这样计算的吗?

如果我没记错的话,那么 BCDEFG 是 1NF/2NF 中的超级键(“整个键”),但它是最小的(3NF)吗?

在闭包和规范覆盖的帮助下,还应该做些什么来将此示例规范化为 1NF、2NF 和 3NF?规范覆盖与最小覆盖相同吗?

0 投票
1 回答
7234 浏览

relational-database - 在给定 FD:s 的情况下找到候选键的方法?

我正在练习将一组函数依赖项和输出候选键作为输入。是否有一种算法,在这种情况下,为什么没有基于 Web 的实现,我可以在其中输入我的 FD:s 并作为输出获得超级键/候选键的列表?

我练习我在 SO 上找到的内容,一个合适的问题是 如何找到给定关系的最高范式, 其中提到的函数依赖关系是

B->G

BI->CD

EH-> AG

G-> 德

当我尝试发现候选键是 BFHI 时,请检查我是否这样做正确:

FD B->G 可以重写为 ABCDEFHI->ABCDEFGHI,因此 ABCDEFHI 是一个超级键。FD BI->CD 可以重写为 ABEFGHI->ABCDEFGHI,因此 ABEFGHI 是一个超级键。FD EH->AG 可以重写为 BCDEEFHI->ABCDEFGHI,因此 BCDEEFHI 是一个超级键。FD G->DE 可以重写为 ABCFGHI->ABCDEFGHI,因此 ABCFGHI 是一个超级键。

在我们的超级键中,BFHI 存在于每一个中。因此 BFHI 是候选键,它不能进一步减少,这可以从检查中看出(?)

我的推理方式正确吗?

增广算法还可以处理另一个问题,如果可行的话, 数据库无关属性和分解

在这里,FD:s 是

A->BCD

BC->DE

B->D

D->A

这里 FB A->BCD 可以写成 AEF->ABCDEF,因此 AEF 是一个超级键。FD BC->DE 可以重写为 ABCF->ABCDEF,因此 ABCF 是一个超级键。FD B->D 可以重写为 ABCEF->ABCDEF,因此 ABCEF 是一个超级键。FD D->A 可以重写为 BCDEF->ABCDEF,因此 BCDEF 是一个超级键。对于所有超级键,F 是每个超级键中唯一的成员,因此 F 是唯一的候选键。

这行得通吗?

感谢您的任何回答/评论

0 投票
1 回答
117 浏览

functional-dependencies - 识别功能依赖

关系:

公司名称是手机所有者工作的公司。功能依赖是:

是对的还是我错过了什么?

0 投票
1 回答
1241 浏览

database - 函数依赖的最小覆盖

我有点难以理解最小覆盖的概念,所以我想知道我是否做对了,这样说是真的吗:

给定一个具有属性 A1...An 的关系 R

如果 G 是 FD 集 F 的最小覆盖,那么对于 R 中的每个属性子集 X,X 在 F 中的闭包与 X 在 G 中的闭包相同。

0 投票
2 回答
607 浏览

haskell - 什么是“覆盖条件”?

Statemtl中的变压器来源

什么是“覆盖条件”?我只能说它与 MTPC 和基金组织有关。