📜  超级键和候选键的区别

📅  最后修改于: 2021-09-16 10:26:39             🧑  作者: Mango

先决条件 – 关系模型中的键
超级钥匙:
超级键是一个属性(或一组属性),用于唯一标识关系中的所有属性。所有超级键都不能是候选键,但反之亦然。在一种关系中,超级键的数量大于候选键的数量。

例子:
我们有一个给定的关系 R(A, B, C, D, E, F) ,我们将通过以下给定的依赖关系检查是否是超级键:

Functional dependencies         Super key
AB->CDEF                         YES
CD->ABEF                         YES
CB->DF                           NO
D->BC                            NO 

通过使用键AB,我们可以识别表的其余属性(CDEF) 。同样,Key CD。但是,通过使用密钥CB我们只能识别DF而不是AE 。同样的键D

候选键:
候选键是一组唯一标识关系或表中元组的属性(或属性)。我们知道主键是一个最小的超级键,所以在任何关系中只有一个主键,但可以出现多个候选键。候选键的属性可以包含与主键相反的 NULL 值。

例子:

Student{ID, First_name, Last_name, Age, Sex, Phone_no} 

在这里我们可以看到两个候选键ID{First_name, Last_name, DOB, Phone_no}。所以在这里,存在多个候选键,它们可以唯一标识关系中的元组。

超级键和候选键的区别:

S.NO Super Key Candidate Key
1. Super Key is an attribute (or set of attributes) that is used to uniquely identifies all attributes in a relation. Candidate Key is a subset of a super key.
2. All super keys can’t be candidate keys. But all candidate keys are super keys.
3. Various super keys together makes the criteria to select the candidate keys. Various candidate keys together makes the criteria to select the primary keys.
4. In a relation, number of super keys are more than number of candidate keys. While in a relation, number of candidate keys are less than number of super keys.
5. Super key’s attributes can contain NULL values. Candidate key’s attributes can also contain NULL values.