📜  主键和候选键的区别

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

先决条件 – DBMS |关系模型中的键
主键候选键都是用于从表中访问元组的属性。这些(主键和候选键)也可用于创建两个表之间的关系。

主键
主键是一组唯一标识关系或表中元组的属性(或属性)。主键是一个最小的超级键,所以在任何关系中只有一个主键。例如,

Student{ID, F_name, M_name, L_name, Age} 

这里只有ID可以是主键,因为姓名、年龄和地址可以相同,但ID不能相同。

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

Student{ID, First_name, Last_name, Age} 

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

主键和候选键的区别:

S.NO Primary Key Candidate Key
1. Primary key is a minimal super key. So there is one and only one primary key in a relation. While in a relation there can be more than one candidate key.
2. Any attribute of Primary key can not contain NULL value. While in Candidate key any attribute can contain NULL value.
3. Primary key can be optional to specify any relation. But without candidate key there can’t be specified any relation.
4. Primary key specifies the important attribute for the relation. Candidate specifies the key which can qualify for primary key.
5. Its confirmed that a primary key is a candidate key. But Its not confirmed that a candidate key can be a primary key.