SQL 超级键:全面解释
SQL 中的超级键是一组列,如果将其指定为主键或唯一的 NOT NULL 约束,将防止出现重复行和 NULL 值。 然而,这个定义需要对空表和非空表进行细致的考虑。
空表和超级键
没有任何行的空 SQL 表拥有一个独特的属性:其列的每个 子集构成一个超级键。 这源于定义对潜在价值的关注;空表被认为能够保存所有可能的值,从而满足任何列组合的超级键条件。
非空表和超级键
所有非空 SQL 表本质上都包含至少一个超级键。 没有重复行和 NULL 值的表本质上是关系模型 (RM) 关系。 根据定义,RM 关系始终拥有一个或多个超级键。
弥合差距:SQL 和关系模型
记住 SQL 表并不完全符合 RM 关系的严格规则,这一点至关重要。与 RM 关系不同,SQL 允许重复和 NULL。因此,SQL 中的超级键概念是 RM 概念的实际扩展,而不是直接翻译。
SQL 超级键的实用定义
考虑到差异,我们可以如下定义 SQL 超级键:
关键术语澄清
以上是所有 SQL 表(包括空表)都拥有超级键吗?的详细内容。更多信息请关注PHP中文网其他相关文章!