问题标签 [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.
functional-dependencies - 功能依赖
我正在研究 sql 的函数依赖和
我有一个问题。
我们有功能依赖
和
我试图弄清楚这是否是分解的关系
例如我们有两个关系
第一 = CAEB 第二 = CDF
和
我想知道当我们使用 BCNF 或 3NF 时,这两个关系是分解
对于我的想法,
第一和第二不是 BCNF 的分解
因为首先,
其次,
这样对吗 ?(我正在搜索关于 BCNF 的概念,我试图申请这个问题。)
和
我不太确定如何处理 3NF 部分......(它似乎与 BCNF 几乎相同,但我不太确定......)
有谁知道如何做 3NF 部分?谢谢..
database - 计算给定功能依赖的候选键
给定以下对关系 R(ABCDEFG) 的函数依赖
我已经通过使用将属性放在左、中、右列中的方法计算出候选键,具体取决于它是在依赖项的左侧、右侧还是两者兼而有之。左表示该属性是必需的,中间是未知的,右表示不是键的一部分。
我懂了:
从这里我计算出每个单独属性的闭包和排列:BC、BD、BE、BF、BG、CD、CF ......
我发现只有 A 和 CF 的闭包包含所有属性,因此是候选键,但是问题的解决方案也有 BFG。
有人可以解释我在计算候选键时做错了什么吗?谢谢
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,但我不明白如何实现这一点的正式过程。
所以我的问题是,谁能解释如何为一组功能依赖项生成最小覆盖?
haskell - 具有 Haskell 函数依赖的模糊类型变量
我在玩 Haskell 的 FunctionalDependencies-Extension 以及 MultiParamTypeClasses。我定义了以下内容:
效果很好(我尝试过使用 Int 和 Double 的实例,最终目标是能够在不显式转换的情况下添加 Int 和 Doubles)。
当我尝试为 neg 或 (~-) 定义默认实现时,如下所示:
GHCi (7.0.4) 告诉我以下内容:
我想我确实理解这里的问题。GHC 不知道要使用哪个零,因为它可以是任何零,产生任何东西,而这些东西又被输入到~-
我们只知道的 a 中,它有一个a
正确的论点并产生一个a
.
那么我如何指定它应该是来自同一个实例的零,即我如何表达如下内容:
我认为a
,b
和c
here不是周围类的 abc ,而是任何 ab 和 c ,那么我该如何表达一个对局部类型变量的引用的类型呢?
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-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?规范覆盖与最小覆盖相同吗?
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 是唯一的候选键。
这行得通吗?
感谢您的任何回答/评论
functional-dependencies - 识别功能依赖
关系:
公司名称是手机所有者工作的公司。功能依赖是:
是对的还是我错过了什么?
database - 函数依赖的最小覆盖
我有点难以理解最小覆盖的概念,所以我想知道我是否做对了,这样说是真的吗:
给定一个具有属性 A1...An 的关系 R
如果 G 是 FD 集 F 的最小覆盖,那么对于 R 中的每个属性子集 X,X 在 F 中的闭包与 X 在 G 中的闭包相同。
haskell - 什么是“覆盖条件”?
什么是“覆盖条件”?我只能说它与 MTPC 和基金组织有关。