为什么候选键被称为最小超键?

2024年8月28日 | 阅读 4 分钟

键:在数据库管理系统(DBMS)中,用于唯一标识记录(行)的表中的字段或字段组合称为键。数据完整性、索引和表之间的连接的创建都依赖于键。它们对于有效组织和检索数据至关重要。

候选键:由一个或多个字段组成的集合称为候选键,它可以唯一标识数据库中的每个记录。尽管它满足了主键的标准,但可能尚未被选为主键。最终会从一个表的多个潜在候选键中选择一个作为主键。

  • 候选键是唯一标识元组的属性或属性组。
  • 候选键
  • 是属性的不同集合,可以从中选择主键。
  • 候选键允许 NULL 值。
  • 候选键是具有最少可能属性的超键。

为什么候选键被称为最小超键

关于数据库管理系统,最小超键是无法进一步精简但仍能唯一标识表中每个记录(行)的超键。它是可以作为超键的最小属性(列)集合。

为了理解最小超键的概念,我们首先回顾一下什么是超键。由一个或多个属性组成的集合称为超键,它可以唯一标识表中的每个元组(行)。尽管它可能包含其他对于唯一标识数据不必要的属性,但它确保了表中记录的唯一性。

数据库中的每个记录都可以通过候选键(一个或多个字段的组合)进行唯一标识。即使它满足了作为主键的要求,也可能尚未被选为主键。一个表的最终主键将从多个可能的候选键中选出。

考虑一个包含员工信息(如姓名、部门、电子邮件地址和员工 ID)的员工表。员工 ID 和电子邮件可以作为该表的超键,因为它们确保了每位员工的唯一性。但是,唯一性并不依赖于姓名和部门属性。员工 ID 和电子邮件的组合是最小超键,因为它是唯一标识每位员工的最小属性集合。

候选键被称为最小超键,因为我们从一组超键中选择它,使其成为区分表所必需的最小属性。

由一个或多个属性(列)组成的集合称为超键,它可以唯一标识数据库表中的每个元组(行)。换句话说,超键确保数据库中的每个条目都是唯一的。但是,超键可能包含冗余属性,这些属性对于唯一性来说是不必要的。

另一方面,候选键是最小超键。它是一个没有冗余属性的超键。候选键是能够以某种方式唯一标识表中每个元组的最小属性集合。如果从候选键中移除任何属性,其唯一性将会丢失。

在提及候选键时,“最小”的含义是,候选键的任何子集都不能用于以单一方式标识数据库中的元组。候选键是最小的,因为它在不丢失唯一性的情况下不能进一步精简。

示例

考虑带有属性 student_id、Name、Email 和 phone_number 的 Student 表。

student_id名称电子邮件Phone_number
1A[email protected]123
2B[email protected]456
3C[email protected]789
4D[email protected]112

我们将检查此表中每个属性的唯一性,以确定潜在键。

候选键一:student_id

每位学生都分配了一个特殊的 student_id。

表中的每位学生都通过其 student_id 得到唯一标识。

如果移除 student_id,其独特性将会丢失。

电子邮件是第二个潜在键。每位学生都有一个不同的电子邮件地址。

表中的每位学生都仅通过其电子邮件得到标识。

如果移除电子邮件,其独特性将会丢失。

在“Students”数据库中,可以使用候选键 1(Student_id)或候选键 2(email)来唯一标识每位学生,它们都可以作为最小超键。如果移除任何属性,这些键的唯一性将会丢失。


下一个主题三层应用架构