先决条件 – 关系模型中的键
1.超级钥匙:
超级键是一个属性(或一组属性),用于唯一标识关系中的所有属性。所有超级键都不能是候选键,但反之亦然。在一种关系中,超级键的数量大于候选键的数量。
例子:
我们有一个给定的关系 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 。
2. 主键:
候选键是一组唯一标识关系或表中元组的属性(或属性)。可以有多个相关的候选键,可以从中选择一个作为主键。
例子:
Student{Stud_No, Stud_name, Stud_phone,
Stud_state, Stud_country, Stud_age}
在这里我们可以看到两个候选键Stud_No和Stud_phone。可以选择 STUD_No 作为主键(只有一个候选键)。
超级键和主键的区别:
S.NO | Super Key | Primary Key |
---|---|---|
1. | Super Key is an attribute (or set of attributes) that is used to uniquely identifies all attributes in a relation. | Primary Key is a minimal set of attribute (or set of attributes) that is used to uniquely identifies all attributes in a relation. |
2. | All super keys can’t be primary keys. | Primary key is a minimal super key. |
3. | Various super keys together makes the criteria to select the candidate keys. | We can choose any of the minimal candidate key to be a primary key. |
4. | In a relation, number of super keys are more than number of primary keys. | While in a relation, number of primary keys are less than number of super keys. |
5. | Super key’s attributes can contain NULL values. | Primary key’s attributes cannot contain NULL values. |