候选键(Candidate Key)是指在一个关系数据库表中,能够唯一标识表中每一行数据的属性或属性组合。简单来说,候选键就是能够保证数据库表中每一条记录都是独一无二的属性或属性组合。
候选键需要满足以下条件:
1. 唯一性:候选键中的属性或属性组合在表中是唯一的,即每条记录的候选键值都是不同的。
2. 非空性:候选键中的属性值不能为空,因为空值无法唯一标识一条记录。
3. 最小性:候选键应该是最小的,即不能包含任何多余的属性。如果一个属性组合是候选键,那么不能从中去掉任何一个属性而仍然保持唯一性。
在一个关系中,可能会有多个候选键。在数据库设计中,通常从所有候选键中选择一个作为“主键”(Primary Key),主键用于唯一标识表中的每一条记录,并用于表与表之间的关联。如果没有合适的候选键,数据库设计者可能需要创建一个合成键(复合键),即由多个属性组合而成的候选键。