DBMS 中的候选键2025年3月17日 | 阅读 3 分钟 候选键是称为超键(在上一节讨论过)的一部分键,超键是所有可以唯一标识表的属性的超集。 在这里,我们将讨论候选键、它的作用以及它的用法。我们还将看一些例子,以便更好地理解候选键的概念。 什么是候选键候选键是超键集合的一个子集,其中不包含冗余属性的键就是候选键。为了从超键集合中选择候选键,我们需要查看超键集合。 候选键的作用候选键的作用是唯一地标识表行或列。此外,候选键的值不能为 Null。根据专家们的说法,候选键的描述是“没有冗余属性”和“元组的最小表示”。 候选键与主键的区别虽然候选键和主键的目的相同,即唯一标识元组,但它们之间也存在差异。这是因为,在一个表中,我们可以有一个或多个候选键,但对于一个表,我们只能创建一个主键。因此,从获得的候选键数量中,我们可以识别出合适的主键。但是,如果一个表中只有一个候选键,那么它可以被同时考虑用于两个键约束。 候选键示例让我们看在讨论超键时使用的相同示例,以理解候选键的工作原理。 我们有一个 EMPLOYEE_DETAIL 表,其中包含以下属性 Emp_SSN: SSN 号码存储在此字段中。 Emp_Id: 存储员工标识号值的属性。 Emp_name: 存储具有指定员工 ID 的员工姓名的属性。 Emp_email: 一个属性,用于存储指定员工的电子邮件 ID。 下面的 EMPLOYEE_DETAIL 表将帮助您更好地理解 ![]() 因此,从上表中,我们得到了下面给出的超键(在上一节讨论过) ![]() 现在,从这些超键集合中,我们可以得出候选键。为了选择候选键,最好的方法是尽可能多地分析并形成主键。因此,我们需要从超键集合中识别那些能够单独标识整个表,或者说标识表中其他属性的集合。因此,结果是 ![]() 因此,这三个属性可以标识表中的其他非主属性。所有这些都是候选键,从中我们可以选择最适合的属性,该属性可以轻松标识表中的所有记录,这将作为主键进行描述。 候选键与超键的区别从上面的讨论中,我们可以得出以下区别点
因此,超键是超集,候选键是子集,主键是超键的子子集。 下一个主题DBMS 中的主键 |
我们请求您订阅我们的新闻通讯以获取最新更新。