先决条件 – 关系模型中的键
超级钥匙:
超级键是一个属性(或一组属性),用于唯一标识关系中的所有属性。所有超级键都不能是候选键,但反之亦然。在一种关系中,超级键的数量大于候选键的数量。
例子:
我们有一个给定的关系 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我们只能识别D和F而不是A和E 。同样的键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. |