gpt4 book ai didi

database - 普通形式 - 第二与第三 - 区别只是复合键吗?非平凡的依赖?

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:06 26 4
gpt4 key购买 nike

我看过 This post但我真的不明白使用的术语(非平凡的函数依赖, super 键)

从我读到的内容来看,第二范式似乎与复合键有关,而第三范式与主键有关。

虽然我不确定这是否正确。

所以第二种范式 - 有一个复合键,表中的所有字段都必须与这两个复合键字段相关。如果某些内容不相关,则应将其重构到另一个表中。

第三范式 - 一切都必须依赖于主键 - 所以我猜测在第三范式中只有 1 个键,而不是在可以有复合键的第二范式中?

任何建议表示赞赏。

最佳答案

我们写 S -> T 并说一组列 S 在功能上确定另一组 T。当第一个的每个子行总是与第二个的相同子行出现时,表值中的 S -> T。 S -> T 在表变量/模式中,当 S -> T 在每个约束条件下可能出现的每个值中时。

我们说 S 是行列式集,T 是确定集。我们称 S -> T 为 FD(函数依赖)。当 S 是 T 的超集时,我们称其为平凡 FD。当 S 是 {A} 时,我们说 A -> T & 当 T 是 {A} 时,我们说 S -> A。

super 键是一组唯一标识行的列。当它在功能上确定每个属性时就是这样。一个集合的真子集或超集是不等于它的。 CK(候选 key )是不包含适当 super key 的 super key 。我们可以选择一个 CK 作为 PK(主键)。当列在某个 CK 中时,它是素数。

这足以理解您链接到的答案:

The difference between 2NF and 3NF is this. Suppose that some relationsatisfies a non-trivial functional dependency of the form A->B, whereB is a nonprime attribute.

2NF is violated if A is not a superkey but is a proper subset of acandidate key

3NF is violated if A is not a superkey

引用说如果存在这样的 FD,则“违反了 NF”。如果存在这样的 FD,它也被违反。

当 S 的真子集也在函数上确定 T 时,FD S -> T 是偏的;否则它已满。请注意,这不涉及 CK。当每个非主列在功能上完全依赖于每个 CK 时,表处于 2NF。

S -> T 在存在 X 时是可传递的,其中 S -> X 和 X -> T 而不是 X -> S 而不是 X = T。请注意,这不涉及 CK。当每个非主列都非传递地依赖于每个 CK 时,表处于 3NF。

(注意 2NF 和 3NF 的替代定义与引用不同。)

关于database - 普通形式 - 第二与第三 - 区别只是复合键吗?非平凡的依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27474203/

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