gpt4 book ai didi

database - 从功能依赖关系中确定键

转载 作者:太空狗 更新时间:2023-10-30 01:38:06 24 4
gpt4 key购买 nike

我正在上一门数据库理论类(class),阅读后我不清楚如何在给定一组函数依赖项的情况下推断键。

我有一个示例问题:

找到具有函数依赖关系 R(ABCDEFG) 的所有键

AB → C
CD → E
EF → G
FG → E
DE → C
BC → A

通过确定以下哪些是关键来展示您的知识。

a. BCDEF             
b. ADFG
c. BDFG
d. BCDE

有人可以告诉我应该如何分解函数依赖关系以得出某些属性组合是键的结论吗?我预计我会遇到许多此类问题,并且我需要了解如何处理这些问题。

最佳答案

获取 FD,例如AB→C

扩充直到所有属性都被提及,例如ABDEFG → CDEFG(请注意,这等同于 ABDEFG → ABCDEFG,因为 A->A 和 B->B 是平凡的)。

这告诉您 ABDEFG 是一个 super key 。

检查其他 FD,其中 LHS 是您的 super key 的一个子集,而其 RHS 包含您的 super key 的一些其他属性。

有两个。 EF→G 和 FG→E。从您的 super key 中删除这些 RHS 的属性。这样做会为您提供两个 key ,它们肯定是 super key ,但不一定是不可约的 key :ABDEF 和 ABDFG。

然而,从AB→C和CD→E我们也可以推导出ABD→E。因此我们也可以从我们的 ABDEF key 中删除 E。这里令人讨厌的是,当我说“检查其他 FD”时,这显然意味着您还应该检查出现在您的 FD 集合的闭包中的任何 FD(即,可从您给定的 FD 集合派生的任何 FD) ... 手工操作有点不切实际...

验证结果是否正确的有用网站:

http://raymondcho.net/RelationalDatabaseTools/

您现在应该能够确定选项 c 是一个键。

关于database - 从功能依赖关系中确定键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5735592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com