gpt4 book ai didi

database - 如何找到候选键

转载 作者:搜寻专家 更新时间:2023-10-30 22:07:53 24 4
gpt4 key购买 nike

我有一个函数依赖关系 A,B,C,D,E

1) A->BC

2) CD->E

3) B->D

4) E->A

使用 1 得到 A、D、E,然后使用 4 得到 D、E

使用 2 给出 A、B、C、D,然后使用 3 给出 A、B、C,使用 1 给出 A

使用 2 给出 A、B、C、D,使用 1 给出 A、D

使用 4 给出 B、C、D、E,使用 2 给出 B、C、D,使用 3 给出 B、C

使用 3 给出 A、B、C、E,使用 1 给出 A、E,使用 4 给出 E

所以我会有 5 个 super 键? (A、E、AD、BC、DE)。从我的 super key 中,我会选择独特的。

因为我可以从 E 得到 A,我可以删除 A 和 AD(因为 DE 是相同的)并且因为我可以从 A 得到 BC 我可以删除它所以我剩下

英语,德语

那会是我的 super key 吗?还是只是 E?

最佳答案

根据定义,关系的候选键 K 是一组决定所有其他属性的属性,因此我们不能在不丢失该属性的情况下从中删除任何属性。

要找到关系的所有键,如果您不遵循正式算法,那么您可以从检查 FD 的每个行列式开始,通过计算其闭包来查看这是否是( super 或候选)键.比如从A开始,你可以找到:

A+ = A
= ABC (by using 1)
= ABCD (by using 3)
= ABCDE (by using 2)

因此,A 确定所有属性,因此是候选键(而不是严格的 super 键,因为您不能从中删除任何属性!)

计算其他行列式的闭包,可以发现:

CD+ = ABCDE (candidate key, since C+ and D+ do not contain all the attributes)
B+ = BD (not a key)
E+ = ABCDE (candidate key)

现在您有了三个候选键,A、E 和 CD。由于 B 仅确定 D,我们可以尝试向其添加一些内容以查看它是否可以成为 key 的一部分。我们添加 A 或 E,因为它们已经是键,我们添加 D,因为它已经由 B 确定(因此拥有它肯定会产生一个 super 键)。所以我们试试 C:

BC+ = ABCDE (candidate key, since B+ and C+  do not contain all the attributes)

所以,最后,我们可以说这个关系有四个(而且只有四个)候选键:

A
BC
CD
E

关于database - 如何找到候选键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43465696/

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