gpt4 book ai didi

database - 了解候选键

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

考虑 R(A,B,C,D,E)F = {BC->AE, A->D, D->C, ABD->E}。我需要找到架构的所有候选键。我知道 BA,BC,BD 是键,但我想知道如何发现它们。

我在 candidate keys from functional dependencies 中看到了一些答案= 但我没有完全理解它们。根据他们的建议,我得到了 L={B}, M={A,C,D}, R={E}现在我需要一次从 M 添加一个到 L。我从 A 开始,得到 BA。所以 BA->ABA->B(平凡)并且因为 A->D 所以 BA->D 并且因为 D->C 我们得到 BA->C。但是,我们如何得到 E 呢?

最佳答案

改编自 https://stackoverflow.com/a/14595217/3591273 的答案

因为我们有函数依赖:BC->AE, A->D, D->C, ABD->E ,我们有以下 super 键:

  • ABCDE (所有属性始终是 super 键)
  • ABCD (我们可以通过E获取属性ABD -> E)
  • ABC (只需添加 DA -> D )
  • ABD (只需添加 CD -> C )
  • AB (我们可以通过D得到A -> D,再通过C得到D -> C)
  • BC (我们可以通过E得到BC -> E,再通过C得到D -> C)
  • BD (我们可以通过C得到D -> C,再通过AE得到BC -> AE)

(这里要实现的一个技巧是,由于 B 从不出现 在函数依赖项的右侧,每个键都必须包含 B ,即键 B独立且不能从其他 key 派生)

Now that we have all our super keys, we can see that only the last three are candidate keys. Since the first four can all be trimmed down. But we cannot take any attributes away from the last three superkeys and still have them remain a superkey.

所以最小键是AB , BC , BD

更新

这是一种缩减方法,即通过使用函数依赖性连续减少琐碎的 super 键,但也可以采取相反的方式并使用扩充方法,即开始使用单个简单的键并使用其他键增加它们 wrt 依赖关系,直到键变得多余

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

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