gpt4 book ai didi

sql - 候选键的特殊用途,最小的性质

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

我知道,

“候选键是 super 键的最小子集”

这意味着候选键中不能有任何其他 super 键。

我不明白的是,

我们可以在数据库设计中的什么地方使用候选键的这种特殊属性。特殊属性意味着:-“候选键中不能有 super 键。”

非常感谢示例说明。

注意:这个问题从回答最多的问题中推迟 between keys , Finding/Identifying Candidate keys

最佳答案

我认为候选键的最小性质对于唯一约束、主键以及用户定义的唯一约束很有用。这些使我们能够确保功能依赖性在数据库中唯一表示,这对于数据一致性很重要。

如果我们使用非最小超键作为主键,我们可以为主键的一个子集记录具有相同值的多行,仅在子集的补集上有所不同。如果子集是函数依赖性的决定因素,我们可能会得到不一致的数据。

例如,让我们考虑一个简化的车辆登记表。每辆车都有唯一的注册号和唯一的发动机号,因此这两个属性都是候选键。这些的任何超集都是 super 键,例如两者的结合。

Poorly designed vehicle registration table

我用蓝色标出了主键。可以看到,每一行的主键值都是唯一的,但是该表允许多次记录相同的 vehicle_registration 和 engine_number,但关联属性不同。注册为“abc123”的车辆是 XC60 还是 XC90?我们不知道,我们的数据不一致。

Better vehicle registration table

更好的设计会将每个候选键作为一个单独的唯一约束来处理(无论选择哪个作为主键)。这将防止相同的车辆登记或发动机编号被记录两次。

关于sql - 候选键的特殊用途,最小的性质,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41545333/

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